Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix bugs in verification API v2 #6911

Merged
merged 2 commits into from
Feb 16, 2023
Merged

Conversation

nikitosing
Copy link
Member

@nikitosing nikitosing commented Feb 16, 2023

Motivation

There was some bugs in API v2 /verification:

  1. Missed String.downcase() in sourcify verification
2023-02-16T10:52:42.834 [error] #PID<0.1751.0> running BlockScoutWeb.Endpoint (connection #PID<0.1750.0>, stream id 1) terminated
Server: localhost:80 (http)
Request: POST /api/v2/smart-contracts/0x030f7c7dbd472864220bcf9e37ede1b8a3125970/verification/via/sourcify
** (exit) an exception was raised:
    ** (KeyError) key :content_type not found in: "". If you are using the dot syntax, such as map.field, make sure the left-hand side of the dot is a map
        (explorer 5.1.0) lib/explorer/smart_contract/solidity/publish_helper.ex:97: anonymous fn/1 in Explorer.SmartContract.Solidity.PublishHelper.get_one_json/1
        (elixir 1.14.3) lib/enum.ex:4197: Enum.filter_list/2
        (explorer 5.1.0) lib/explorer/smart_contract/solidity/publish_helper.ex:97: Explorer.SmartContract.Solidity.PublishHelper.get_one_json/1
        (block_scout_web 5.1.0) lib/block_scout_web/controllers/api/v2/verification_controller.ex:118: BlockScoutWeb.API.V2.VerificationController.verification_via_sourcify/2
        (block_scout_web 5.1.0) lib/block_scout_web/controllers/api/v2/verification_controller.ex:1: BlockScoutWeb.API.V2.VerificationController.action/2
        (block_scout_web 5.1.0) lib/block_scout_web/controllers/api/v2/verification_controller.ex:1: BlockScoutWeb.API.V2.VerificationController.phoenix_controller_pipeline/2
        (phoenix 1.5.13) lib/phoenix/router.ex:352: Phoenix.Router.__call__/2
        (phoenix 1.5.13) lib/phoenix/router/route.ex:41: Phoenix.Router.Route.call/2
        (phoenix 1.5.13) lib/phoenix/router.ex:352: Phoenix.Router.__call__/2
        (phoenix 1.5.13) lib/phoenix/router/route.ex:41: Phoenix.Router.Route.call/2
        (phoenix 1.5.13) lib/phoenix/router.ex:352: Phoenix.Router.__call__/2
        (block_scout_web 5.1.0) lib/block_scout_web/endpoint.ex:1: BlockScoutWeb.Endpoint.plug_builder_call/2
        (block_scout_web 5.1.0) lib/plug/debugger.ex:136: BlockScoutWeb.Endpoint."call (overridable 3)"/2
        (block_scout_web 5.1.0) lib/block_scout_web/endpoint.ex:1: BlockScoutWeb.Endpoint."call (overridable 4)"/2
        (block_scout_web 5.1.0) lib/spandex_phoenix.ex:151: BlockScoutWeb.Endpoint.call/2
        (phoenix 1.5.13) lib/phoenix/endpoint/cowboy2_handler.ex:65: Phoenix.Endpoint.Cowboy2Handler.init/4
        (cowboy 2.9.0) /Users/nikitosing/work/blockscout/blockscout/deps/cowboy/src/cowboy_handler.erl:37: :cowboy_handler.execute/2
        (cowboy 2.9.0) /Users/nikitosing/work/blockscout/blockscout/deps/cowboy/src/cowboy_stream_h.erl:306: :cowboy_stream_h.execute/3
        (cowboy 2.9.0) /Users/nikitosing/work/blockscout/blockscout/deps/cowboy/src/cowboy_stream_h.erl:295: :cowboy_stream_h.request_process/3
        (stdlib 4.2) proc_lib.erl:240: :proc_lib.init_p_do_apply/3

2023-02-16T11:36:45.793 [error] #PID<0.1686.0> running BlockScoutWeb.Endpoint (connection #PID<0.1685.0>, stream id 1) terminated
Server: localhost:4000 (http)
Request: POST /api/v2/smart-contracts/0x030f7c7dbd472864220bcf9e37ede1b8a3125970/verification/via/multi-part
** (exit) an exception was raised:
    ** (FunctionClauseError) no function clause matching in anonymous fn/2 in Explorer.SmartContract.Solidity.PublishHelper.read_files/1
        (explorer 5.1.0) lib/explorer/smart_contract/solidity/publish_helper.ex:111: anonymous fn("", %{}) in Explorer.SmartContract.Solidity.PublishHelper.read_files/1
        (elixir 1.14.3) lib/enum.ex:2468: Enum."-reduce/3-lists^foldl/2-0-"/3
        (block_scout_web 5.1.0) lib/block_scout_web/controllers/api/v2/verification_controller.ex:153: BlockScoutWeb.API.V2.VerificationController.verification_via_multi_part/2
        (block_scout_web 5.1.0) lib/block_scout_web/controllers/api/v2/verification_controller.ex:1: BlockScoutWeb.API.V2.VerificationController.action/2
        (block_scout_web 5.1.0) lib/block_scout_web/controllers/api/v2/verification_controller.ex:1: BlockScoutWeb.API.V2.VerificationController.phoenix_controller_pipeline/2
        (phoenix 1.5.13) lib/phoenix/router.ex:352: Phoenix.Router.__call__/2
        (phoenix 1.5.13) lib/phoenix/router/route.ex:41: Phoenix.Router.Route.call/2
        (phoenix 1.5.13) lib/phoenix/router.ex:352: Phoenix.Router.__call__/2
        (phoenix 1.5.13) lib/phoenix/router/route.ex:41: Phoenix.Router.Route.call/2
        (phoenix 1.5.13) lib/phoenix/router.ex:352: Phoenix.Router.__call__/2
        (block_scout_web 5.1.0) lib/block_scout_web/endpoint.ex:1: BlockScoutWeb.Endpoint.plug_builder_call/2
        (block_scout_web 5.1.0) lib/plug/debugger.ex:136: BlockScoutWeb.Endpoint."call (overridable 3)"/2
        (block_scout_web 5.1.0) lib/block_scout_web/endpoint.ex:1: BlockScoutWeb.Endpoint."call (overridable 4)"/2
        (block_scout_web 5.1.0) lib/spandex_phoenix.ex:151: BlockScoutWeb.Endpoint.call/2
        (phoenix 1.5.13) lib/phoenix/endpoint/cowboy2_handler.ex:65: Phoenix.Endpoint.Cowboy2Handler.init/4
        (cowboy 2.9.0) /Users/nikitosing/work/blockscout/blockscout/deps/cowboy/src/cowboy_handler.erl:37: :cowboy_handler.execute/2
        (cowboy 2.9.0) /Users/nikitosing/work/blockscout/blockscout/deps/cowboy/src/cowboy_stream_h.erl:306: :cowboy_stream_h.execute/3
        (cowboy 2.9.0) /Users/nikitosing/work/blockscout/blockscout/deps/cowboy/src/cowboy_stream_h.erl:295: :cowboy_stream_h.request_process/3
        (stdlib 4.2) proc_lib.erl:240: :proc_lib.init_p_do_apply/3

Checklist for your Pull Request (PR)

@vbaranov vbaranov merged commit 586c104 into master Feb 16, 2023
@vbaranov vbaranov deleted the np-verification-api-v2-bugs branch February 16, 2023 13:28
fx0x55 pushed a commit to FunctionX/blockscout that referenced this pull request May 10, 2023
* Fix bugs in verification API v2

* Fix test

(cherry picked from commit 586c104)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants