From a851195e4b59c99622c3afe356ab478276d1da38 Mon Sep 17 00:00:00 2001 From: nikitosing Date: Wed, 30 Jun 2021 17:20:42 +0700 Subject: [PATCH] add partially verified support --- .dialyzer-ignore | 7 +- CHANGELOG.md | 1 + .../address_contract_controller.ex | 6 +- ...ddress_contract_verification_controller.ex | 63 +- ...ification_via_flattened_code_controller.ex | 2 +- ...ntract_verification_via_json_controller.ex | 2 +- .../api/rpc/contract_controller.ex | 11 +- .../templates/address_contract/index.html.eex | 57 +- .../views/address_contract_view.ex | 5 +- apps/block_scout_web/priv/gettext/default.pot | 2308 +++++++++-------- .../priv/gettext/en/LC_MESSAGES/default.po | 2308 +++++++++-------- apps/explorer/config/config.exs | 2 +- apps/explorer/lib/explorer/chain.ex | 121 +- .../lib/explorer/chain/smart_contract.ex | 11 +- .../lib/explorer/smart_contract/publisher.ex | 9 +- .../third_party_integrations/sourcify.ex | 28 + .../20210701084814_support_partial_match.exs | 9 + apps/explorer/test/explorer/chain_test.exs | 161 ++ 18 files changed, 2763 insertions(+), 2348 deletions(-) create mode 100644 apps/explorer/priv/repo/migrations/20210701084814_support_partial_match.exs diff --git a/.dialyzer-ignore b/.dialyzer-ignore index 2f8d917196..543db35406 100644 --- a/.dialyzer-ignore +++ b/.dialyzer-ignore @@ -23,8 +23,9 @@ 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/verifier.ex:89 -lib/block_scout_web/templates/address_contract/index.html.eex:162 +lib/block_scout_web/templates/address_contract/index.html.eex:150 +lib/block_scout_web/templates/address_contract/index.html.eex:193 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:65 -lib/explorer/third_party_integrations/sourcify.ex:68 +lib/explorer/third_party_integrations/sourcify.ex:70 +lib/explorer/third_party_integrations/sourcify.ex:73 diff --git a/CHANGELOG.md b/CHANGELOG.md index bd366b49b0..472a06aec2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## Current ### Features +- [#4331](https://github.com/blockscout/blockscout/pull/4331) - Added support for partially verified contracts via [Sourcify](https://sourcify.dev) - [#4323](https://github.com/blockscout/blockscout/pull/4323) - Renamed Contract Byte Code, add Contract Creation Code on contract's page - [#4312](https://github.com/blockscout/blockscout/pull/4312) - Display pending transactions on address page - [#4299](https://github.com/blockscout/blockscout/pull/4299) - Added sourcify verification api endpoint diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_controller.ex index ab4b8e63de..a2f1d30cbb 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_controller.ex @@ -3,6 +3,7 @@ defmodule BlockScoutWeb.AddressContractController do use BlockScoutWeb, :controller alias BlockScoutWeb.AccessHelpers + alias BlockScoutWeb.AddressContractVerificationController, as: VerificationController alias Explorer.{Chain, Market} alias Explorer.ExchangeRates.Token alias Indexer.Fetcher.CoinBalanceOnDemand @@ -19,8 +20,9 @@ defmodule BlockScoutWeb.AddressContractController do ] with {:ok, address_hash} <- Chain.string_to_address_hash(address_hash_string), - {:ok, address} <- Chain.find_contract_address(address_hash, address_options, true), - {:ok, false} <- AccessHelpers.restricted_access?(address_hash_string, params) do + {:ok, false} <- AccessHelpers.restricted_access?(address_hash_string, params), + _ <- VerificationController.check_and_verify(address_hash_string), + {:ok, address} <- Chain.find_contract_address(address_hash, address_options, true) do render( conn, "index.html", diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_controller.ex index 01ec954dfa..b2909bb508 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_controller.ex @@ -10,7 +10,7 @@ defmodule BlockScoutWeb.AddressContractVerificationController do alias Explorer.ThirdPartyIntegrations.Sourcify def new(conn, %{"address_id" => address_hash_string}) do - if Chain.smart_contract_verified?(address_hash_string) do + if Chain.smart_contract_fully_verified?(address_hash_string) do redirect(conn, to: address_path(conn, :show, address_hash_string)) else changeset = @@ -65,7 +65,7 @@ defmodule BlockScoutWeb.AddressContractVerificationController do json_file = json_files |> Enum.at(0) if json_file do - if Chain.smart_contract_verified?(address_hash_string) do + if Chain.smart_contract_fully_verified?(address_hash_string) do EventsPublisher.broadcast( prepare_verification_error( "This contract already verified in Blockscout.", @@ -125,18 +125,20 @@ defmodule BlockScoutWeb.AddressContractVerificationController do end end - def get_metadata_and_publish(address_hash_string, conn) do + def get_metadata_and_publish(address_hash_string, nil) do case Sourcify.get_metadata(address_hash_string) do {:ok, verification_metadata} -> - %{"params_to_publish" => params_to_publish, "abi" => abi, "secondary_sources" => secondary_sources} = - parse_params_from_sourcify(address_hash_string, verification_metadata) + proccess_metadata_add_publish(address_hash_string, verification_metadata, false) - ContractController.publish(conn, %{ - "addressHash" => address_hash_string, - "params" => params_to_publish, - "abi" => abi, - "secondarySources" => secondary_sources - }) + {:error, %{"error" => error}} -> + {:error, error: error} + end + end + + def get_metadata_and_publish(address_hash_string, conn) do + case Sourcify.get_metadata(address_hash_string) do + {:ok, verification_metadata} -> + proccess_metadata_add_publish(address_hash_string, verification_metadata, false, conn) {:error, %{"error" => error}} -> EventsPublisher.broadcast( @@ -146,6 +148,18 @@ defmodule BlockScoutWeb.AddressContractVerificationController do end end + defp proccess_metadata_add_publish(address_hash_string, verification_metadata, is_partial, conn \\ nil) do + %{"params_to_publish" => params_to_publish, "abi" => abi, "secondary_sources" => secondary_sources} = + parse_params_from_sourcify(address_hash_string, verification_metadata) + + ContractController.publish(conn, %{ + "addressHash" => address_hash_string, + "params" => Map.put(params_to_publish, "partially_verified", is_partial), + "abi" => abi, + "secondarySources" => secondary_sources + }) + end + def prepare_files_array(files) do if is_map(files), do: Enum.map(files, fn {_, file} -> file end), else: [] end @@ -256,4 +270,31 @@ defmodule BlockScoutWeb.AddressContractVerificationController do _ -> 200 end end + + def check_and_verify(address_hash_string) do + if Chain.smart_contract_fully_verified?(address_hash_string) do + {:ok, :already_fully_verified} + else + if Chain.smart_contract_verified?(address_hash_string) do + case Sourcify.check_by_address(address_hash_string) do + {:ok, _verified_status} -> + get_metadata_and_publish(address_hash_string, nil) + + _ -> + {:error, :not_verified} + end + else + case Sourcify.check_by_address_any(address_hash_string) do + {:ok, "full", metadata} -> + proccess_metadata_add_publish(address_hash_string, metadata, false) + + {:ok, "partial", metadata} -> + proccess_metadata_add_publish(address_hash_string, metadata, true) + + _ -> + {:error, :not_verified} + end + end + end + end end diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_via_flattened_code_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_via_flattened_code_controller.ex index 051793d7d4..e1ee8d5660 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_via_flattened_code_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_via_flattened_code_controller.ex @@ -6,7 +6,7 @@ defmodule BlockScoutWeb.AddressContractVerificationViaFlattenedCodeController do alias Explorer.SmartContract.{PublisherWorker, Solidity.CodeCompiler, Solidity.CompilerVersion} def new(conn, %{"address_id" => address_hash_string}) do - if Chain.smart_contract_verified?(address_hash_string) do + if Chain.smart_contract_fully_verified?(address_hash_string) do redirect(conn, to: address_path(conn, :show, address_hash_string)) else changeset = diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_via_json_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_via_json_controller.ex index d4ad1d86ea..20c6294c9d 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_via_json_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_via_json_controller.ex @@ -7,7 +7,7 @@ defmodule BlockScoutWeb.AddressContractVerificationViaJsonController do alias Explorer.ThirdPartyIntegrations.Sourcify def new(conn, %{"address_id" => address_hash_string}) do - if Chain.smart_contract_verified?(address_hash_string) do + if Chain.smart_contract_fully_verified?(address_hash_string) do redirect(conn, to: address_path(conn, :show, address_hash_string)) else case Sourcify.check_by_address(address_hash_string) do diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/contract_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/contract_controller.ex index ab70cf6561..a637f65b39 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/contract_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/contract_controller.ex @@ -5,7 +5,7 @@ defmodule BlockScoutWeb.API.RPC.ContractController do alias BlockScoutWeb.API.RPC.Helpers alias Explorer.Chain alias Explorer.Chain.Events.Publisher, as: EventsPublisher - alias Explorer.Chain.SmartContract + alias Explorer.Chain.{Hash, SmartContract} alias Explorer.SmartContract.Publisher alias Explorer.ThirdPartyIntegrations.Sourcify @@ -53,7 +53,7 @@ defmodule BlockScoutWeb.API.RPC.ContractController do [] end - if Chain.smart_contract_verified?(address_hash) do + if Chain.smart_contract_fully_verified?(address_hash) do render(conn, :error, error: "Smart-contract already verified.") else case Sourcify.check_by_address(address_hash) do @@ -214,6 +214,10 @@ defmodule BlockScoutWeb.API.RPC.ContractController do end end + def publish(nil, %{"addressHash" => _address_hash} = input) do + publish_without_broadcast(input) + end + def publish(conn, %{"addressHash" => address_hash} = input) do result = publish_without_broadcast(input) @@ -261,6 +265,7 @@ defmodule BlockScoutWeb.API.RPC.ContractController do def getsourcecode(conn, params) do with {:address_param, {:ok, address_param}} <- fetch_address(params), {:format, {:ok, address_hash}} <- to_address_hash(address_param) do + _ = VerificationController.check_and_verify(address_param) address = Chain.address_hash_to_address_with_source_code(address_hash) render(conn, :getsourcecode, %{ @@ -364,6 +369,8 @@ defmodule BlockScoutWeb.API.RPC.ContractController do end defp to_smart_contract(address_hash) do + _ = VerificationController.check_and_verify(Hash.to_string(address_hash)) + result = case Chain.address_hash_to_smart_contract(address_hash) do nil -> diff --git a/apps/block_scout_web/lib/block_scout_web/templates/address_contract/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/address_contract/index.html.eex index 66f95126f8..aa38809367 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/address_contract/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/address_contract/index.html.eex @@ -3,8 +3,8 @@ <% metadata_for_verification = minimal_proxy_template || Chain.get_address_verified_twin_contract(@address.hash).verified_contract %> <% smart_contract_verified = BlockScoutWeb.AddressView.smart_contract_verified?(@address) %> <% additional_sources_from_twin = Chain.get_address_verified_twin_contract(@address.hash).additional_sources %> +<% fully_verified = Chain.smart_contract_fully_verified?(@address.hash)%> <% additional_sources = if smart_contract_verified, do: @address.smart_contract_additional_sources, else: additional_sources_from_twin %> -
<% is_proxy = BlockScoutWeb.AddressView.smart_contract_is_proxy?(@address) %> @@ -28,13 +28,21 @@ <% end %> <%= if smart_contract_verified || (!smart_contract_verified && metadata_for_verification) do %> <% target_contract = if smart_contract_verified, do: @address.smart_contract, else: metadata_for_verification %> - <%= if @address.smart_contract.verified_via_sourcify && smart_contract_verified do %> + <%= if @address.smart_contract.partially_verified && smart_contract_verified do %> + <%= gettext("This contract has been partially verified via Sourcify.") %> + <% else %> + <%= if @address.smart_contract.verified_via_sourcify && smart_contract_verified do %> +
+ <%= gettext("This contract has been verified via Sourcify.") %> + <% end %> + <% end %> + <%= if @address.smart_contract.verified_via_sourcify && smart_contract_verified do %> + target="_blank"> + View contract in Sourcify repository <%= render BlockScoutWeb.IconsView, "_external_link.html" %> + +
+ <% end %>
@@ -135,15 +143,38 @@ <%= if creation_code(@address) do %>

<%= gettext "Contract Creation Code" %>

- +
+ + <%= if match?({:selfdestructed, _}, contract_creation_code) do %> +
+ <%= gettext("Verify & Publish") %> +
+ <% else %> + <%= if !fully_verified do %> + <% path = + if Application.get_env(:explorer, Explorer.ThirdPartyIntegrations.Sourcify)[:enabled] do + address_verify_contract_path(@conn, :new, @address.hash) + else + address_verify_contract_via_flattened_code_path(@conn, :new, @address.hash) + end + %> + <%= link( + gettext("Verify & Publish"), + to: path, + class: "button button-primary button-sm float-right ml-3", + "data-test": "verify_and_publish" + ) %> + <% end %> + <% end %> +
<%= creation_code(@address) %>
<% end %> - <%= if smart_contract_verified do %> + <%= if fully_verified do %>

<%= gettext "Deployed ByteCode" %>

