return not found for not verified read contract address

pull/2800/head
Ayrat Badykov 5 years ago
parent b05408e202
commit 29bbc51fb5
No known key found for this signature in database
GPG Key ID: B44668E265E9396F
  1. 4
      apps/block_scout_web/lib/block_scout_web/controllers/address_read_contract_controller.ex
  2. 17
      apps/block_scout_web/test/block_scout_web/controllers/address_read_contract_controller_test.exs

@ -27,6 +27,7 @@ defmodule BlockScoutWeb.AddressReadContractController do
with {:ok, address_hash} <- Chain.string_to_address_hash(address_hash_string),
{:ok, address} <- Chain.find_contract_address(address_hash, address_options, true) do
if address.smart_contract do
{transaction_count, validation_count} = transaction_and_validation_count(address_hash)
render(
@ -38,6 +39,9 @@ defmodule BlockScoutWeb.AddressReadContractController do
transaction_count: transaction_count,
validation_count: validation_count
)
else
not_found(conn)
end
else
:error ->
not_found(conn)

@ -39,5 +39,22 @@ defmodule BlockScoutWeb.AddressReadContractControllerTest do
assert %Token{} = conn.assigns.exchange_rate
assert conn.assigns.transaction_count
end
test "returns not found for an unverified contract", %{conn: conn} do
contract_address = insert(:contract_address)
transaction = insert(:transaction, from_address: contract_address)
insert(
:internal_transaction_create,
index: 0,
transaction: transaction,
created_contract_address: contract_address
)
conn = get(conn, address_read_contract_path(BlockScoutWeb.Endpoint, :index, contract_address.hash))
assert html_response(conn, 404)
end
end
end

Loading…
Cancel
Save