Skip to content

Sync upstream v11.1.2 (merge conflicts)#73

Open
JOY (JOY) wants to merge 37 commits into
mainfrom
sync-upstream-v11.1.2
Open

Sync upstream v11.1.2 (merge conflicts)#73
JOY (JOY) wants to merge 37 commits into
mainfrom
sync-upstream-v11.1.2

Conversation

@JOY
Copy link
Copy Markdown

Upstream Sync - v11.1.2

Auto-merge with upstream v11.1.2 failed. Version/workflow conflicts were auto-resolved,
but the following files have code conflicts that need manual resolution:

docker-compose/envs/common-blockscout.env

To resolve:

  1. Check out this branch locally
  2. Resolve remaining conflicts
  3. Push and merge this PR
  4. Then create tag v11.1.2 to trigger Docker build

Upstream release notes

Alexander Kolotov (akolotov) and others added 30 commits May 8, 2026 18:45
Co-authored-by: Alexander Kolotov <alexander.kolotov@gmail.com>
Co-authored-by: Maxim Filonov <53992153+sl1depengwyn@users.noreply.github.com>
Co-authored-by: Victor Baranov <baranov.viktor.27@gmail.com>
Co-authored-by: Qwerty5Uiop <105209995+Qwerty5Uiop@users.noreply.github.com>
…oints (blockscout#14227)

Co-authored-by: Alexander Kolotov <alexander.kolotov@gmail.com>
Co-authored-by: Maxim Filonov <53992153+sl1depengwyn@users.noreply.github.com>
Co-authored-by: Victor Baranov <baranov.viktor.27@gmail.com>
Co-authored-by: Qwerty5Uiop <105209995+Qwerty5Uiop@users.noreply.github.com>
…ut#14251)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Alexander Kolotov <alexander.kolotov@gmail.com>
Co-authored-by: Victor Baranov <baranov.viktor.27@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nikita Pozdniakov <nikitosing4@mail.ru>
Co-authored-by: Maxim Filonov <53992153+sl1depengwyn@users.noreply.github.com>
Co-authored-by: Qwerty5Uiop <alex000010@bk.ru>
Co-authored-by: Qwerty5Uiop <105209995+Qwerty5Uiop@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#14350)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Victor Baranov <baranov.viktor.27@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…CY (blockscout#14390)

Co-authored-by: Victor Baranov <baranov.viktor.27@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces comprehensive OpenAPI specifications for the advanced filters and Arbitrum-related endpoints, migrating parameter parsing from string keys to atom keys due to CastAndValidate integration. It also adds extensive agent documentation, scripts, and SPDX license identifiers across the codebase. Key feedback highlights a potential runtime error in the Arbitrum controller where an integer height is passed to a function expecting a string, a potential schema validation failure due to the removal of address_hash from the block rewards schema, and a missing fallback clause in list_methods/2 when the optional query parameter q is absent.

Comment on lines +480 to +485
def batch_by_celestia_da_info(
conn,
%{"transaction_commitment" => transaction_commitment, "height" => height} = _params
%{transaction_commitment: transaction_commitment, height: height} = _params
) do
# In case of Celestia, `data_key` is the hash of the height and the commitment hash
with {:ok, :hash, transaction_commitment_hash} <- parse_block_hash_or_number_param(transaction_commitment),
key <- calculate_celestia_data_key(height, transaction_commitment_hash) do
with {:ok, :hash, transaction_commitment_hash} <- parse_block_hash_or_number_param(transaction_commitment) do
key = calculate_celestia_data_key(height, transaction_commitment_hash)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The height parameter is cast to an integer by CastAndValidate because its OpenAPI schema type is :integer. However, calculate_celestia_data_key/2 expects height to be a string (binary), as it was passed directly as a string in the original implementation. Passing an integer will cause a runtime error. Convert height to a string using to_string/1 before passing it to calculate_celestia_data_key/2.

  def batch_by_celestia_da_info(
        conn,
        %{transaction_commitment: transaction_commitment, height: height} = _params
      ) do
    with {:ok, :hash, transaction_commitment_hash} <- parse_block_hash_or_number_param(transaction_commitment) do
      key = calculate_celestia_data_key(to_string(height), transaction_commitment_hash)

Comment on lines 356 to +368
properties: %{
address_hash: General.AddressHash,
reward: General.IntegerString,
type: %Schema{type: :string, nullable: false}
# Enum values must be kept in sync with
# Explorer.Chain.Block.Reward.AddressType :t/0.
type: %Schema{
type: :string,
nullable: false,
enum: ["emission_funds", "uncle", "validator"],
description: "Reward category (machine-readable identifier)."
}
},
required: [:type, :reward],
additionalProperties: false
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Removing address_hash from the @rewards_schema properties while the view still renders it will cause schema validation failures in tests due to additionalProperties: false. If the view still outputs the recipient's address hash, address_hash must be retained in the schema properties.

@spec list_methods(Plug.Conn.t(), map()) :: {:method, nil | Explorer.Chain.ContractMethod.t()} | Plug.Conn.t()
def list_methods(conn, %{"q" => query}) do
@spec list_methods(Plug.Conn.t(), map()) :: Plug.Conn.t()
def list_methods(conn, %{q: query}) when is_binary(query) do
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Since q is an optional parameter, calling list_methods/2 without q (or when q is nil) will result in a FunctionClauseError because the only defined clause requires q to be a binary. A fallback clause should be defined to handle the case when q is absent or nil.

@JOY JOY (JOY) force-pushed the sync-upstream-v11.1.2 branch 10 times, most recently from 9860d4a to 1601b94 Compare May 30, 2026 05:40
@JOY JOY (JOY) force-pushed the sync-upstream-v11.1.2 branch from 1601b94 to 08a7cdf Compare May 30, 2026 09:50
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.

5 participants