- <%= if match?({:selfdestructed, _}, contract_creation_code) do %> + <%= if match?({:selfdestructed, _}, contract_creation_code) and !creation_code(@address) do %>
<%= gettext("Verify & Publish") %>
<% else %> - <%= if !smart_contract_verified do %> + <%= if !fully_verified and !creation_code(@address) do %> <% path = if Application.get_env(:explorer, Explorer.ThirdPartyIntegrations.Sourcify)[:enabled] do address_verify_contract_path(@conn, :new, @address.hash) diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_contract_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_contract_view.ex index d66965004a..bf5b660ebf 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_contract_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_contract_view.ex @@ -127,10 +127,11 @@ defmodule BlockScoutWeb.AddressContractView do address.contracts_creation_transaction.input end - def sourcify_repo_url(address_hash) do + def sourcify_repo_url(address_hash, partial_match) do checksummed_hash = Address.checksum(address_hash) chain_id = Application.get_env(:explorer, Explorer.ThirdPartyIntegrations.Sourcify)[:chain_id] repo_url = Application.get_env(:explorer, Explorer.ThirdPartyIntegrations.Sourcify)[:repo_url] - repo_url <> chain_id <> "/" <> checksummed_hash <> "/" + match = if partial_match, do: "/partial_match/", else: "/full_match/" + repo_url <> match <> chain_id <> "/" <> checksummed_hash <> "/" end end diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index a39dbbe09c..a2d09ebe72 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -1,3 +1,10 @@ +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:6 +msgid "%{blocks} block" +msgid_plural "%{blocks} blocks" +msgstr[0] "" +msgstr[1] "" + #, elixir-format #: lib/block_scout_web/views/address_token_balance_view.ex:8 msgid "%{count} token" @@ -12,11 +19,33 @@ msgid_plural "%{count} transactions" msgstr[0] "" msgstr[1] "" +#, elixir-format +#: +#: lib/block_scout_web/templates/common_components/_minimal_proxy_pattern.html.eex:9 +msgid " - minimal bytecode implementation that delegates all calls to a known address" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/transaction/overview.html.eex:252 +msgid " Token Burning" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/transaction/overview.html.eex:241 +msgid " Token Minting" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/transaction/overview.html.eex:230 msgid " Token Transfer" msgstr "" +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:43 +msgid " Working Stake Amount is an amount which is accounted and working at the current staking epoch." +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:14 msgid " is recommended." @@ -58,11 +87,22 @@ msgstr "" msgid "%{subnetwork} Explorer - BlockScout" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_metatags.html.eex:2 +msgid "%{subnetwork} Staking DApp - BlockScout" +msgstr "" + #, elixir-format #: lib/block_scout_web/views/transaction_view.ex:262 msgid "(Awaiting internal transactions for status)" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_rows.html.eex:26 +#: lib/block_scout_web/templates/stakes/_stakes_progress.html.eex:27 +msgid "(inactive pool)" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:59 #: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:70 @@ -112,6 +152,17 @@ msgstr "" msgid "APIs" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_table.html.eex:39 +msgid "APY" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:79 +msgid "APY & Predicted Reward" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/layout/_topnav.html.eex:80 msgid "Accounts" @@ -146,11 +197,68 @@ msgstr "" msgid "All" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:18 +msgid "All functions displayed below are from ABI of that contract. In order to verify current contract, proceed with" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_contract/index.html.eex:24 +msgid "All metadata displayed below is from that contract. In order to verify current contract, click" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:27 +msgid "All pool participant addresses. The top address belongs to the %{pool_type}." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:27 +msgid "Already Ordered:" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:10 +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:14 +#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:11 +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:11 +msgid "Amount" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:41 +msgid "Amount of %{symbol} placed by an address." +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:15 msgid "Anything not in this list is not supported. Click on the method to be taken to the documentation for that method, and check the notes section for any potential differences." msgstr "" +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:80 +msgid "Approximate Current Annual Percentage Yield. If you see N/A, please reopen the popup in a few blocks (APY cannot be calculated at the very beginning of a staking epoch). Predicted Reward is the amount of %{symbol} a participant will receive for staking and can claim once the current epoch ends." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_table.html.eex:39 +msgid "Approximate Current Annual Percentage Yield. If you see N/A, please wait for a few blocks (APY cannot be calculated at the very beginning of a staking epoch)." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_topnav.html.eex:154 +msgid "Apps" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:48 +msgid "Available Now:" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/chain/show.html.eex:124 msgid "Average block time" @@ -173,12 +281,30 @@ msgstr "" msgid "Balances" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_table.html.eex:32 +msgid "Banned" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_rows.html.eex:46 +msgid "Banned until block #%{banned_until} (%{estimated_unban_day})" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:5 #: lib/block_scout_web/templates/api_docs/index.html.eex:5 msgid "Base URL:" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_empty_content.html.eex:13 +#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:5 +#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:33 +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:24 +msgid "Become a Candidate" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/address_coin_balance/_coin_balances.html.eex:8 msgid "Block" @@ -226,11 +352,21 @@ msgstr "" msgid "Block Pending" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/block/overview.html.eex:150 +msgid "Block Rewards" +msgstr "" + #, elixir-format #: lib/block_scout_web/views/block_transaction_view.ex:15 msgid "Block not found, please try again later." msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:5 +msgid "Block number" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/chain/_metatags.html.eex:4 msgid "BlockScout provides analytics data, API, and Smart Contract tools for the %{subnetwork}" @@ -248,11 +384,38 @@ msgstr "" msgid "Blocks Indexed" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/address/_tabs.html.eex:48 +#: lib/block_scout_web/templates/address_validation/index.html.eex:15 +#: lib/block_scout_web/views/address_view.ex:354 +msgid "Blocks Validated" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/layout/_footer.html.eex:20 msgid "Blockscout is a tool for inspecting and analyzing EVM based blockchains. Blockchain explorer for Ethereum Networks." msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:45 +msgid "Bridge STAKE to Ethereum" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/bridged_tokens/index.html.eex:6 +msgid "Bridged Tokens from " +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_topnav.html.eex:103 +msgid "Bridged from BSC" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_topnav.html.eex:98 +msgid "Bridged from Ethereum" +msgstr "" + #, elixir-format #: lib/block_scout_web/views/internal_transaction_view.ex:21 msgid "Call" @@ -272,6 +435,16 @@ msgstr "" msgid "Cancel" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_table.html.eex:10 +msgid "Candidate and Validator Pool Addresses. Current validator pools are specified by a checkmark." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:47 +msgid "Candidate’s Staked Amount" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/layout/_network_selector.html.eex:11 msgid "Change Network" @@ -282,12 +455,78 @@ msgstr "" msgid "Chat" msgstr "" +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:6 +msgid "Choose Pool" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:22 +msgid "Choose Target Pool" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/views/block_view.ex:62 +msgid "Chore Reward" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_withdrawal.html.eex:7 +msgid "Claim Ordered Withdraw" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward.html.eex:6 +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:59 +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:30 +msgid "Claim Reward" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:40 +msgid "Claim for" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_withdrawal.html.eex:18 +msgid "Claim the Amount" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:137 #: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:106 msgid "Clear" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/address/_validator_metadata_modal.html.eex:37 +#: lib/block_scout_web/templates/common_components/_modal_qr_code.html.eex:6 +#: lib/block_scout_web/templates/common_components/_modal_qr_code.html.eex:14 +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:84 +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:92 +msgid "Close" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address/_tabs.html.eex:58 +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:165 +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:187 +#: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:126 +#: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:149 +#: lib/block_scout_web/views/address_view.ex:347 +msgid "Code" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address/_tabs.html.eex:34 +#: lib/block_scout_web/views/address_view.ex:353 +msgid "Coin Balance History" +msgstr "" + #, elixir-format #: #: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:71 @@ -295,7 +534,7 @@ msgid "Compiler" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:49 +#: lib/block_scout_web/templates/address_contract/index.html.eex:57 msgid "Compiler version" msgstr "" @@ -330,12 +569,12 @@ msgid "Connection Lost, click to load newer validations" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:68 +#: lib/block_scout_web/templates/address_contract/index.html.eex:76 msgid "Constructor Arguments" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:106 +#: lib/block_scout_web/templates/address_contract/index.html.eex:114 msgid "Contract ABI" msgstr "" @@ -365,8 +604,8 @@ msgid "Contract Creation" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:122 -#: lib/block_scout_web/templates/address_contract/index.html.eex:137 +#: lib/block_scout_web/templates/address_contract/index.html.eex:130 +#: lib/block_scout_web/templates/address_contract/index.html.eex:145 msgid "Contract Creation Code" msgstr "" @@ -383,17 +622,23 @@ msgid "Contract Name" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:41 +#: lib/block_scout_web/templates/address_contract/index.html.eex:22 +#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:16 +msgid "Contract is not verified. However, we found a verified contract with the same bytecode in Blockscout DB" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_contract/index.html.eex:49 msgid "Contract name:" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:78 +#: lib/block_scout_web/templates/address_contract/index.html.eex:86 msgid "Contract source code" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:128 +#: lib/block_scout_web/templates/address_contract/index.html.eex:136 msgid "Contracts that self destruct in their constructors have no contract code published and cannot be verified." msgstr "" @@ -403,7 +648,7 @@ msgid "Contribute" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:108 +#: lib/block_scout_web/templates/address_contract/index.html.eex:116 msgid "Copy ABI" msgstr "" @@ -416,8 +661,8 @@ msgid "Copy Address" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:124 -#: lib/block_scout_web/templates/address_contract/index.html.eex:139 +#: lib/block_scout_web/templates/address_contract/index.html.eex:132 +#: lib/block_scout_web/templates/address_contract/index.html.eex:148 msgid "Copy Contract Creation Code" msgstr "" @@ -427,14 +672,36 @@ msgid "Copy Decompiled Contract Code" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:80 -#: lib/block_scout_web/templates/address_contract/index.html.eex:94 -msgid "Copy Source Code" +#: lib/block_scout_web/templates/address_contract/index.html.eex:181 +#: lib/block_scout_web/templates/address_contract/index.html.eex:191 +msgid "Copy Deployed ByteCode" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:42 -msgid "Copy Transaction Hash" +#: lib/block_scout_web/templates/tokens/instance/metadata/index.html.eex:20 +msgid "Copy Metadata" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/transaction_raw_trace/index.html.eex:15 +msgid "Copy Raw Trace" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_contract/index.html.eex:88 +#: lib/block_scout_web/templates/address_contract/index.html.eex:102 +msgid "Copy Source Code" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:32 +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:33 +msgid "Copy Token ID" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/transaction/overview.html.eex:42 +msgid "Copy Transaction Hash" msgstr "" #, elixir-format @@ -443,8 +710,9 @@ msgid "Copy Txn Hash" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block/overview.html.eex:58 -msgid "Difficulty" +#: lib/block_scout_web/templates/transaction/overview.html.eex:168 +#: lib/block_scout_web/templates/transaction/overview.html.eex:181 +msgid "Copy Txn Input" msgstr "" #, elixir-format @@ -474,6 +742,35 @@ msgstr "" msgid "Curl" msgstr "" +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:55 +msgid "Current Reward Share" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:63 +msgid "Current Reward Share is calculated based on the Working Stake Amount." +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:35 +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:37 +msgid "Current Stake Amount" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:36 +msgid "Current Stake:" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_metatags.html.eex:6 +msgid "DApp for Staking %{symbol} tokens" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/address_logs/_logs.html.eex:107 #: lib/block_scout_web/templates/log/_data_decoded_view.html.eex:7 @@ -482,6 +779,12 @@ msgstr "" msgid "Data" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:52 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:74 +msgid "Decimals" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/address_logs/_logs.html.eex:38 #: lib/block_scout_web/templates/address_logs/_logs.html.eex:44 @@ -492,6 +795,11 @@ msgstr "" msgid "Decoded" msgstr "" +#, elixir-format +#: lib/block_scout_web/views/address_view.ex:348 +msgid "Decompiled Code" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/address/_tabs.html.eex:75 msgid "Decompiled code" @@ -508,22 +816,30 @@ msgid "Decompiler version" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block/_tile.html.eex:57 -#: lib/block_scout_web/templates/block/overview.html.eex:108 -#: lib/block_scout_web/templates/block/overview.html.eex:165 -msgid "Gas Limit" +#: lib/block_scout_web/views/internal_transaction_view.ex:23 +msgid "Delegate Call" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block/_tile.html.eex:62 -#: lib/block_scout_web/templates/block/overview.html.eex:101 -#: lib/block_scout_web/templates/block/overview.html.eex:157 -msgid "Gas Used" +#: lib/block_scout_web/templates/stakes/_stakes_progress.html.eex:31 +#: lib/block_scout_web/templates/stakes/_table.html.eex:43 +msgid "Delegators" msgstr "" #, elixir-format -#: lib/block_scout_web/views/internal_transaction_view.ex:23 -msgid "Delegate Call" +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:6 +msgid "Delegators of " +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:53 +msgid "Delegators’ Staked Amount" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_contract/index.html.eex:179 +#: lib/block_scout_web/templates/address_contract/index.html.eex:187 +msgid "Deployed ByteCode" msgstr "" #, elixir-format @@ -542,15 +858,32 @@ msgid "Details" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:129 +#: lib/block_scout_web/templates/block/overview.html.eex:58 +msgid "Difficulty" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_contract/index.html.eex:137 msgid "Displaying the init data provided of the creating transaction." msgstr "" +#, elixir-format +#: +#: lib/block_scout_web/templates/address_contract_verification_via_json/new.html.eex:30 +msgid "Drop sources and metadata JSON file or click here" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/transaction/not_found.html.eex:22 msgid "During times when the network is busy (i.e during ICOs) it can take a while for your transaction to propagate through the network and for us to index it." msgstr "" +#, elixir-format +#: +#: lib/block_scout_web/templates/common_components/_minimal_proxy_pattern.html.eex:6 +msgid "EIP-1167" +msgstr "" + #, elixir-format #: lib/block_scout_web/views/transaction_view.ex:148 msgid "ERC-20 " @@ -573,7 +906,7 @@ msgid "ETH RPC API Documentation" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:60 +#: lib/block_scout_web/templates/address_contract/index.html.eex:68 #: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:82 msgid "EVM Version" msgstr "" @@ -600,15 +933,19 @@ msgid "Enter the Solidity Contract Code" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:30 -msgid "Error rendering value" +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:4 +msgid "Epoch number" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block/_tile.html.eex:38 -#: lib/block_scout_web/templates/block/overview.html.eex:124 -#: lib/block_scout_web/templates/chain/_block.html.eex:15 -msgid "Miner" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:44 +msgid "Epochs range(s) or enum, e.g.: 5-9,23-27,47,50" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:30 +msgid "Error rendering value" msgstr "" #, elixir-format @@ -661,13 +998,7 @@ msgid "Execute" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block/overview.html.eex:73 -#: lib/block_scout_web/templates/transaction/overview.html.eex:113 -msgid "Nonce" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:197 +#: lib/block_scout_web/templates/address_contract/index.html.eex:228 msgid "External libraries" msgstr "" @@ -692,6 +1023,11 @@ msgstr "" msgid "Fetching tokens..." msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/address_contract_verification/new.html.eex:35 +msgid "Flattened source code" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/admin/dashboard/index.html.eex:16 msgid "For any existing contracts in the database, insert all ABI entries into the contract_methods table. Use this in case you have verified smart contracts before early March 2019 and you want other contracts with the same functions to show those ABI's as candidate matches." @@ -718,8 +1054,22 @@ msgid "GET" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block/overview.html.eex:84 -msgid "Position %{index}" +#: lib/block_scout_web/templates/transaction/overview.html.eex:286 +msgid "Gas" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/block/_tile.html.eex:57 +#: lib/block_scout_web/templates/block/overview.html.eex:108 +#: lib/block_scout_web/templates/block/overview.html.eex:165 +msgid "Gas Limit" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/block/_tile.html.eex:62 +#: lib/block_scout_web/templates/block/overview.html.eex:101 +#: lib/block_scout_web/templates/block/overview.html.eex:157 +msgid "Gas Used" msgstr "" #, elixir-format @@ -755,6 +1105,16 @@ msgstr "" msgid "Hex (Default)" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:77 +msgid "How Many Times this Address has been Banned" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:71 +msgid "How Many Times this Address has been a Validator" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:11 msgid "However, in general, the" @@ -772,213 +1132,96 @@ msgid "IN" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/_emission_reward_tile.html.eex:8 -#: lib/block_scout_web/views/transaction_view.ex:263 -msgid "Success" +#: lib/block_scout_web/templates/transaction/not_found.html.eex:26 +msgid "If it still does not show up after 1 hour, please check with your sender/exchange/wallet/transaction provider for additional information." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/chain/show.html.eex:93 -#: lib/block_scout_web/templates/layout/app.html.eex:34 -msgid "Tx/day" +#: lib/block_scout_web/templates/transaction/not_found.html.eex:12 +msgid "If you have just submitted this transaction please wait for at least 30 seconds before refreshing this page." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/_pending_tile.html.eex:21 -#: lib/block_scout_web/templates/transaction/_tile.html.eex:40 -#: lib/block_scout_web/templates/transaction/overview.html.eex:118 -msgid "TX Fee" +#: lib/block_scout_web/templates/stakes/_table.html.eex:12 +msgid "Inactive Pool Addresses. Current validator pools are specified by a checkmark." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_footer.html.eex:28 -msgid "Telegram" +#: lib/block_scout_web/templates/log/_data_decoded_view.html.eex:6 +msgid "Indexed?" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/tokens/holder/index.html.eex:27 -msgid "There are no holders for this Token." +#: lib/block_scout_web/templates/layout/app.html.eex:29 +msgid "Indexing Tokens" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:58 -msgid "There are no internal transactions for this address." +#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:3 +msgid "Input" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/transaction_internal_transaction/index.html.eex:17 -msgid "There are no internal transactions for this transaction." +#: lib/block_scout_web/templates/internal_transaction/_tile.html.eex:6 +msgid "Internal Transaction" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction_log/index.html.eex:20 -msgid "There are no logs for this transaction." +#: lib/block_scout_web/templates/address/_tabs.html.eex:28 +#: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:21 +#: lib/block_scout_web/templates/transaction/_tabs.html.eex:11 +#: lib/block_scout_web/templates/transaction_internal_transaction/index.html.eex:6 +#: lib/block_scout_web/views/address_view.ex:344 +#: lib/block_scout_web/views/transaction_view.ex:406 +msgid "Internal Transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_token_transfer/index.html.eex:53 -msgid "There are no token transfers for this address." +#: lib/block_scout_web/templates/transaction/invalid.html.eex:6 +msgid "Invalid Transaction Hash" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_token/index.html.eex:22 -msgid "There are no tokens for this address." +#: lib/block_scout_web/templates/tokens/inventory/index.html.eex:15 +#: lib/block_scout_web/templates/tokens/overview/_tabs.html.eex:17 +#: lib/block_scout_web/views/tokens/overview_view.ex:44 +msgid "Inventory" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/tokens/inventory/index.html.eex:27 -msgid "There are no tokens." +#: lib/block_scout_web/templates/transaction/not_found.html.eex:16 +msgid "It could still be in the TX Pool of a different node, waiting to be broadcasted." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_transaction/index.html.eex:55 -msgid "There are no transactions for this address." +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:125 +msgid "It's me!" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block_transaction/index.html.eex:28 -msgid "There are no transactions for this block." +#: lib/block_scout_web/channels/stakes_channel.ex:828 +msgid "JSON RPC error" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/tokens/instance/transfer/index.html.eex:28 -#: lib/block_scout_web/templates/tokens/transfer/index.html.eex:26 -msgid "There are no transfers for this Token." +#: lib/block_scout_web/templates/address/overview.html.eex:83 +msgid "Last Balance Update: Block #" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:61 -msgid "This transaction is pending confirmation." +#: lib/block_scout_web/templates/layout/app.html.eex:30 +msgid "Less than" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:36 -#: lib/block_scout_web/templates/address_token_transfer/index.html.eex:34 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:32 -#: lib/block_scout_web/views/address_internal_transaction_view.ex:8 -#: lib/block_scout_web/views/address_token_transfer_view.ex:8 -#: lib/block_scout_web/views/address_transaction_view.ex:8 -msgid "To" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:25 -msgid "Toggle navigation" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:10 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:32 -msgid "Token Details" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/holder/index.html.eex:15 -#: lib/block_scout_web/templates/tokens/overview/_tabs.html.eex:9 -#: lib/block_scout_web/views/tokens/overview_view.ex:42 -msgid "Token Holders" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/inventory/_token.html.eex:11 -msgid "Token ID" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/transfer/_token_transfer.html.eex:12 -#: lib/block_scout_web/templates/transaction_token_transfer/_token_transfer.html.eex:10 -#: lib/block_scout_web/views/transaction_view.ex:344 -msgid "Token Transfer" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:13 -#: lib/block_scout_web/templates/address_token_transfer/index.html.eex:19 -#: lib/block_scout_web/templates/tokens/instance/overview/_tabs.html.eex:3 -#: lib/block_scout_web/templates/tokens/instance/transfer/index.html.eex:16 -#: lib/block_scout_web/templates/tokens/overview/_tabs.html.eex:3 -#: lib/block_scout_web/templates/tokens/transfer/index.html.eex:14 -#: lib/block_scout_web/templates/transaction/_tabs.html.eex:4 -#: lib/block_scout_web/templates/transaction_token_transfer/index.html.eex:7 -#: lib/block_scout_web/views/address_view.ex:346 -#: lib/block_scout_web/views/tokens/instance/overview_view.ex:175 -#: lib/block_scout_web/views/tokens/overview_view.ex:41 -#: lib/block_scout_web/views/transaction_view.ex:405 -msgid "Token Transfers" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_metatags.html.eex:13 -msgid "Top Accounts - %{subnetwork} Explorer" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/block/overview.html.eex:67 -msgid "Total Difficulty" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address_logs/_logs.html.eex:25 -#: lib/block_scout_web/views/transaction_view.ex:354 -msgid "Transaction" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/not_found.html.eex:12 -msgid "If you have just submitted this transaction please wait for at least 30 seconds before refreshing this page." -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/log/_data_decoded_view.html.eex:6 -msgid "Indexed?" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:3 -msgid "Input" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/internal_transaction/_tile.html.eex:6 -msgid "Internal Transaction" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/invalid.html.eex:6 -msgid "Invalid Transaction Hash" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/inventory/index.html.eex:15 -#: lib/block_scout_web/templates/tokens/overview/_tabs.html.eex:17 -#: lib/block_scout_web/views/tokens/overview_view.ex:44 -msgid "Inventory" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/not_found.html.eex:16 -msgid "It could still be in the TX Pool of a different node, waiting to be broadcasted." -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/overview.html.eex:83 -msgid "Last Balance Update: Block #" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/app.html.eex:30 -msgid "Less than" -msgstr "" - -#, elixir-format -#: -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:185 -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:207 -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:229 -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:251 -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:273 -msgid "Library Address" +#: +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:185 +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:207 +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:229 +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:251 +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:273 +msgid "Library Address" msgstr "" #, elixir-format @@ -1001,11 +1244,21 @@ msgstr "" msgid "License ID" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:83 +msgid "Likelihood of Becoming a Validator on the Next Epoch" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/transaction/overview.html.eex:296 msgid "Limit" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/address_coin_balance/index.html.eex:26 +msgid "Loading chart" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/address_read_contract/index.html.eex:16 #: lib/block_scout_web/templates/address_read_proxy/index.html.eex:16 @@ -1027,6 +1280,27 @@ msgstr "" msgid "Log Data" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:120 +msgid "Log Index" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address/_tabs.html.eex:41 +#: lib/block_scout_web/templates/address_logs/index.html.eex:10 +#: lib/block_scout_web/templates/transaction/_tabs.html.eex:17 +#: lib/block_scout_web/templates/transaction_log/index.html.eex:8 +#: lib/block_scout_web/views/address_view.ex:355 +#: lib/block_scout_web/views/transaction_view.ex:407 +msgid "Logs" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:127 +msgid "ME" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/layout/_footer.html.eex:47 msgid "Main Networks" @@ -1044,27 +1318,73 @@ msgstr "" msgid "Market Cap" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:42 +msgid "Max Amount to Move:" +msgstr "" + #, elixir-format #: lib/block_scout_web/views/transaction_view.ex:243 msgid "Max of" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/tokens/instance/metadata/index.html.eex:18 +#: lib/block_scout_web/templates/tokens/instance/overview/_tabs.html.eex:10 +#: lib/block_scout_web/views/tokens/instance/overview_view.ex:176 +msgid "Metadata" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:4 msgid "Method Id" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/block/_tile.html.eex:38 +#: lib/block_scout_web/templates/block/overview.html.eex:124 +#: lib/block_scout_web/templates/chain/_block.html.eex:15 +msgid "Miner" +msgstr "" + #, elixir-format #: lib/block_scout_web/views/block_view.ex:60 #: lib/block_scout_web/views/block_view.ex:65 msgid "Miner Reward" msgstr "" +#, elixir-format +#: +#: lib/block_scout_web/templates/common_components/_minimal_proxy_pattern.html.eex:3 +msgid "Minimal Proxy Contract for" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:22 +msgid "Minimum Stake Allowed:" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:17 +msgid "Minimum Stake:" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:24 +msgid "Mining Address:" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:223 msgid "Model" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:58 +msgid "Module" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:12 msgid "More internal transactions have come in" @@ -1077,12 +1397,24 @@ msgstr "" msgid "More transactions have come in" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:10 +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:57 +msgid "Move Stake" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:63 #: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:74 msgid "Must be set to:" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_rows.html.eex:34 +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:186 +msgid "N/A" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:52 #: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:59 @@ -1098,6 +1430,17 @@ msgstr "" msgid "New Smart Contract Verification" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/address_contract_verification/new.html.eex:75 +#: lib/block_scout_web/templates/address_contract_verification/new.html.eex:82 +msgid "Next" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:6 +msgid "Next epoch in" +msgstr "" + #, elixir-format #: #: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:55 @@ -1107,6 +1450,17 @@ msgstr "" msgid "No" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_empty_content.html.eex:11 +msgid "No Information" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/block/overview.html.eex:73 +#: lib/block_scout_web/templates/transaction/overview.html.eex:113 +msgid "Nonce" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/internal_transaction/_tile.html.eex:36 #: lib/block_scout_web/templates/transaction/_tile.html.eex:76 @@ -1114,16 +1468,27 @@ msgid "OUT" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:45 +#: lib/block_scout_web/templates/address_contract/index.html.eex:53 msgid "Optimization enabled" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:54 +#: lib/block_scout_web/templates/address_contract/index.html.eex:62 #: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:114 msgid "Optimization runs" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:62 +msgid "Order Withdrawal" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_stats_item_account.html.eex:49 +#: lib/block_scout_web/templates/stakes/_stakes_stats_item_account.html.eex:50 +msgid "Ordered" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/layout/_footer.html.eex:71 msgid "Other Explorers" @@ -1171,26 +1536,80 @@ msgid "Pending Transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:24 -msgid "Potential matches from our contract method database:" +#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:45 +msgid "Place stake" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/chain/show.html.eex:42 -#: lib/block_scout_web/templates/layout/app.html.eex:32 -msgid "Price" +#: lib/block_scout_web/templates/address/_custom_view_df_title.html.eex:9 +#: lib/block_scout_web/templates/address/_custom_view_df_title.html.eex:13 +msgid "Play" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/common_components/_btn_qr_code.html.eex:10 -#: lib/block_scout_web/templates/common_components/_modal_qr_code.html.eex:5 -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:83 -msgid "QR Code" +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:11 +msgid "Please, sign transaction and wait for its mining..." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:89 -msgid "Query" +#: lib/block_scout_web/templates/stakes/_stakes_progress.html.eex:19 +#: lib/block_scout_web/templates/stakes/_table.html.eex:15 +msgid "Pool" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:9 +msgid "Pool description" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:8 +msgid "Pool name" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/channels/stakes_channel.ex:884 +msgid "Pools searching is already in progress for this address" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/block/overview.html.eex:84 +msgid "Position %{index}" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:55 +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:57 +msgid "Potential Reward Share" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:24 +msgid "Potential matches from our contract method database:" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_topnav.html.eex:254 +msgid "Press / and focus will be moved to the search field" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/chain/show.html.eex:42 +#: lib/block_scout_web/templates/layout/app.html.eex:32 +msgid "Price" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/common_components/_btn_qr_code.html.eex:10 +#: lib/block_scout_web/templates/common_components/_modal_qr_code.html.eex:5 +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:83 +msgid "QR Code" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:89 +msgid "Query" msgstr "" #, elixir-format @@ -1210,12 +1629,47 @@ msgstr "" msgid "Raw Trace" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/address/_tabs.html.eex:81 +#: lib/block_scout_web/templates/tokens/overview/_tabs.html.eex:25 +#: lib/block_scout_web/views/address_view.ex:349 +#: lib/block_scout_web/views/tokens/overview_view.ex:43 +msgid "Read Contract" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address/_tabs.html.eex:88 +#: lib/block_scout_web/views/address_view.ex:350 +msgid "Read Proxy" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:32 +msgid "Reason for Ban: %{ban_reason}" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:58 +msgid "Recalculate" +msgstr "" + #, elixir-format #: #: lib/block_scout_web/templates/common_components/_pagination_container.html.eex:13 msgid "Records" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_table.html.eex:58 +msgid "Refresh now" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:12 +msgid "Remove My Pool" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:155 msgid "Request URL" @@ -1240,6 +1694,11 @@ msgstr "" msgid "Responses" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/transaction/overview.html.eex:84 +msgid "Revert reason" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/block/_tile.html.eex:48 #: lib/block_scout_web/templates/chain/_block.html.eex:24 @@ -1247,11 +1706,27 @@ msgstr "" msgid "Reward" msgstr "" +#, elixir-format +#: lib/block_scout_web/channels/stakes_channel.ex:925 +msgid "Reward calculating is already in progress for this address" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:61 +msgid "Reward distribution is based on stake amount. Validator receives at least %{min}% of the pool reward." +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/admin/dashboard/index.html.eex:21 msgid "Run" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:10 +msgid "Save changes" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/address_logs/index.html.eex:16 #: lib/block_scout_web/templates/layout/_topnav.html.eex:217 @@ -1264,6 +1739,11 @@ msgstr "" msgid "Search by address, token symbol name, transaction hash, or block number" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/layout/_topnav.html.eex:215 +msgid "Search by address, token symbol, name, transaction hash, or block number" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/layout/_network_selector.html.eex:18 msgid "Search network" @@ -1275,6 +1755,11 @@ msgstr "" msgid "Search tokens" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward.html.eex:9 +msgid "Searching for pools you have ever staked into. Please, wait..." +msgstr "" + #, elixir-format #: lib/block_scout_web/views/internal_transaction_view.ex:27 msgid "Self-Destruct" @@ -1286,6 +1771,11 @@ msgstr "" msgid "Server Response" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:65 +msgid "Share of Pool’s Reward" +msgstr "" + #, elixir-format #: #: lib/block_scout_web/templates/common_components/_pagination_container.html.eex:7 @@ -1303,8 +1793,13 @@ msgid "Show Validator Info" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block/overview.html.eex:150 -msgid "Block Rewards" +#: lib/block_scout_web/templates/stakes/_stakes_title.html.eex:22 +msgid "Show banned only" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_title.html.eex:28 +msgid "Show only those I have stake in" msgstr "" #, elixir-format @@ -1341,1101 +1836,585 @@ msgid "Sorry, We are unable to locate this transaction Hash" msgstr "" #, elixir-format -#: lib/block_scout_web/views/internal_transaction_view.ex:24 -msgid "Static Call" +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:7 +msgid "Source Pool" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_footer.html.eex:37 -msgid "Submit an Issue" +#: +#: lib/block_scout_web/templates/address_contract_verification_via_json/new.html.eex:23 +msgid "Sources and Metadata JSON" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_footer.html.eex:40 -msgid "Support" +#: lib/block_scout_web/templates/address_contract_verification/new.html.eex:40 +msgid "Sourcify: Sources and metadata JSON file" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_footer.html.eex:60 -msgid "Test Networks" +#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:7 +msgid "Stake" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:23 -msgid "Testnet" +#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:43 +msgid "Stake More" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_validation/index.html.eex:20 -msgid "There are no blocks validated by this address." +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:64 +msgid "Stake placed on a candidate pool or an active validator pool during the current staking epoch can be moved from one pool to another. Active stake cannot be moved. To re-delegate active stake: order a withdrawal, claim the amount on the next staking epoch, and stake the amount on a different pool." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block/index.html.eex:20 -msgid "There are no blocks." +#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:53 +msgid "Stake placed on a pool is pending for the current staking epoch. It will be applied to the next staking epoch. You may withdraw or move pending stake at any time until it becomes active. Once active (the pool you staked with becomes a validator), a withdrawal order can be placed. This amount will be available to claim after that staking epoch is complete." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_logs/index.html.eex:28 -msgid "There are no logs for this address." +#: lib/block_scout_web/templates/stakes/_stakes_stats_item_account.html.eex:45 +#: lib/block_scout_web/templates/stakes/_stakes_stats_item_account.html.eex:46 +msgid "Staked" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/pending_transaction/index.html.eex:25 -msgid "There are no pending transactions." +#: lib/block_scout_web/templates/stakes/_table.html.eex:28 +msgid "Staked Amount" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction_token_transfer/index.html.eex:19 -msgid "There are no token transfers for this transaction" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:26 +msgid "Staker's Address" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/index.html.eex:34 -msgid "There are no transactions." +#: lib/block_scout_web/templates/layout/_topnav.html.eex:156 +msgid "Stakes" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_coin_balance/index.html.eex:43 -msgid "There is no coin history for this address." +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:59 +#: lib/block_scout_web/templates/stakes/_stakes_progress.html.eex:25 +#: lib/block_scout_web/templates/stakes/_table.html.eex:34 +msgid "Stakes Ratio" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_decompiled_contract/index.html.eex:29 -msgid "There is no decompilded contracts for this address." +#: lib/block_scout_web/templates/layout/_topnav.html.eex:162 +msgid "Staking" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_coin_balance/index.html.eex:29 -#: lib/block_scout_web/templates/chain/show.html.eex:9 -msgid "There was a problem loading the chart." +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:20 +msgid "Staking Address:" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/api_docs/index.html.eex:6 -msgid "This API is provided for developers transitioning their applications from Etherscan to BlockScout. It supports GET and POST requests." +#: lib/block_scout_web/channels/stakes_channel.ex:928 +msgid "Staking epochs are not specified or not in the allowed range" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:7 -msgid "This API is provided to support some rpc methods in the exact format specified for ethereum nodes, which can be found " +#: lib/block_scout_web/views/internal_transaction_view.ex:24 +msgid "Static Call" msgstr "" #, elixir-format -#: lib/block_scout_web/views/block_transaction_view.ex:11 -msgid "This block has not been processed yet." +#: lib/block_scout_web/templates/layout/_footer.html.eex:37 +msgid "Submit an Issue" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:10 -msgid "This is useful to allow sending requests to blockscout without having to change anything about the request." +#: lib/block_scout_web/templates/transaction/_emission_reward_tile.html.eex:8 +#: lib/block_scout_web/views/transaction_view.ex:263 +msgid "Success" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:26 -msgid "To have guaranteed accuracy, use the link above to verify the contract's source code." +#: lib/block_scout_web/templates/layout/_footer.html.eex:40 +msgid "Support" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_logs/_logs.html.eex:6 -#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:8 -#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:6 -msgid "To see accurate decoded input data, the contract must be verified." +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:38 +msgid "Swap STAKE on Honeyswap" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_logs/index.html.eex:14 -msgid "Topic" +#: lib/block_scout_web/templates/transaction/_pending_tile.html.eex:21 +#: lib/block_scout_web/templates/transaction/_tile.html.eex:40 +#: lib/block_scout_web/templates/transaction/overview.html.eex:118 +msgid "TX Fee" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_logs/_logs.html.eex:77 -#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:80 -msgid "Topics" +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:67 +msgid "Target Pool" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:86 -msgid "Total Supply" +#: lib/block_scout_web/templates/layout/_footer.html.eex:28 +msgid "Telegram" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/chain/show.html.eex:154 -msgid "Total blocks" +#: lib/block_scout_web/templates/layout/_footer.html.eex:60 +msgid "Test Networks" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/_metatags.html.eex:3 -msgid "Transaction %{transaction} - %{subnetwork} Explorer" +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:23 +msgid "Testnet" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/_metatags.html.eex:11 -msgid "Transaction %{transaction}, %{subnetwork} %{transaction}" +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:89 +msgid "The Number of Delegators in the Pool" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:28 -msgid "Transaction Details" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:2 -#: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:16 -msgid "Transaction Inputs" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:135 -msgid "Transaction Speed" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tile.html.eex:31 -msgid "Transactions sent" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:40 -#: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:47 -msgid "Try it out" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/_footer.html.eex:25 -msgid "Twitter" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/log/_data_decoded_view.html.eex:5 -#: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:19 -msgid "Type" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:156 -msgid "UTF-8" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/views/block_view.ex:74 -msgid "Uncle Reward" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/block/overview.html.eex:80 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:43 -msgid "Uncles" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/inventory/_token.html.eex:6 -msgid "Unique Token" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:12 -msgid "Use the search box to find a hosted network, or select from the list of available networks below." -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:290 -msgid "Used" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:59 -msgid "Validated" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/index.html.eex:11 -msgid "Validated Transactions" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_validator_metadata_modal.html.eex:30 -msgid "Validator Creation Date" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_validator_metadata_modal.html.eex:5 -msgid "Validator Data" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/overview.html.eex:50 -msgid "Validator Info" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:215 -#: lib/block_scout_web/templates/transaction/overview.html.eex:268 -msgid "Value" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:24 -#: lib/block_scout_web/templates/address_contract/index.html.eex:164 -#: lib/block_scout_web/templates/address_contract/index.html.eex:176 -#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:19 -msgid "Verify & Publish" -msgstr "" - -#, elixir-format -#: -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:301 -#: lib/block_scout_web/templates/address_contract_verification_via_json/new.html.eex:52 -msgid "Verify & publish" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address_logs/_logs.html.eex:16 -#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:18 -#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:16 -msgid "Verify the contract " -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/_footer.html.eex:86 -msgid "Version" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/chain/show.html.eex:177 -msgid "View All Blocks" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/chain/show.html.eex:235 -msgid "View All Transactions" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:16 -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:20 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:66 -msgid "View Contract" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/_tile.html.eex:61 -msgid "View Less Transfers" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/_tile.html.eex:60 -msgid "View More Transfers" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_metatags.html.eex:9 -msgid "View the account balance, transactions, and other data for %{address} on the %{network}" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/block/_metatags.html.eex:10 -msgid "View the transactions, token transfers, and uncles for block number %{block_number}" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/_metatags.html.eex:10 -msgid "View transaction %{transaction} on %{subnetwork}" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:119 -msgid "WEI" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/chain/show.html.eex:162 -msgid "Wallet addresses" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/views/wei_helpers.ex:76 -msgid "Wei" -msgstr "" - -#, elixir-format -#: -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:60 -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:103 -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:146 -#: lib/block_scout_web/templates/stakes/_rows.html.eex:24 -msgid "Yes" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/overview.html.eex:103 -msgid "at" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:12 -msgid "custom RPC" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/views/address_contract_view.ex:24 -msgid "false" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address_logs/_logs.html.eex:16 -#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:18 -#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:16 -msgid "here" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:9 -msgid "here." -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/invalid.html.eex:8 -msgid "is not a valid transaction hash" -msgstr "" - -#, elixir-format -#: -#: lib/block_scout_web/templates/common_components/_pagination_container.html.eex:41 -msgid "of" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:58 -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:69 -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:81 -#: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:70 -msgid "required" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:59 -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:70 -msgid "string" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/views/address_contract_view.ex:23 -msgid "true" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_validator_metadata_modal.html.eex:37 -#: lib/block_scout_web/templates/common_components/_modal_qr_code.html.eex:6 -#: lib/block_scout_web/templates/common_components/_modal_qr_code.html.eex:14 -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:84 -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:92 -msgid "Close" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/instance/metadata/index.html.eex:20 -msgid "Copy Metadata" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:32 -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:33 -msgid "Copy Token ID" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:52 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:74 -msgid "Decimals" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:286 -msgid "Gas" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/not_found.html.eex:26 -msgid "If it still does not show up after 1 hour, please check with your sender/exchange/wallet/transaction provider for additional information." -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/app.html.eex:29 -msgid "Indexing Tokens" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address_coin_balance/index.html.eex:26 -msgid "Loading chart" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:120 -msgid "Log Index" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/instance/metadata/index.html.eex:18 -#: lib/block_scout_web/templates/tokens/instance/overview/_tabs.html.eex:10 -#: lib/block_scout_web/views/tokens/instance/overview_view.ex:176 -msgid "Metadata" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:58 -msgid "Module" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/chain/show.html.eex:133 -msgid "Total transactions" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:50 -msgid "Transfers" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:168 -#: lib/block_scout_web/templates/transaction/overview.html.eex:181 -msgid "Copy Txn Input" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:48 -#: lib/block_scout_web/templates/address_validation/index.html.eex:15 -#: lib/block_scout_web/views/address_view.ex:354 -msgid "Blocks Validated" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:58 -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:165 -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:187 -#: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:126 -#: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:149 -#: lib/block_scout_web/views/address_view.ex:347 -msgid "Code" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:34 -#: lib/block_scout_web/views/address_view.ex:353 -msgid "Coin Balance History" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/views/address_view.ex:348 -msgid "Decompiled Code" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:28 -#: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:21 -#: lib/block_scout_web/templates/transaction/_tabs.html.eex:11 -#: lib/block_scout_web/templates/transaction_internal_transaction/index.html.eex:6 -#: lib/block_scout_web/views/address_view.ex:344 -#: lib/block_scout_web/views/transaction_view.ex:406 -msgid "Internal Transactions" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:41 -#: lib/block_scout_web/templates/address_logs/index.html.eex:10 -#: lib/block_scout_web/templates/transaction/_tabs.html.eex:17 -#: lib/block_scout_web/templates/transaction_log/index.html.eex:8 -#: lib/block_scout_web/views/address_view.ex:355 -#: lib/block_scout_web/views/transaction_view.ex:407 -msgid "Logs" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:81 -#: lib/block_scout_web/templates/tokens/overview/_tabs.html.eex:25 -#: lib/block_scout_web/views/address_view.ex:349 -#: lib/block_scout_web/views/tokens/overview_view.ex:43 -msgid "Read Contract" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:21 -#: lib/block_scout_web/templates/address_token/index.html.eex:10 -#: lib/block_scout_web/templates/address_token_transfer/index.html.eex:13 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:89 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:115 -#: lib/block_scout_web/templates/tokens/index.html.eex:4 -#: lib/block_scout_web/views/address_view.ex:343 -msgid "Tokens" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:7 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:17 -#: lib/block_scout_web/templates/block_transaction/index.html.eex:10 -#: lib/block_scout_web/templates/block_transaction/index.html.eex:18 -#: lib/block_scout_web/templates/chain/show.html.eex:236 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:55 -#: lib/block_scout_web/views/address_view.ex:345 -msgid "Transactions" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:252 -msgid " Token Burning" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/transfer/_token_transfer.html.eex:8 -#: lib/block_scout_web/templates/transaction_token_transfer/_token_transfer.html.eex:6 -#: lib/block_scout_web/views/transaction_view.ex:343 -msgid "Token Burning" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:241 -msgid " Token Minting" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/transfer/_token_transfer.html.eex:10 -#: lib/block_scout_web/templates/transaction_token_transfer/_token_transfer.html.eex:8 -#: lib/block_scout_web/views/transaction_view.ex:342 -msgid "Token Minting" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/views/block_view.ex:62 -msgid "Chore Reward" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:84 -msgid "Revert reason" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:88 -#: lib/block_scout_web/views/address_view.ex:350 -msgid "Read Proxy" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:95 -#: lib/block_scout_web/views/address_view.ex:351 -msgid "Write Contract" -msgstr "" - -#, elixir-format -#: -#: lib/block_scout_web/templates/smart_contract/_pending_contract_write.html.eex:12 -msgid "Waiting for transaction's confirmation..." -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:89 -msgid "Write" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:102 -#: lib/block_scout_web/views/address_view.ex:352 -msgid "Write Proxy" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:154 -msgid "Apps" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction_raw_trace/index.html.eex:15 -msgid "Copy Raw Trace" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:215 -msgid "Search by address, token symbol, name, transaction hash, or block number" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:18 -msgid "All functions displayed below are from ABI of that contract. In order to verify current contract, proceed with" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:24 -msgid "All metadata displayed below is from that contract. In order to verify current contract, click" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:24 -msgid "button" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:21 -msgid "page" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_custom_view_df_title.html.eex:9 -#: lib/block_scout_web/templates/address/_custom_view_df_title.html.eex:13 -msgid "Play" +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:39 +msgid "The amount can be claimed after the current epoch finishes." msgstr "" -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:6 -msgid "%{blocks} block" -msgid_plural "%{blocks} blocks" -msgstr[0] "" -msgstr[1] "" - #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:43 -msgid " Working Stake Amount is an amount which is accounted and working at the current staking epoch." +#: lib/block_scout_web/templates/stakes/_table.html.eex:23 +msgid "The first amount is the candidate’s own stake, the second is the total amount staked into the pool by the candidate and all delegators." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_metatags.html.eex:2 -msgid "%{subnetwork} Staking DApp - BlockScout" +#: lib/block_scout_web/templates/stakes/_table.html.eex:25 +msgid "The first amount is the pool owner’s stake, the second is the total amount staked into the pool by the pool owner and all delegators." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_rows.html.eex:26 -#: lib/block_scout_web/templates/stakes/_stakes_progress.html.eex:27 -msgid "(inactive pool)" +#: lib/block_scout_web/templates/stakes/_table.html.eex:21 +msgid "The first amount is the validator’s own stake, the second is the total amount staked into the pool by the validator and all delegators." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:27 -msgid "All pool participant addresses. The top address belongs to the %{pool_type}." +#: lib/block_scout_web/templates/stakes/_table.html.eex:43 +msgid "The number of delegators providing stake to the pool. Click on the number to see more details." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:27 -msgid "Already Ordered:" +#: lib/block_scout_web/templates/stakes/_table.html.eex:34 +msgid "The percentage of stake in a single pool relative to the total amount staked in all active pools. A higher ratio results in a greater likelihood of validator pool selection." msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:10 -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:14 -#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:11 -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:11 -msgid "Amount" +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:105 +msgid "The rest addresses are delegators of its pool." msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:41 -msgid "Amount of %{symbol} placed by an address." -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:48 -msgid "Available Now:" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:32 -msgid "Banned" +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:34 +msgid "The staking epochs for which the reward could be claimed (read-only field):" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_rows.html.eex:46 -msgid "Banned until block #%{banned_until} (%{estimated_unban_day})" +#: lib/block_scout_web/templates/stakes/_table.html.eex:58 +msgid "The table refreshed block(s) ago." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_empty_content.html.eex:13 -#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:5 -#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:33 -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:24 -msgid "Become a Candidate" +#: lib/block_scout_web/templates/address_validation/index.html.eex:20 +msgid "There are no blocks validated by this address." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:5 -msgid "Block number" +#: lib/block_scout_web/templates/block/index.html.eex:20 +msgid "There are no blocks." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:10 -msgid "Candidate and Validator Pool Addresses. Current validator pools are specified by a checkmark." +#: lib/block_scout_web/templates/tokens/holder/index.html.eex:27 +msgid "There are no holders for this Token." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:47 -msgid "Candidate’s Staked Amount" +#: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:58 +msgid "There are no internal transactions for this address." msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:6 -msgid "Choose Pool" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:22 -msgid "Choose Target Pool" +#: lib/block_scout_web/templates/transaction_internal_transaction/index.html.eex:17 +msgid "There are no internal transactions for this transaction." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_withdrawal.html.eex:7 -msgid "Claim Ordered Withdraw" +#: lib/block_scout_web/templates/address_logs/index.html.eex:28 +msgid "There are no logs for this address." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward.html.eex:6 -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:59 -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:30 -msgid "Claim Reward" +#: lib/block_scout_web/templates/transaction_log/index.html.eex:20 +msgid "There are no logs for this transaction." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:40 -msgid "Claim for" +#: lib/block_scout_web/templates/pending_transaction/index.html.eex:25 +msgid "There are no pending transactions." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_withdrawal.html.eex:18 -msgid "Claim the Amount" +#: lib/block_scout_web/templates/address_token_transfer/index.html.eex:53 +msgid "There are no token transfers for this address." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:35 -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:37 -msgid "Current Stake Amount" +#: lib/block_scout_web/templates/transaction_token_transfer/index.html.eex:19 +msgid "There are no token transfers for this transaction" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:36 -msgid "Current Stake:" +#: lib/block_scout_web/templates/address_token/index.html.eex:22 +msgid "There are no tokens for this address." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_metatags.html.eex:6 -msgid "DApp for Staking %{symbol} tokens" +#: lib/block_scout_web/templates/tokens/inventory/index.html.eex:27 +msgid "There are no tokens." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_progress.html.eex:31 -#: lib/block_scout_web/templates/stakes/_table.html.eex:43 -msgid "Delegators" +#: lib/block_scout_web/templates/address_transaction/index.html.eex:55 +msgid "There are no transactions for this address." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:53 -msgid "Delegators’ Staked Amount" +#: lib/block_scout_web/templates/block_transaction/index.html.eex:28 +msgid "There are no transactions for this block." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:4 -msgid "Epoch number" +#: lib/block_scout_web/templates/transaction/index.html.eex:34 +msgid "There are no transactions." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:44 -msgid "Epochs range(s) or enum, e.g.: 5-9,23-27,47,50" +#: lib/block_scout_web/templates/tokens/instance/transfer/index.html.eex:28 +#: lib/block_scout_web/templates/tokens/transfer/index.html.eex:26 +msgid "There are no transfers for this Token." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:77 -msgid "How Many Times this Address has been Banned" +#: lib/block_scout_web/templates/address_coin_balance/index.html.eex:43 +msgid "There is no coin history for this address." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:71 -msgid "How Many Times this Address has been a Validator" +#: lib/block_scout_web/templates/address_decompiled_contract/index.html.eex:29 +msgid "There is no decompilded contracts for this address." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:12 -msgid "Inactive Pool Addresses. Current validator pools are specified by a checkmark." +#: lib/block_scout_web/templates/stakes/_stakes_empty_content.html.eex:12 +msgid "There is no information currently available for this view. Deselect filters or choose another pool view to see current info. To participate as a delegator, select a pool address and click the Stake icon. To become a candidate, click the button below." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:125 -msgid "It's me!" +#: lib/block_scout_web/templates/address_coin_balance/index.html.eex:29 +#: lib/block_scout_web/templates/chain/show.html.eex:9 +msgid "There was a problem loading the chart." msgstr "" #, elixir-format -#: lib/block_scout_web/channels/stakes_channel.ex:828 -msgid "JSON RPC error" +#: lib/block_scout_web/templates/api_docs/index.html.eex:6 +msgid "This API is provided for developers transitioning their applications from Etherscan to BlockScout. It supports GET and POST requests." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:83 -msgid "Likelihood of Becoming a Validator on the Next Epoch" +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:7 +msgid "This API is provided to support some rpc methods in the exact format specified for ethereum nodes, which can be found " msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:127 -msgid "ME" +#: lib/block_scout_web/views/block_transaction_view.ex:11 +msgid "This block has not been processed yet." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:42 -msgid "Max Amount to Move:" +#: lib/block_scout_web/templates/address_contract/index.html.eex:33 +msgid "This contract has been partially verified via Sourcify." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:22 -msgid "Minimum Stake Allowed:" +#: lib/block_scout_web/templates/address_contract/index.html.eex:37 +msgid "This contract has been verified via Sourcify." msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:17 -msgid "Minimum Stake:" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:24 -msgid "Mining Address:" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:10 -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:57 -msgid "Move Stake" +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:102 +msgid "This is a %{pool_type}." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:6 -msgid "Next epoch in" +#: lib/block_scout_web/templates/stakes/_rows.html.eex:5 +msgid "This is a validator" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_empty_content.html.eex:11 -msgid "No Information" +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:10 +msgid "This is useful to allow sending requests to blockscout without having to change anything about the request." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:62 -msgid "Order Withdrawal" +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:31 +msgid "This pool is banned until block #%{banned_until} (%{estimated_unban_day})" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_stats_item_account.html.eex:49 -#: lib/block_scout_web/templates/stakes/_stakes_stats_item_account.html.eex:50 -msgid "Ordered" +#: lib/block_scout_web/templates/transaction/overview.html.eex:61 +msgid "This transaction is pending confirmation." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:45 -msgid "Place stake" +#: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:36 +#: lib/block_scout_web/templates/address_token_transfer/index.html.eex:34 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:32 +#: lib/block_scout_web/views/address_internal_transaction_view.ex:8 +#: lib/block_scout_web/views/address_token_transfer_view.ex:8 +#: lib/block_scout_web/views/address_transaction_view.ex:8 +msgid "To" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_progress.html.eex:19 -#: lib/block_scout_web/templates/stakes/_table.html.eex:15 -msgid "Pool" +#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:26 +msgid "To have guaranteed accuracy, use the link above to verify the contract's source code." msgstr "" #, elixir-format -#: lib/block_scout_web/channels/stakes_channel.ex:884 -msgid "Pools searching is already in progress for this address" +#: lib/block_scout_web/templates/address_logs/_logs.html.eex:6 +#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:8 +#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:6 +msgid "To see accurate decoded input data, the contract must be verified." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:32 -msgid "Reason for Ban: %{ban_reason}" +#: lib/block_scout_web/templates/layout/_topnav.html.eex:25 +msgid "Toggle navigation" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:58 -msgid "Recalculate" +#: lib/block_scout_web/templates/tokens/transfer/_token_transfer.html.eex:8 +#: lib/block_scout_web/templates/transaction_token_transfer/_token_transfer.html.eex:6 +#: lib/block_scout_web/views/transaction_view.ex:343 +msgid "Token Burning" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:58 -msgid "Refresh now" +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:10 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:32 +msgid "Token Details" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:12 -msgid "Remove My Pool" +#: lib/block_scout_web/templates/tokens/holder/index.html.eex:15 +#: lib/block_scout_web/templates/tokens/overview/_tabs.html.eex:9 +#: lib/block_scout_web/views/tokens/overview_view.ex:42 +msgid "Token Holders" msgstr "" #, elixir-format -#: lib/block_scout_web/channels/stakes_channel.ex:925 -msgid "Reward calculating is already in progress for this address" +#: lib/block_scout_web/templates/tokens/inventory/_token.html.eex:11 +msgid "Token ID" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward.html.eex:9 -msgid "Searching for pools you have ever staked into. Please, wait..." +#: lib/block_scout_web/templates/tokens/transfer/_token_transfer.html.eex:10 +#: lib/block_scout_web/templates/transaction_token_transfer/_token_transfer.html.eex:8 +#: lib/block_scout_web/views/transaction_view.ex:342 +msgid "Token Minting" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:65 -msgid "Share of Pool’s Reward" +#: lib/block_scout_web/templates/tokens/transfer/_token_transfer.html.eex:12 +#: lib/block_scout_web/templates/transaction_token_transfer/_token_transfer.html.eex:10 +#: lib/block_scout_web/views/transaction_view.ex:344 +msgid "Token Transfer" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_title.html.eex:22 -msgid "Show banned only" +#: lib/block_scout_web/templates/address/_tabs.html.eex:13 +#: lib/block_scout_web/templates/address_token_transfer/index.html.eex:19 +#: lib/block_scout_web/templates/tokens/instance/overview/_tabs.html.eex:3 +#: lib/block_scout_web/templates/tokens/instance/transfer/index.html.eex:16 +#: lib/block_scout_web/templates/tokens/overview/_tabs.html.eex:3 +#: lib/block_scout_web/templates/tokens/transfer/index.html.eex:14 +#: lib/block_scout_web/templates/transaction/_tabs.html.eex:4 +#: lib/block_scout_web/templates/transaction_token_transfer/index.html.eex:7 +#: lib/block_scout_web/views/address_view.ex:346 +#: lib/block_scout_web/views/tokens/instance/overview_view.ex:175 +#: lib/block_scout_web/views/tokens/overview_view.ex:41 +#: lib/block_scout_web/views/transaction_view.ex:405 +msgid "Token Transfers" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_title.html.eex:28 -msgid "Show only those I have stake in" +#: lib/block_scout_web/templates/address/_tabs.html.eex:21 +#: lib/block_scout_web/templates/address_token/index.html.eex:10 +#: lib/block_scout_web/templates/address_token_transfer/index.html.eex:13 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:89 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:115 +#: lib/block_scout_web/templates/tokens/index.html.eex:4 +#: lib/block_scout_web/views/address_view.ex:343 +msgid "Tokens" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:7 -msgid "Source Pool" +#: lib/block_scout_web/templates/address/_metatags.html.eex:13 +msgid "Top Accounts - %{subnetwork} Explorer" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:7 -msgid "Stake" +#: lib/block_scout_web/templates/address_logs/index.html.eex:14 +msgid "Topic" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:43 -msgid "Stake More" +#: lib/block_scout_web/templates/address_logs/_logs.html.eex:77 +#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:80 +msgid "Topics" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:64 -msgid "Stake placed on a candidate pool or an active validator pool during the current staking epoch can be moved from one pool to another. Active stake cannot be moved. To re-delegate active stake: order a withdrawal, claim the amount on the next staking epoch, and stake the amount on a different pool." +#: lib/block_scout_web/templates/block/overview.html.eex:67 +msgid "Total Difficulty" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:53 -msgid "Stake placed on a pool is pending for the current staking epoch. It will be applied to the next staking epoch. You may withdraw or move pending stake at any time until it becomes active. Once active (the pool you staked with becomes a validator), a withdrawal order can be placed. This amount will be available to claim after that staking epoch is complete." +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:86 +msgid "Total Supply" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_stats_item_account.html.eex:45 -#: lib/block_scout_web/templates/stakes/_stakes_stats_item_account.html.eex:46 -msgid "Staked" +#: lib/block_scout_web/templates/chain/show.html.eex:154 +msgid "Total blocks" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:28 -msgid "Staked Amount" +#: lib/block_scout_web/templates/chain/show.html.eex:133 +msgid "Total transactions" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:26 -msgid "Staker's Address" +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:52 +msgid "Trade STAKE on BitMax" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:59 -#: lib/block_scout_web/templates/stakes/_stakes_progress.html.eex:25 -#: lib/block_scout_web/templates/stakes/_table.html.eex:34 -msgid "Stakes Ratio" +#: lib/block_scout_web/templates/address_logs/_logs.html.eex:25 +#: lib/block_scout_web/views/transaction_view.ex:354 +msgid "Transaction" msgstr "" #, elixir-format -#: lib/block_scout_web/channels/stakes_channel.ex:928 -msgid "Staking epochs are not specified or not in the allowed range" +#: lib/block_scout_web/templates/transaction/_metatags.html.eex:3 +msgid "Transaction %{transaction} - %{subnetwork} Explorer" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:67 -msgid "Target Pool" +#: lib/block_scout_web/templates/transaction/_metatags.html.eex:11 +msgid "Transaction %{transaction}, %{subnetwork} %{transaction}" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:89 -msgid "The Number of Delegators in the Pool" +#: lib/block_scout_web/templates/transaction/overview.html.eex:28 +msgid "Transaction Details" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:39 -msgid "The amount can be claimed after the current epoch finishes." +#: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:2 +#: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:16 +msgid "Transaction Inputs" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:23 -msgid "The first amount is the candidate’s own stake, the second is the total amount staked into the pool by the candidate and all delegators." +#: lib/block_scout_web/templates/transaction/overview.html.eex:135 +msgid "Transaction Speed" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:25 -msgid "The first amount is the pool owner’s stake, the second is the total amount staked into the pool by the pool owner and all delegators." +#: lib/block_scout_web/templates/address/_tabs.html.eex:7 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:17 +#: lib/block_scout_web/templates/block_transaction/index.html.eex:10 +#: lib/block_scout_web/templates/block_transaction/index.html.eex:18 +#: lib/block_scout_web/templates/chain/show.html.eex:236 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:55 +#: lib/block_scout_web/views/address_view.ex:345 +msgid "Transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:21 -msgid "The first amount is the validator’s own stake, the second is the total amount staked into the pool by the validator and all delegators." +#: lib/block_scout_web/templates/address/_tile.html.eex:31 +msgid "Transactions sent" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:43 -msgid "The number of delegators providing stake to the pool. Click on the number to see more details." +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:50 +msgid "Transfers" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:34 -msgid "The percentage of stake in a single pool relative to the total amount staked in all active pools. A higher ratio results in a greater likelihood of validator pool selection." +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:40 +#: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:47 +msgid "Try it out" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:105 -msgid "The rest addresses are delegators of its pool." +#: lib/block_scout_web/templates/layout/_footer.html.eex:25 +msgid "Twitter" msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:34 -msgid "The staking epochs for which the reward could be claimed (read-only field):" +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:53 +msgid "Tx Gas Limit:" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:58 -msgid "The table refreshed block(s) ago." +#: lib/block_scout_web/templates/chain/show.html.eex:93 +#: lib/block_scout_web/templates/layout/app.html.eex:34 +msgid "Tx/day" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_empty_content.html.eex:12 -msgid "There is no information currently available for this view. Deselect filters or choose another pool view to see current info. To participate as a delegator, select a pool address and click the Stake icon. To become a candidate, click the button below." +#: lib/block_scout_web/templates/log/_data_decoded_view.html.eex:5 +#: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:19 +msgid "Type" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:102 -msgid "This is a %{pool_type}." +#: lib/block_scout_web/templates/transaction/overview.html.eex:156 +msgid "UTF-8" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_rows.html.eex:5 -msgid "This is a validator" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:69 +msgid "Unable to find any pools you could claim a reward from." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:31 -msgid "This pool is banned until block #%{banned_until} (%{estimated_unban_day})" +#: lib/block_scout_web/views/block_view.ex:74 +msgid "Uncle Reward" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:53 -msgid "Tx Gas Limit:" +#: lib/block_scout_web/templates/block/overview.html.eex:80 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:43 +msgid "Uncles" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:69 -msgid "Unable to find any pools you could claim a reward from." +#: lib/block_scout_web/templates/tokens/inventory/_token.html.eex:6 +msgid "Unique Token" msgstr "" #, elixir-format @@ -2456,341 +2435,370 @@ msgid "Unknown staker address. Please, choose your account in MetaMask" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:8 -msgid "Validator Pool Addresses." +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:12 +msgid "Use the search box to find a hosted network, or select from the list of available networks below." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:32 -msgid "Validator pools can be banned for misbehavior (such as not revealing secret numbers). Validator and delegator stake contained in a banned pool cannot be withdrawn until the ban is over." +#: lib/block_scout_web/templates/transaction/overview.html.eex:290 +msgid "Used" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:2 -msgid "We found the following pools you can claim reward from:" +#: lib/block_scout_web/templates/layout/_topnav.html.eex:59 +msgid "Validated" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:7 -msgid "Withdraw" +#: lib/block_scout_web/templates/transaction/index.html.eex:11 +msgid "Validated Transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:70 -msgid "Withdraw Now" +#: lib/block_scout_web/templates/address/_validator_metadata_modal.html.eex:30 +msgid "Validator Creation Date" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_rows.html.eex:52 -msgid "Withdraw after block #%{banned_delegators_until} (%{estimated_unban_day})" +#: lib/block_scout_web/templates/address/_validator_metadata_modal.html.eex:5 +msgid "Validator Data" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_withdrawal.html.eex:22 -msgid "Withdrawal orders made during an active staking epoch are available to claim after the epoch is complete." +#: lib/block_scout_web/templates/address/overview.html.eex:50 +msgid "Validator Info" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_table.html.eex:8 +msgid "Validator Pool Addresses." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_table.html.eex:32 +msgid "Validator pools can be banned for misbehavior (such as not revealing secret numbers). Validator and delegator stake contained in a banned pool cannot be withdrawn until the ban is over." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/transaction/overview.html.eex:215 +#: lib/block_scout_web/templates/transaction/overview.html.eex:268 +msgid "Value" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_contract/index.html.eex:24 +#: lib/block_scout_web/templates/address_contract/index.html.eex:152 +#: lib/block_scout_web/templates/address_contract/index.html.eex:164 +#: lib/block_scout_web/templates/address_contract/index.html.eex:195 +#: lib/block_scout_web/templates/address_contract/index.html.eex:207 +#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:19 +msgid "Verify & Publish" msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:35 -msgid "Working Stake Amount" +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:301 +#: lib/block_scout_web/templates/address_contract_verification_via_json/new.html.eex:52 +msgid "Verify & publish" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:34 -msgid "You Can Order:" +#: lib/block_scout_web/templates/address_logs/_logs.html.eex:16 +#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:18 +#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:16 +msgid "Verify the contract " msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:15 -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:12 -msgid "You Staked:" +#: lib/block_scout_web/templates/layout/_footer.html.eex:86 +msgid "Version" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward.html.eex:11 -msgid "You can get your reward for all staking epochs during which the pool was a validator or specify separate epochs if Tx Gas Limit is too high. Tx Gas Limit depends on how long the pool was a validator and how many staking epochs you held your stake in the pool without movement." +#: lib/block_scout_web/templates/chain/show.html.eex:177 +msgid "View All Blocks" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:52 -msgid "You can withdraw this amount right now." +#: lib/block_scout_web/templates/chain/show.html.eex:235 +msgid "View All Transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:38 -msgid "You will be able to withdraw after block #%{banned_delegators_until} (%{estimated_unban_day})" +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:16 +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:20 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:66 +msgid "View Contract" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:48 -msgid "You will receive:" +#: lib/block_scout_web/templates/transaction/_tile.html.eex:61 +msgid "View Less Transfers" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:22 -#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:28 -msgid "Your Balance:" +#: lib/block_scout_web/templates/transaction/_tile.html.eex:60 +msgid "View More Transfers" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:16 -msgid "Your Current Stake:" +#: lib/block_scout_web/templates/address/_metatags.html.eex:9 +msgid "View the account balance, transactions, and other data for %{address} on the %{network}" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:12 -msgid "Your Mining Address" +#: lib/block_scout_web/templates/block/_metatags.html.eex:10 +msgid "View the transactions, token transfers, and uncles for block number %{block_number}" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_withdrawal.html.eex:11 -msgid "Your ordered amount" +#: lib/block_scout_web/templates/transaction/_metatags.html.eex:10 +msgid "View transaction %{transaction} on %{subnetwork}" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:41 -msgid "all epochs" +#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:119 +msgid "WEI" msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:19 -msgid "candidate" +#: lib/block_scout_web/templates/smart_contract/_pending_contract_write.html.eex:12 +msgid "Waiting for transaction's confirmation..." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:20 -msgid "pool owner" +#: lib/block_scout_web/templates/chain/show.html.eex:162 +msgid "Wallet addresses" msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:42 -msgid "specified epochs only" +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:2 +msgid "We found the following pools you can claim reward from:" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:18 -msgid "validator" +#: lib/block_scout_web/views/wei_helpers.ex:76 +msgid "Wei" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:156 -msgid "Stakes" +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:7 +msgid "Withdraw" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:22 -#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:16 -msgid "Contract is not verified. However, we found a verified contract with the same bytecode in Blockscout DB" +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:70 +msgid "Withdraw Now" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:162 -msgid "Staking" +#: lib/block_scout_web/templates/stakes/_rows.html.eex:52 +msgid "Withdraw after block #%{banned_delegators_until} (%{estimated_unban_day})" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:254 -msgid "Press / and focus will be moved to the search field" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_withdrawal.html.eex:22 +msgid "Withdrawal orders made during an active staking epoch are available to claim after the epoch is complete." msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:55 -msgid "Current Reward Share" +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:35 +msgid "Working Stake Amount" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:63 -msgid "Current Reward Share is calculated based on the Working Stake Amount." +#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:89 +msgid "Write" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:6 -msgid "Delegators of " +#: lib/block_scout_web/templates/address/_tabs.html.eex:95 +#: lib/block_scout_web/views/address_view.ex:351 +msgid "Write Contract" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:55 -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:57 -msgid "Potential Reward Share" +#: lib/block_scout_web/templates/address/_tabs.html.eex:102 +#: lib/block_scout_web/views/address_view.ex:352 +msgid "Write Proxy" msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:61 -msgid "Reward distribution is based on stake amount. Validator receives at least %{min}% of the pool reward." +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:60 +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:103 +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:146 +#: lib/block_scout_web/templates/stakes/_rows.html.eex:24 +msgid "Yes" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:39 -msgid "APY" +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:34 +msgid "You Can Order:" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:79 -msgid "APY & Predicted Reward" +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:15 +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:12 +msgid "You Staked:" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_rows.html.eex:34 -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:186 -msgid "N/A" +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward.html.eex:11 +msgid "You can get your reward for all staking epochs during which the pool was a validator or specify separate epochs if Tx Gas Limit is too high. Tx Gas Limit depends on how long the pool was a validator and how many staking epochs you held your stake in the pool without movement." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:80 -msgid "Approximate Current Annual Percentage Yield. If you see N/A, please reopen the popup in a few blocks (APY cannot be calculated at the very beginning of a staking epoch). Predicted Reward is the amount of %{symbol} a participant will receive for staking and can claim once the current epoch ends." +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:52 +msgid "You can withdraw this amount right now." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:39 -msgid "Approximate Current Annual Percentage Yield. If you see N/A, please wait for a few blocks (APY cannot be calculated at the very beginning of a staking epoch)." +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:38 +msgid "You will be able to withdraw after block #%{banned_delegators_until} (%{estimated_unban_day})" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/bridged_tokens/index.html.eex:6 -msgid "Bridged Tokens from " +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:48 +msgid "You will receive:" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:98 -msgid "Bridged from Ethereum" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:22 +#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:28 +msgid "Your Balance:" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:103 -msgid "Bridged from BSC" +#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:16 +msgid "Your Current Stake:" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:45 -msgid "Bridge STAKE to Ethereum" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:12 +msgid "Your Mining Address" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:38 -msgid "Swap STAKE on Honeyswap" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:14 +msgid "Your Pool Name" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:52 -msgid "Trade STAKE on BitMax" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:16 +msgid "Your Pool Short Description (optional)" msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/common_components/_minimal_proxy_pattern.html.eex:9 -msgid " - minimal bytecode implementation that delegates all calls to a known address" +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_withdrawal.html.eex:11 +msgid "Your ordered amount" msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/common_components/_minimal_proxy_pattern.html.eex:6 -msgid "EIP-1167" +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:41 +msgid "all epochs" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/common_components/_minimal_proxy_pattern.html.eex:3 -msgid "Minimal Proxy Contract for" +#: lib/block_scout_web/templates/address/overview.html.eex:103 +msgid "at" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:20 -msgid "Staking Address:" +#: lib/block_scout_web/templates/address_contract/index.html.eex:24 +msgid "button" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:11 -msgid "Please, sign transaction and wait for its mining..." +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:19 +msgid "candidate" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:9 -msgid "Pool description" +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:12 +msgid "custom RPC" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:8 -msgid "Pool name" +#: lib/block_scout_web/views/address_contract_view.ex:24 +msgid "false" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:10 -msgid "Save changes" +#: lib/block_scout_web/templates/address_logs/_logs.html.eex:16 +#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:18 +#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:16 +msgid "here" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:14 -msgid "Your Pool Name" +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:9 +msgid "here." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:16 -msgid "Your Pool Short Description (optional)" +#: lib/block_scout_web/templates/transaction/invalid.html.eex:8 +msgid "is not a valid transaction hash" msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/address_contract_verification_via_json/new.html.eex:30 -msgid "Drop sources and metadata JSON file or click here" +#: lib/block_scout_web/templates/common_components/_pagination_container.html.eex:41 +msgid "of" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract_verification/new.html.eex:35 -msgid "Flattened source code" +#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:21 +msgid "page" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract_verification/new.html.eex:75 -#: lib/block_scout_web/templates/address_contract_verification/new.html.eex:82 -msgid "Next" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:20 +msgid "pool owner" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/address_contract_verification_via_json/new.html.eex:23 -msgid "Sources and Metadata JSON" +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:58 +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:69 +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:81 +#: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:70 +msgid "required" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:33 -msgid "This contract has been verified via Sourcify." +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:42 +msgid "specified epochs only" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract_verification/new.html.eex:40 -msgid "Sourcify: Sources and metadata JSON file" +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:59 +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:70 +msgid "string" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:150 -#: lib/block_scout_web/templates/address_contract/index.html.eex:160 -msgid "Copy Deployed ByteCode" +#: lib/block_scout_web/views/address_contract_view.ex:23 +msgid "true" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:148 -#: lib/block_scout_web/templates/address_contract/index.html.eex:156 -msgid "Deployed ByteCode" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:18 +msgid "validator" msgstr "" #, elixir-format diff --git a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po index 535db3156d..960f92b871 100644 --- a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po +++ b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po @@ -1,3 +1,10 @@ +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:6 +msgid "%{blocks} block" +msgid_plural "%{blocks} blocks" +msgstr[0] "" +msgstr[1] "" + #, elixir-format #: lib/block_scout_web/views/address_token_balance_view.ex:8 msgid "%{count} token" @@ -12,11 +19,33 @@ msgid_plural "%{count} transactions" msgstr[0] "" msgstr[1] "" +#, elixir-format +#: +#: lib/block_scout_web/templates/common_components/_minimal_proxy_pattern.html.eex:9 +msgid " - minimal bytecode implementation that delegates all calls to a known address" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/transaction/overview.html.eex:252 +msgid " Token Burning" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/transaction/overview.html.eex:241 +msgid " Token Minting" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/transaction/overview.html.eex:230 msgid " Token Transfer" msgstr "" +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:43 +msgid " Working Stake Amount is an amount which is accounted and working at the current staking epoch." +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:14 msgid " is recommended." @@ -58,11 +87,22 @@ msgstr "" msgid "%{subnetwork} Explorer - BlockScout" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_metatags.html.eex:2 +msgid "%{subnetwork} Staking DApp - BlockScout" +msgstr "" + #, elixir-format #: lib/block_scout_web/views/transaction_view.ex:262 msgid "(Awaiting internal transactions for status)" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_rows.html.eex:26 +#: lib/block_scout_web/templates/stakes/_stakes_progress.html.eex:27 +msgid "(inactive pool)" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:59 #: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:70 @@ -112,6 +152,17 @@ msgstr "" msgid "APIs" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_table.html.eex:39 +msgid "APY" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:79 +msgid "APY & Predicted Reward" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/layout/_topnav.html.eex:80 msgid "Accounts" @@ -146,11 +197,68 @@ msgstr "" msgid "All" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:18 +msgid "All functions displayed below are from ABI of that contract. In order to verify current contract, proceed with" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_contract/index.html.eex:24 +msgid "All metadata displayed below is from that contract. In order to verify current contract, click" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:27 +msgid "All pool participant addresses. The top address belongs to the %{pool_type}." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:27 +msgid "Already Ordered:" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:10 +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:14 +#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:11 +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:11 +msgid "Amount" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:41 +msgid "Amount of %{symbol} placed by an address." +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:15 msgid "Anything not in this list is not supported. Click on the method to be taken to the documentation for that method, and check the notes section for any potential differences." msgstr "" +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:80 +msgid "Approximate Current Annual Percentage Yield. If you see N/A, please reopen the popup in a few blocks (APY cannot be calculated at the very beginning of a staking epoch). Predicted Reward is the amount of %{symbol} a participant will receive for staking and can claim once the current epoch ends." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_table.html.eex:39 +msgid "Approximate Current Annual Percentage Yield. If you see N/A, please wait for a few blocks (APY cannot be calculated at the very beginning of a staking epoch)." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_topnav.html.eex:154 +msgid "Apps" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:48 +msgid "Available Now:" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/chain/show.html.eex:124 msgid "Average block time" @@ -173,12 +281,30 @@ msgstr "" msgid "Balances" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_table.html.eex:32 +msgid "Banned" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_rows.html.eex:46 +msgid "Banned until block #%{banned_until} (%{estimated_unban_day})" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:5 #: lib/block_scout_web/templates/api_docs/index.html.eex:5 msgid "Base URL:" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_empty_content.html.eex:13 +#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:5 +#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:33 +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:24 +msgid "Become a Candidate" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/address_coin_balance/_coin_balances.html.eex:8 msgid "Block" @@ -226,11 +352,21 @@ msgstr "" msgid "Block Pending" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/block/overview.html.eex:150 +msgid "Block Rewards" +msgstr "" + #, elixir-format #: lib/block_scout_web/views/block_transaction_view.ex:15 msgid "Block not found, please try again later." msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:5 +msgid "Block number" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/chain/_metatags.html.eex:4 msgid "BlockScout provides analytics data, API, and Smart Contract tools for the %{subnetwork}" @@ -248,11 +384,38 @@ msgstr "" msgid "Blocks Indexed" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/address/_tabs.html.eex:48 +#: lib/block_scout_web/templates/address_validation/index.html.eex:15 +#: lib/block_scout_web/views/address_view.ex:354 +msgid "Blocks Validated" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/layout/_footer.html.eex:20 msgid "Blockscout is a tool for inspecting and analyzing EVM based blockchains. Blockchain explorer for Ethereum Networks." msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:45 +msgid "Bridge STAKE to Ethereum" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/bridged_tokens/index.html.eex:6 +msgid "Bridged Tokens from " +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_topnav.html.eex:103 +msgid "Bridged from BSC" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_topnav.html.eex:98 +msgid "Bridged from Ethereum" +msgstr "" + #, elixir-format #: lib/block_scout_web/views/internal_transaction_view.ex:21 msgid "Call" @@ -272,6 +435,16 @@ msgstr "" msgid "Cancel" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_table.html.eex:10 +msgid "Candidate and Validator Pool Addresses. Current validator pools are specified by a checkmark." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:47 +msgid "Candidate’s Staked Amount" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/layout/_network_selector.html.eex:11 msgid "Change Network" @@ -282,12 +455,78 @@ msgstr "" msgid "Chat" msgstr "" +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:6 +msgid "Choose Pool" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:22 +msgid "Choose Target Pool" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/views/block_view.ex:62 +msgid "Chore Reward" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_withdrawal.html.eex:7 +msgid "Claim Ordered Withdraw" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward.html.eex:6 +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:59 +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:30 +msgid "Claim Reward" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:40 +msgid "Claim for" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_withdrawal.html.eex:18 +msgid "Claim the Amount" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:137 #: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:106 msgid "Clear" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/address/_validator_metadata_modal.html.eex:37 +#: lib/block_scout_web/templates/common_components/_modal_qr_code.html.eex:6 +#: lib/block_scout_web/templates/common_components/_modal_qr_code.html.eex:14 +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:84 +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:92 +msgid "Close" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address/_tabs.html.eex:58 +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:165 +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:187 +#: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:126 +#: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:149 +#: lib/block_scout_web/views/address_view.ex:347 +msgid "Code" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address/_tabs.html.eex:34 +#: lib/block_scout_web/views/address_view.ex:353 +msgid "Coin Balance History" +msgstr "" + #, elixir-format #: #: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:71 @@ -295,7 +534,7 @@ msgid "Compiler" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:49 +#: lib/block_scout_web/templates/address_contract/index.html.eex:57 msgid "Compiler version" msgstr "" @@ -330,12 +569,12 @@ msgid "Connection Lost, click to load newer validations" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:68 +#: lib/block_scout_web/templates/address_contract/index.html.eex:76 msgid "Constructor Arguments" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:106 +#: lib/block_scout_web/templates/address_contract/index.html.eex:114 msgid "Contract ABI" msgstr "" @@ -365,8 +604,8 @@ msgid "Contract Creation" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:122 -#: lib/block_scout_web/templates/address_contract/index.html.eex:137 +#: lib/block_scout_web/templates/address_contract/index.html.eex:130 +#: lib/block_scout_web/templates/address_contract/index.html.eex:145 msgid "Contract Creation Code" msgstr "" @@ -383,17 +622,23 @@ msgid "Contract Name" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:41 +#: lib/block_scout_web/templates/address_contract/index.html.eex:22 +#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:16 +msgid "Contract is not verified. However, we found a verified contract with the same bytecode in Blockscout DB" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_contract/index.html.eex:49 msgid "Contract name:" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:78 +#: lib/block_scout_web/templates/address_contract/index.html.eex:86 msgid "Contract source code" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:128 +#: lib/block_scout_web/templates/address_contract/index.html.eex:136 msgid "Contracts that self destruct in their constructors have no contract code published and cannot be verified." msgstr "" @@ -403,7 +648,7 @@ msgid "Contribute" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:108 +#: lib/block_scout_web/templates/address_contract/index.html.eex:116 msgid "Copy ABI" msgstr "" @@ -416,8 +661,8 @@ msgid "Copy Address" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:124 -#: lib/block_scout_web/templates/address_contract/index.html.eex:139 +#: lib/block_scout_web/templates/address_contract/index.html.eex:132 +#: lib/block_scout_web/templates/address_contract/index.html.eex:148 msgid "Copy Contract Creation Code" msgstr "" @@ -427,14 +672,36 @@ msgid "Copy Decompiled Contract Code" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:80 -#: lib/block_scout_web/templates/address_contract/index.html.eex:94 -msgid "Copy Source Code" +#: lib/block_scout_web/templates/address_contract/index.html.eex:181 +#: lib/block_scout_web/templates/address_contract/index.html.eex:191 +msgid "Copy Deployed ByteCode" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:42 -msgid "Copy Transaction Hash" +#: lib/block_scout_web/templates/tokens/instance/metadata/index.html.eex:20 +msgid "Copy Metadata" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/transaction_raw_trace/index.html.eex:15 +msgid "Copy Raw Trace" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_contract/index.html.eex:88 +#: lib/block_scout_web/templates/address_contract/index.html.eex:102 +msgid "Copy Source Code" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:32 +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:33 +msgid "Copy Token ID" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/transaction/overview.html.eex:42 +msgid "Copy Transaction Hash" msgstr "" #, elixir-format @@ -443,8 +710,9 @@ msgid "Copy Txn Hash" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block/overview.html.eex:58 -msgid "Difficulty" +#: lib/block_scout_web/templates/transaction/overview.html.eex:168 +#: lib/block_scout_web/templates/transaction/overview.html.eex:181 +msgid "Copy Txn Input" msgstr "" #, elixir-format @@ -474,6 +742,35 @@ msgstr "" msgid "Curl" msgstr "" +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:55 +msgid "Current Reward Share" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:63 +msgid "Current Reward Share is calculated based on the Working Stake Amount." +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:35 +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:37 +msgid "Current Stake Amount" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:36 +msgid "Current Stake:" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_metatags.html.eex:6 +msgid "DApp for Staking %{symbol} tokens" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/address_logs/_logs.html.eex:107 #: lib/block_scout_web/templates/log/_data_decoded_view.html.eex:7 @@ -482,6 +779,12 @@ msgstr "" msgid "Data" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:52 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:74 +msgid "Decimals" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/address_logs/_logs.html.eex:38 #: lib/block_scout_web/templates/address_logs/_logs.html.eex:44 @@ -492,6 +795,11 @@ msgstr "" msgid "Decoded" msgstr "" +#, elixir-format +#: lib/block_scout_web/views/address_view.ex:348 +msgid "Decompiled Code" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/address/_tabs.html.eex:75 msgid "Decompiled code" @@ -508,22 +816,30 @@ msgid "Decompiler version" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block/_tile.html.eex:57 -#: lib/block_scout_web/templates/block/overview.html.eex:108 -#: lib/block_scout_web/templates/block/overview.html.eex:165 -msgid "Gas Limit" +#: lib/block_scout_web/views/internal_transaction_view.ex:23 +msgid "Delegate Call" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block/_tile.html.eex:62 -#: lib/block_scout_web/templates/block/overview.html.eex:101 -#: lib/block_scout_web/templates/block/overview.html.eex:157 -msgid "Gas Used" +#: lib/block_scout_web/templates/stakes/_stakes_progress.html.eex:31 +#: lib/block_scout_web/templates/stakes/_table.html.eex:43 +msgid "Delegators" msgstr "" #, elixir-format -#: lib/block_scout_web/views/internal_transaction_view.ex:23 -msgid "Delegate Call" +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:6 +msgid "Delegators of " +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:53 +msgid "Delegators’ Staked Amount" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_contract/index.html.eex:179 +#: lib/block_scout_web/templates/address_contract/index.html.eex:187 +msgid "Deployed ByteCode" msgstr "" #, elixir-format @@ -542,15 +858,32 @@ msgid "Details" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:129 +#: lib/block_scout_web/templates/block/overview.html.eex:58 +msgid "Difficulty" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_contract/index.html.eex:137 msgid "Displaying the init data provided of the creating transaction." msgstr "" +#, elixir-format +#: +#: lib/block_scout_web/templates/address_contract_verification_via_json/new.html.eex:30 +msgid "Drop sources and metadata JSON file or click here" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/transaction/not_found.html.eex:22 msgid "During times when the network is busy (i.e during ICOs) it can take a while for your transaction to propagate through the network and for us to index it." msgstr "" +#, elixir-format +#: +#: lib/block_scout_web/templates/common_components/_minimal_proxy_pattern.html.eex:6 +msgid "EIP-1167" +msgstr "" + #, elixir-format #: lib/block_scout_web/views/transaction_view.ex:148 msgid "ERC-20 " @@ -573,7 +906,7 @@ msgid "ETH RPC API Documentation" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:60 +#: lib/block_scout_web/templates/address_contract/index.html.eex:68 #: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:82 msgid "EVM Version" msgstr "" @@ -600,15 +933,19 @@ msgid "Enter the Solidity Contract Code" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:30 -msgid "Error rendering value" +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:4 +msgid "Epoch number" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block/_tile.html.eex:38 -#: lib/block_scout_web/templates/block/overview.html.eex:124 -#: lib/block_scout_web/templates/chain/_block.html.eex:15 -msgid "Miner" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:44 +msgid "Epochs range(s) or enum, e.g.: 5-9,23-27,47,50" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:30 +msgid "Error rendering value" msgstr "" #, elixir-format @@ -661,13 +998,7 @@ msgid "Execute" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block/overview.html.eex:73 -#: lib/block_scout_web/templates/transaction/overview.html.eex:113 -msgid "Nonce" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:197 +#: lib/block_scout_web/templates/address_contract/index.html.eex:228 msgid "External libraries" msgstr "" @@ -692,6 +1023,11 @@ msgstr "" msgid "Fetching tokens..." msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/address_contract_verification/new.html.eex:35 +msgid "Flattened source code" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/admin/dashboard/index.html.eex:16 msgid "For any existing contracts in the database, insert all ABI entries into the contract_methods table. Use this in case you have verified smart contracts before early March 2019 and you want other contracts with the same functions to show those ABI's as candidate matches." @@ -718,8 +1054,22 @@ msgid "GET" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block/overview.html.eex:84 -msgid "Position %{index}" +#: lib/block_scout_web/templates/transaction/overview.html.eex:286 +msgid "Gas" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/block/_tile.html.eex:57 +#: lib/block_scout_web/templates/block/overview.html.eex:108 +#: lib/block_scout_web/templates/block/overview.html.eex:165 +msgid "Gas Limit" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/block/_tile.html.eex:62 +#: lib/block_scout_web/templates/block/overview.html.eex:101 +#: lib/block_scout_web/templates/block/overview.html.eex:157 +msgid "Gas Used" msgstr "" #, elixir-format @@ -755,6 +1105,16 @@ msgstr "" msgid "Hex (Default)" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:77 +msgid "How Many Times this Address has been Banned" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:71 +msgid "How Many Times this Address has been a Validator" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:11 msgid "However, in general, the" @@ -772,213 +1132,96 @@ msgid "IN" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/_emission_reward_tile.html.eex:8 -#: lib/block_scout_web/views/transaction_view.ex:263 -msgid "Success" +#: lib/block_scout_web/templates/transaction/not_found.html.eex:26 +msgid "If it still does not show up after 1 hour, please check with your sender/exchange/wallet/transaction provider for additional information." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/chain/show.html.eex:93 -#: lib/block_scout_web/templates/layout/app.html.eex:34 -msgid "Tx/day" +#: lib/block_scout_web/templates/transaction/not_found.html.eex:12 +msgid "If you have just submitted this transaction please wait for at least 30 seconds before refreshing this page." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/_pending_tile.html.eex:21 -#: lib/block_scout_web/templates/transaction/_tile.html.eex:40 -#: lib/block_scout_web/templates/transaction/overview.html.eex:118 -msgid "TX Fee" +#: lib/block_scout_web/templates/stakes/_table.html.eex:12 +msgid "Inactive Pool Addresses. Current validator pools are specified by a checkmark." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_footer.html.eex:28 -msgid "Telegram" +#: lib/block_scout_web/templates/log/_data_decoded_view.html.eex:6 +msgid "Indexed?" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/tokens/holder/index.html.eex:27 -msgid "There are no holders for this Token." +#: lib/block_scout_web/templates/layout/app.html.eex:29 +msgid "Indexing Tokens" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:58 -msgid "There are no internal transactions for this address." +#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:3 +msgid "Input" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/transaction_internal_transaction/index.html.eex:17 -msgid "There are no internal transactions for this transaction." +#: lib/block_scout_web/templates/internal_transaction/_tile.html.eex:6 +msgid "Internal Transaction" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction_log/index.html.eex:20 -msgid "There are no logs for this transaction." +#: lib/block_scout_web/templates/address/_tabs.html.eex:28 +#: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:21 +#: lib/block_scout_web/templates/transaction/_tabs.html.eex:11 +#: lib/block_scout_web/templates/transaction_internal_transaction/index.html.eex:6 +#: lib/block_scout_web/views/address_view.ex:344 +#: lib/block_scout_web/views/transaction_view.ex:406 +msgid "Internal Transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_token_transfer/index.html.eex:53 -msgid "There are no token transfers for this address." +#: lib/block_scout_web/templates/transaction/invalid.html.eex:6 +msgid "Invalid Transaction Hash" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_token/index.html.eex:22 -msgid "There are no tokens for this address." +#: lib/block_scout_web/templates/tokens/inventory/index.html.eex:15 +#: lib/block_scout_web/templates/tokens/overview/_tabs.html.eex:17 +#: lib/block_scout_web/views/tokens/overview_view.ex:44 +msgid "Inventory" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/tokens/inventory/index.html.eex:27 -msgid "There are no tokens." +#: lib/block_scout_web/templates/transaction/not_found.html.eex:16 +msgid "It could still be in the TX Pool of a different node, waiting to be broadcasted." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_transaction/index.html.eex:55 -msgid "There are no transactions for this address." +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:125 +msgid "It's me!" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block_transaction/index.html.eex:28 -msgid "There are no transactions for this block." +#: lib/block_scout_web/channels/stakes_channel.ex:828 +msgid "JSON RPC error" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/tokens/instance/transfer/index.html.eex:28 -#: lib/block_scout_web/templates/tokens/transfer/index.html.eex:26 -msgid "There are no transfers for this Token." +#: lib/block_scout_web/templates/address/overview.html.eex:83 +msgid "Last Balance Update: Block #" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:61 -msgid "This transaction is pending confirmation." +#: lib/block_scout_web/templates/layout/app.html.eex:30 +msgid "Less than" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:36 -#: lib/block_scout_web/templates/address_token_transfer/index.html.eex:34 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:32 -#: lib/block_scout_web/views/address_internal_transaction_view.ex:8 -#: lib/block_scout_web/views/address_token_transfer_view.ex:8 -#: lib/block_scout_web/views/address_transaction_view.ex:8 -msgid "To" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:25 -msgid "Toggle navigation" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:10 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:32 -msgid "Token Details" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/holder/index.html.eex:15 -#: lib/block_scout_web/templates/tokens/overview/_tabs.html.eex:9 -#: lib/block_scout_web/views/tokens/overview_view.ex:42 -msgid "Token Holders" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/inventory/_token.html.eex:11 -msgid "Token ID" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/transfer/_token_transfer.html.eex:12 -#: lib/block_scout_web/templates/transaction_token_transfer/_token_transfer.html.eex:10 -#: lib/block_scout_web/views/transaction_view.ex:344 -msgid "Token Transfer" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:13 -#: lib/block_scout_web/templates/address_token_transfer/index.html.eex:19 -#: lib/block_scout_web/templates/tokens/instance/overview/_tabs.html.eex:3 -#: lib/block_scout_web/templates/tokens/instance/transfer/index.html.eex:16 -#: lib/block_scout_web/templates/tokens/overview/_tabs.html.eex:3 -#: lib/block_scout_web/templates/tokens/transfer/index.html.eex:14 -#: lib/block_scout_web/templates/transaction/_tabs.html.eex:4 -#: lib/block_scout_web/templates/transaction_token_transfer/index.html.eex:7 -#: lib/block_scout_web/views/address_view.ex:346 -#: lib/block_scout_web/views/tokens/instance/overview_view.ex:175 -#: lib/block_scout_web/views/tokens/overview_view.ex:41 -#: lib/block_scout_web/views/transaction_view.ex:405 -msgid "Token Transfers" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_metatags.html.eex:13 -msgid "Top Accounts - %{subnetwork} Explorer" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/block/overview.html.eex:67 -msgid "Total Difficulty" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address_logs/_logs.html.eex:25 -#: lib/block_scout_web/views/transaction_view.ex:354 -msgid "Transaction" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/not_found.html.eex:12 -msgid "If you have just submitted this transaction please wait for at least 30 seconds before refreshing this page." -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/log/_data_decoded_view.html.eex:6 -msgid "Indexed?" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:3 -msgid "Input" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/internal_transaction/_tile.html.eex:6 -msgid "Internal Transaction" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/invalid.html.eex:6 -msgid "Invalid Transaction Hash" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/inventory/index.html.eex:15 -#: lib/block_scout_web/templates/tokens/overview/_tabs.html.eex:17 -#: lib/block_scout_web/views/tokens/overview_view.ex:44 -msgid "Inventory" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/not_found.html.eex:16 -msgid "It could still be in the TX Pool of a different node, waiting to be broadcasted." -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/overview.html.eex:83 -msgid "Last Balance Update: Block #" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/app.html.eex:30 -msgid "Less than" -msgstr "" - -#, elixir-format -#: -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:185 -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:207 -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:229 -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:251 -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:273 -msgid "Library Address" +#: +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:185 +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:207 +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:229 +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:251 +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:273 +msgid "Library Address" msgstr "" #, elixir-format @@ -1001,11 +1244,21 @@ msgstr "" msgid "License ID" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:83 +msgid "Likelihood of Becoming a Validator on the Next Epoch" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/transaction/overview.html.eex:296 msgid "Limit" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/address_coin_balance/index.html.eex:26 +msgid "Loading chart" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/address_read_contract/index.html.eex:16 #: lib/block_scout_web/templates/address_read_proxy/index.html.eex:16 @@ -1027,6 +1280,27 @@ msgstr "" msgid "Log Data" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:120 +msgid "Log Index" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address/_tabs.html.eex:41 +#: lib/block_scout_web/templates/address_logs/index.html.eex:10 +#: lib/block_scout_web/templates/transaction/_tabs.html.eex:17 +#: lib/block_scout_web/templates/transaction_log/index.html.eex:8 +#: lib/block_scout_web/views/address_view.ex:355 +#: lib/block_scout_web/views/transaction_view.ex:407 +msgid "Logs" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:127 +msgid "ME" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/layout/_footer.html.eex:47 msgid "Main Networks" @@ -1044,27 +1318,73 @@ msgstr "" msgid "Market Cap" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:42 +msgid "Max Amount to Move:" +msgstr "" + #, elixir-format #: lib/block_scout_web/views/transaction_view.ex:243 msgid "Max of" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/tokens/instance/metadata/index.html.eex:18 +#: lib/block_scout_web/templates/tokens/instance/overview/_tabs.html.eex:10 +#: lib/block_scout_web/views/tokens/instance/overview_view.ex:176 +msgid "Metadata" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:4 msgid "Method Id" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/block/_tile.html.eex:38 +#: lib/block_scout_web/templates/block/overview.html.eex:124 +#: lib/block_scout_web/templates/chain/_block.html.eex:15 +msgid "Miner" +msgstr "" + #, elixir-format #: lib/block_scout_web/views/block_view.ex:60 #: lib/block_scout_web/views/block_view.ex:65 msgid "Miner Reward" msgstr "" +#, elixir-format +#: +#: lib/block_scout_web/templates/common_components/_minimal_proxy_pattern.html.eex:3 +msgid "Minimal Proxy Contract for" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:22 +msgid "Minimum Stake Allowed:" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:17 +msgid "Minimum Stake:" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:24 +msgid "Mining Address:" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:223 msgid "Model" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:58 +msgid "Module" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:12 msgid "More internal transactions have come in" @@ -1077,12 +1397,24 @@ msgstr "" msgid "More transactions have come in" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:10 +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:57 +msgid "Move Stake" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:63 #: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:74 msgid "Must be set to:" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_rows.html.eex:34 +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:186 +msgid "N/A" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:52 #: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:59 @@ -1098,6 +1430,17 @@ msgstr "" msgid "New Smart Contract Verification" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/address_contract_verification/new.html.eex:75 +#: lib/block_scout_web/templates/address_contract_verification/new.html.eex:82 +msgid "Next" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:6 +msgid "Next epoch in" +msgstr "" + #, elixir-format #: #: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:55 @@ -1107,6 +1450,17 @@ msgstr "" msgid "No" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_empty_content.html.eex:11 +msgid "No Information" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/block/overview.html.eex:73 +#: lib/block_scout_web/templates/transaction/overview.html.eex:113 +msgid "Nonce" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/internal_transaction/_tile.html.eex:36 #: lib/block_scout_web/templates/transaction/_tile.html.eex:76 @@ -1114,16 +1468,27 @@ msgid "OUT" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:45 +#: lib/block_scout_web/templates/address_contract/index.html.eex:53 msgid "Optimization enabled" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:54 +#: lib/block_scout_web/templates/address_contract/index.html.eex:62 #: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:114 msgid "Optimization runs" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:62 +msgid "Order Withdrawal" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_stats_item_account.html.eex:49 +#: lib/block_scout_web/templates/stakes/_stakes_stats_item_account.html.eex:50 +msgid "Ordered" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/layout/_footer.html.eex:71 msgid "Other Explorers" @@ -1171,26 +1536,80 @@ msgid "Pending Transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:24 -msgid "Potential matches from our contract method database:" +#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:45 +msgid "Place stake" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/chain/show.html.eex:42 -#: lib/block_scout_web/templates/layout/app.html.eex:32 -msgid "Price" +#: lib/block_scout_web/templates/address/_custom_view_df_title.html.eex:9 +#: lib/block_scout_web/templates/address/_custom_view_df_title.html.eex:13 +msgid "Play" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/common_components/_btn_qr_code.html.eex:10 -#: lib/block_scout_web/templates/common_components/_modal_qr_code.html.eex:5 -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:83 -msgid "QR Code" +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:11 +msgid "Please, sign transaction and wait for its mining..." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:89 -msgid "Query" +#: lib/block_scout_web/templates/stakes/_stakes_progress.html.eex:19 +#: lib/block_scout_web/templates/stakes/_table.html.eex:15 +msgid "Pool" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:9 +msgid "Pool description" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:8 +msgid "Pool name" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/channels/stakes_channel.ex:884 +msgid "Pools searching is already in progress for this address" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/block/overview.html.eex:84 +msgid "Position %{index}" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:55 +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:57 +msgid "Potential Reward Share" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:24 +msgid "Potential matches from our contract method database:" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_topnav.html.eex:254 +msgid "Press / and focus will be moved to the search field" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/chain/show.html.eex:42 +#: lib/block_scout_web/templates/layout/app.html.eex:32 +msgid "Price" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/common_components/_btn_qr_code.html.eex:10 +#: lib/block_scout_web/templates/common_components/_modal_qr_code.html.eex:5 +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:83 +msgid "QR Code" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:89 +msgid "Query" msgstr "" #, elixir-format @@ -1210,12 +1629,47 @@ msgstr "" msgid "Raw Trace" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/address/_tabs.html.eex:81 +#: lib/block_scout_web/templates/tokens/overview/_tabs.html.eex:25 +#: lib/block_scout_web/views/address_view.ex:349 +#: lib/block_scout_web/views/tokens/overview_view.ex:43 +msgid "Read Contract" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address/_tabs.html.eex:88 +#: lib/block_scout_web/views/address_view.ex:350 +msgid "Read Proxy" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:32 +msgid "Reason for Ban: %{ban_reason}" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:58 +msgid "Recalculate" +msgstr "" + #, elixir-format #: #: lib/block_scout_web/templates/common_components/_pagination_container.html.eex:13 msgid "Records" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_table.html.eex:58 +msgid "Refresh now" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:12 +msgid "Remove My Pool" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:155 msgid "Request URL" @@ -1240,6 +1694,11 @@ msgstr "" msgid "Responses" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/transaction/overview.html.eex:84 +msgid "Revert reason" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/block/_tile.html.eex:48 #: lib/block_scout_web/templates/chain/_block.html.eex:24 @@ -1247,11 +1706,27 @@ msgstr "" msgid "Reward" msgstr "" +#, elixir-format +#: lib/block_scout_web/channels/stakes_channel.ex:925 +msgid "Reward calculating is already in progress for this address" +msgstr "" + +#, elixir-format +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:61 +msgid "Reward distribution is based on stake amount. Validator receives at least %{min}% of the pool reward." +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/admin/dashboard/index.html.eex:21 msgid "Run" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:10 +msgid "Save changes" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/address_logs/index.html.eex:16 #: lib/block_scout_web/templates/layout/_topnav.html.eex:217 @@ -1264,6 +1739,11 @@ msgstr "" msgid "Search by address, token symbol name, transaction hash, or block number" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/layout/_topnav.html.eex:215 +msgid "Search by address, token symbol, name, transaction hash, or block number" +msgstr "" + #, elixir-format #: lib/block_scout_web/templates/layout/_network_selector.html.eex:18 msgid "Search network" @@ -1275,6 +1755,11 @@ msgstr "" msgid "Search tokens" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward.html.eex:9 +msgid "Searching for pools you have ever staked into. Please, wait..." +msgstr "" + #, elixir-format #: lib/block_scout_web/views/internal_transaction_view.ex:27 msgid "Self-Destruct" @@ -1286,6 +1771,11 @@ msgstr "" msgid "Server Response" msgstr "" +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:65 +msgid "Share of Pool’s Reward" +msgstr "" + #, elixir-format #: #: lib/block_scout_web/templates/common_components/_pagination_container.html.eex:7 @@ -1303,8 +1793,13 @@ msgid "Show Validator Info" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block/overview.html.eex:150 -msgid "Block Rewards" +#: lib/block_scout_web/templates/stakes/_stakes_title.html.eex:22 +msgid "Show banned only" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_stakes_title.html.eex:28 +msgid "Show only those I have stake in" msgstr "" #, elixir-format @@ -1341,1101 +1836,585 @@ msgid "Sorry, We are unable to locate this transaction Hash" msgstr "" #, elixir-format -#: lib/block_scout_web/views/internal_transaction_view.ex:24 -msgid "Static Call" +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:7 +msgid "Source Pool" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_footer.html.eex:37 -msgid "Submit an Issue" +#: +#: lib/block_scout_web/templates/address_contract_verification_via_json/new.html.eex:23 +msgid "Sources and Metadata JSON" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_footer.html.eex:40 -msgid "Support" +#: lib/block_scout_web/templates/address_contract_verification/new.html.eex:40 +msgid "Sourcify: Sources and metadata JSON file" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_footer.html.eex:60 -msgid "Test Networks" +#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:7 +msgid "Stake" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:23 -msgid "Testnet" +#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:43 +msgid "Stake More" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_validation/index.html.eex:20 -msgid "There are no blocks validated by this address." +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:64 +msgid "Stake placed on a candidate pool or an active validator pool during the current staking epoch can be moved from one pool to another. Active stake cannot be moved. To re-delegate active stake: order a withdrawal, claim the amount on the next staking epoch, and stake the amount on a different pool." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/block/index.html.eex:20 -msgid "There are no blocks." +#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:53 +msgid "Stake placed on a pool is pending for the current staking epoch. It will be applied to the next staking epoch. You may withdraw or move pending stake at any time until it becomes active. Once active (the pool you staked with becomes a validator), a withdrawal order can be placed. This amount will be available to claim after that staking epoch is complete." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_logs/index.html.eex:28 -msgid "There are no logs for this address." +#: lib/block_scout_web/templates/stakes/_stakes_stats_item_account.html.eex:45 +#: lib/block_scout_web/templates/stakes/_stakes_stats_item_account.html.eex:46 +msgid "Staked" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/pending_transaction/index.html.eex:25 -msgid "There are no pending transactions." +#: lib/block_scout_web/templates/stakes/_table.html.eex:28 +msgid "Staked Amount" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction_token_transfer/index.html.eex:19 -msgid "There are no token transfers for this transaction" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:26 +msgid "Staker's Address" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/index.html.eex:34 -msgid "There are no transactions." +#: lib/block_scout_web/templates/layout/_topnav.html.eex:156 +msgid "Stakes" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_coin_balance/index.html.eex:43 -msgid "There is no coin history for this address." +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:59 +#: lib/block_scout_web/templates/stakes/_stakes_progress.html.eex:25 +#: lib/block_scout_web/templates/stakes/_table.html.eex:34 +msgid "Stakes Ratio" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_decompiled_contract/index.html.eex:29 -msgid "There is no decompilded contracts for this address." +#: lib/block_scout_web/templates/layout/_topnav.html.eex:162 +msgid "Staking" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_coin_balance/index.html.eex:29 -#: lib/block_scout_web/templates/chain/show.html.eex:9 -msgid "There was a problem loading the chart." +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:20 +msgid "Staking Address:" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/api_docs/index.html.eex:6 -msgid "This API is provided for developers transitioning their applications from Etherscan to BlockScout. It supports GET and POST requests." +#: lib/block_scout_web/channels/stakes_channel.ex:928 +msgid "Staking epochs are not specified or not in the allowed range" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:7 -msgid "This API is provided to support some rpc methods in the exact format specified for ethereum nodes, which can be found " +#: lib/block_scout_web/views/internal_transaction_view.ex:24 +msgid "Static Call" msgstr "" #, elixir-format -#: lib/block_scout_web/views/block_transaction_view.ex:11 -msgid "This block has not been processed yet." +#: lib/block_scout_web/templates/layout/_footer.html.eex:37 +msgid "Submit an Issue" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:10 -msgid "This is useful to allow sending requests to blockscout without having to change anything about the request." +#: lib/block_scout_web/templates/transaction/_emission_reward_tile.html.eex:8 +#: lib/block_scout_web/views/transaction_view.ex:263 +msgid "Success" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:26 -msgid "To have guaranteed accuracy, use the link above to verify the contract's source code." +#: lib/block_scout_web/templates/layout/_footer.html.eex:40 +msgid "Support" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_logs/_logs.html.eex:6 -#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:8 -#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:6 -msgid "To see accurate decoded input data, the contract must be verified." +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:38 +msgid "Swap STAKE on Honeyswap" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_logs/index.html.eex:14 -msgid "Topic" +#: lib/block_scout_web/templates/transaction/_pending_tile.html.eex:21 +#: lib/block_scout_web/templates/transaction/_tile.html.eex:40 +#: lib/block_scout_web/templates/transaction/overview.html.eex:118 +msgid "TX Fee" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_logs/_logs.html.eex:77 -#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:80 -msgid "Topics" +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:67 +msgid "Target Pool" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:86 -msgid "Total Supply" +#: lib/block_scout_web/templates/layout/_footer.html.eex:28 +msgid "Telegram" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/chain/show.html.eex:154 -msgid "Total blocks" +#: lib/block_scout_web/templates/layout/_footer.html.eex:60 +msgid "Test Networks" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/_metatags.html.eex:3 -msgid "Transaction %{transaction} - %{subnetwork} Explorer" +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:23 +msgid "Testnet" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/_metatags.html.eex:11 -msgid "Transaction %{transaction}, %{subnetwork} %{transaction}" +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:89 +msgid "The Number of Delegators in the Pool" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:28 -msgid "Transaction Details" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:2 -#: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:16 -msgid "Transaction Inputs" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:135 -msgid "Transaction Speed" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tile.html.eex:31 -msgid "Transactions sent" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:40 -#: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:47 -msgid "Try it out" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/_footer.html.eex:25 -msgid "Twitter" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/log/_data_decoded_view.html.eex:5 -#: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:19 -msgid "Type" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:156 -msgid "UTF-8" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/views/block_view.ex:74 -msgid "Uncle Reward" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/block/overview.html.eex:80 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:43 -msgid "Uncles" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/inventory/_token.html.eex:6 -msgid "Unique Token" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:12 -msgid "Use the search box to find a hosted network, or select from the list of available networks below." -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:290 -msgid "Used" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:59 -msgid "Validated" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/index.html.eex:11 -msgid "Validated Transactions" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_validator_metadata_modal.html.eex:30 -msgid "Validator Creation Date" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_validator_metadata_modal.html.eex:5 -msgid "Validator Data" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/overview.html.eex:50 -msgid "Validator Info" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:215 -#: lib/block_scout_web/templates/transaction/overview.html.eex:268 -msgid "Value" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:24 -#: lib/block_scout_web/templates/address_contract/index.html.eex:164 -#: lib/block_scout_web/templates/address_contract/index.html.eex:176 -#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:19 -msgid "Verify & Publish" -msgstr "" - -#, elixir-format -#: -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:301 -#: lib/block_scout_web/templates/address_contract_verification_via_json/new.html.eex:52 -msgid "Verify & publish" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address_logs/_logs.html.eex:16 -#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:18 -#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:16 -msgid "Verify the contract " -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/_footer.html.eex:86 -msgid "Version" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/chain/show.html.eex:177 -msgid "View All Blocks" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/chain/show.html.eex:235 -msgid "View All Transactions" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:16 -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:20 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:66 -msgid "View Contract" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/_tile.html.eex:61 -msgid "View Less Transfers" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/_tile.html.eex:60 -msgid "View More Transfers" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_metatags.html.eex:9 -msgid "View the account balance, transactions, and other data for %{address} on the %{network}" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/block/_metatags.html.eex:10 -msgid "View the transactions, token transfers, and uncles for block number %{block_number}" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/_metatags.html.eex:10 -msgid "View transaction %{transaction} on %{subnetwork}" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:119 -msgid "WEI" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/chain/show.html.eex:162 -msgid "Wallet addresses" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/views/wei_helpers.ex:76 -msgid "Wei" -msgstr "" - -#, elixir-format -#: -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:60 -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:103 -#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:146 -#: lib/block_scout_web/templates/stakes/_rows.html.eex:24 -msgid "Yes" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/overview.html.eex:103 -msgid "at" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:12 -msgid "custom RPC" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/views/address_contract_view.ex:24 -msgid "false" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address_logs/_logs.html.eex:16 -#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:18 -#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:16 -msgid "here" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:9 -msgid "here." -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/invalid.html.eex:8 -msgid "is not a valid transaction hash" -msgstr "" - -#, elixir-format -#: -#: lib/block_scout_web/templates/common_components/_pagination_container.html.eex:41 -msgid "of" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:58 -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:69 -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:81 -#: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:70 -msgid "required" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:59 -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:70 -msgid "string" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/views/address_contract_view.ex:23 -msgid "true" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_validator_metadata_modal.html.eex:37 -#: lib/block_scout_web/templates/common_components/_modal_qr_code.html.eex:6 -#: lib/block_scout_web/templates/common_components/_modal_qr_code.html.eex:14 -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:84 -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:92 -msgid "Close" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/instance/metadata/index.html.eex:20 -msgid "Copy Metadata" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:32 -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:33 -msgid "Copy Token ID" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:52 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:74 -msgid "Decimals" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:286 -msgid "Gas" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/not_found.html.eex:26 -msgid "If it still does not show up after 1 hour, please check with your sender/exchange/wallet/transaction provider for additional information." -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/app.html.eex:29 -msgid "Indexing Tokens" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address_coin_balance/index.html.eex:26 -msgid "Loading chart" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:120 -msgid "Log Index" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/instance/metadata/index.html.eex:18 -#: lib/block_scout_web/templates/tokens/instance/overview/_tabs.html.eex:10 -#: lib/block_scout_web/views/tokens/instance/overview_view.ex:176 -msgid "Metadata" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:58 -msgid "Module" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/chain/show.html.eex:133 -msgid "Total transactions" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:50 -msgid "Transfers" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:168 -#: lib/block_scout_web/templates/transaction/overview.html.eex:181 -msgid "Copy Txn Input" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:48 -#: lib/block_scout_web/templates/address_validation/index.html.eex:15 -#: lib/block_scout_web/views/address_view.ex:354 -msgid "Blocks Validated" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:58 -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:165 -#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:187 -#: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:126 -#: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:149 -#: lib/block_scout_web/views/address_view.ex:347 -msgid "Code" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:34 -#: lib/block_scout_web/views/address_view.ex:353 -msgid "Coin Balance History" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/views/address_view.ex:348 -msgid "Decompiled Code" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:28 -#: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:21 -#: lib/block_scout_web/templates/transaction/_tabs.html.eex:11 -#: lib/block_scout_web/templates/transaction_internal_transaction/index.html.eex:6 -#: lib/block_scout_web/views/address_view.ex:344 -#: lib/block_scout_web/views/transaction_view.ex:406 -msgid "Internal Transactions" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:41 -#: lib/block_scout_web/templates/address_logs/index.html.eex:10 -#: lib/block_scout_web/templates/transaction/_tabs.html.eex:17 -#: lib/block_scout_web/templates/transaction_log/index.html.eex:8 -#: lib/block_scout_web/views/address_view.ex:355 -#: lib/block_scout_web/views/transaction_view.ex:407 -msgid "Logs" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:81 -#: lib/block_scout_web/templates/tokens/overview/_tabs.html.eex:25 -#: lib/block_scout_web/views/address_view.ex:349 -#: lib/block_scout_web/views/tokens/overview_view.ex:43 -msgid "Read Contract" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:21 -#: lib/block_scout_web/templates/address_token/index.html.eex:10 -#: lib/block_scout_web/templates/address_token_transfer/index.html.eex:13 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:89 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:115 -#: lib/block_scout_web/templates/tokens/index.html.eex:4 -#: lib/block_scout_web/views/address_view.ex:343 -msgid "Tokens" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:7 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:17 -#: lib/block_scout_web/templates/block_transaction/index.html.eex:10 -#: lib/block_scout_web/templates/block_transaction/index.html.eex:18 -#: lib/block_scout_web/templates/chain/show.html.eex:236 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:55 -#: lib/block_scout_web/views/address_view.ex:345 -msgid "Transactions" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:252 -msgid " Token Burning" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/transfer/_token_transfer.html.eex:8 -#: lib/block_scout_web/templates/transaction_token_transfer/_token_transfer.html.eex:6 -#: lib/block_scout_web/views/transaction_view.ex:343 -msgid "Token Burning" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:241 -msgid " Token Minting" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/tokens/transfer/_token_transfer.html.eex:10 -#: lib/block_scout_web/templates/transaction_token_transfer/_token_transfer.html.eex:8 -#: lib/block_scout_web/views/transaction_view.ex:342 -msgid "Token Minting" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/views/block_view.ex:62 -msgid "Chore Reward" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:84 -msgid "Revert reason" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:88 -#: lib/block_scout_web/views/address_view.ex:350 -msgid "Read Proxy" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:95 -#: lib/block_scout_web/views/address_view.ex:351 -msgid "Write Contract" -msgstr "" - -#, elixir-format -#: -#: lib/block_scout_web/templates/smart_contract/_pending_contract_write.html.eex:12 -msgid "Waiting for transaction's confirmation..." -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:89 -msgid "Write" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_tabs.html.eex:102 -#: lib/block_scout_web/views/address_view.ex:352 -msgid "Write Proxy" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:154 -msgid "Apps" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction_raw_trace/index.html.eex:15 -msgid "Copy Raw Trace" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:215 -msgid "Search by address, token symbol, name, transaction hash, or block number" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:18 -msgid "All functions displayed below are from ABI of that contract. In order to verify current contract, proceed with" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:24 -msgid "All metadata displayed below is from that contract. In order to verify current contract, click" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:24 -msgid "button" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:21 -msgid "page" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/address/_custom_view_df_title.html.eex:9 -#: lib/block_scout_web/templates/address/_custom_view_df_title.html.eex:13 -msgid "Play" +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:39 +msgid "The amount can be claimed after the current epoch finishes." msgstr "" -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:6 -msgid "%{blocks} block" -msgid_plural "%{blocks} blocks" -msgstr[0] "" -msgstr[1] "" - #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:43 -msgid " Working Stake Amount is an amount which is accounted and working at the current staking epoch." +#: lib/block_scout_web/templates/stakes/_table.html.eex:23 +msgid "The first amount is the candidate’s own stake, the second is the total amount staked into the pool by the candidate and all delegators." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_metatags.html.eex:2 -msgid "%{subnetwork} Staking DApp - BlockScout" +#: lib/block_scout_web/templates/stakes/_table.html.eex:25 +msgid "The first amount is the pool owner’s stake, the second is the total amount staked into the pool by the pool owner and all delegators." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_rows.html.eex:26 -#: lib/block_scout_web/templates/stakes/_stakes_progress.html.eex:27 -msgid "(inactive pool)" +#: lib/block_scout_web/templates/stakes/_table.html.eex:21 +msgid "The first amount is the validator’s own stake, the second is the total amount staked into the pool by the validator and all delegators." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:27 -msgid "All pool participant addresses. The top address belongs to the %{pool_type}." +#: lib/block_scout_web/templates/stakes/_table.html.eex:43 +msgid "The number of delegators providing stake to the pool. Click on the number to see more details." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:27 -msgid "Already Ordered:" +#: lib/block_scout_web/templates/stakes/_table.html.eex:34 +msgid "The percentage of stake in a single pool relative to the total amount staked in all active pools. A higher ratio results in a greater likelihood of validator pool selection." msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:10 -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:14 -#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:11 -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:11 -msgid "Amount" +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:105 +msgid "The rest addresses are delegators of its pool." msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:41 -msgid "Amount of %{symbol} placed by an address." -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:48 -msgid "Available Now:" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:32 -msgid "Banned" +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:34 +msgid "The staking epochs for which the reward could be claimed (read-only field):" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_rows.html.eex:46 -msgid "Banned until block #%{banned_until} (%{estimated_unban_day})" +#: lib/block_scout_web/templates/stakes/_table.html.eex:58 +msgid "The table refreshed block(s) ago." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_empty_content.html.eex:13 -#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:5 -#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:33 -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:24 -msgid "Become a Candidate" +#: lib/block_scout_web/templates/address_validation/index.html.eex:20 +msgid "There are no blocks validated by this address." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:5 -msgid "Block number" +#: lib/block_scout_web/templates/block/index.html.eex:20 +msgid "There are no blocks." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:10 -msgid "Candidate and Validator Pool Addresses. Current validator pools are specified by a checkmark." +#: lib/block_scout_web/templates/tokens/holder/index.html.eex:27 +msgid "There are no holders for this Token." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:47 -msgid "Candidate’s Staked Amount" +#: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:58 +msgid "There are no internal transactions for this address." msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:6 -msgid "Choose Pool" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:22 -msgid "Choose Target Pool" +#: lib/block_scout_web/templates/transaction_internal_transaction/index.html.eex:17 +msgid "There are no internal transactions for this transaction." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_withdrawal.html.eex:7 -msgid "Claim Ordered Withdraw" +#: lib/block_scout_web/templates/address_logs/index.html.eex:28 +msgid "There are no logs for this address." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward.html.eex:6 -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:59 -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:30 -msgid "Claim Reward" +#: lib/block_scout_web/templates/transaction_log/index.html.eex:20 +msgid "There are no logs for this transaction." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:40 -msgid "Claim for" +#: lib/block_scout_web/templates/pending_transaction/index.html.eex:25 +msgid "There are no pending transactions." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_withdrawal.html.eex:18 -msgid "Claim the Amount" +#: lib/block_scout_web/templates/address_token_transfer/index.html.eex:53 +msgid "There are no token transfers for this address." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:35 -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:37 -msgid "Current Stake Amount" +#: lib/block_scout_web/templates/transaction_token_transfer/index.html.eex:19 +msgid "There are no token transfers for this transaction" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:36 -msgid "Current Stake:" +#: lib/block_scout_web/templates/address_token/index.html.eex:22 +msgid "There are no tokens for this address." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_metatags.html.eex:6 -msgid "DApp for Staking %{symbol} tokens" +#: lib/block_scout_web/templates/tokens/inventory/index.html.eex:27 +msgid "There are no tokens." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_progress.html.eex:31 -#: lib/block_scout_web/templates/stakes/_table.html.eex:43 -msgid "Delegators" +#: lib/block_scout_web/templates/address_transaction/index.html.eex:55 +msgid "There are no transactions for this address." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:53 -msgid "Delegators’ Staked Amount" +#: lib/block_scout_web/templates/block_transaction/index.html.eex:28 +msgid "There are no transactions for this block." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:4 -msgid "Epoch number" +#: lib/block_scout_web/templates/transaction/index.html.eex:34 +msgid "There are no transactions." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:44 -msgid "Epochs range(s) or enum, e.g.: 5-9,23-27,47,50" +#: lib/block_scout_web/templates/tokens/instance/transfer/index.html.eex:28 +#: lib/block_scout_web/templates/tokens/transfer/index.html.eex:26 +msgid "There are no transfers for this Token." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:77 -msgid "How Many Times this Address has been Banned" +#: lib/block_scout_web/templates/address_coin_balance/index.html.eex:43 +msgid "There is no coin history for this address." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:71 -msgid "How Many Times this Address has been a Validator" +#: lib/block_scout_web/templates/address_decompiled_contract/index.html.eex:29 +msgid "There is no decompilded contracts for this address." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:12 -msgid "Inactive Pool Addresses. Current validator pools are specified by a checkmark." +#: lib/block_scout_web/templates/stakes/_stakes_empty_content.html.eex:12 +msgid "There is no information currently available for this view. Deselect filters or choose another pool view to see current info. To participate as a delegator, select a pool address and click the Stake icon. To become a candidate, click the button below." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:125 -msgid "It's me!" +#: lib/block_scout_web/templates/address_coin_balance/index.html.eex:29 +#: lib/block_scout_web/templates/chain/show.html.eex:9 +msgid "There was a problem loading the chart." msgstr "" #, elixir-format -#: lib/block_scout_web/channels/stakes_channel.ex:828 -msgid "JSON RPC error" +#: lib/block_scout_web/templates/api_docs/index.html.eex:6 +msgid "This API is provided for developers transitioning their applications from Etherscan to BlockScout. It supports GET and POST requests." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:83 -msgid "Likelihood of Becoming a Validator on the Next Epoch" +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:7 +msgid "This API is provided to support some rpc methods in the exact format specified for ethereum nodes, which can be found " msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:127 -msgid "ME" +#: lib/block_scout_web/views/block_transaction_view.ex:11 +msgid "This block has not been processed yet." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:42 -msgid "Max Amount to Move:" +#: lib/block_scout_web/templates/address_contract/index.html.eex:33 +msgid "This contract has been partially verified via Sourcify." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:22 -msgid "Minimum Stake Allowed:" +#: lib/block_scout_web/templates/address_contract/index.html.eex:37 +msgid "This contract has been verified via Sourcify." msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:17 -msgid "Minimum Stake:" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:24 -msgid "Mining Address:" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:10 -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:57 -msgid "Move Stake" +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:102 +msgid "This is a %{pool_type}." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:6 -msgid "Next epoch in" +#: lib/block_scout_web/templates/stakes/_rows.html.eex:5 +msgid "This is a validator" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_empty_content.html.eex:11 -msgid "No Information" +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:10 +msgid "This is useful to allow sending requests to blockscout without having to change anything about the request." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:62 -msgid "Order Withdrawal" +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:31 +msgid "This pool is banned until block #%{banned_until} (%{estimated_unban_day})" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_stats_item_account.html.eex:49 -#: lib/block_scout_web/templates/stakes/_stakes_stats_item_account.html.eex:50 -msgid "Ordered" +#: lib/block_scout_web/templates/transaction/overview.html.eex:61 +msgid "This transaction is pending confirmation." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:45 -msgid "Place stake" +#: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:36 +#: lib/block_scout_web/templates/address_token_transfer/index.html.eex:34 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:32 +#: lib/block_scout_web/views/address_internal_transaction_view.ex:8 +#: lib/block_scout_web/views/address_token_transfer_view.ex:8 +#: lib/block_scout_web/views/address_transaction_view.ex:8 +msgid "To" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_progress.html.eex:19 -#: lib/block_scout_web/templates/stakes/_table.html.eex:15 -msgid "Pool" +#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:26 +msgid "To have guaranteed accuracy, use the link above to verify the contract's source code." msgstr "" #, elixir-format -#: lib/block_scout_web/channels/stakes_channel.ex:884 -msgid "Pools searching is already in progress for this address" +#: lib/block_scout_web/templates/address_logs/_logs.html.eex:6 +#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:8 +#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:6 +msgid "To see accurate decoded input data, the contract must be verified." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:32 -msgid "Reason for Ban: %{ban_reason}" +#: lib/block_scout_web/templates/layout/_topnav.html.eex:25 +msgid "Toggle navigation" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:58 -msgid "Recalculate" +#: lib/block_scout_web/templates/tokens/transfer/_token_transfer.html.eex:8 +#: lib/block_scout_web/templates/transaction_token_transfer/_token_transfer.html.eex:6 +#: lib/block_scout_web/views/transaction_view.ex:343 +msgid "Token Burning" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:58 -msgid "Refresh now" +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:10 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:32 +msgid "Token Details" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:12 -msgid "Remove My Pool" +#: lib/block_scout_web/templates/tokens/holder/index.html.eex:15 +#: lib/block_scout_web/templates/tokens/overview/_tabs.html.eex:9 +#: lib/block_scout_web/views/tokens/overview_view.ex:42 +msgid "Token Holders" msgstr "" #, elixir-format -#: lib/block_scout_web/channels/stakes_channel.ex:925 -msgid "Reward calculating is already in progress for this address" +#: lib/block_scout_web/templates/tokens/inventory/_token.html.eex:11 +msgid "Token ID" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward.html.eex:9 -msgid "Searching for pools you have ever staked into. Please, wait..." +#: lib/block_scout_web/templates/tokens/transfer/_token_transfer.html.eex:10 +#: lib/block_scout_web/templates/transaction_token_transfer/_token_transfer.html.eex:8 +#: lib/block_scout_web/views/transaction_view.ex:342 +msgid "Token Minting" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:65 -msgid "Share of Pool’s Reward" +#: lib/block_scout_web/templates/tokens/transfer/_token_transfer.html.eex:12 +#: lib/block_scout_web/templates/transaction_token_transfer/_token_transfer.html.eex:10 +#: lib/block_scout_web/views/transaction_view.ex:344 +msgid "Token Transfer" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_title.html.eex:22 -msgid "Show banned only" +#: lib/block_scout_web/templates/address/_tabs.html.eex:13 +#: lib/block_scout_web/templates/address_token_transfer/index.html.eex:19 +#: lib/block_scout_web/templates/tokens/instance/overview/_tabs.html.eex:3 +#: lib/block_scout_web/templates/tokens/instance/transfer/index.html.eex:16 +#: lib/block_scout_web/templates/tokens/overview/_tabs.html.eex:3 +#: lib/block_scout_web/templates/tokens/transfer/index.html.eex:14 +#: lib/block_scout_web/templates/transaction/_tabs.html.eex:4 +#: lib/block_scout_web/templates/transaction_token_transfer/index.html.eex:7 +#: lib/block_scout_web/views/address_view.ex:346 +#: lib/block_scout_web/views/tokens/instance/overview_view.ex:175 +#: lib/block_scout_web/views/tokens/overview_view.ex:41 +#: lib/block_scout_web/views/transaction_view.ex:405 +msgid "Token Transfers" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_title.html.eex:28 -msgid "Show only those I have stake in" +#: lib/block_scout_web/templates/address/_tabs.html.eex:21 +#: lib/block_scout_web/templates/address_token/index.html.eex:10 +#: lib/block_scout_web/templates/address_token_transfer/index.html.eex:13 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:89 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:115 +#: lib/block_scout_web/templates/tokens/index.html.eex:4 +#: lib/block_scout_web/views/address_view.ex:343 +msgid "Tokens" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:7 -msgid "Source Pool" +#: lib/block_scout_web/templates/address/_metatags.html.eex:13 +msgid "Top Accounts - %{subnetwork} Explorer" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:7 -msgid "Stake" +#: lib/block_scout_web/templates/address_logs/index.html.eex:14 +msgid "Topic" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:43 -msgid "Stake More" +#: lib/block_scout_web/templates/address_logs/_logs.html.eex:77 +#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:80 +msgid "Topics" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:64 -msgid "Stake placed on a candidate pool or an active validator pool during the current staking epoch can be moved from one pool to another. Active stake cannot be moved. To re-delegate active stake: order a withdrawal, claim the amount on the next staking epoch, and stake the amount on a different pool." +#: lib/block_scout_web/templates/block/overview.html.eex:67 +msgid "Total Difficulty" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:53 -msgid "Stake placed on a pool is pending for the current staking epoch. It will be applied to the next staking epoch. You may withdraw or move pending stake at any time until it becomes active. Once active (the pool you staked with becomes a validator), a withdrawal order can be placed. This amount will be available to claim after that staking epoch is complete." +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:86 +msgid "Total Supply" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_stats_item_account.html.eex:45 -#: lib/block_scout_web/templates/stakes/_stakes_stats_item_account.html.eex:46 -msgid "Staked" +#: lib/block_scout_web/templates/chain/show.html.eex:154 +msgid "Total blocks" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:28 -msgid "Staked Amount" +#: lib/block_scout_web/templates/chain/show.html.eex:133 +msgid "Total transactions" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:26 -msgid "Staker's Address" +#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:52 +msgid "Trade STAKE on BitMax" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:59 -#: lib/block_scout_web/templates/stakes/_stakes_progress.html.eex:25 -#: lib/block_scout_web/templates/stakes/_table.html.eex:34 -msgid "Stakes Ratio" +#: lib/block_scout_web/templates/address_logs/_logs.html.eex:25 +#: lib/block_scout_web/views/transaction_view.ex:354 +msgid "Transaction" msgstr "" #, elixir-format -#: lib/block_scout_web/channels/stakes_channel.ex:928 -msgid "Staking epochs are not specified or not in the allowed range" +#: lib/block_scout_web/templates/transaction/_metatags.html.eex:3 +msgid "Transaction %{transaction} - %{subnetwork} Explorer" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:67 -msgid "Target Pool" +#: lib/block_scout_web/templates/transaction/_metatags.html.eex:11 +msgid "Transaction %{transaction}, %{subnetwork} %{transaction}" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:89 -msgid "The Number of Delegators in the Pool" +#: lib/block_scout_web/templates/transaction/overview.html.eex:28 +msgid "Transaction Details" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:39 -msgid "The amount can be claimed after the current epoch finishes." +#: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:2 +#: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:16 +msgid "Transaction Inputs" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:23 -msgid "The first amount is the candidate’s own stake, the second is the total amount staked into the pool by the candidate and all delegators." +#: lib/block_scout_web/templates/transaction/overview.html.eex:135 +msgid "Transaction Speed" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:25 -msgid "The first amount is the pool owner’s stake, the second is the total amount staked into the pool by the pool owner and all delegators." +#: lib/block_scout_web/templates/address/_tabs.html.eex:7 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:17 +#: lib/block_scout_web/templates/block_transaction/index.html.eex:10 +#: lib/block_scout_web/templates/block_transaction/index.html.eex:18 +#: lib/block_scout_web/templates/chain/show.html.eex:236 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:55 +#: lib/block_scout_web/views/address_view.ex:345 +msgid "Transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:21 -msgid "The first amount is the validator’s own stake, the second is the total amount staked into the pool by the validator and all delegators." +#: lib/block_scout_web/templates/address/_tile.html.eex:31 +msgid "Transactions sent" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:43 -msgid "The number of delegators providing stake to the pool. Click on the number to see more details." +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:50 +msgid "Transfers" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:34 -msgid "The percentage of stake in a single pool relative to the total amount staked in all active pools. A higher ratio results in a greater likelihood of validator pool selection." +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:40 +#: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:47 +msgid "Try it out" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:105 -msgid "The rest addresses are delegators of its pool." +#: lib/block_scout_web/templates/layout/_footer.html.eex:25 +msgid "Twitter" msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:34 -msgid "The staking epochs for which the reward could be claimed (read-only field):" +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:53 +msgid "Tx Gas Limit:" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:58 -msgid "The table refreshed block(s) ago." +#: lib/block_scout_web/templates/chain/show.html.eex:93 +#: lib/block_scout_web/templates/layout/app.html.eex:34 +msgid "Tx/day" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_empty_content.html.eex:12 -msgid "There is no information currently available for this view. Deselect filters or choose another pool view to see current info. To participate as a delegator, select a pool address and click the Stake icon. To become a candidate, click the button below." +#: lib/block_scout_web/templates/log/_data_decoded_view.html.eex:5 +#: lib/block_scout_web/templates/transaction/_decoded_input_body.html.eex:19 +msgid "Type" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:102 -msgid "This is a %{pool_type}." +#: lib/block_scout_web/templates/transaction/overview.html.eex:156 +msgid "UTF-8" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_rows.html.eex:5 -msgid "This is a validator" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:69 +msgid "Unable to find any pools you could claim a reward from." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:31 -msgid "This pool is banned until block #%{banned_until} (%{estimated_unban_day})" +#: lib/block_scout_web/views/block_view.ex:74 +msgid "Uncle Reward" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:53 -msgid "Tx Gas Limit:" +#: lib/block_scout_web/templates/block/overview.html.eex:80 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:43 +msgid "Uncles" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:69 -msgid "Unable to find any pools you could claim a reward from." +#: lib/block_scout_web/templates/tokens/inventory/_token.html.eex:6 +msgid "Unique Token" msgstr "" #, elixir-format @@ -2456,341 +2435,370 @@ msgid "Unknown staker address. Please, choose your account in MetaMask" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:8 -msgid "Validator Pool Addresses." +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:12 +msgid "Use the search box to find a hosted network, or select from the list of available networks below." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:32 -msgid "Validator pools can be banned for misbehavior (such as not revealing secret numbers). Validator and delegator stake contained in a banned pool cannot be withdrawn until the ban is over." +#: lib/block_scout_web/templates/transaction/overview.html.eex:290 +msgid "Used" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:2 -msgid "We found the following pools you can claim reward from:" +#: lib/block_scout_web/templates/layout/_topnav.html.eex:59 +msgid "Validated" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:7 -msgid "Withdraw" +#: lib/block_scout_web/templates/transaction/index.html.eex:11 +msgid "Validated Transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:70 -msgid "Withdraw Now" +#: lib/block_scout_web/templates/address/_validator_metadata_modal.html.eex:30 +msgid "Validator Creation Date" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_rows.html.eex:52 -msgid "Withdraw after block #%{banned_delegators_until} (%{estimated_unban_day})" +#: lib/block_scout_web/templates/address/_validator_metadata_modal.html.eex:5 +msgid "Validator Data" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_withdrawal.html.eex:22 -msgid "Withdrawal orders made during an active staking epoch are available to claim after the epoch is complete." +#: lib/block_scout_web/templates/address/overview.html.eex:50 +msgid "Validator Info" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_table.html.eex:8 +msgid "Validator Pool Addresses." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/stakes/_table.html.eex:32 +msgid "Validator pools can be banned for misbehavior (such as not revealing secret numbers). Validator and delegator stake contained in a banned pool cannot be withdrawn until the ban is over." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/transaction/overview.html.eex:215 +#: lib/block_scout_web/templates/transaction/overview.html.eex:268 +msgid "Value" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_contract/index.html.eex:24 +#: lib/block_scout_web/templates/address_contract/index.html.eex:152 +#: lib/block_scout_web/templates/address_contract/index.html.eex:164 +#: lib/block_scout_web/templates/address_contract/index.html.eex:195 +#: lib/block_scout_web/templates/address_contract/index.html.eex:207 +#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:19 +msgid "Verify & Publish" msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:35 -msgid "Working Stake Amount" +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:301 +#: lib/block_scout_web/templates/address_contract_verification_via_json/new.html.eex:52 +msgid "Verify & publish" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:34 -msgid "You Can Order:" +#: lib/block_scout_web/templates/address_logs/_logs.html.eex:16 +#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:18 +#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:16 +msgid "Verify the contract " msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:15 -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:12 -msgid "You Staked:" +#: lib/block_scout_web/templates/layout/_footer.html.eex:86 +msgid "Version" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward.html.eex:11 -msgid "You can get your reward for all staking epochs during which the pool was a validator or specify separate epochs if Tx Gas Limit is too high. Tx Gas Limit depends on how long the pool was a validator and how many staking epochs you held your stake in the pool without movement." +#: lib/block_scout_web/templates/chain/show.html.eex:177 +msgid "View All Blocks" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:52 -msgid "You can withdraw this amount right now." +#: lib/block_scout_web/templates/chain/show.html.eex:235 +msgid "View All Transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:38 -msgid "You will be able to withdraw after block #%{banned_delegators_until} (%{estimated_unban_day})" +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:16 +#: lib/block_scout_web/templates/tokens/instance/overview/_details.html.eex:20 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:66 +msgid "View Contract" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:48 -msgid "You will receive:" +#: lib/block_scout_web/templates/transaction/_tile.html.eex:61 +msgid "View Less Transfers" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:22 -#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:28 -msgid "Your Balance:" +#: lib/block_scout_web/templates/transaction/_tile.html.eex:60 +msgid "View More Transfers" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:16 -msgid "Your Current Stake:" +#: lib/block_scout_web/templates/address/_metatags.html.eex:9 +msgid "View the account balance, transactions, and other data for %{address} on the %{network}" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:12 -msgid "Your Mining Address" +#: lib/block_scout_web/templates/block/_metatags.html.eex:10 +msgid "View the transactions, token transfers, and uncles for block number %{block_number}" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_withdrawal.html.eex:11 -msgid "Your ordered amount" +#: lib/block_scout_web/templates/transaction/_metatags.html.eex:10 +msgid "View transaction %{transaction} on %{subnetwork}" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:41 -msgid "all epochs" +#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:119 +msgid "WEI" msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:19 -msgid "candidate" +#: lib/block_scout_web/templates/smart_contract/_pending_contract_write.html.eex:12 +msgid "Waiting for transaction's confirmation..." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:20 -msgid "pool owner" +#: lib/block_scout_web/templates/chain/show.html.eex:162 +msgid "Wallet addresses" msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:42 -msgid "specified epochs only" +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:2 +msgid "We found the following pools you can claim reward from:" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:18 -msgid "validator" +#: lib/block_scout_web/views/wei_helpers.ex:76 +msgid "Wei" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:156 -msgid "Stakes" +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:7 +msgid "Withdraw" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:22 -#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:16 -msgid "Contract is not verified. However, we found a verified contract with the same bytecode in Blockscout DB" +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:70 +msgid "Withdraw Now" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:162 -msgid "Staking" +#: lib/block_scout_web/templates/stakes/_rows.html.eex:52 +msgid "Withdraw after block #%{banned_delegators_until} (%{estimated_unban_day})" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:254 -msgid "Press / and focus will be moved to the search field" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_withdrawal.html.eex:22 +msgid "Withdrawal orders made during an active staking epoch are available to claim after the epoch is complete." msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:55 -msgid "Current Reward Share" +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:35 +msgid "Working Stake Amount" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:63 -msgid "Current Reward Share is calculated based on the Working Stake Amount." +#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:89 +msgid "Write" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:6 -msgid "Delegators of " +#: lib/block_scout_web/templates/address/_tabs.html.eex:95 +#: lib/block_scout_web/views/address_view.ex:351 +msgid "Write Contract" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:55 -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:57 -msgid "Potential Reward Share" +#: lib/block_scout_web/templates/address/_tabs.html.eex:102 +#: lib/block_scout_web/views/address_view.ex:352 +msgid "Write Proxy" msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:61 -msgid "Reward distribution is based on stake amount. Validator receives at least %{min}% of the pool reward." +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:60 +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:103 +#: lib/block_scout_web/templates/address_contract_verification_via_flattened_code/new.html.eex:146 +#: lib/block_scout_web/templates/stakes/_rows.html.eex:24 +msgid "Yes" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:39 -msgid "APY" +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:34 +msgid "You Can Order:" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:79 -msgid "APY & Predicted Reward" +#: lib/block_scout_web/templates/stakes/_stakes_modal_move.html.eex:15 +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:12 +msgid "You Staked:" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_rows.html.eex:34 -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:186 -msgid "N/A" +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward.html.eex:11 +msgid "You can get your reward for all staking epochs during which the pool was a validator or specify separate epochs if Tx Gas Limit is too high. Tx Gas Limit depends on how long the pool was a validator and how many staking epochs you held your stake in the pool without movement." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:80 -msgid "Approximate Current Annual Percentage Yield. If you see N/A, please reopen the popup in a few blocks (APY cannot be calculated at the very beginning of a staking epoch). Predicted Reward is the amount of %{symbol} a participant will receive for staking and can claim once the current epoch ends." +#: lib/block_scout_web/templates/stakes/_stakes_modal_withdraw.html.eex:52 +msgid "You can withdraw this amount right now." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_table.html.eex:39 -msgid "Approximate Current Annual Percentage Yield. If you see N/A, please wait for a few blocks (APY cannot be calculated at the very beginning of a staking epoch)." +#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:38 +msgid "You will be able to withdraw after block #%{banned_delegators_until} (%{estimated_unban_day})" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/bridged_tokens/index.html.eex:6 -msgid "Bridged Tokens from " +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:48 +msgid "You will receive:" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:98 -msgid "Bridged from Ethereum" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:22 +#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:28 +msgid "Your Balance:" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:103 -msgid "Bridged from BSC" +#: lib/block_scout_web/templates/stakes/_stakes_modal_stake.html.eex:16 +msgid "Your Current Stake:" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:45 -msgid "Bridge STAKE to Ethereum" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:12 +msgid "Your Mining Address" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:38 -msgid "Swap STAKE on Honeyswap" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:14 +msgid "Your Pool Name" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_top.html.eex:52 -msgid "Trade STAKE on BitMax" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:16 +msgid "Your Pool Short Description (optional)" msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/common_components/_minimal_proxy_pattern.html.eex:9 -msgid " - minimal bytecode implementation that delegates all calls to a known address" +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_withdrawal.html.eex:11 +msgid "Your ordered amount" msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/common_components/_minimal_proxy_pattern.html.eex:6 -msgid "EIP-1167" +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:41 +msgid "all epochs" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/common_components/_minimal_proxy_pattern.html.eex:3 -msgid "Minimal Proxy Contract for" +#: lib/block_scout_web/templates/address/overview.html.eex:103 +msgid "at" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:20 -msgid "Staking Address:" +#: lib/block_scout_web/templates/address_contract/index.html.eex:24 +msgid "button" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:11 -msgid "Please, sign transaction and wait for its mining..." +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:19 +msgid "candidate" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:9 -msgid "Pool description" +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:12 +msgid "custom RPC" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:8 -msgid "Pool name" +#: lib/block_scout_web/views/address_contract_view.ex:24 +msgid "false" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/stakes/_stakes_modal_pool_info.html.eex:10 -msgid "Save changes" +#: lib/block_scout_web/templates/address_logs/_logs.html.eex:16 +#: lib/block_scout_web/templates/transaction/_decoded_input.html.eex:18 +#: lib/block_scout_web/templates/transaction_log/_logs.html.eex:16 +msgid "here" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:14 -msgid "Your Pool Name" +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:9 +msgid "here." msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/stakes/_stakes_modal_become_candidate.html.eex:16 -msgid "Your Pool Short Description (optional)" +#: lib/block_scout_web/templates/transaction/invalid.html.eex:8 +msgid "is not a valid transaction hash" msgstr "" #, elixir-format #: -#: lib/block_scout_web/templates/address_contract_verification_via_json/new.html.eex:30 -msgid "Drop sources and metadata JSON file or click here" +#: lib/block_scout_web/templates/common_components/_pagination_container.html.eex:41 +msgid "of" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract_verification/new.html.eex:35 -msgid "Flattened source code" +#: lib/block_scout_web/templates/smart_contract/_functions.html.eex:21 +msgid "page" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract_verification/new.html.eex:75 -#: lib/block_scout_web/templates/address_contract_verification/new.html.eex:82 -msgid "Next" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:20 +msgid "pool owner" msgstr "" #, elixir-format -#: -#: lib/block_scout_web/templates/address_contract_verification_via_json/new.html.eex:23 -msgid "Sources and Metadata JSON" +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:58 +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:69 +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:81 +#: lib/block_scout_web/templates/api_docs/_eth_rpc_item.html.eex:70 +msgid "required" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:33 -msgid "This contract has been verified via Sourcify." +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_claim_reward_content.html.eex:42 +msgid "specified epochs only" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract_verification/new.html.eex:40 -msgid "Sourcify: Sources and metadata JSON file" +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:59 +#: lib/block_scout_web/templates/api_docs/_action_tile.html.eex:70 +msgid "string" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:150 -#: lib/block_scout_web/templates/address_contract/index.html.eex:160 -msgid "Copy Deployed ByteCode" +#: lib/block_scout_web/views/address_contract_view.ex:23 +msgid "true" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_contract/index.html.eex:148 -#: lib/block_scout_web/templates/address_contract/index.html.eex:156 -msgid "Deployed ByteCode" +#: +#: lib/block_scout_web/templates/stakes/_stakes_modal_delegators_list.html.eex:18 +msgid "validator" msgstr "" #, elixir-format, fuzzy diff --git a/apps/explorer/config/config.exs b/apps/explorer/config/config.exs index 4b800a8a4e..f9684e0308 100644 --- a/apps/explorer/config/config.exs +++ b/apps/explorer/config/config.exs @@ -245,7 +245,7 @@ config :explorer, Explorer.ThirdPartyIntegrations.Sourcify, server_url: System.get_env("SOURCIFY_SERVER_URL") || "https://sourcify.dev/server", enabled: System.get_env("ENABLE_SOURCIFY_INTEGRATION") == "true", chain_id: System.get_env("CHAIN_ID"), - repo_url: System.get_env("SOURCIFY_REPO_URL") || "https://repo.sourcify.dev/contracts/full_match/" + repo_url: System.get_env("SOURCIFY_REPO_URL") || "https://repo.sourcify.dev/contracts" # Import environment specific config. This must remain at the bottom # of this file so it overrides the configuration defined above. diff --git a/apps/explorer/lib/explorer/chain.ex b/apps/explorer/lib/explorer/chain.ex index 2524770de4..d8612aa393 100644 --- a/apps/explorer/lib/explorer/chain.ex +++ b/apps/explorer/lib/explorer/chain.ex @@ -3479,6 +3479,79 @@ defmodule Explorer.Chain do end end + @doc """ + Updates a `t:SmartContract.t/0`. + + Has the similar logic as create_smart_contract/1. + Used in cases when you need to update row in DB contains SmartContract, e.g. in case of changing + status `partially verified` to `fully verified` (re-verify). + """ + @spec update_smart_contract(map()) :: {:ok, SmartContract.t()} | {:error, Ecto.Changeset.t()} + def update_smart_contract(attrs \\ %{}, external_libraries \\ [], secondary_sources \\ []) do + address_hash = Map.get(attrs, :address_hash) + + query = + from( + smart_contract in SmartContract, + where: smart_contract.address_hash == ^address_hash + ) + + query_sources = + from( + source in SmartContractAdditionalSource, + where: source.address_hash == ^address_hash + ) + + _delete_sources = Repo.delete_all(query_sources) + + smart_contract = Repo.one(query) + + smart_contract_changeset = + smart_contract + |> SmartContract.changeset(attrs) + |> Changeset.put_change(:external_libraries, external_libraries) + + new_contract_additional_source = %SmartContractAdditionalSource{} + + smart_contract_additional_sources_changesets = + if secondary_sources do + secondary_sources + |> Enum.map(fn changeset -> + new_contract_additional_source + |> SmartContractAdditionalSource.changeset(changeset) + end) + else + [] + end + + # Enforce ShareLocks tables order (see docs: sharelocks.md) + insert_contract_query = + Multi.new() + |> Multi.update(:smart_contract, smart_contract_changeset) + + insert_contract_query_with_additional_sources = + smart_contract_additional_sources_changesets + |> Enum.with_index() + |> Enum.reduce(insert_contract_query, fn {changeset, index}, multi -> + Multi.insert(multi, "smart_contract_additional_source_#{Integer.to_string(index)}", changeset) + end) + + insert_result = + insert_contract_query_with_additional_sources + |> Repo.transaction() + + case insert_result do + {:ok, %{smart_contract: smart_contract}} -> + {:ok, smart_contract} + + {:error, :smart_contract, changeset, _} -> + {:error, changeset} + + {:error, :set_address_verified, message, _} -> + {:error, message} + end + end + defp set_address_verified(repo, address_hash) do query = from( @@ -3712,22 +3785,56 @@ defmodule Explorer.Chain do end end - def smart_contract_verified?(address_hash_str) do + def smart_contract_fully_verified?(address_hash_str) when is_binary(address_hash_str) do case string_to_address_hash(address_hash_str) do {:ok, address_hash} -> - query = - from( - smart_contract in SmartContract, - where: smart_contract.address_hash == ^address_hash - ) + check_fully_verified(address_hash) - if Repo.one(query), do: true, else: false + _ -> + false + end + end + + def smart_contract_fully_verified?(address_hash) do + check_fully_verified(address_hash) + end + + defp check_fully_verified(address_hash) do + query = + from( + smart_contract in SmartContract, + where: smart_contract.address_hash == ^address_hash + ) + + result = Repo.one(query) + + if result, do: !result.partially_verified + end + + def smart_contract_verified?(address_hash_str) when is_binary(address_hash_str) do + case string_to_address_hash(address_hash_str) do + {:ok, address_hash} -> + check_verified(address_hash) _ -> false end end + def smart_contract_verified?(address_hash) do + check_verified(address_hash) + end + + defp check_verified(address_hash) do + query = + from( + smart_contract in SmartContract, + where: smart_contract.address_hash == ^address_hash + ) + + if Repo.one(query), do: true, else: false + end + defp fetch_transactions(paging_options \\ nil) do Transaction |> order_by([transaction], desc: transaction.block_number, desc: transaction.index) diff --git a/apps/explorer/lib/explorer/chain/smart_contract.ex b/apps/explorer/lib/explorer/chain/smart_contract.ex index 3bb3ead1e6..a99db7c870 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract.ex @@ -193,6 +193,7 @@ defmodule Explorer.Chain.SmartContract do * `abi` - The [JSON ABI specification](https://solidity.readthedocs.io/en/develop/abi-spec.html#json) for this contract. * `verified_via_sourcify` - whether contract verified through Sourcify utility or not. + * `partially_verified` - whether contract verified using partial matched source code or not. """ @type t :: %Explorer.Chain.SmartContract{ @@ -204,7 +205,8 @@ defmodule Explorer.Chain.SmartContract do evm_version: String.t() | nil, optimization_runs: non_neg_integer() | nil, abi: [function_description], - verified_via_sourcify: boolean | nil + verified_via_sourcify: boolean | nil, + partially_verified: boolean | nil } schema "smart_contracts" do @@ -218,6 +220,7 @@ defmodule Explorer.Chain.SmartContract do embeds_many(:external_libraries, ExternalLibrary) field(:abi, {:array, :map}) field(:verified_via_sourcify, :boolean) + field(:partially_verified, :boolean) has_many( :decompiled_smart_contracts, @@ -252,7 +255,8 @@ defmodule Explorer.Chain.SmartContract do :constructor_arguments, :evm_version, :optimization_runs, - :verified_via_sourcify + :verified_via_sourcify, + :partially_verified ]) |> validate_required([:name, :compiler_version, :optimization, :contract_source_code, :abi, :address_hash]) |> unique_constraint(:address_hash) @@ -271,7 +275,8 @@ defmodule Explorer.Chain.SmartContract do :evm_version, :optimization_runs, :constructor_arguments, - :verified_via_sourcify + :verified_via_sourcify, + :partially_verified ]) |> validate_required([:name, :compiler_version, :optimization, :address_hash]) diff --git a/apps/explorer/lib/explorer/smart_contract/publisher.ex b/apps/explorer/lib/explorer/smart_contract/publisher.ex index 23221ed4d8..6e92d5ffbf 100644 --- a/apps/explorer/lib/explorer/smart_contract/publisher.ex +++ b/apps/explorer/lib/explorer/smart_contract/publisher.ex @@ -48,7 +48,11 @@ defmodule Explorer.SmartContract.Publisher do def publish_smart_contract(address_hash, params, abi) do attrs = address_hash |> attributes(params, abi) - Chain.create_smart_contract(attrs, attrs.external_libraries, attrs.secondary_sources) + if Chain.smart_contract_verified?(address_hash) do + Chain.update_smart_contract(attrs, attrs.external_libraries, attrs.secondary_sources) + else + Chain.create_smart_contract(attrs, attrs.external_libraries, attrs.secondary_sources) + end end defp unverified_smart_contract(address_hash, params, error, error_message) do @@ -91,7 +95,8 @@ defmodule Explorer.SmartContract.Publisher do external_libraries: prepared_external_libraries, secondary_sources: params["secondary_sources"], abi: abi, - verified_via_sourcify: params["verified_via_sourcify"] + verified_via_sourcify: params["verified_via_sourcify"], + partially_verified: params["partially_verified"] } end diff --git a/apps/explorer/lib/explorer/third_party_integrations/sourcify.ex b/apps/explorer/lib/explorer/third_party_integrations/sourcify.ex index 59669a4528..e2a8d5280c 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/sourcify.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/sourcify.ex @@ -13,6 +13,11 @@ defmodule Explorer.ThirdPartyIntegrations.Sourcify do http_get_request(check_by_address_url(), params) end + def check_by_address_any(address_hash_string) do + get_metadata_full_url = get_metadata_any_url() <> "/" <> address_hash_string + http_get_request(get_metadata_full_url, []) + end + def get_metadata(address_hash_string) do get_metadata_full_url = get_metadata_url() <> "/" <> address_hash_string http_get_request(get_metadata_full_url, []) @@ -90,6 +95,9 @@ defmodule Explorer.ThirdPartyIntegrations.Sourcify do url =~ "/verify" -> parse_verify_http_response(body) + url =~ "/files/any" -> + parse_get_metadata_any_http_response(body) + url =~ "/files/" -> parse_get_metadata_http_response(body) @@ -143,6 +151,21 @@ defmodule Explorer.ThirdPartyIntegrations.Sourcify do end end + defp parse_get_metadata_any_http_response(body) do + body_json = decode_json(body) + + case body_json do + %{"message" => message, "errors" => errors} -> + {:error, "#{message}: #{decode_json(errors)}"} + + %{"status" => status, "files" => metadata} -> + {:ok, status, metadata} + + _ -> + {:error, "Unknown Error"} + end + end + defp parse_http_error_response(body) do body_json = decode_json(body) @@ -181,4 +204,9 @@ defmodule Explorer.ThirdPartyIntegrations.Sourcify do chain_id = config(:chain_id) "#{base_server_url()}" <> "/files/" <> chain_id end + + defp get_metadata_any_url do + chain_id = config(:chain_id) + "#{base_server_url()}" <> "/files/any/" <> chain_id + end end diff --git a/apps/explorer/priv/repo/migrations/20210701084814_support_partial_match.exs b/apps/explorer/priv/repo/migrations/20210701084814_support_partial_match.exs new file mode 100644 index 0000000000..29f13234a1 --- /dev/null +++ b/apps/explorer/priv/repo/migrations/20210701084814_support_partial_match.exs @@ -0,0 +1,9 @@ +defmodule Explorer.Repo.Migrations.SupportPartialMatch do + use Ecto.Migration + + def change do + alter table(:smart_contracts) do + add(:partially_verified, :boolean, null: true) + end + end +end diff --git a/apps/explorer/test/explorer/chain_test.exs b/apps/explorer/test/explorer/chain_test.exs index a54e65e524..af9ad9bd92 100644 --- a/apps/explorer/test/explorer/chain_test.exs +++ b/apps/explorer/test/explorer/chain_test.exs @@ -3715,6 +3715,167 @@ defmodule Explorer.ChainTest do end end + describe "update_smart_contract/1" do + setup do + smart_contract_bytecode = + "0x608060405234801561001057600080fd5b5060df8061001f6000396000f3006080604052600436106049576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360fe47b114604e5780636d4ce63c146078575b600080fd5b348015605957600080fd5b5060766004803603810190808035906020019092919050505060a0565b005b348015608357600080fd5b50608a60aa565b6040518082815260200191505060405180910390f35b8060008190555050565b600080549050905600a165627a7a7230582040d82a7379b1ee1632ad4d8a239954fd940277b25628ead95259a85c5eddb2120029" + + created_contract_address = + insert( + :address, + hash: "0x0f95fa9bc0383e699325f2658d04e8d96d87b90c", + contract_code: smart_contract_bytecode + ) + + transaction = + :transaction + |> insert() + |> with_block() + + insert( + :internal_transaction_create, + transaction: transaction, + index: 0, + created_contract_address: created_contract_address, + created_contract_code: smart_contract_bytecode, + block_number: transaction.block_number, + block_hash: transaction.block_hash, + block_index: 0, + transaction_index: transaction.index + ) + + valid_attrs = %{ + address_hash: "0x0f95fa9bc0383e699325f2658d04e8d96d87b90c", + name: "SimpleStorage", + compiler_version: "0.4.23", + optimization: false, + contract_source_code: + "pragma solidity ^0.4.23; contract SimpleStorage {uint storedData; function set(uint x) public {storedData = x; } function get() public constant returns (uint) {return storedData; } }", + abi: [ + %{ + "constant" => false, + "inputs" => [%{"name" => "x", "type" => "uint256"}], + "name" => "set", + "outputs" => [], + "payable" => false, + "stateMutability" => "nonpayable", + "type" => "function" + }, + %{ + "constant" => true, + "inputs" => [], + "name" => "get", + "outputs" => [%{"name" => "", "type" => "uint256"}], + "payable" => false, + "stateMutability" => "view", + "type" => "function" + } + ], + partially_verified: true + } + + secondary_sources = [ + %{ + file_name: "storage.sol", + contract_source_code: + "pragma solidity >=0.7.0 <0.9.0;contract Storage {uint256 number;function store(uint256 num) public {number = num;}function retrieve_() public view returns (uint256){return number;}}", + address_hash: "0x0f95fa9bc0383e699325f2658d04e8d96d87b90c" + }, + %{ + file_name: "storage_1.sol", + contract_source_code: + "pragma solidity >=0.7.0 <0.9.0;contract Storage_1 {uint256 number;function store(uint256 num) public {number = num;}function retrieve_() public view returns (uint256){return number;}}", + address_hash: "0x0f95fa9bc0383e699325f2658d04e8d96d87b90c" + } + ] + + changed_sources = [ + %{ + file_name: "storage_2.sol", + contract_source_code: + "pragma solidity >=0.7.0 <0.9.0;contract Storage_2 {uint256 number;function store(uint256 num) public {number = num;}function retrieve_() public view returns (uint256){return number;}}", + address_hash: "0x0f95fa9bc0383e699325f2658d04e8d96d87b90c" + }, + %{ + file_name: "storage_3.sol", + contract_source_code: + "pragma solidity >=0.7.0 <0.9.0;contract Storage_3 {uint256 number;function store(uint256 num) public {number = num;}function retrieve_() public view returns (uint256){return number;}}", + address_hash: "0x0f95fa9bc0383e699325f2658d04e8d96d87b90c" + } + ] + + _ = Chain.create_smart_contract(valid_attrs, [], secondary_sources) + + {:ok, + valid_attrs: valid_attrs, + address: created_contract_address, + secondary_sources: secondary_sources, + changed_sources: changed_sources} + end + + test "change partially_verified field", %{valid_attrs: valid_attrs, address: address} do + sc_before_call = Repo.get_by(SmartContract, address_hash: address.hash) + assert sc_before_call.name == Map.get(valid_attrs, :name) + assert sc_before_call.partially_verified == Map.get(valid_attrs, :partially_verified) + + assert {:ok, %SmartContract{} = smart_contract} = + Chain.update_smart_contract(%{address_hash: address.hash, partially_verified: false}) + + sc_after_call = Repo.get_by(SmartContract, address_hash: address.hash) + assert sc_after_call.name == Map.get(valid_attrs, :name) + assert sc_after_call.partially_verified == false + assert sc_after_call.compiler_version == Map.get(valid_attrs, :compiler_version) + assert sc_after_call.optimization == Map.get(valid_attrs, :optimization) + assert sc_after_call.contract_source_code == Map.get(valid_attrs, :contract_source_code) + end + + test "check nothing changed", %{valid_attrs: valid_attrs, address: address} do + sc_before_call = Repo.get_by(SmartContract, address_hash: address.hash) + assert sc_before_call.name == Map.get(valid_attrs, :name) + assert sc_before_call.partially_verified == Map.get(valid_attrs, :partially_verified) + + assert {:ok, %SmartContract{} = smart_contract} = Chain.update_smart_contract(%{address_hash: address.hash}) + + sc_after_call = Repo.get_by(SmartContract, address_hash: address.hash) + assert sc_after_call.name == Map.get(valid_attrs, :name) + assert sc_after_call.partially_verified == Map.get(valid_attrs, :partially_verified) + assert sc_after_call.compiler_version == Map.get(valid_attrs, :compiler_version) + assert sc_after_call.optimization == Map.get(valid_attrs, :optimization) + assert sc_after_call.contract_source_code == Map.get(valid_attrs, :contract_source_code) + end + + test "check additional sources update", %{ + address: address, + secondary_sources: secondary_sources, + changed_sources: changed_sources + } do + sc_before_call = Repo.get_by(Address, hash: address.hash) |> Repo.preload(:smart_contract_additional_sources) + + assert sc_before_call.smart_contract_additional_sources + |> Enum.with_index() + |> Enum.all?(fn {el, ind} -> + {:ok, src} = Enum.fetch(secondary_sources, ind) + + el.file_name == Map.get(src, :file_name) and + el.contract_source_code == Map.get(src, :contract_source_code) + end) + + assert {:ok, %SmartContract{} = smart_contract} = + Chain.update_smart_contract(%{address_hash: address.hash}, [], changed_sources) + + sc_after_call = Repo.get_by(Address, hash: address.hash) |> Repo.preload(:smart_contract_additional_sources) + + assert sc_after_call.smart_contract_additional_sources + |> Enum.with_index() + |> Enum.all?(fn {el, ind} -> + {:ok, src} = Enum.fetch(changed_sources, ind) + + el.file_name == Map.get(src, :file_name) and + el.contract_source_code == Map.get(src, :contract_source_code) + end) + end + end + describe "stream_unfetched_balances/2" do test "with `t:Explorer.Chain.Address.CoinBalance.t/0` with value_fetched_at with same `address_hash` and `block_number` " <> "does not return `t:Explorer.Chain.Block.t/0` `miner_hash`" do