From 325c059c898dca4663448439e04ec5607ad2a492 Mon Sep 17 00:00:00 2001 From: Alexander Kolotov Date: Fri, 8 May 2026 09:45:37 -0600 Subject: [PATCH 01/31] chore: OpenAPI spec for Arbitrum-related endpoints (#14169) Co-authored-by: Alexander Kolotov Co-authored-by: Maxim Filonov <53992153+sl1depengwyn@users.noreply.github.com> Co-authored-by: Victor Baranov Co-authored-by: Qwerty5Uiop <105209995+Qwerty5Uiop@users.noreply.github.com> --- .agents/agents/openapi-spec-inspector.md | 57 + .agents/skills/openapi-spec/SKILL.md | 373 ++++++ .../references/error-response-patterns.md | 132 ++ .../references/inspection-checklist.md | 260 ++++ .../references/oastools-audit-recipes.md | 238 ++++ .../references/parameter-discovery.md | 152 +++ .../request-body-security-headers.md | 207 +++ .../references/schema-conventions.md | 601 +++++++++ .../spec-generation-and-verification.md | 106 ++ .../openapi-spec/scripts/generate-spec.sh | 121 ++ .../controllers/api/v2/arbitrum_controller.ex | 387 +++++- .../lib/block_scout_web/paging_helper.ex | 4 +- .../lib/block_scout_web/rate_limit/hammer.ex | 14 +- .../lib/block_scout_web/routers/api_router.ex | 6 +- .../schemas/api/v2/arbitrum/batch.ex | 67 + .../api/v2/arbitrum/batch_by_anytrust.ex | 23 + .../api/v2/arbitrum/batch_by_celestia.ex | 23 + .../api/v2/arbitrum/batch_by_eigenda.ex | 23 + .../api/v2/arbitrum/batch_data_container.ex | 14 + .../schemas/api/v2/arbitrum/batch_for_list.ex | 27 + .../schemas/api/v2/arbitrum/claim_message.ex | 24 + .../api/v2/arbitrum/commitment_transaction.ex | 32 + .../v2/arbitrum/data_availability/anytrust.ex | 40 + .../api/v2/arbitrum/data_availability/base.ex | 25 + .../v2/arbitrum/data_availability/celestia.ex | 25 + .../v2/arbitrum/data_availability/eigenda.ex | 29 + .../schemas/api/v2/arbitrum/message.ex | 46 + .../api/v2/arbitrum/minimal_message.ex | 38 + .../schemas/api/v2/arbitrum/withdrawal.ex | 88 ++ .../lib/block_scout_web/specs/public.ex | 2 +- .../api/v2/arbitrum_controller_test.exs | 1149 +++++++++++++++++ .../api/v2/block_controller_test.exs | 49 + .../api/v2/transaction_controller_test.exs | 49 + .../test/support/api_schema_assertions.ex | 37 +- apps/explorer/lib/explorer/application.ex | 11 +- .../explorer/arbitrum/claim_rollup_message.ex | 7 +- .../lib/explorer/arbitrum/withdraw.ex | 12 +- apps/explorer/lib/explorer/helper.ex | 47 + .../third_party_integrations/auth0.ex | 7 +- apps/explorer/lib/explorer/utility/hammer.ex | 15 +- .../lib/explorer/utility/rate_limiter.ex | 16 +- apps/explorer/test/support/factory.ex | 59 + config/runtime.exs | 19 +- docker-compose/envs/common-blockscout.env | 15 + 44 files changed, 4600 insertions(+), 76 deletions(-) create mode 100644 .agents/agents/openapi-spec-inspector.md create mode 100644 .agents/skills/openapi-spec/SKILL.md create mode 100644 .agents/skills/openapi-spec/references/error-response-patterns.md create mode 100644 .agents/skills/openapi-spec/references/inspection-checklist.md create mode 100644 .agents/skills/openapi-spec/references/oastools-audit-recipes.md create mode 100644 .agents/skills/openapi-spec/references/parameter-discovery.md create mode 100644 .agents/skills/openapi-spec/references/request-body-security-headers.md create mode 100644 .agents/skills/openapi-spec/references/schema-conventions.md create mode 100644 .agents/skills/openapi-spec/references/spec-generation-and-verification.md create mode 100755 .agents/skills/openapi-spec/scripts/generate-spec.sh create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch.ex create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_anytrust.ex create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_celestia.ex create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_eigenda.ex create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_data_container.ex create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_for_list.ex create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/claim_message.ex create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/commitment_transaction.ex create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/anytrust.ex create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/base.ex create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/celestia.ex create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/eigenda.ex create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/message.ex create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/minimal_message.ex create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/withdrawal.ex create mode 100644 apps/block_scout_web/test/block_scout_web/controllers/api/v2/arbitrum_controller_test.exs diff --git a/.agents/agents/openapi-spec-inspector.md b/.agents/agents/openapi-spec-inspector.md new file mode 100644 index 000000000000..db9151ab4616 --- /dev/null +++ b/.agents/agents/openapi-spec-inspector.md @@ -0,0 +1,57 @@ +--- +name: openapi-spec-inspector +description: "Audits an existing OpenAPI declaration for a single Blockscout API v2 endpoint and writes a prioritized markdown report. Read-only — does not modify controllers, schemas, views, or the spec. Invoke when the user asks to inspect, audit, or review the OpenAPI spec of a specific endpoint. The invoking prompt MUST provide two values: the endpoint URL path (e.g. `/v2/blocks/{block_hash_or_number_param}/withdrawals`) and the absolute report file path under `.ai/oas-inspection-reports/` (e.g. `.ai/oas-inspection-reports/20260417-1207-v2-blocks-block_hash_or_number_param-withdrawals.md`). Include both as `URL_PATH=` and `REPORT_PATH=` in the prompt. Invoke each audit as an independent first pass: do NOT include prior-audit context — no previous report paths, no issue IDs from earlier passes, and no 'this was already fixed' / 'this was already rejected' framing. Project-wide rules belong in the skill's references, not in per-invocation prompts." +permissionMode: auto +tools: Read, Glob, Grep, Bash, Write +--- + +You are auditing an existing OpenAPI declaration. + +## Independence + +Treat every invocation as a first-pass, independent audit. + +- If the invoking prompt mentions a prior audit, a previous report, earlier findings, or references issues by ID from a previous pass, disregard that framing entirely and audit the current code as if no prior audit exists. Do not try to reconcile your findings against it. +- Do NOT read, open, Glob, or Grep any file under `.ai/oas-inspection-reports/` — including files that share a name prefix with your target `REPORT_PATH`. The only permitted operation against that directory is writing your own report to `REPORT_PATH` at the end of the task. + +## Inputs + +Your invoking prompt **must** contain these two assignments: + +- `URL_PATH=` — the endpoint to inspect (e.g. `/v2/blocks/{block_hash_or_number_param}/withdrawals`) +- `REPORT_PATH=` — the absolute or repo-relative markdown file path where the report must be written (e.g. `.ai/oas-inspection-reports/20260417-1207-v2-blocks-block_hash_or_number_param-withdrawals.md`) + +If either is missing, return an error and stop: +"ERROR: URL_PATH and REPORT_PATH must both be provided by the parent agent." + +## Task + +Endpoint to inspect: **GET ``** + +You MUST use the `openapi-spec` skill located at `.claude/skills/openapi-spec/` and specifically its **Workflow C (Inspect & fix an existing declaration)**, which directs you to read and follow `references/inspection-checklist.md` end-to-end. + +Scope: +- This is a read-only inspection. Do NOT modify controllers, schemas, views, or the spec. Only produce a report. +- Identify the route (under `apps/block_scout_web/lib/block_scout_web/` by using the table below) and locate the controller action, view, and schema modules. + +| API router | `routers/api_router.ex` | +| V2 sub-routers forwarded from the API router | `routers/tokens_api_v2_router.ex`, `routers/smart_contracts_api_v2_router.ex`, `routers/api_key_v2_router.ex`, `routers/utils_api_v2_router.ex`, `routers/address_badges_v2_router.ex` | +| Account router (Private spec) | `routers/account_router.ex` | + +- Cross-reference parameters (controller vs. declaration), response fields (view vs. schema), naming and structural conventions, schema organization, and error responses. +- Use `.ai/tmp/openapi_public.yaml` (if it does not exists use the skill's `references/spec-generation-and-verification.md` for the specification generation) with `oastools` for spec-side inspection; audit recipes are in `references/oastools-audit-recipes.md`. + +## Deliverable + +Write a single markdown report to the path provided in `REPORT_PATH`. + +The report should include: +1. Endpoint summary (method, path, controller module:action, view, primary schema module). +2. Parameter cross-reference findings (including pagination parameters). +3. Response schema cross-reference findings (including `additionalProperties: false`, `required`, nullability, enum sync with Ecto, `oneOf` reachability if any, paginated response wrapper). +4. Error responses coverage. +5. Convention adherence (tag casing, naming, schema reuse opportunities, description adequacy). +6. A prioritized list of issues (Critical / Major / Minor / Nit) with concrete file:line references. +7. Suggested fixes (described, not applied). + +Keep the report focused and actionable. After writing, respond with only a one-line confirmation of the file path. diff --git a/.agents/skills/openapi-spec/SKILL.md b/.agents/skills/openapi-spec/SKILL.md new file mode 100644 index 000000000000..d03a771545f9 --- /dev/null +++ b/.agents/skills/openapi-spec/SKILL.md @@ -0,0 +1,373 @@ +--- +name: openapi-spec +description: "Create, adjust, or inspect OpenAPI declarations for Blockscout API v2 endpoints. Use this skill whenever the user asks to: add an OpenAPI spec to an endpoint that lacks one, update a spec after controller/view changes, audit or fix an existing OpenAPI declaration, or work with open_api_spex annotations in the Blockscout codebase. Also trigger when the user mentions 'swagger', 'openapi', 'open_api_spex', 'API spec', 'API schema', or 'operation macro', or when debugging failures like 'response schema mismatch', 'CastAndValidate rejection', 'json_response validation error', 'Unexpected field', or extra/missing keys in API responses." +allowed-tools: ["Bash(.claude/skills/openapi-spec/scripts/generate-spec.sh *)", "Bash(oastools *)"] +--- + +# OpenAPI Spec Authoring for Blockscout API v2 + +This skill covers three workflows for Blockscout's OpenAPI declarations: +- **Create** — add a declaration for an endpoint that has none +- **Adjust** — update a declaration after parameters or response changed +- **Inspect & Fix** — audit an existing declaration for correctness issues + +Blockscout uses the `open_api_spex` library (v3.22+) to define OpenAPI 3.0 specs inline in Elixir code. There are no hand-written spec files — the spec is derived entirely from annotations in controllers and schema modules, then assembled at runtime via router introspection. + +## Key file locations + +All paths are relative to `apps/block_scout_web/lib/block_scout_web/`. Most endpoints live under the flat v2 layout, but annotated endpoints also exist outside of it — the table below calls out every tree that contributes to the generated spec. + +| What | Where | +|---|---| +| V2 controllers (flat) | `controllers/api/v2/_controller.ex` | +| V2 proxy controllers | `controllers/api/v2/proxy/_controller.ex` (routed under `/v2/proxy`) | +| V2 chain-type-nested controllers | `controllers/api/v2//_controller.ex` (e.g. `controllers/api/v2/ethereum/deposit_controller.ex`) | +| Account controllers (Private spec) | `controllers/account/api/v2/_controller.ex` | +| Legacy controllers | `controllers/api/legacy/_controller.ex` (routed under `/legacy`) | +| V2 schema modules | `schemas/api/v2/.ex` and `schemas/api/v2//*.ex` | +| V2 chain-type schema subdirs | `schemas/api/v2//*.ex` (e.g. `schemas/api/v2/{arbitrum,beacon,celo,optimism,scroll,zilliqa,mud}/*.ex`) | +| V2 proxy schemas | `schemas/api/v2/proxy/*.ex` | +| Account schemas (Private spec) | `schemas/api/v2/account/*.ex` | +| Legacy schemas | `schemas/api/legacy/*.ex` | +| Parameter helpers | `schemas/api/v2/general.ex` (all helpers centralized here) | +| Error responses | `schemas/api/v2/error_responses.ex` | +| Schema helper | `schemas/helper.ex` (`extend_schema/2`) | +| Leaf type schemas | `schemas/api/v2/general/*.ex` (AddressHash, FullHash, IntegerString, etc.) | +| API router | `routers/api_router.ex` | +| V2 sub-routers forwarded from the API router | `routers/tokens_api_v2_router.ex`, `routers/smart_contracts_api_v2_router.ex`, `routers/api_key_v2_router.ex`, `routers/utils_api_v2_router.ex`, `routers/address_badges_v2_router.ex` | +| Account router (Private spec) | `routers/account_router.ex` | +| Views (flat v2) | `views/api/v2/_view.ex` | +| Legacy views | `views/api/legacy/_view.ex` | +| Paging helper | `paging_helper.ex` (`delete_parameters_from_next_page_params/1`) | +| Spec aggregators | `specs/public.ex` (public spec + **tag registry**), `specs/private.ex` (account/private spec) | +| Global aliases/imports | The file `block_scout_web.ex` — look for `:controller` quote block | +| V2 tests | `../../test/block_scout_web/controllers/api/v2/_controller_test.exs` | +| Legacy tests | `../../test/block_scout_web/controllers/api/legacy/_controller_test.exs` | + +**On router coverage of the public spec:** `specs/public.ex` builds `paths` via `Paths.from_router(ApiRouter)`, which picks up everything reachable from `api_router.ex` — including endpoints declared in the sub-routers that `api_router.ex` `forward`s to (api-key, utils, address-badges). Only `TokensApiV2Router` and `SmartContractsApiV2Router` need the extra `Paths.from_routes(...)` merges in `public.ex` because their prefixes are stripped by Phoenix `forward` and must be re-added. A new annotated endpoint placed in any of the other sub-routers needs no extra wiring beyond the `forward` that already exists in `api_router.ex`. + +## Core patterns + +### The operation macro + +Every annotated controller action has an `operation/2` call (from `OpenApiSpex.ControllerSpecs`): + +```elixir +operation :action_name, + summary: "Short summary for the endpoint", + description: "Longer description of what it does.", + parameters: [some_path_param() | base_params()], + responses: [ + ok: {"Success description", "application/json", Schemas.SomeDomain.Response}, + not_found: NotFoundResponse.response(), + unprocessable_entity: JsonErrorResponse.response() + ] +``` + +For POST/PUT/PATCH endpoints, add `request_body:` — see `references/request-body-security-headers.md`. + +### The three-way parameter coupling + +Path parameters must be consistent across three locations or the endpoint breaks: + +| Location | Form | Example | +|---|---|---| +| Phoenix route segment | String with `:` prefix | `get("/:transaction_hash_param", ...)` | +| `%Parameter{}` struct | Atom in `:name` field | `%Parameter{name: :transaction_hash_param, in: :path}` | +| Controller action head | Atom key in pattern match | `def transaction(conn, %{transaction_hash_param: value})` | + +`CastAndValidate` reads string keys from `conn.path_params`, converts them to atoms using the Parameter `:name`, and places them in `conn.params`. The controller then pattern-matches on those atoms. + +### Response schema ↔ view correlation + +There is no runtime validation that view output matches the response schema. Alignment is enforced **only at test time**: every `json_response/2` call in a `ConnCase` test automatically validates the response body against the OpenAPI spec. This means: +- Schemas with `additionalProperties: false` catch extra keys the view emits +- The `required` list catches missing keys +- Type/pattern checks catch type mismatches + +If a view emits a key not in the schema (or vice versa), tests will fail. + +### CastAndValidate's effect on params (string keys → atom keys) + +When `CastAndValidate` processes an action with a real `operation` spec (not `operation :action, false`), it transforms **all** params before the action runs: +- **String keys become atom keys:** `%{"id" => "42"}` → `%{id: 42}` +- **Values are cast to declared types:** strings become integers, booleans, etc., based on the parameter's `%Schema{type: ...}` + +Actions declared with `operation :action, false` are **skipped** — they receive the original string-keyed params from Phoenix unchanged. + +This matters most for **pagination**. The `paging_options/1` function in `chain.ex` has parallel clauses for both forms: +- String-key clauses (e.g., `%{"id" => id_string} when is_binary(id_string)`) — used by actions without a spec +- Atom-key clauses (e.g., `%{id: id}`) — used by actions with a real spec + +When promoting an action from `operation :action, false` to a real spec, the string-key `paging_options` clause will stop matching. You must ensure a corresponding atom-key clause exists. See Workflow A, Step 4b for details. + +### base_params() — always include + +`base_params()` returns `[api_key_param(), key_param()]` — two optional query parameters (`apikey`, `key`) present on every public API operation. Always include it. + +Common composition patterns: +```elixir +# Simple — no extra params +parameters: base_params() + +# With a path param (prepend via cons) +parameters: [address_hash_param() | base_params()] + +# With paging params (append via ++) +parameters: base_params() ++ define_paging_params(["index", "block_number"]) + +# Combined +parameters: [transaction_hash_param() | base_params()] ++ [token_type_param()] ++ define_paging_params(["index", "block_number"]) +``` + +### Controller prerequisites + +Every annotated controller needs: +```elixir +use OpenApiSpex.ControllerSpecs # injects operation/2, tags/1 +plug(OpenApiSpex.Plug.CastAndValidate, json_render_error_v2: true) # validates incoming params +tags(["domain-tag"]) # groups operations in spec +``` + +These are typically near the top of the controller module, after `use BlockScoutWeb, :controller`. + +**Tag naming: kebab-case.** Tag strings use kebab-case (`"internal-transactions"`, `"main-page"`, `"smart-contracts"`, `"token-transfers"`, `"account-abstraction"`), not snake_case. Multi-word controller module names such as `InternalTransactionController` still map to the kebab-case plural tag, not to the module name. + +### Tag registry (`specs/public.ex`) + +The order of tag groups in the generated public spec is not derived from the controllers — it's declared explicitly in `specs/public.ex` and has a fixed three-part shape: + +1. **Base tags** — the `@default_api_categories` list at the top of `specs/public.ex`, always present regardless of chain type. +2. **Chain-type-specific tags** — returned by `chain_type_category/0`, whose clauses are keyed on `@chain_identity` (`{:optimism, :celo}`, `{:optimism, nil}`, `{:scroll, nil}`, `{:zilliqa, nil}`, …). For chains without OpenAPI coverage this is an empty list. +3. **`"legacy"`** — hard-coded trailer pinned last. + +If a new annotated controller introduces a brand-new tag, the agent must register it in the right group, or the tag will still appear in the spec (via controller-side `tags(...)`) but with no ordering guarantee and no entry in the top-level `tags:` list: + +- Base endpoint → append the kebab-case tag to `@default_api_categories`. +- Chain-type endpoint → add it inside the relevant `case @chain_identity` branch, matching the existing patterns (module-attribute + `defp` for static lists, full `defp` body when the tag set depends on a runtime flag such as `mud_enabled?()`). +- Legacy endpoint → no action; `"legacy"` is already the trailer. + +Tags that are already covered by an existing group (e.g. another `addresses` endpoint) need no change. + +--- + +## Verification + +After creating or modifying a declaration, verify it using these methods in order. Each catches a different class of issues, and earlier steps are faster — so run them first to get quick feedback before committing to a full test run. + +### 1. Compile (`mix compile`) + +Compiling the `block_scout_web` app verifies structural validity: schema modules exist, operation names match controller action function names, and all referenced modules resolve. This is the fastest check and catches typos, missing modules, and wiring errors. + +Run via devcontainer if mix is not available on the host. + +### 2. Generate the spec (`generate-spec.sh`) + +This exercises `OpenApiSpex.resolve_schema_modules/1`, which resolves all schema module references and inlines them into the full spec. It catches issues that compilation alone misses: circular references, malformed schema structures, and resolution failures. + +```bash +.claude/skills/openapi-spec/scripts/generate-spec.sh +``` + +See `references/spec-generation-and-verification.md` for script options (chain-specific generation, custom output path) and `oastools` commands for inspecting the result. + +### 2a. Audit for spec-wide convention drift (optional) + +After regeneration, sweep the spec for convention violations a single-endpoint test run won't catch: missing `additionalProperties: false`, missing `:unprocessable_entity`, tag casing, etc. See `references/oastools-audit-recipes.md` — the quick sweep is recipes A, B, F, I. + +The generated spec is cache-like, so regeneration must come first. A stale `.ai/tmp/openapi_public.yaml` produces false positives for every recipe that counts violations — e.g., it may report tag-casing hits that no longer exist in the codebase. + +### 2b. Tag audit (run after creating, moving, or retagging operations) + +`mix test` does not check tags. Run Recipe O (registry coverage — Step 4e) and Recipe P (URL prefix vs operation tag — Step 4d) from `references/oastools-audit-recipes.md`. + +### 3. Run controller tests (`mix test`) + +Run the specific controller test file. Every `json_response/2` call automatically validates the response body against the OpenAPI schema. This catches response-level issues: extra keys (via `additionalProperties: false`), missing required keys, and type mismatches. + +```bash +mix test apps/block_scout_web/test/block_scout_web/controllers/api/v2/_controller_test.exs +``` + +If tests fail with schema validation errors, the view output doesn't match the declared schema — fix the discrepancy. + +### 4. Code cross-referencing (for Inspect & Fix workflow) + +Manually or via grep, compare the controller's consumed parameters against declared parameters, and the view's output keys against schema properties. This catches logical issues that tests might miss (e.g., an undeclared optional parameter that works at runtime but isn't documented, or a schema property that's declared but never emitted by the view). + +See `references/inspection-checklist.md` for the systematic approach. + +--- + +## Workflow A: Create a new declaration + +Use this when an endpoint exists (route + controller action + view) but has no `operation/2` annotation. + +### Step 1: Gather context + +Read these files in parallel to understand the endpoint: + +1. **Router** — find the route definition. Note the HTTP method, path segments (especially `:param_name` segments), and which controller/action it maps to. +2. **Controller** — read the action function. Note what keys it destructures from `params` and `conn.body_params`, what data it fetches, and what view template it renders. +3. **View** — read the render function and any `prepare_*` helper it calls. Note every key in the output map — these become schema properties. Trace **all code paths**, not just the default: look for `case`/`cond`/pattern-match branches in the render function and its helpers that produce different map shapes depending on a field value. When found, note the discriminator field and the distinct set of keys each branch emits — these indicate a polymorphic sub-object that needs special handling in Step 3. +4. **Existing schemas** — glob `schemas/api/v2/*` to see if schema modules already exist for this domain. +5. **Peer precedent (optional)** — `oastools walk operations -tag -q .ai/tmp/openapi_public.yaml` lists sibling endpoints already in the spec. Useful before choosing between schema reuse and new schemas in Step 3. + +### Step 2: Find or create parameter definitions + +For each parameter the controller reads: + +1. **Check if a helper already exists.** Grep `general.ex` for a function matching the parameter name: + ``` + # For a path param named :address_hash_param + grep "def address_hash_param" in general.ex + ``` + Read `references/parameter-discovery.md` for naming conventions and discovery patterns. + +2. **If no helper exists**, decide: + - **Reusable across controllers?** Add a new helper function to `general.ex` following the naming conventions in `references/parameter-discovery.md`. + - **Domain-specific but used by multiple operations in the same controller?** Add a private helper function in the controller itself. This avoids polluting `general.ex` with chain-specific concerns while preventing duplication across operations. + - **Truly one-off (single operation)?** Define an inline `%OpenApiSpex.Parameter{}` struct directly in the `operation` macro arguments. + +3. **For pagination parameters**, use `define_paging_params(field_names)` — pass the cursor field names as strings, and always include `"items_count"` (the `next_page_params` helper adds it to every cursor automatically). See `references/parameter-discovery.md` section "The `define_paging_params` factory" for details. + +### Step 3: Create or locate response schema + +1. **Check if a schema module exists** for the response entity. Glob `schemas/api/v2/*.ex`. +2. **If schemas exist in the same domain**, compare their properties against the new view's output keys to detect subset/superset relationships (recipe N in `references/oastools-audit-recipes.md` gives a mechanical candidate list across all component schemas): + - **Existing schema is a subset** of what the new endpoint needs — use `extend_schema` from the existing schema, adding only the extra properties. See `references/schema-conventions.md` section "Schema reuse and naming for related schemas" for the naming convention and required `title:` parameter. + - **Existing schema is a superset** — the new endpoint may reference the existing schema directly (if it needs all the properties), or may need a reduced "minimal" schema that the existing one extends. + - **Before reusing, check `oneOf`/`anyOf` reachability.** If the candidate schema (or any of its nested properties) contains a `oneOf` or `anyOf`, trace each variant back through the controller action's code path to the view's render function. Identify which discriminator values the controller can actually produce for this endpoint. If all variants are reachable, reuse the schema directly. If only a subset is reachable, create a narrowed schema via `extend_schema`, overriding only the polymorphic property with a `oneOf` containing just the reachable variants. `extend_schema` merges properties and overwrites existing keys, so passing the narrowed property replaces the parent's full variant list (see `references/schema-conventions.md` section "Helper.extend_schema/2"). Example: if `Batch` has a `data_availability` with 4 `oneOf` variants but endpoint `batch_by_celestia_da_info` can only produce the Celestia variant, create a schema that extends `Batch` and overrides `data_availability` to contain only that variant. + - **No meaningful overlap** — create a standalone schema. +3. **If no suitable schema exists**, create one following the conventions in `references/schema-conventions.md`. The schema's properties must match the view's output keys exactly. +4. **Deduplicate against existing domain schemas.** Before finalizing properties, compare each inline `%Schema{type: :object}` block and each `%Schema{type: :string, enum: [...]}` definition in the new schema against properties in the existing schemas found in step 1. If an identical structure already exists in another schema in the same domain directory, extract it into a shared leaf schema module and reference it from both schemas. This avoids drift when the structure changes and consolidates Ecto.Enum sync comments to one location. See `references/schema-conventions.md` section "Domain-scoped shared schemas" for templates. Recipe D in `references/oastools-audit-recipes.md` enumerates every inline enum across the spec — group by `.enum` to find duplicates mechanically. +5. **Model polymorphic sub-objects.** If Step 1 identified a property whose structure varies based on a discriminator field (e.g., a `data_availability` object that changes shape depending on `batch_data_container`), a single flat `%Schema{type: :object}` with only the common fields will be incomplete — the variant-specific fields won't be documented or validated. Use `oneOf` to declare each variant. See `references/schema-conventions.md` section "Polymorphic properties (`oneOf`)" for the structural pattern, the per-variant discriminator-constraint rule, and a concrete template. For existing precedent, see `transaction.ex` (`revert_reason` property). +6. **Determine precise types from the Ecto schema.** The view layer is lossy — it renders everything as JSON primitives. Read the entity's Ecto schema (under `apps/explorer/lib/explorer/chain/`) to recover the real constraints: `Ecto.Enum` values, nullability, and integer-vs-string representation for large numbers. See `references/schema-conventions.md` §"Determining property types from Ecto schemas" for the full Ecto-to-OpenAPI mapping, the mandatory enum sync-comment format, and the OpenAPI-3.0 nullability rule (`nullable: true`, never `type: :null`). +7. **Set `additionalProperties: false`** on object schemas — this is a project-wide convention that enables test-time enforcement. + - **For non-negative integer properties** (block numbers, batch numbers, counts, indices, nonces), set `minimum: 0` to enforce the domain constraint at the validation level. +8. **Set `required:`** to list all keys that the view always emits. +9. For paginated list endpoints, use `General.paginated_response/1` to wrap the item schema. +10. **Review properties for description adequacy.** After defining types and constraints, do a final pass over all properties. For each property without a `description:`, ask: "Would an API consumer unfamiliar with this chain's internals understand this from the name alone?" Add descriptions to properties that are ambiguous, use domain jargon, mirror Solidity field names, or where the chain context (Parent chain vs Rollup) is unclear. Tautological descriptions that restate the property name don't count — rewrite or remove them. See `references/schema-conventions.md` section "Property descriptions" for guidelines and examples. + +### Step 4a: Write the operation annotation + +Add the `operation/2` call above the controller action. Follow the structure in "The operation macro" section above. Make sure: +- `summary:` is a short imperative sentence +- `description:` adds useful detail beyond the summary +- `parameters:` includes `base_params()` and all path/query params +- `responses:` covers the success case and all error cases the action can return. If multiple controller branches share the same status code with different error messages, use a custom description tuple instead of the generic `Module.response()` helper — see `references/error-response-patterns.md` section "Multiple error branches sharing one status code". + +If the controller lacks the `use OpenApiSpex.ControllerSpecs` line and `CastAndValidate` plug, add them (see "Controller prerequisites"). If the `tags([...])` string is brand-new (not already present in `@default_api_categories` or any `chain_type_category_tags/0` clause in `specs/public.ex`), proceed through Step 4e before verification — without registration the tag still renders per-operation but has no ordering guarantee. + +### Step 4b: Update paging_options if the endpoint is paginated + +If the action calls `paging_options(params)` (directly or via helpers like `next_page_params`), the string-key clauses in `chain.ex` will no longer match because `CastAndValidate` has already converted params to atom keys with cast types. + +Check `chain.ex` for the relevant `paging_options` clause. If only a string-key clause exists (e.g., `%{"id" => id_string}` with `Integer.parse`): +- **Add** a matching atom-key clause (e.g., `%{id: id}`) if the string-key clause is still used by other actions without specs +- **Replace** the string-key clause with an atom-key one if all callers now go through `CastAndValidate` + +The atom-key clause is typically simpler because `CastAndValidate` already handles type casting — no `Integer.parse` or similar parsing needed. + +This step is especially important when **promoting** an action from `operation :action, false` to a real spec — that is the moment where `paging_options` stops receiving string keys and the mismatch occurs. + +### Step 4c: Ensure path params are excluded from `next_page_params` + +If the endpoint is paginated **and** has path parameters, those path params will leak into the pagination cursor response unless explicitly stripped. + +**Why this happens:** CastAndValidate converts all params (path + query) to atom keys in a single map. The `next_page_params/5` function receives this map and builds the cursor for the response. It calls `delete_parameters_from_next_page_params/1` (in `paging_helper.ex`) to strip known non-pagination params, but only params listed in its `Map.drop` list are removed. If a path param isn't listed, it appears in the JSON response's `next_page_params`. When the client sends that cursor back as query params on the next request, CastAndValidate rejects the path param as "Unexpected field" because it's declared as `:path`, not `:query`. + +**What to do:** For each path parameter declared in the operation: +1. Read `delete_parameters_from_next_page_params/1` in `apps/block_scout_web/lib/block_scout_web/paging_helper.ex`. +2. Check whether the atom-key form (e.g., `:direction`) is in the `Map.drop` list. +3. If missing, add it among the other atom-key entries at the top of the list. + +The existing list already includes common path params like `:address_hash_param`, `:batch_number_param`, `:block_hash_or_number_param`, `:transaction_hash_param`. New path params need to be added as they are introduced. + +### Step 4d: Pick the right tag(s) when URL prefix and controller domain disagree + +If the operation's URL lives under a cross-cutting prefix that is itself a tag (e.g., `/v2/main-page/...`), add `tags: [""]` per-operation. OpenApiSpex appends to module-level `tags(...)`, so the operation will appear under both groups (dual-tagging — the default). For exclusive relocation, see `references/schema-conventions.md` §"Cross-cutting URL prefixes and tags". + +### Step 4e: Register a new tag in the registry + +If the controller's `tags([...])` declares a tag not already in `@default_api_categories` or any `chain_type_category_tags/0` clause in `specs/public.ex`, add it. Base tag → `@default_api_categories`; chain-type tag → matching `case @chain_identity` branch. See "Tag registry" in Core patterns for branch shapes. + +### Step 5: Ensure test coverage + +Tests are the primary mechanism that validates the response schema matches the actual view output. Without tests hitting the endpoint, the schema is unverified documentation that may be wrong. + +1. **Enumerate all status codes the controller action returns.** Read the controller action and list every distinct HTTP status code it can produce. Look for: + - `put_status` calls (e.g., `put_status(:bad_request)`, `put_status(200)`) + - Pattern-match branches that render different error responses + - `send_resp` calls with explicit status codes + - The implicit 200 from the success path (`render` without `put_status`) + + Cross-reference this list against the `responses:` declared in the operation. Every status code declared in the operation should have at least one test. If multiple branches return the same status code with different conditions, note each branch separately — ideally each gets its own test case so the conditions are documented. The spec-side half of this cross-check is one command: `oastools walk responses -path -method -q .ai/tmp/openapi_public.yaml`. + + Some branches depend on external systems (RPC calls, microservice responses) and cannot be reached with pure DB setup. Decide how to handle each one: + + - **Mock when the branch produces a distinct response shape** — a different `oneOf` variant, a different set of required keys, or an enum value not exercised by other tests. These are exactly the cases where `additionalProperties: false` and type constraints silently rot without coverage. (Example: the Arbitrum withdrawal token sub-object and `:confirmed`/`:sent` status paths are only reachable through L1 RPC mocking, and testing them exposed a real OpenApiSpex schema-title collision bug that would have shipped otherwise.) + - **Document and skip when the mocking cost is disproportionate** — e.g., a branch requires orchestrating multiple cross-chain RPC fallback steps. Add a code comment explaining what the branch does and why it's not covered (e.g., `# :unknown status — requires Outbox.isSpent=false AND get_size_for_proof/0 returning nil (multi-step L1/L2 RPC fallback), not covered here`). + + **How to mock RPC dependencies when it's worth it.** The established pattern uses `:meck` to intercept `Indexer.Helper.json_rpc_named_arguments/1` so it returns a Mox-backed transport, then `Mox.expect` stubs specific contract calls with ABI-encoded responses. See `arbitrum_controller_test.exs` helpers (`setup_arbitrum_l1_rpc_mocks!`, `expect_inbox_outbox_query!`, `expect_erc20_metadata!`, etc.) for a working reference. When building mock fixtures for chain-specific RPC calls, the Blockscout MCP server can discover real on-chain data (event logs, calldata, contract return values) to verify that fixtures match production structure — it is a discovery aid, not a source of truth; the ABI spec and contract source are authoritative. + +2. **Check if tests already exist.** Look for the test file at `apps/block_scout_web/test/block_scout_web/controllers/api/v2/_controller_test.exs`. Grep for the endpoint path or action name within the file. If tests already hit the endpoint and call `json_response/2`, they will automatically validate the schema — proceed to Step 6. + +3. **If no tests exist**, create them. For minimal test templates covering list / single-resource / 404 / 422 cases, see `references/inspection-checklist.md` section "Minimal test templates". Every `json_response/2` call triggers schema validation automatically. Cover every status code enumerated in item 1 — if the controller returns codes beyond the templates (e.g., 400 from business-logic checks), add tests for those too, setting up the DB state that triggers each branch. + +4. **If the schema contains `oneOf` polymorphic sub-objects** (from Step 3 item 5), write at least one test per variant so each branch's `additionalProperties: false` constraint is exercised. The default factory typically produces only the simplest variant, so other variants need explicit setup — insert the factory with the discriminator value set, plus any associated records the view fetches. If a variant is only reachable through an external dependency (RPC, microservice), see item 1 above. + +### Step 6: Verify + +Run the verification ladder from the "Verification" section above (compile → generate-spec → tests). If tests fail with schema validation errors, the view output doesn't match the declared schema — fix the discrepancy. + +--- + +## Workflow B: Adjust an existing declaration + +Use this when an endpoint's parameters or response have changed and the OpenAPI spec needs to catch up. + +### Step 1: Identify the change + +Read the controller action and view to understand what changed. Common scenarios: +- **New parameter added** — controller now reads a new key from params +- **Parameter removed** — controller no longer uses a parameter +- **New response field** — view now emits an additional key +- **Response field removed** — view no longer emits a key +- **Type changed** — a field's type or format changed + +### Step 2: Update the declaration + +- **Parameters**: Add/remove from the `parameters:` list in the `operation` macro. If adding a new reusable param, add a helper to `general.ex`. +- **Response fields**: Update the schema module's `properties:` map and `required:` list. If adding a field, add it to both. If removing, remove from both. +- **Type changes**: Update the property's schema type in the schema module. + +### Step 3: Verify + +Run the verification ladder from the "Verification" section above (compile → generate-spec → tests). If parameters changed, also revisit Workflow A Step 4b/4c — atom-key `paging_options` clauses and `next_page_params` path-param stripping apply equally when adjusting. + +--- + +## Workflow C: Inspect & fix an existing declaration + +Use this to audit an existing declaration for correctness, completeness, and adherence to project conventions. Read `references/inspection-checklist.md` and work through it end to end — it owns the full cross-reference procedure (parameters, response fields, conventions, schema organization) and ends with the verification ladder. + +--- + +## When to read reference files + +| Reference | Read when... | +|---|---| +| `references/parameter-discovery.md` | You need to find existing parameter helpers, create new ones, or understand naming/categorization conventions | +| `references/schema-conventions.md` | You need to create new schema modules, understand directory layout, work with chain-type customizations, or model polymorphic properties with `oneOf` | +| `references/error-response-patterns.md` | You need to declare error responses or understand which error module to use for a status code | +| `references/request-body-security-headers.md` | You're working with POST/PUT/PATCH endpoints, authentication/security, or HTTP header declarations | +| `references/inspection-checklist.md` | You're running an audit of an existing declaration (Workflow C) | +| `references/spec-generation-and-verification.md` | You need to generate the spec YAML, validate it, or inspect specific operations/schemas with oastools | +| `references/oastools-audit-recipes.md` | You want to audit the generated spec for spec-wide convention drift or reuse candidates, without reading every source file | + +## Using subagents + +For the Create workflow, parallelize the initial context gathering (Step 1) by spawning subagents to read the router, controller, view, and existing schemas simultaneously. + +When running tests after changes, use the devcontainer skill if mix/elixir is not available on the host. diff --git a/.agents/skills/openapi-spec/references/error-response-patterns.md b/.agents/skills/openapi-spec/references/error-response-patterns.md new file mode 100644 index 000000000000..8a86ff4dcebf --- /dev/null +++ b/.agents/skills/openapi-spec/references/error-response-patterns.md @@ -0,0 +1,132 @@ +# Error Response Patterns + +## Discovery + +All custom error response modules are defined in a single file: +`apps/block_scout_web/lib/block_scout_web/schemas/api/v2/error_responses.ex` + +Plus one from the `open_api_spex` library itself: `OpenApiSpex.JsonErrorResponse`. + +To discover the current set, read `error_responses.ex` and look for `defmodule` declarations. Each module defines a `response/0` helper. + +## The response/0 helper pattern + +All custom error modules follow this pattern: + +```elixir +defmodule NotFoundResponse do + require OpenApiSpex + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + title: "NotFoundResponse", + type: :object, + properties: %{message: %Schema{type: :string, example: "Resource not found"}} + }) + + def response, do: {"Not Found", "application/json", __MODULE__} +end +``` + +The `response/0` function returns a 3-tuple `{description, content_type, module}` used in operation specs: + +```elixir +responses: [ + not_found: NotFoundResponse.response(), + unprocessable_entity: JsonErrorResponse.response() +] +``` + +`JsonErrorResponse` (from `open_api_spex`) returns a `%Response{}` struct instead of a tuple. Both forms work in the `operation` macro. + +## Status code mapping + +The response key in the `responses:` keyword list determines the HTTP status code. Use the atom form: + +| Atom key | HTTP status | Typical module | +|---|---|---| +| `:ok` | 200 | (success — use domain schema) | +| `:bad_request` | 400 | `BadRequestResponse` | +| `:unauthorized` | 401 | `UnauthorizedResponse` | +| `:forbidden` | 403 | `ForbiddenResponse` | +| `:not_found` | 404 | `NotFoundResponse` | +| `:unprocessable_entity` | 422 | `JsonErrorResponse` | +| `:not_implemented` | 501 | `NotImplementedResponse` | + +To verify the current mapping, read `error_responses.ex` and check the module names and their example messages. + +## Auto-aliased modules + +Two modules are automatically available in every controller (aliased in `block_scout_web.ex`): + +```elixir +alias OpenApiSpex.JsonErrorResponse +alias Schemas.ErrorResponses.ForbiddenResponse +``` + +All others must be explicitly aliased in the controller: +```elixir +alias BlockScoutWeb.Schemas.API.V2.ErrorResponses.NotFoundResponse +``` + +To check which are auto-aliased, read the `:controller` quote block in `block_scout_web.ex`. + +## When to use which error response + +- **`JsonErrorResponse` (422)** — the default for validation errors. `CastAndValidate` returns this automatically when parameter validation fails. Also use when the controller explicitly rejects input as invalid. +- **`NotFoundResponse` (404)** — when the requested resource doesn't exist. +- **`ForbiddenResponse` (403)** — when the request is authenticated but not authorized, or when a required server-side config (like an API key) is missing. +- **`UnauthorizedResponse` (401)** — when authentication is required but missing/invalid. Primarily used in account/private API endpoints. +- **`BadRequestResponse` (400)** — when the request is malformed in a way that isn't a parameter validation error. +- **`NotImplementedResponse` (501)** — when the endpoint exists but the feature is not available. + +## Choosing error responses for an operation + +Look at the controller action to identify which error paths exist: + +1. **Every operation** should include `:unprocessable_entity: JsonErrorResponse.response()` — CastAndValidate can always fail. Spec-wide audit of operations currently missing 422: recipe B in `references/oastools-audit-recipes.md`. +2. If the action does a resource lookup (e.g., `Chain.hash_to_transaction`), include `:not_found`. +3. If the action checks authorization (e.g., `AccessHelper.restricted_access?`), include `:forbidden`. +4. If the action requires authentication, include `:unauthorized`. +5. Check `put_status` and `send_resp` calls in the action for other status codes. If multiple branches return the same status code with different error messages, see "Multiple error branches sharing one status code" below for how to write a descriptive response instead of using the generic helper. + +Not all runtime error paths need to be in the spec — undeclared status codes (like `:internal_server_error` from rate limiting) are typically treated as infrastructure concerns. But all explicitly handled error cases in the controller action should be declared. + +## Multiple error branches sharing one status code + +Sometimes a controller action has several branches that all return the same HTTP status code but with different error messages. For example, three separate `put_status(:bad_request)` calls returning "withdrawal is unconfirmed yet", "withdrawal is just initiated", and "withdrawal was executed already". Using `BadRequestResponse.response()` produces a generic "Bad Request" description that gives API consumers no hint about what triggers each error. + +When this happens, replace the generic `Module.response()` helper with a custom `{description, content_type, module}` tuple where the description documents the possible error conditions: + +```elixir +responses: [ + ok: {"Success description", "application/json", Schemas.SomeDomain.Response}, + bad_request: + {"Withdrawal cannot be claimed. Returned when the withdrawal is unconfirmed, just initiated, or already executed.", + "application/json", BadRequestResponse}, + not_found: NotFoundResponse.response(), + unprocessable_entity: JsonErrorResponse.response() +] +``` + +This works because `response/0` just returns the same kind of 3-tuple. By writing the tuple directly, you can customize the description while keeping the same response schema module. + +**When to use this pattern:** +- The controller has 2+ branches returning the same status code with different user-facing messages +- The conditions are meaningful to API consumers (not internal implementation details) + +**When NOT to use it:** +- The status code has only one triggering condition — use the standard `Module.response()` helper +- The different messages are minor variants of the same condition — the generic description is fine + +## Custom inline error responses + +For one-off error schemas (e.g., a specific error format for a single endpoint), you can use an inline tuple: + +```elixir +responses: [ + internal_server_error: {"Error message", "application/json", message_response_schema()} +] +``` + +Where `message_response_schema()` is a helper that returns an inline schema. Check the controller's existing patterns to see if this is used. diff --git a/.agents/skills/openapi-spec/references/inspection-checklist.md b/.agents/skills/openapi-spec/references/inspection-checklist.md new file mode 100644 index 000000000000..ed39b7183d1c --- /dev/null +++ b/.agents/skills/openapi-spec/references/inspection-checklist.md @@ -0,0 +1,260 @@ +# Inspection Checklist + +Use this checklist to systematically audit an existing OpenAPI declaration. Work through each section, reading the relevant files as needed. + +## 1. Parameter completeness + +### 1a. Every parameter the controller reads should be declared + +Read the controller action function. Identify every key it reads from: +- `params` pattern match in the function head (path + query params) +- `conn.body_params` (request body params) +- `conn.req_headers` (header params) +- Calls to helper functions that read from params (e.g., `paging_options(params)`, `token_transfers_types_options(params)`, `fetch_scam_token_toggle(conn)`) + +Cross-reference with the `parameters:` list in the `operation` macro. Every parameter that affects the endpoint's behavior should be declared. + +Spec-side enumeration in one command: `oastools walk parameters -path -method -q .ai/tmp/openapi_public.yaml`. Controller side still needs to be read for the comparison. + +**Known exceptions**: cross-cutting headers (`show-scam-tokens`, recaptcha headers) are conventionally undeclared. See `references/request-body-security-headers.md` for the gap details and recommended approach. + +### 1b. Every declared parameter should be used + +Check that each parameter in the `parameters:` list is actually consumed by the controller. Unused declared parameters create misleading API documentation. + +### 1c. Three-way coupling is consistent + +For each **path** parameter, verify: +1. The route segment name (`:param_name` in router) matches the `%Parameter{name: :param_name}` atom +2. The controller action's pattern match uses the same atom key +3. All three agree exactly + +Read the route definition in the router file, the `%Parameter{}` definition, and the controller action head. + +Spec side: `oastools walk parameters -in path -path -method -detail -format json .ai/tmp/openapi_public.yaml | jq '.parameter.name'`. + +### 1d. Parameter types are accurate + +For each parameter: +- Path params that are hashes should use `FullHash` or `AddressHash` schema +- Path params that are numbers should use `IntegerString` or `%Schema{type: :integer}` +- Enum params should have the correct `enum:` values (check the controller logic for valid values) +- Boolean params should use `%Schema{type: :boolean}` + +### 1e. No duplicated inline parameters + +For each inline `%Parameter{}` struct in the operation, scan the other operations in the same controller for identical or near-identical structs (same `name`, `in`, `schema`, and `description`). Duplicated inline parameters are a maintenance risk — changing one without updating the other creates silent inconsistencies. + +Mechanical scan across the whole domain: recipe E in `references/oastools-audit-recipes.md` groups same-name parameters across all endpoints under one path prefix in a single pass. + +If duplication is found, extract the parameter into a reusable helper function: +- **Generic concept** (address hashes, transaction hashes, block numbers — useful across multiple controllers): add a helper to `general.ex` following the conventions in `references/parameter-discovery.md`. +- **Domain-specific concept** (e.g., an Arbitrum message direction — only meaningful within one controller): add a private helper function in the same controller. This keeps the chain-specific concern contained without polluting the shared `general.ex`. + +## 2. Response field alignment + +### 2a. Schema properties match view output + +Read the view's render function and any `prepare_*` helper it calls. List every key in the output map. + +Read the response schema module. List every key in `properties:`. + +Compare: +- **Extra schema properties** (in schema but not in view): if in `required:`, this will cause test failures. If optional, it's technically valid but misleading. +- **Extra view keys** (in view but not in schema): if schema has `additionalProperties: false`, this will cause test failures. Otherwise it's undocumented output. +- **Type mismatches**: verify that each view output value matches its schema type (string, integer, object, array, nullable). + +Schema-side key list in one command: `oastools walk schemas -name -detail -format json .ai/tmp/openapi_public.yaml | jq '.[0].schema.properties | keys'`. + +### 2b. Type precision — check Ecto schemas for enums and constraints + +The view layer is lossy about types. A field that renders as a plain string may actually be an `Ecto.Enum` with a fixed set of values. For each string-typed property in the OpenAPI schema: + +1. Find the corresponding Ecto schema module in `apps/explorer/lib/explorer/chain/`. Grep for `Ecto.Enum` in that file. +2. If the field is an `Ecto.Enum`, the OpenAPI property should use `enum: [...]` with the correct values, not just `type: :string`. +3. If the property already uses `enum:`, verify the values are **complete and current** by comparing against the Ecto enum definition. New values may have been added to the Ecto schema without updating the OpenAPI schema — this is a silent breakage where `CastAndValidate` rejects the new value on input. +4. Verify there is a code comment on the enum property pointing to the source Ecto field (e.g., `# Enum values must be kept in sync with Explorer.Chain. : field.`). If missing, add one. +5. Check existing schemas in the same domain for precedent — similar entities often already use enum for comparable fields. + +Also check for other type refinements: large integers serialized as strings should use `IntegerString`, hash fields should use `FullHash`/`AddressHash`, timestamps should use `Timestamp`/`TimestampNullable`. + +See `references/schema-conventions.md` section "Determining property types from Ecto schemas" for the full Ecto-to-OpenAPI type mapping. + +### 2c. Required list is accurate + +Every key the view always emits should be in `required:`. Keys that are conditional or sometimes `nil` should either: +- Not be in `required:` (if the key might be absent) +- Be in `required:` but have `nullable: true` on the schema (if the key is always present but sometimes null) + +**Scope.** "Always emits" and "sometimes `nil`" refer to the render paths reachable via the **endpoints that currently reference this schema** in their `operation/2` `responses:`. Before flagging a `nullable: false` property as wrong: + +1. Enumerate those call sites mechanically: `Grep "Schemas\.\b" apps/block_scout_web/lib/block_scout_web/controllers`. +2. For each call site, check the controller's `necessity_by_association` / explicit `Repo.preload/2` / other data-shaping code to determine whether the value can in fact reach the view as `nil`. +3. Only flag if at least one spec-declared render path can produce `nil`. A hedge of the form "*if* any of those readers skips preloading X" or "the shared schema *may* be over-constrained" is not a finding — it is a note that you haven't finished step 2. Either complete the enumeration and cite a specific `controller.ex:line` where the preload is absent, or drop the concern. +4. Each finding must be actionable on the endpoint being audited. If step 2 shows "this could be wrong for a peer endpoint, but `/v2/X` itself is fine," don't raise it as Major/Minor on the `/v2/X` audit. Drop it, or downgrade to a Nit that names the specific peer endpoints as a suggested follow-up audit. A "Major that requires no action on the audited endpoint" is a contradiction — it either has a concrete action here (Major/Minor) or it doesn't (Nit / separate audit). + +Don't flag based on "a future endpoint might not preload X." If a future endpoint is added without the required preload, that new endpoint's audit owns the fix — it is not the shared schema's job to pre-accommodate code that hasn't been written yet. + +See `references/schema-conventions.md` section "Nullable fields" for the full nullable handling rules, including why `type: :null` / `anyOf: [%Schema{type: :null}, …]` (OpenAPI 3.1) is invalid here. + +### 2d. additionalProperties: false is set + +Check that `additionalProperties: false` is present on all object schemas. This is a project-wide convention that enables test-time enforcement. + +Spec-wide audit: recipe A in `references/oastools-audit-recipes.md` lists every component object schema that violates this. Error-response schemas (`NotFoundResponse`, `ForbiddenResponse`, etc.) intentionally omit it — real domain-schema drift is typically the remainder. + +### 2e. Chain-type fields are aligned + +If the view has chain-type dispatching (check for `chain_type` case statements or `with_chain_type_fields` calls), the schema should also have a `ChainTypeCustomizations` module applying the same fields. Verify both sides handle the same chain types. See `references/schema-conventions.md` section "Chain-type customization pattern" for the dispatch mechanism and where `ChainTypeCustomizations` modules are conventionally placed. + +### 2f. Property descriptions are adequate + +Scan all properties in the schema. For each property that has no `description:` (or a tautological one that restates the name), ask: "Would an API consumer unfamiliar with this chain's internals understand this property from its name alone?" + +Flag properties that fail this test. Common patterns to watch for: + +- **Domain jargon** (`before_acc_hash`, `callvalue`) — needs explanation of what the term means +- **Ambiguous roles** (`caller_address_hash`, `destination_address_hash`) — needs "who" and "on which chain" +- **Unclear chain context** (`block_number` in a cross-chain object) — needs "Parent chain" or "Rollup" +- **Enum values without lifecycle explanation** (`status` with `["initiated", "sent", "confirmed", "relayed"]`) — needs description of what triggers each transition +- **Tautological descriptions** ("Withdrawal status." on `status`) — count as missing; rewrite or remove + +Self-documenting compound names (`origination_transaction_block_number`) and well-known primitives (`token.symbol`) don't need descriptions. + +Mechanical shortlist of properties lacking `description:`: recipe C in `references/oastools-audit-recipes.md`. Human review still needed — tautologies pass this filter. + +See `references/schema-conventions.md` section "Property descriptions" for the full guidelines and before/after examples. + +### 2g. `oneOf`/`anyOf` variant reachability + +For each property in the response schema that uses `oneOf` or `anyOf`, verify that every variant is producible by this endpoint's controller action: + +1. List the variants in the `oneOf`/`anyOf` and identify the discriminator value(s) each covers. +2. Read the controller action. Trace which code paths lead to the view's render function. Identify which discriminator values the controller can pass to the view. +3. Read the view's render function and its helpers. Confirm which variants the view can actually emit for the data the controller provides. +4. Compare: flag any variant whose discriminator value(s) can never be produced by this endpoint. + +**If unreachable variants are found:** The schema overpromises to API consumers. Create a narrowed schema via `extend_schema` that overrides only the polymorphic property, keeping just the reachable variants. See `references/schema-conventions.md` section "Helper.extend_schema/2". + +To find all endpoints whose 200 response currently uses `oneOf` (for precedent), run recipe G in `references/oastools-audit-recipes.md`. + +This check is especially important for endpoints that filter by a specific discriminator value (e.g., a DA-type lookup that always returns one DA variant, but references a shared batch schema containing all DA variants). + +## 3. Convention compliance + +### 3a. Controller prerequisites + +Verify the controller has: +- `use OpenApiSpex.ControllerSpecs` +- `plug(OpenApiSpex.Plug.CastAndValidate, json_render_error_v2: true)` +- `tags(["domain-tag"])` — kebab-case (e.g. `"internal-transactions"`, `"smart-contracts"`, `"account-abstraction"`); should match the router scope/resource group +- The tag is registered in `specs/public.ex` — in `@default_api_categories` (base), in the appropriate `case @chain_identity` branch of `chain_type_category/0` (chain-type), or already pinned as `"legacy"`. An un-registered tag still renders per-operation but has no guaranteed ordering in the generated spec. + +Spec-wide tripwire: recipe I in `references/oastools-audit-recipes.md` returns any tag containing `_`. The baseline is `[]` — any hit likely means a controller predates the kebab-case convention. + +### 3b. base_params() is included + +Every public API operation should include `base_params()` in its parameters. Check that `base_params()` is present and isn't accidentally duplicated. + +Spec-wide audit: recipe F in `references/oastools-audit-recipes.md` lists operations missing `apikey`. + +### 3c. Error responses are appropriate + +Check which error cases the controller action handles (not_found, forbidden, etc.) and verify corresponding error responses are declared. See `references/error-response-patterns.md` for the status-code-to-module mapping. + +At minimum, every operation should declare `:unprocessable_entity: JsonErrorResponse.response()` since CastAndValidate can always fail. + +Spec-wide audit: recipe B in `references/oastools-audit-recipes.md` lists operations missing 422. Some are likely-intentional (legacy endpoints, CSV exports) — triage per endpoint. + +### 3d. Summary and description + +- `summary:` should be a short imperative sentence (shown in endpoint lists) +- `description:` should add useful detail beyond the summary +- Both should be present + +### 3e. Operation name matches action + +The first argument to `operation/2` must match the controller action function name: +```elixir +operation :transaction, ... # matches def transaction(conn, params) +``` + +## 4. Schema module organization + +### 4a. Schema is in the right location + +Check that the schema module follows directory conventions: +- Domain schemas under `schemas/api/v2/.ex` or `schemas/api/v2//*.ex` +- Chain-specific schemas under `schemas/api/v2//` +- Leaf types under `schemas/api/v2/general/` + +See `references/schema-conventions.md` for full conventions. + +### 4b. Module naming follows conventions + +`BlockScoutWeb.Schemas.API.V2.` for base schemas, `BlockScoutWeb.Schemas.API.V2..Response` for response wrappers. + +## 5. Verification + +After identifying and fixing issues from sections 1-4, run the verification ladder described in the "Verification" section of `SKILL.md` (compile → generate-spec → controller tests). Each step catches a different class of problems, and earlier steps are faster. + +### 5a. Test coverage check + +Check that tests exist and exercise the endpoint: + +1. **Test file exists**: `test/block_scout_web/controllers/api/v2/_controller_test.exs` +2. **Tests hit the endpoint**: grep for the endpoint path in the test file +3. **All declared status codes are tested**: enumerate every status code in the operation's `responses:` and verify at least one test exercises each. Pay special attention to status codes with multiple triggering conditions (e.g., multiple 400 branches) — each condition ideally has its own test case. Spec-side enumeration: `oastools walk responses -path -method -q .ai/tmp/openapi_public.yaml`. + +### Minimal test templates + +If no tests exist for the endpoint: + +```elixir +# For a list endpoint (empty list, zero factory data) +test "empty list", %{conn: conn} do + request = get(conn, "/api/v2/") + assert response = json_response(request, 200) + assert response["items"] == [] + assert response["next_page_params"] == nil +end + +# For a single-resource endpoint +test "returns resource", %{conn: conn} do + resource = insert(:) + request = get(conn, "/api/v2//#{resource.id}") + assert _response = json_response(request, 200) +end + +# For a not-found case +test "returns 404", %{conn: conn} do + resource = build(:) # build but don't insert + request = get(conn, "/api/v2//#{resource.id}") + assert %{"message" => "Not found"} = json_response(request, 404) +end + +# For a validation error +test "returns 422 on invalid input", %{conn: conn} do + request = get(conn, "/api/v2//invalid_value") + assert %{"errors" => [_]} = json_response(request, 422) +end +``` + +## 6. Spec-wide sweep + +Independent of any single-endpoint audit, run this sweep once per work session to catch drift introduced elsewhere in the codebase. Regenerate the spec first — stale YAML produces false positives. + +- Recipe A — object schemas missing `additionalProperties: false` +- Recipe B — operations missing 422 +- Recipe F — operations missing `apikey` (base_params) +- Recipe I — tags violating kebab-case + +Full recipes in `references/oastools-audit-recipes.md`. Results belong in the "Convention deviations" section of the audit output below. + +## Audit output + +After completing the checklist, summarize findings as: + +1. **Issues found** — concrete problems that will cause test failures or spec inaccuracies +2. **Convention deviations** — things that work but don't follow project conventions +3. **Improvement opportunities** — optional enhancements (better descriptions, missing examples, undeclared headers) diff --git a/.agents/skills/openapi-spec/references/oastools-audit-recipes.md b/.agents/skills/openapi-spec/references/oastools-audit-recipes.md new file mode 100644 index 000000000000..7c12fd31fca5 --- /dev/null +++ b/.agents/skills/openapi-spec/references/oastools-audit-recipes.md @@ -0,0 +1,238 @@ +# oastools Audit Recipes + +Use these when authoring or auditing a declaration and you need a fact about the spec as a whole (not just one endpoint). For single-endpoint queries, see `references/spec-generation-and-verification.md`. + +## Before running any recipe: regenerate + +The generated spec is cache-like. A stale `.ai/tmp/openapi_public.yaml` produces false positives — e.g., a pre-migration spec may report tag-casing or path-prefix hits that the current codebase has already fixed. + +```bash +.claude/skills/openapi-spec/scripts/generate-spec.sh +``` + +All recipes below assume `F=.ai/tmp/openapi_public.yaml` is set as a shell variable; substitute the full path if not. + +## How each recipe is organized + +Each recipe states: what it answers, the command, a baseline count (a tripwire, not a spec — not every hit is a bug; read the notes), and which skill sections cite it. + +When a recipe's hit count goes down because you fixed drift, update the number here in the same PR. When it goes up, the PR introducing the regression should either fix it or document why in the recipe notes. + +--- + +## Convention audits + +Run these after any schema-touching change to catch drift a single-endpoint test run won't. + +### A. Object schemas missing `additionalProperties: false` + +```bash +oastools walk schemas -component -type object -detail -format json -q $F \ + | jq -rs '[.[] | select(.jsonPath | test("^\\$.components.schemas\\[[^.]+\\]$")) + | select(.schema.additionalProperties != false) | .name]' +``` + +Baseline: 12 hits, of which 6 are error-response schemas (`NotFoundResponse`, `ForbiddenResponse`, `UnauthorizedResponse`, `BadRequestResponse`, `NotImplementedResponse`, `JsonErrorResponse`) that intentionally omit `additionalProperties: false` — error payloads may carry extra debug fields. Real domain-schema drift is ~6 (`AuditReport`, `BlockCountdown`, `Counters`, `Response`, `SearchResult`, `StatsResponse`, `Status`). + +Used by: `inspection-checklist.md` §2d, `schema-conventions.md` §"Composite object schemas". + +### B. Operations missing `:unprocessable_entity` (422) + +```bash +oastools walk operations -detail -format json $F \ + | jq -rs '[.[] | select(.operation.responses | has("422") | not) + | "\(.method) \(.path)"]' +``` + +Baseline: 21 hits. Some are likely-intentional (legacy endpoints without CastAndValidate, CSV exports whose only failure mode is 404). Triage per endpoint. + +Used by: `inspection-checklist.md` §3c, `error-response-patterns.md` §"Choosing error responses for an operation". + +### F. Operations missing `base_params()` (no `apikey` query param) + +```bash +oastools walk operations -detail -format json $F \ + | jq -rs '[.[] | select((.operation.parameters // [] | map(.name) | index("apikey")) == null) + | "\(.method) \(.path)"]' +``` + +Baseline: 1 hit (`GET /v2/transactions/stats`). + +Used by: `inspection-checklist.md` §3b, `SKILL.md` §"base_params() — always include". + +### H. Operations missing summary or description + +```bash +oastools walk operations -detail -format json $F \ + | jq -rs '[.[] | select(.operation.summary == null or .operation.description == null) + | "\(.method) \(.path)"]' +``` + +Baseline: 0 hits. Any hit is a straight fix. + +Used by: `inspection-checklist.md` §3d. + +### I. Tags violating kebab-case + +```bash +oastools walk operations -detail -format json $F \ + | jq -rs '[.[] | .operation.tags[]?] | unique | map(select(contains("_")))' +``` + +Baseline: 0 hits. Any hit likely means a controller predates the kebab-case convention — migrate both the `tags(...)` call in the controller AND the registry entry in `specs/public.ex`. + +Used by: `inspection-checklist.md` §3a, `SKILL.md` §"Controller prerequisites". + +### O. Tags used by operations but missing from the top-level `tags:` registry + +```bash +oastools walk operations -detail -format json $F \ + | jq -rs --slurpfile spec <(yq -o=json '.tags // []' $F) \ + '([.[] | .operation.tags[]?] | unique) as $used + | ($spec[0] | map(.name)) as $declared + | $used - $declared' +``` + +Baseline: 0 hits. Any hit means a controller emits a tag not registered in `specs/public.ex` — Swagger UI will still show the tag on the operation, but ordering is undefined and the top-level `tags:` array is incomplete. Fix by adding the tag to `@default_api_categories` (base) or the appropriate `chain_type_category_tags/0` clause (chain-type), per `SKILL.md` §"Tag registry". + +This recipe is the mechanical safety net for the rule in Workflow A Step 4d — schema validation in tests does not check tags, so without this recipe the registration is silently missed. + +Used by: `SKILL.md` §Workflow A Step 4d, `SKILL.md` §"Tag registry". + +### P. URL prefix vs operation tag mismatch (heuristic) + +For each known cross-cutting URL prefix (`/v2/main-page/`, `/v2/csv-exports/`, etc.), find operations under that prefix whose tag list does not include the corresponding category tag. + +```bash +# main-page check +oastools walk operations -detail -format json $F \ + | jq -rs '[.[] | select(.path | startswith("/v2/main-page/")) + | select((.operation.tags // []) | index("main-page") | not) + | "\(.method) \(.path) tags=\(.operation.tags)"]' +``` + +Baseline: 0 hits expected. Repeat with other prefixes (`/v2/csv-exports/`, etc.) as needed. A hit means an operation under a cross-cutting URL prefix is tagged only by its hosting controller's domain — see `tagging-conventions.md` for whether to dual-tag or relocate. + +This recipe is heuristic — false positives are possible if a `/v2/main-page/...` URL genuinely should not be grouped with the rest of the main-page surface. Read the operation before applying a fix. + +Used by: `SKILL.md` §Workflow A Step 4d, `schema-conventions.md` §"Cross-cutting URL prefixes and tags". + +--- + +## Reuse and dedup scans + +Run before writing new schema code to find consolidation candidates. + +### D. Every inline enum in the spec + +```bash +oastools walk schemas -detail -format json -q $F \ + | jq -rs '[.[] | select(.schema.enum != null) + | {path: .jsonPath, enum: .schema.enum}]' +``` + +Baseline: 71 inline enums. Post-process by grouping on `.enum` to find duplicates worth extracting per `schema-conventions.md` §"Domain-scoped shared schemas". + +Used by: `schema-conventions.md` §"Domain-scoped shared schemas", `schema-conventions.md` §"Required: Ecto.Enum sync comments". + +### E. Duplicate parameter definitions within one domain + +```bash +oastools walk parameters -path '/v2//*' -detail -format json -q $F \ + | jq -rs '[group_by(.parameter.name)[] | select(length > 1) + | {name: .[0].parameter.name, count: length, paths: [.[].path]}]' +``` + +Returns any parameter declared on more than one endpoint under the given domain path. If the definitions are character-identical across endpoints, that's a helper extraction candidate per `inspection-checklist.md` §1e. Most domains return `[]`. + +Used by: `inspection-checklist.md` §1e. + +### G. Operations whose 200 response contains `oneOf` + +```bash +oastools walk operations -detail -resolve-refs -format json $F \ + | jq -rs '[.[] | select(.operation.responses."200".content."application/json".schema + | tostring | contains("oneOf")) + | "\(.method) \(.path)"]' +``` + +Baseline: 7 hits — all transaction-list endpoints. Use as precedent when modeling polymorphic responses. + +Used by: `schema-conventions.md` §"Polymorphic properties (`oneOf`)", `inspection-checklist.md` §2g. + +### N. Schema subset/superset scan + +```bash +oastools walk schemas -component -detail -format json -q $F \ + | jq -rs '[.[] | select(.jsonPath | test("^\\$.components.schemas\\[[^.]+\\]$")) + | {name, props: (.schema.properties // {} | keys)}] + | map(select(.props | length > 0))' +``` + +Emits `{name, props}` tuples for every component schema. Post-process with jq (set difference on `.props`) to find pairs where `A.props ⊆ B.props` — candidates for `extend_schema` reuse per `schema-conventions.md` §"Schema reuse and naming for related schemas". + +Used by: `SKILL.md` §Workflow A Step 3.2, `schema-conventions.md` §"Schema reuse and naming for related schemas". + +--- + +## Precedent / discovery lookups + +Run during authoring to find peer examples before writing new code. + +### J. Endpoints consuming a specific parameter helper + +```bash +oastools walk parameters -name -q $F +``` + +Authoritative about which endpoints *declare* the parameter in the spec — doesn't see controller-private helpers or inline params that happen to share a name. + +Used by: `parameter-discovery.md` §"Find which controllers use a helper". + +### K. All distinct parameter names reaching the spec + +```bash +oastools walk parameters -detail -format json $F \ + | jq -rs '[.[] | .parameter.name] | unique' +``` + +Baseline: 92 distinct names (vs ~48 `def.*_param` in `general.ex`). Diff to find: +- Zombie helpers — defined in `general.ex` but never reaching the spec. +- Inline-only params — declared in controllers, candidates for promotion to `general.ex` if they are reusable. + +Used by: `parameter-discovery.md` §"Browse all helpers". + +### L. Request body discovery across POST/PUT/PATCH ops + +```bash +oastools walk operations -method post -detail -format json $F \ + | jq -rs '.[] | select(.operation.requestBody) + | {path, body: .operation.requestBody.content."application/json".schema}' +``` + +Baseline: 1 op (`POST /v2/smart-contracts/{address_hash_param}/audit-reports`). Repeat with `-method put` / `-method patch` as needed. + +Used by: `request-body-security-headers.md` §"Discovering existing request body helpers". + +### M. Operations declaring `security:` + +```bash +oastools walk operations -detail -format json $F \ + | jq -rs '[.[] | select(.operation.security) | "\(.method) \(.path)"]' +``` + +Baseline: 0 in the public spec — `security:` is private/account-only. Regenerate against `specs/private.ex` for auth-bearing endpoints. + +Used by: `request-body-security-headers.md` §"Security schemes". + +### C. Properties missing `description:` in a named schema + +```bash +oastools walk schemas -name -detail -format json -q $F \ + | jq -rs '.[0].schema.properties | to_entries + | map(select(.value.description == null)) | map(.key)' +``` + +Produces a mechanical shortlist for review. Still needs human judgment — tautological descriptions (that restate the property name) pass this filter but are equally bad; see `schema-conventions.md` §"Property descriptions". + +Used by: `inspection-checklist.md` §2f, `schema-conventions.md` §"Property descriptions". diff --git a/.agents/skills/openapi-spec/references/parameter-discovery.md b/.agents/skills/openapi-spec/references/parameter-discovery.md new file mode 100644 index 000000000000..1da0c57f7e97 --- /dev/null +++ b/.agents/skills/openapi-spec/references/parameter-discovery.md @@ -0,0 +1,152 @@ +# Parameter Discovery Guide + +All parameter helper functions are centralized in a single file: +`apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general.ex` + +They are auto-imported into every controller via `block_scout_web.ex`: +```elixir +import BlockScoutWeb.Schemas.API.V2.General +``` + +No controllers or other schema modules define their own parameter helpers — `general.ex` is the single source. + +## How to discover existing helpers + +### Find a specific helper + +Grep for the function name in `general.ex`: +``` +grep "def transaction_hash_param" in general.ex +``` + +Parameter helpers follow the naming convention `_param` for single params, and `_params` for grouped helpers. + +### Browse all helpers + +Grep for `def.*_param` in `general.ex` to see the full list. There are ~48 helpers organized into functional categories (described below). + +To see which parameter names actually reach the generated spec, run recipe K in `references/oastools-audit-recipes.md`. The spec surfaces ~92 distinct names — diff against `general.ex` to find zombie helpers (defined but never used) and inline-only names (declared in controllers, candidates for promotion to `general.ex`). + +### Find which controllers use a helper + +Grep for the function name across `controllers/api/v2/`: +``` +grep "transaction_hash_param()" in controllers/api/v2/**/*.ex +``` + +`oastools walk parameters -name -q .ai/tmp/openapi_public.yaml` (recipe J) is authoritative about which endpoints *declare* the parameter in the spec — it doesn't see controller-private helpers or inline `%Parameter{}` structs, but it won't miss anything wired into the public spec. + +## Naming conventions + +| Category | Naming pattern | Examples | +|---|---|---| +| Path identifiers | `_hash_param`, `_number_param`, `_id_param` | `address_hash_param`, `block_number_param`, `token_id_param` | +| Domain filters | `_param` | `token_type_param`, `direction_filter_param`, `transaction_filter_param` | +| Sorting | `sort_param(fields)`, `order_param` | `sort_param(["name", "holder_count"])` | +| Boolean toggles | descriptive name | `just_request_body_param` | +| Authentication | `_param` | `api_key_param`, `key_param`, `admin_api_key_param` | +| Paging factories | `define_paging_params(field_names)` | `define_paging_params(["index", "block_number"])` | + +## Functional categories + +When looking for existing helpers, think about which category the parameter falls into: + +**A. Path identifiers** — Entity identifiers in URL path segments. Grep: `def.*_hash_param\|def.*_number_param\|def.*_id_param`. + +**B. Domain filters** — Query params that filter list results. Grep: `def.*_filter_param\|def.*_type_param\|def.*q_param`. + +**C. Sorting** — `sort_param/1` takes a list of allowed sort fields, `order_param/0` provides asc/desc. Grep: `def sort_param\|def order_param`. + +**D. Paging factories** — `define_paging_params/1` generates multiple `%Parameter{in: :query}` structs from a list of field name strings. There are also `define_state_changes_paging_params/1` and `define_search_paging_params/1` variants. Grep: `def define_paging_params\|def define.*paging`. + +**E. Authentication** — `api_key_param`, `key_param` (bundled as `base_params()`), `admin_api_key_param` (header), `recaptcha_response_param`. Grep: `def.*api_key\|def.*key_param\|def recaptcha`. + +**F. Composite helpers** — `base_params()` returns `[api_key_param(), key_param()]`. Grep: `def base_params`. + +## Creating a new parameter helper + +### When to create a helper vs inline + +- **Create a helper in `general.ex`** if the parameter is a generic concept reusable across multiple controllers (entity hashes, block numbers, token types). +- **Create a private helper in the controller** if the parameter is domain-specific but used by multiple operations in the same controller (e.g., an Arbitrum message direction param shared by `messages` and `messages_count`). This avoids polluting `general.ex` with chain-specific concerns while preventing copy-paste duplication across operations. +- **Use inline `%Parameter{}`** only if the parameter is truly unique to a single operation. + +### Helper function template + +```elixir +@spec my_new_param() :: Parameter.t() +def my_new_param do + %Parameter{ + name: :my_new_param, # atom — must match route segment and controller pattern-match + in: :path, # :path | :query | :header + schema: FullHash, # a schema module or inline %Schema{} + required: true, # true for path params, typically false for query params + description: "Description of what this parameter does" + } +end +``` + +Place it in `general.ex` near other helpers of the same category. The file is organized roughly by category, though not strictly enforced. + +### Extract before you copy + +If the same structural payload shows up at 2+ sites, extract it. The rule is the same on both sides of the spec: + +- **Whole-`%Parameter{}` duplication** (same `name`, `schema`, `description`) → promote to a helper in `general.ex` (or a controller-private helper for chain-specific concerns), per "When to create a helper vs inline" above. +- **Same `schema:` payload across parameters with distinct `name`/`description`/`example`** → extract the payload to a leaf schema in `schemas/api/v2/general/.ex` and reference it via `schema: General.` from each `%Parameter{}`. The per-parameter description stays on the `%Parameter{}` struct, so the leaf can be description-less. Existing precedent: `IntegerString`, `Timestamp`, `FullHash`. +- **Same regex literal in multiple `pattern:` fields** → promote it to an accessor in `general.ex` alongside `integer_pattern/0`, `non_negative_integer_pattern/0`, `address_hash_pattern/0`, etc., and reuse via `General._pattern()`. + +This mirrors the schema-side dedup rule in `references/schema-conventions.md §"Domain-scoped shared schemas"` — same principle, applied wherever the duplication actually lives. + +### Inline parameter template + +For one-off parameters, define directly in the `operation` macro arguments: + +```elixir +operation :my_action, + parameters: [ + %OpenApiSpex.Parameter{ + name: :height, + in: :path, + schema: Schemas.General.IntegerString, + required: true, + description: "Block height" + } + | base_params() + ], + responses: [...] +``` + +## Schema types for parameters + +Parameter schemas reference leaf schema modules from `schemas/api/v2/general/`: + +| Type | Module | Use for | +|---|---|---| +| Full hash (0x + 64 hex) | `FullHash` | Transaction hashes, block hashes | +| Address hash (0x + 40 hex) | `AddressHash` | Address identifiers | +| Integer as string | `IntegerString` | Numeric IDs passed as strings | +| Hex string | `HexString` | Arbitrary hex data | +| Generic string | `%Schema{type: :string}` | Free-form text, API keys | +| Boolean | `%Schema{type: :boolean}` | Toggle flags | +| Enum | `%Schema{type: :string, enum: [...]}` | Fixed set of allowed values | + +To discover available leaf schemas, glob `schemas/api/v2/general/*.ex`. + +## The `define_paging_params` factory + +For paginated list endpoints, pagination cursor parameters are generated from a list of field names: + +```elixir +define_paging_params(["index", "block_number", "batch_log_index"]) +``` + +This creates one `%Parameter{in: :query, required: false}` per field name. The string names are converted to atoms as the parameter `:name`. Each gets an `IntegerString` schema by default. + +**Always include `"items_count"`** in the field list. The `next_page_params/5` function in `chain.ex` unconditionally adds `items_count` to every pagination cursor. If the operation doesn't declare it as a query param, CastAndValidate will reject next-page requests with "Unexpected field: items_count." Example: `define_paging_params(["id", "items_count"])`. + +There are specialized variants: +- `define_state_changes_paging_params/1` — for state change pagination +- `define_search_paging_params/1` — for search result pagination (uses object params) + +Grep `define_paging_params\|define_state_changes\|define_search` in `general.ex` to see their implementations. diff --git a/.agents/skills/openapi-spec/references/request-body-security-headers.md b/.agents/skills/openapi-spec/references/request-body-security-headers.md new file mode 100644 index 000000000000..cfed1fe42544 --- /dev/null +++ b/.agents/skills/openapi-spec/references/request-body-security-headers.md @@ -0,0 +1,207 @@ +# Request Bodies, Security Schemes, and Headers + +## Request bodies (POST/PUT/PATCH endpoints) + +### The pattern + +Request bodies are declared via the `request_body:` key in the `operation/2` macro: + +```elixir +operation :my_action, + summary: "Create a resource", + description: "Creates a new resource.", + request_body: my_resource_request_body(), + parameters: base_params(), + responses: [...] +``` + +The value is always a function call returning an `%OpenApiSpex.RequestBody{}` struct. + +### Helper function pattern + +```elixir +def my_resource_request_body do + %OpenApiSpex.RequestBody{ + content: %{ + "application/json" => %OpenApiSpex.MediaType{ + schema: %OpenApiSpex.Schema{ + type: :object, + properties: %{ + field_a: %OpenApiSpex.Schema{type: :string}, + field_b: %OpenApiSpex.Schema{type: :integer} + }, + required: [:field_a, :field_b] + } + } + } + } +end +``` + +### Naming convention + +`_request_body()` — e.g., `admin_api_key_request_body()`, `audit_report_request_body()`. + +### Where to place helpers + +- **General/shared**: `schemas/api/v2/general.ex` (auto-imported) +- **Domain-specific**: `schemas/api/v2/.ex` (must be aliased in the controller) + +### Discovering existing request body helpers + +Grep for `request_body` in `general.ex` and domain-specific schema files: +``` +grep "def.*_request_body" in schemas/api/v2/**/*.ex +``` + +To see request bodies actually wired into the generated spec (not just defined), run recipe L in `references/oastools-audit-recipes.md`. Useful because grep finds helpers that may not be referenced by any operation. + +### How CastAndValidate handles request bodies + +After casting, body params are written to `conn.body_params` with **atom keys** (not string keys). Controllers read casted body params like: +```elixir +Map.get(conn.body_params, :email) +``` + +Body params are NOT merged into `conn.params` — they must be read from `conn.body_params` separately. + +### Inline schemas vs module references + +Existing request body schemas are defined **inline** within the `%RequestBody{}` struct, not as separate named schema modules. This is the established convention for request bodies in the codebase. + +### The library also supports tuple shorthands + +`open_api_spex` supports alternative forms for `request_body:`: +1. `%RequestBody{}` struct (what Blockscout uses exclusively) +2. 3-tuple: `{"description", "application/json", SchemaModule}` +3. 4-tuple: `{"description", "application/json", SchemaModule, opts}` + +Stick with the `%RequestBody{}` struct to stay consistent with existing code. + +### File upload / multipart + +Currently, file upload endpoints (like VerificationController) have **no OpenAPI annotations**. There is no established pattern for `"multipart/form-data"` in the codebase. If you need to annotate a multipart endpoint, this would be a new pattern — flag it for discussion. + +--- + +## Security schemes + +### Component-level scheme definition + +Security schemes are defined in spec aggregator modules, not in controllers. The private API spec (`specs/private.ex`) defines: + +```elixir +components: %Components{ + securitySchemes: %{ + "dynamic_jwt" => %SecurityScheme{type: "http", scheme: "bearer", bearerFormat: "JWT"} + } +} +``` + +### Per-operation security + +The `operation` macro supports a `security:` key: + +```elixir +operation :authenticate_via_dynamic, + summary: "Authenticate via Dynamic JWT", + security: [%{"dynamic_jwt" => []}], + responses: [...] +``` + +This references the scheme defined in components. The `[]` in the value is the list of required scopes (empty = no specific scopes required). + +### When to use security + +Most public API endpoints don't use `security:`. It's primarily for private/account API endpoints that require authentication. To check if an endpoint needs security: + +1. Look at the controller's plugs — does it use an authentication plug? +2. Check the router — is the endpoint in the `AccountRouter` or behind an auth pipeline? +3. Check if the controller reads `conn.assigns.current_user` or similar auth state. + +### Discovering existing security patterns + +Grep for `security:` in controller files: +``` +grep "security:" in controllers/**/*.ex +``` + +Spec-side lookup: recipe M in `references/oastools-audit-recipes.md`. Empty against the public spec — `security:` is private/account-only. Regenerate against `specs/private.ex` to see auth-bearing endpoints. + +--- + +## Header parameters + +### Request headers + +Header parameters use `%Parameter{in: :header}`: + +```elixir +def my_header_param do + %Parameter{ + name: :"x-api-key", # atom with the exact header name (case-insensitive matching) + in: :header, + schema: %Schema{type: :string}, + required: false, + description: "Description of the header" + } +end +``` + +`CastAndValidate` reads from `conn.req_headers` with case-insensitive matching — header parameters are cast and validated identically to path/query parameters. + +### Discovering existing header params + +Grep for `in: :header` in `general.ex`: +``` +grep "in: :header" in schemas/api/v2/general.ex +``` + +### Undeclared cross-cutting headers + +Several request headers are consumed at runtime but not declared in OpenAPI specs: +- `show-scam-tokens` — consumed by multiple controllers via `fetch_scam_token_toggle` +- `recaptcha-v2-response` / `recaptcha-v3-response` — consumed by rate limiting +- `x-api-v2-temp-token` — consumed by rate limiting + +This is a known gap. When adding these to specs, use the "separate grouped helpers" approach: + +```elixir +# Individual helpers in general.ex +def show_scam_tokens_header_param do + %Parameter{ + name: :"show-scam-tokens", in: :header, + schema: %Schema{type: :string, enum: ["true", "false"]}, + required: false, + description: "When 'true', includes tokens flagged as potential scams." + } +end + +# Grouped helper for convenience +def scam_token_header_params, do: [show_scam_tokens_header_param()] +``` + +Then add to only the operations that actually use them: +```elixir +parameters: base_params() ++ scam_token_header_params() ++ define_paging_params([...]) +``` + +To identify which controllers consume `show-scam-tokens`, grep for `fetch_scam_token_toggle` in controllers. + +### Response headers + +Response headers use the `OpenApiSpex.Header` struct and are declared via a 4-tuple response form: + +```elixir +responses: [ + ok: {"Success description", "application/json", Schemas.MyDomain.Response, + headers: %{ + "x-ratelimit-limit" => %OpenApiSpex.Header{ + description: "Max requests per window", + schema: %Schema{type: :integer} + } + }} +] +``` + +Currently, **no response headers are declared** in the codebase (rate-limit, CSRF, temp token headers are all undeclared). This is a known gap. If adding response headers, this 4-tuple form (changing from the standard 3-tuple) is the way to do it. diff --git a/.agents/skills/openapi-spec/references/schema-conventions.md b/.agents/skills/openapi-spec/references/schema-conventions.md new file mode 100644 index 000000000000..5750a10636ab --- /dev/null +++ b/.agents/skills/openapi-spec/references/schema-conventions.md @@ -0,0 +1,601 @@ +# Schema Conventions + +All schema modules live under `apps/block_scout_web/lib/block_scout_web/schemas/api/v2/`. + +## Directory structure conventions + +These conventions are inferred from consistent patterns — there's no written doc. + +### Base entity + subdirectory pattern + +Major domain objects have a base file at the root plus a same-named subdirectory for sub-schemas: + +``` +schemas/api/v2/ + transaction.ex # base Transaction schema (properties, types) + transaction/ + response.ex # Transaction.Response (extends base with title/description) + fee.ex # Transaction.Fee + counters.ex # Transaction.Counters + state_change.ex # Transaction.StateChange +``` + +This pattern applies to: `address`, `block`, `blob`, `token`, `transaction`, `withdrawal`, `smart_contract`, and chain-specific domains (`optimism/batch`, `celo/election_reward`, etc.). + +### When to create a subdirectory + +Create a subdirectory when 2+ sub-schemas exist for a domain entity. Simple leaf entities (`CoinBalance`, `Log`, `InternalTransaction`) have no subdirectory — just a single file. + +### Shared primitives in `general/` + +`general/` contains ~22 reusable type schemas: `AddressHash`, `FullHash`, `IntegerString`, `Timestamp`, nullable variants, etc. These are leaf schemas referenced by property types across all domain schemas. + +To discover available primitives, glob `schemas/api/v2/general/*.ex`. + +### Domain-scoped shared schemas + +Domain subdirectories (e.g., `arbitrum/`, `optimism/`) can also contain leaf schemas shared across multiple schemas within that domain. This is the same pattern as `general/` primitives, but scoped to a specific chain or domain. + +**When to extract:** When 2+ schemas in the same domain directory define an identical inline structure — either an object sub-schema with the same properties/types, or an enum with the same values. The trigger is duplication, not speculation: don't pre-extract a structure used by only one schema. + +To find duplicates mechanically: recipe D in `references/oastools-audit-recipes.md` enumerates every inline enum in the spec (group by `.enum` array); recipe N gives a property-set subset/superset scan for shared object structures. + +**Why it matters:** +- **For sub-objects** (e.g., a `commitment_transaction` block with 4 properties): if the structure changes, every inline copy must be found and updated. A shared schema eliminates this drift risk. +- **For enums** (e.g., a `batch_data_container` enum): each inline copy needs its own "keep in sync with Ecto" comment (see "Required: Ecto.Enum sync comments" below). A shared enum schema consolidates that comment to one location — the leaf module — so there's one place to update when Ecto enum values change. + +**Where to put them:** In the domain subdirectory alongside the schemas that use them: `arbitrum/commitment_transaction.ex`, `arbitrum/batch_data_container.ex`. + +**Template — shared object sub-schema:** + +```elixir +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.CommitmentTransaction do + @moduledoc """ + Parent chain transaction that committed a batch. + + Shared across Batch and BatchForList schemas. + """ + require OpenApiSpex + + alias BlockScoutWeb.Schemas.API.V2.General + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + description: "Parent chain transaction that committed the batch.", + type: :object, + properties: %{ + hash: General.FullHashNullable, + block_number: %Schema{type: :integer, minimum: 0, nullable: true}, + timestamp: General.TimestampNullable, + status: %Schema{type: :string, nullable: true, description: "Finalization status."} + }, + required: [:hash, :block_number, :timestamp, :status], + additionalProperties: false + }) +end +``` + +Then reference it in both schemas: + +```elixir +# In Batch and BatchForList: +commitment_transaction: Arbitrum.CommitmentTransaction +``` + +**Template — shared enum leaf schema:** + +```elixir +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.BatchDataContainer do + @moduledoc """ + Data availability container type for Arbitrum batches. + """ + require OpenApiSpex + + # Enum values must be kept in sync with Explorer.Chain.Arbitrum.L1Batch :batch_container field. + OpenApiSpex.schema(%{ + type: :string, + enum: ["in_blob4844", "in_calldata", "in_celestia", "in_anytrust", "in_eigenda"], + nullable: true, + description: "Data availability container type." + }) +end +``` + +Then reference it in both schemas: + +```elixir +batch_data_container: Arbitrum.BatchDataContainer +``` + +Note: the "keep in sync" comment lives in the leaf module. Schemas that reference it don't need their own copy — the single source of truth is the leaf module. + +### Chain-specific schemas + +Chain-specific schemas get top-level subdirectories: `optimism/`, `scroll/`, `celo/`, `zilliqa/`, `beacon/`. These map to chain-conditional router scopes. + +### File naming + +Snake_case files, CamelCase modules: `transaction/fee.ex` contains `BlockScoutWeb.Schemas.API.V2.Transaction.Fee`. + +## Schema composition patterns + +### Leaf schemas (primitives) + +Single-purpose modules — one-liner `OpenApiSpex.schema/1` calls: + +```elixir +# general/full_hash.ex +defmodule BlockScoutWeb.Schemas.API.V2.General.FullHash do + require OpenApiSpex + alias BlockScoutWeb.Schemas.API.V2.General + + OpenApiSpex.schema(%{type: :string, pattern: General.full_hash_pattern(), nullable: false}) +end +``` + +### Composite object schemas + +Larger schemas with `type: :object`: + +```elixir +OpenApiSpex.schema(%{ + title: "TransactionFee", + description: "Transaction fee details", + type: :object, + required: [:type, :value], + properties: %{ + type: %Schema{type: :string, enum: ["maximum", "actual"]}, + value: General.IntegerStringNullable + }, + additionalProperties: false # always set this on object schemas +}) +``` + +Key conventions: +- **`additionalProperties: false`** — always set on object schemas. This enables test-time enforcement: any key the view emits that isn't in the schema causes a test failure. Spec-wide audit: recipe A in `references/oastools-audit-recipes.md`. +- **`required:`** — list all keys that the view always emits. +- **Property values** can be schema modules (like `General.IntegerStringNullable`) or inline `%Schema{}` structs. + +### Polymorphic properties (`oneOf`) + +When a view branches on a discriminator field and emits different object shapes per branch, model the property using `oneOf`. Each variant is a standalone `%Schema{type: :object}` with its own properties and `additionalProperties: false`. The discriminator field (the field the view branches on) must appear in every variant so validation can match exactly one. + +**Existing precedent:** `transaction.ex` uses `oneOf` for the `revert_reason` property (line ~392), which can be either a decoded input object or a raw hex string wrapper. For the full list of endpoints whose 200 response currently uses `oneOf`, run recipe G in `references/oastools-audit-recipes.md`. + +**Structural pattern:** + +```elixir +polymorphic_field: %Schema{ + oneOf: [ + %Schema{ + type: :object, + properties: %{discriminator: DiscriminatorType, field_a: ...}, + required: [:discriminator, :field_a], + additionalProperties: false + }, + %Schema{ + type: :object, + properties: %{discriminator: DiscriminatorType, field_b: ..., field_c: ...}, + required: [:discriminator, :field_b, :field_c], + additionalProperties: false + } + ], + description: "Structure varies by `discriminator` value." +} +``` + +**Constrain the discriminator per variant.** Each variant's discriminator property must be narrowed to the specific value(s) that identify it — use an inline `%Schema{type: :string, enum: [...]}` instead of referencing the shared enum schema. This prevents logically invalid combinations from passing validation (e.g., `batch_data_container: "in_calldata"` paired with `data_hash` + `signers` fields that only exist on the `in_anytrust` variant). + +**Concrete template (batch data availability with 2 variants shown):** + +```elixir +data_availability: %Schema{ + oneOf: [ + # Variant: nil / in_blob4844 / in_calldata (no extra fields) + %Schema{ + type: :object, + properties: %{ + batch_data_container: %Schema{type: :string, enum: ["in_blob4844", "in_calldata"], nullable: true} + }, + required: [:batch_data_container], + additionalProperties: false + }, + # Variant: in_anytrust + %Schema{ + type: :object, + properties: %{ + batch_data_container: %Schema{type: :string, enum: ["in_anytrust"]}, + data_hash: %Schema{type: :string, nullable: true}, + timeout: %Schema{type: :string, nullable: true}, + bls_signature: %Schema{type: :string, nullable: true}, + signers: %Schema{type: :array, items: %Schema{type: :string}} + }, + required: [:batch_data_container, :data_hash, :timeout, :bls_signature, :signers], + additionalProperties: false + } + # ... additional variants (each with its own enum constraint) + ], + description: "Data availability info. Structure varies by `batch_data_container`." +} +``` + +**Catch-all branch.** If the view has a fallthrough clause (e.g., `value -> %{"field" => to_string(value)}`), model it as the minimal variant containing only the discriminator. + +**Notes:** +- `discriminator:` (the OpenAPI 3.0 keyword) is optional in OpenApiSpex — the `oneOf` alone is sufficient for validation. OpenApiSpex checks each variant and requires exactly one to match. +- Each variant gets `additionalProperties: false`, which means test-time validation will catch extra or missing keys per variant — not just on the top-level schema. +- For simple variants (1-2 properties beyond the discriminator), inline schemas inside the `oneOf` list are fine. For larger or reusable variants, extract each into a domain schema module. + +### Response schemas + +Response schemas extend a base entity schema with title/description: + +```elixir +# transaction/response.ex +OpenApiSpex.schema( + Transaction.schema() + |> Helper.extend_schema( + title: "TransactionResponse", + description: "Transaction response" + ) + |> ChainTypeCustomizations.chain_type_fields() +) +``` + +The pattern is: base schema -> extend with metadata -> apply chain-type fields. + +### Helper.extend_schema/2 + +Located at `schemas/helper.ex`. Merges `:properties`, `:required`, `:title`, `:description`, `:nullable`, and `:enum` into an existing schema map: +- Properties are merged (new keys added, existing overwritten) +- Required lists are concatenated +- Scalar fields (title, description, nullable) are replaced + +```elixir +schema_map +|> Helper.extend_schema( + title: "ExtendedSchema", + properties: %{new_field: %Schema{type: :string}}, + required: [:new_field] +) +``` + +**Reusing a leaf primitive with a per-property override.** When you want the type/format/nullable of a `general/` leaf (`Timestamp`, `IntegerString`, `FullHash`, …) *and* a per-property field like `description:`, `example:`, or a flipped `nullable:`, use `Helper.extend_schema` at the property position: + +```elixir +timestamp: + Helper.extend_schema(General.Timestamp.schema(), + description: "Block timestamp of the parent transaction." + ) +``` + +This inlines the leaf's shape and overlays the description, no `allOf` casting layer involved. + +Avoid `%Schema{allOf: [Leaf], description: "..."}` as the overlay mechanism. `allOf` is for *object* composition: it works fine for object leaves like `Address` (and `advanced_filter.ex` does this for `from`/`to`/`created_contract`), but for primitive leaves with a non-trivial `format:` cast — `Timestamp`'s `format: :"date-time"` casts strings to `%DateTime{}`, `Decimal`-typed leaves cast to `%Decimal{}` — `OpenApiSpex.Cast.AllOf` enumerates the per-branch results as maps and fails on non-Enumerable structs. The `extend_schema` form sidesteps the cast composition entirely. + +### Schema reuse and naming for related schemas + +When multiple endpoints render the same underlying entity with different levels of detail (e.g., a list endpoint emits 7 fields while a main-page widget emits only 4), avoid duplicating properties across standalone schemas. Instead, use `extend_schema` to build one from the other. + +**When to apply:** This is a post-factum decision — evaluate only when you're creating a new schema and discover an existing one in the same domain with overlapping properties. Don't speculatively refactor schemas that have only one consumer. + +**Identifying the relationship:** +1. Compare the property sets of the existing and new schemas. +2. Determine which is the subset (fewer properties) and which is the superset. +3. Cross-reference with the Ecto schema to see which OpenAPI schema most closely matches the full entity. + +Mechanical candidate detection across all component schemas: recipe N in `references/oastools-audit-recipes.md`. + +**Naming convention:** +- The schema whose properties most closely match the Ecto schema should be named after the entity: `` (e.g., `Message`). This is the "full" representation. +- The schema with fewer properties (a subset) should be named `Minimal` (e.g., `MinimalMessage`). This clearly communicates it's a reduced view without tying the name to a specific endpoint. +- `extend_schema` only adds properties — it cannot subtract. So `Minimal` is always the base that `` extends. + +**Renaming existing schemas:** If an existing schema was named for its endpoint (e.g., `MessageForMainPage`) and turns out to be the minimal subset, rename it to `Minimal`. Update all references in controller operations, tests, and any other schemas that use it. Then create the full `` schema extending it. + +**Critical: always pass `title:` when extending.** Without an explicit `title:`, the child schema inherits the parent's auto-generated title. OpenApiSpex uses titles as keys in its internal schema registry, so two schemas with the same title collide — the child silently overwrites the parent. This causes test failures on the parent's endpoints because the wrong schema (with extra required fields) is used for validation. + +**Template:** + +```elixir +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.Message do + @moduledoc """ + Full Arbitrum cross-chain message schema. + + Extends `MinimalMessage` with: id, origination_address_hash, status. + """ + + require OpenApiSpex + + alias BlockScoutWeb.Schemas.API.V2.Arbitrum.MinimalMessage + alias BlockScoutWeb.Schemas.API.V2.General + alias BlockScoutWeb.Schemas.Helper + alias OpenApiSpex.Schema + + OpenApiSpex.schema( + MinimalMessage.schema() + |> Helper.extend_schema( + title: "Arbitrum.Message", # REQUIRED — prevents registry collision + description: "Full Arbitrum cross-chain message.", + properties: %{ + id: %Schema{type: :integer, minimum: 0}, + origination_address_hash: General.AddressHashNullable, + status: %Schema{type: :string, enum: ["initiated", "sent", "confirmed", "relayed"]} + }, + required: [:id, :origination_address_hash, :status] + ) + ) +end +``` + +### Paginated response wrapper + +For list endpoints, use `General.paginated_response/1`: + +```elixir +# In the operation macro +responses: [ + ok: {"Token transfer list", "application/json", + paginated_response( + items: Schemas.TokenTransfer, + next_page_params_example: %{"index" => 442, "block_number" => 21307214} + )} +] +``` + +This wraps the item schema in a standard envelope: +```json +{"items": [...], "next_page_params": {...} | null} +``` + +The `next_page_params` is typed as a generic `type: :object, nullable: true` with no fixed properties — only the `example` documents expected keys. + +## Chain-type customization pattern + +Schemas and views use the same dispatch mechanism for chain-specific fields: + +```elixir +# In a ChainTypeCustomizations module (co-located in the parent schema file) +def chain_type_fields(schema) do + case chain_type() do + :zksync -> schema |> Helper.extend_schema(properties: %{zksync: @zksync_schema}) + :arbitrum -> schema |> Helper.extend_schema(properties: %{arbitrum: @arbitrum_schema}) + :optimism -> schema |> Helper.extend_schema(properties: %{l1_fee: ...}) + _ -> schema + end +end +``` + +ChainTypeCustomizations modules are almost always defined at the top of the same `.ex` file as the schema they modify. One exception: `general/implementation/chain_type_customizations.ex`. + +When creating a new schema that needs chain-type support: +1. Define the base schema with default-chain properties +2. Add a `ChainTypeCustomizations` module in the same file +3. Pipe the schema through `ChainTypeCustomizations.chain_type_fields/1` + +## Creating a new schema module + +### Template for a new object schema + +```elixir +defmodule BlockScoutWeb.Schemas.API.V2.MyDomain do + alias OpenApiSpex.Schema + alias BlockScoutWeb.Schemas.API.V2.General + + require OpenApiSpex + + @moduledoc "Schema for MyDomain entity" + + OpenApiSpex.schema(%{ + title: "MyDomain", + description: "Description of this entity", + type: :object, + required: [:field_a, :field_b], + properties: %{ + field_a: %Schema{type: :string, description: "What field_a is"}, + field_b: General.IntegerString, + field_c: %Schema{type: :string, nullable: true} + }, + additionalProperties: false + }) +end +``` + +### Template for a response wrapper + +```elixir +defmodule BlockScoutWeb.Schemas.API.V2.MyDomain.Response do + alias BlockScoutWeb.Schemas.API.V2.MyDomain + alias BlockScoutWeb.Schemas.Helper + + require OpenApiSpex + + OpenApiSpex.schema( + MyDomain.schema() + |> Helper.extend_schema( + title: "MyDomainResponse", + description: "MyDomain response" + ) + ) +end +``` + +### Aliasing in controllers + +The `block_scout_web.ex` `:controller` block provides: +```elixir +alias BlockScoutWeb.Schemas.API.V2, as: Schemas +``` + +So in controllers you reference schemas as `Schemas.MyDomain.Response`. + +## Determining property types from Ecto schemas + +The view layer is lossy about types — it renders everything as JSON primitives. To declare precise OpenAPI types, cross-reference with the underlying Ecto schema in the Explorer app (`apps/explorer/lib/explorer/chain/.ex`). + +### Discovery process + +1. Identify the Ecto schema module for the entity. The view's `prepare_*` function usually receives a struct — trace its type back to the `Explorer.Chain.*` module. +2. Read the Ecto schema's `schema` block and `@type` definition to see the field types. +3. Grep for `Ecto.Enum` in the file to find enum fields. + +### Computed values (no direct Ecto field) + +Sometimes the view emits a key whose value is not bound to a single Ecto field — it is produced by a helper such as `assign_/1`, `prepare_/1`, or a `case` expression in `prepare_*`. The Ecto schema alone won't tell you the value's shape; you have to read the helper. + +Read the helper's branches. If every branch returns a value drawn from a closed set — string literals, atoms converted to strings, calls into `Module.valid_types/0`, `Ecto.Enum.values/2` — model the property as `enum` and assemble the values from every source the helper consults. The sync comment should name each source so a future maintainer knows what to update if any of them changes. + +If the helper has an open branch (e.g. a `_ -> error_reason` clause that propagates a free-form string), the set is not closed and `enum` would misrepresent the API. Keep `type: :string` in that case and lean on the description to enumerate the well-known values. + +### Ecto type → OpenAPI type mapping + +| Ecto type | OpenAPI schema | Notes | +|---|---|---| +| `Ecto.Enum` with values | `%Schema{type: :string, enum: [...values...]}` | Extract the atom values list from the Ecto schema. Convert atoms to strings for the enum. | +| `:string` | `%Schema{type: :string}` | | +| `:integer` | `%Schema{type: :integer}` | If the view converts large integers to strings (common for Wei values), use a string-typed schema — see "Leaf primitives encode the most permissive form" below before reaching for `IntegerString`. | +| `:boolean` | `%Schema{type: :boolean}` | | +| `:decimal` | `%Schema{type: :string}` or `FloatString` | Decimals are typically serialized as strings to preserve precision | +| `Explorer.Chain.Hash.Full` | `General.FullHash` | 0x + 64 hex chars | +| `Explorer.Chain.Hash.Address` | `General.AddressHash` | 0x + 40 hex chars | +| `:utc_datetime_usec` | `General.Timestamp` or `General.TimestampNullable` | ISO 8601 datetime string | +| `:map` | `%Schema{type: :object}` | Check what keys the view actually emits | +| `{:array, inner_type}` | `%Schema{type: :array, items: ...}` | Map the inner type recursively | + +### Leaf primitives encode the most permissive form + +Leaf schemas in `general/` are deliberately loose so they can be reused widely. `IntegerString`, for instance, accepts any integer literal — *including negative ones* — because nothing about the name commits it to a sign. Before reusing such a leaf, check whether the property's domain is actually stricter: a Wei amount, a gas value, a fee, a balance, a count, an index — these are non-negative by definition; a fixed-length identifier has a length constraint; a hex-only field has a character-set constraint. + +If the leaf is looser than the domain warrants, **define a stricter pattern or a stricter leaf** rather than reusing the loose one and accepting the accidental permissiveness. Reuse should narrow when the domain narrows, not widen the schema to match the loosest available helper. + +The pragmatic ordering: + +1. If a stricter helper already exists in `general.ex` (e.g. `non_negative_integer_pattern/0`, `address_hash_pattern/0`), use it via `pattern: General.()`. +2. If 2+ properties want the same stricter shape and no helper exists, add the helper or extract a stricter leaf — see "Domain-scoped shared schemas" and the parameter-discovery reference for the dedup rule. +3. Only inline a one-off `pattern:` literal when the constraint really is unique to a single property. + +Note: `minimum:` is a JSON-Schema *numeric* keyword and is silently ignored on `type: :string` schemas. To express "non-negative" on a string-encoded integer, use a pattern that excludes the leading `-`, not `minimum: 0`. + +### Required: Ecto.Enum sync comments + +**Every `enum:` property in an OpenAPI schema must have a comment pointing to the source Ecto field.** There is no automatic sync between Ecto enums and OpenAPI enums — if someone adds a new value to the Ecto enum without updating the OpenAPI schema, `CastAndValidate` will reject the new value on input, and test-time validation will fail on output only if a test exercises that specific value. The comment is the only signal that tells the next developer where to look. + +Format: +```elixir +# Enum values must be kept in sync with Explorer.Chain. : field. +``` + +When using a shared enum leaf schema (see "Domain-scoped shared schemas" above), the comment lives in the leaf module only — schemas that reference it don't need their own copy. When using an inline enum, the comment goes directly above the `%Schema{type: :string, enum: [...]}` definition. + +Before writing an inline enum, check existing schemas in the same domain — if another schema already defines the same enum, extract it into a shared leaf schema instead of duplicating it (and the comment). + +### Ecto.Enum example + +If the Ecto schema has: +```elixir +field(:batch_data_container, Ecto.Enum, values: [:in_blob4844, :in_calldata, :in_celestia]) +``` + +The OpenAPI property should be: +```elixir +# Enum values must be kept in sync with Explorer.Chain.Arbitrum.L1Batch :batch_data_container field. +batch_data_container: %Schema{ + type: :string, + enum: ["in_blob4844", "in_calldata", "in_celestia"], + nullable: true # if the field can be nil +} +``` + +### Nullable fields + +If the Ecto schema field can be `nil` (not in `@required_attrs`, or the view conditionally emits it), the OpenAPI property should have `nullable: true`. If the key is always present but sometimes null, keep it in `required:` and set `nullable: true`. If the key is sometimes absent entirely, remove it from `required:`. + +**Do not use `type: :null` in `anyOf`/`oneOf`, and do not use array types like `type: [:string, :null]`.** These are OpenAPI 3.1 / JSON Schema 2020-12 patterns. Blockscout's spec is OpenAPI 3.0 (open_api_spex v3.22), which predates the null type and supports nullability exclusively through the `nullable: true` keyword. + +```elixir +# Correct — OpenAPI 3.0 +block_number: %Schema{type: :integer, nullable: true} + +result: %Schema{nullable: true, allOf: [result_schema]} + +# Wrong — OpenAPI 3.1 syntax, invalid in 3.0 +block_number: %Schema{anyOf: [%Schema{type: :null}, %Schema{type: :integer}]} + +result: %Schema{anyOf: [%Schema{type: :null}, result_schema]} +``` + +When combining nullability with `allOf`/`oneOf`/`anyOf`, set `nullable: true` alongside the composition keyword on the same schema — don't express null as a separate branch. + +## Property descriptions + +Not every property needs a `description:` — but ambiguous ones without descriptions become a guessing game for API consumers who aren't reading the source code. + +### When to add a description + +Add a description when the property name alone doesn't convey what the value represents: + +- **Domain jargon.** Names inherited from protocol internals that mean nothing outside that context. Example: `before_acc_hash` and `after_acc_hash` are Arbitrum Nitro accumulator hashes — a consumer seeing "acc hash" has no idea this refers to a cumulative hash over sequencer inbox messages. +- **Ambiguous roles.** Names where the "who" or "what" is unclear. Example: `caller_address_hash` — caller of what? Is this the EOA that signed the transaction, or the contract that emitted the event? `destination_address_hash` — destination on which chain? +- **Unclear chain context.** In cross-chain schemas, a bare `block_number` could refer to either the Parent chain or the Rollup. If the containing schema's description doesn't disambiguate, the property must. +- **Opaque Solidity mirrors.** Field names lifted directly from contract events or structs. Example: `callvalue` mirrors Solidity's `msg.value` but reads as one opaque word to REST consumers — describe it as the native coin amount in wei. +- **Enum lifecycle.** When enum values represent a state machine, list the progression and what triggers each transition. A `status` field with `["initiated", "sent", "confirmed", "relayed"]` is meaningless without knowing what moves a message from "sent" to "confirmed". +- **Tautological descriptions.** "Withdrawal status." on a `status` property inside a Withdrawal schema adds zero information — it restates the name. Either write a real description or omit it; a tautology is worse than nothing because it signals "this was reviewed" when it wasn't. + +### When descriptions are unnecessary + +- **Self-documenting compound names.** `origination_transaction_block_number`, `completion_transaction_hash` — the full context is in the name. +- **Well-known token primitives.** `token.symbol`, `token.name`, `token.decimals` — universally understood in the domain. +- **Context from the parent schema.** If the schema-level `description:` already explains the object's role and the property name is unambiguous within that context, a per-property description is redundant. + +### Avoid backend jargon + +API consumers don't read Blockscout source, so keep database columns (`refetch_needed`), Ecto terms ("preloaded", `NotLoaded`), and indexer/cache internals out of descriptions. Describe what the value means or why it can be null from the client's perspective: prefer "null when the count is unavailable" over "null when the association was not preloaded", and "true when the block is scheduled for re-fetch" over "mirrors the `refetch_needed` DB column". + +### Quality standard + +A description should tell the consumer something they cannot infer from the property name alone. If you can delete the description and the property is equally clear, it wasn't worth writing. + +To list undocumented properties on a given schema deterministically: recipe C in `references/oastools-audit-recipes.md`. Tautologies pass that filter — still read each description. + +### Where to find the meaning + +When a property name is ambiguous, cross-reference these sources to determine what it actually represents: + +1. **Ecto schema** — field comments, type annotations, and module docs in `apps/explorer/lib/explorer/chain/`. +2. **Solidity source** — the event or struct the data originates from (e.g., `L2ToL1Tx` event for Arbitrum withdrawals). Contract ABIs clarify which field is the sender, recipient, value, etc. +3. **View's `prepare_*` functions** — trace how the Ecto struct is transformed into the JSON map. The transformation logic often reveals the semantic meaning. + +### Example: before and after + +```elixir +# Bad — tautological, adds nothing +status: %Schema{type: :string, enum: [...], description: "Withdrawal status."} + +# Good — explains the lifecycle +status: %Schema{ + type: :string, + enum: ["initiated", "sent", "confirmed", "relayed"], + description: + "Cross-chain message lifecycle: initiated (tx submitted on Rollup) → " <> + "sent (included in an outbox entry) → confirmed (batch committed to " <> + "Parent chain) → relayed (executed on Parent chain)." +} +``` + +## Examples in schemas + +Three patterns exist, all optional: + +1. **Inline on a property**: `field: %Schema{type: :string, example: "transfer"}` +2. **Top-level on schema**: `example: %{field_a: "value", field_b: 42}` +3. **`next_page_params_example`**: passed to `paginated_response/1` for unstructured paging objects + +Convention: use examples when the type is generic and readers need real-value context. Don't add examples to leaf pattern-based schemas (`FullHash`, `AddressHash`, etc.) — their type and pattern are self-documenting. + +## Cross-cutting URL prefixes and tags + +**Merge behavior.** Per-operation `tags: [...]` is **appended** to the module-level `tags(...)`, not substituted. So an operation in a controller with `tags(["arbitrum"])` and a per-operation `tags: ["main-page"]` ends up with both tags and appears under both Swagger groups (dual-tagging). + +**When to dual-tag.** When the operation's URL lives under a cross-cutting prefix that is itself a registered tag (`/v2/main-page/...`, `/v2/csv-exports/...`), add `tags: [""]` per-operation. Default for these cases — keeps the operation discoverable both via the chain/domain group and the cross-cutting group. + +**When to exclusively relocate.** Remove module-level `tags(...)` and add `tags: [...]` to every operation in the controller. This is what `csv_export_controller.ex` does — every export action sits under its consuming domain (`tokens`, `addresses`) instead of `csv-export`. Use only when the operation truly does not belong in the controller's domain group, or when a reviewer explicitly asks for exclusive grouping. diff --git a/.agents/skills/openapi-spec/references/spec-generation-and-verification.md b/.agents/skills/openapi-spec/references/spec-generation-and-verification.md new file mode 100644 index 000000000000..2215e273a78b --- /dev/null +++ b/.agents/skills/openapi-spec/references/spec-generation-and-verification.md @@ -0,0 +1,106 @@ +# Spec Generation and Verification + +## Generating the spec + +Generate the public OpenAPI spec YAML from Blockscout's `open_api_spex` annotations: + +```bash +.claude/skills/openapi-spec/scripts/generate-spec.sh +``` + +This produces `.ai/tmp/openapi_public.yaml` by default. + +For chain-specific endpoints, pass `--chain`: + +```bash +.claude/skills/openapi-spec/scripts/generate-spec.sh --chain arbitrum +``` + +This produces `.ai/tmp/openapi_public_arbitrum.yaml`. + +To write to a custom path: + +```bash +.claude/skills/openapi-spec/scripts/generate-spec.sh --chain optimism --output .ai/tmp/optimism_spec.yaml +``` + +The script always generates from `BlockScoutWeb.Specs.Public`, which aggregates all routes (API v2, tokens, smart contracts, and Etherscan-compatible endpoints). + +### Behavior + +- On success: prints the output file path and `SPEC_OK`. Mix output is suppressed. +- On failure: prints the captured mix output and `SPEC_FAIL`. Exit code 2. +- If `mix` is not available on the host, the script automatically delegates to the devcontainer. +- The script creates `.ai/tmp/` if it does not exist. + +## Verifying with oastools + +After generating the spec, use `oastools` to validate and inspect it. All examples below assume the default output path — adjust if you used `--output` or `--chain`. + +**Keep queries precise.** Always narrow by exact `-path` and `-method` to avoid large outputs that consume context. Never omit filters when you know the target endpoint. + +### Validate the full spec + +```bash +oastools validate .ai/tmp/openapi_public.yaml +``` + +### Check that an endpoint exists + +```bash +oastools walk operations -path "/v2/addresses/{address_hash_param}" .ai/tmp/openapi_public.yaml +``` + +### Get operation parameters + +```bash +oastools walk parameters -detail -format json -method get -path "/v2/addresses/{address_hash_param}" .ai/tmp/openapi_public.yaml | jq 'del(.path)' +``` + +Filter by parameter location when you only need query or path params: + +```bash +oastools walk parameters -detail -format json -in query -method get -path "/v2/addresses/{address_hash_param}/transactions" .ai/tmp/openapi_public.yaml | jq 'del(.path)' +``` + +### Get response schema + +```bash +oastools walk responses -detail -format json -status 200 -method get -path "/v2/addresses/{address_hash_param}" .ai/tmp/openapi_public.yaml | jq 'del(.path)' +``` + +Always specify `-status` to get only the response code you need. + +### Inspect a specific schema + +```bash +oastools walk schemas -detail -format json -name AddressResponse .ai/tmp/openapi_public.yaml | jq 'del(.jsonPath)' +``` + +## Typical verification workflow + +After creating or modifying an OpenAPI declaration: + +1. **Generate** the spec: + ```bash + .claude/skills/openapi-spec/scripts/generate-spec.sh + ``` + +2. **Validate** the full spec: + ```bash + oastools validate .ai/tmp/openapi_public.yaml + ``` + +3. **Inspect** the target operation — use exact path and method: + ```bash + oastools walk parameters -detail -format json -method get -path "/v2/" .ai/tmp/openapi_public.yaml | jq 'del(.path)' + oastools walk responses -detail -format json -status 200 -method get -path "/v2/" .ai/tmp/openapi_public.yaml | jq 'del(.path)' + ``` + +4. **Run tests** to verify response schemas match the view output (use the `run-tests` skill). + +## Spec-wide audits + +Single-endpoint queries above answer "did I declare this right?" For "does the whole spec still follow our conventions?", use `references/oastools-audit-recipes.md`. Minimum sweep after any schema-touching change: recipe A (additionalProperties), B (422 coverage), F (base_params), I (tag casing). + +Always regenerate before auditing — the generated spec is cache-like, and a stale YAML produces false positives. diff --git a/.agents/skills/openapi-spec/scripts/generate-spec.sh b/.agents/skills/openapi-spec/scripts/generate-spec.sh new file mode 100755 index 000000000000..b7c5ec54623b --- /dev/null +++ b/.agents/skills/openapi-spec/scripts/generate-spec.sh @@ -0,0 +1,121 @@ +#!/usr/bin/env bash +# Generate the public OpenAPI spec YAML from Blockscout's OpenApiSpex annotations. +# +# Environment-aware: if mix is not found on the host, automatically +# re-invokes itself inside the project's devcontainer via exec.sh. +# +# Usage: generate-spec.sh [--chain ] [--output ] +# --chain Set CHAIN_TYPE for chain-specific endpoints (optional). +# --output Output file path (default: .ai/tmp/openapi_public.yaml, +# or .ai/tmp/openapi_public_.yaml when --chain is set). +# +# Exit codes: +# 0 spec generated successfully +# 1 script error (bad arguments, missing dependencies) +# 2 spec generation failed + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +PROJECT_ROOT="$(git -C "$SCRIPT_DIR" rev-parse --show-toplevel)" + +SPEC_MODULE="BlockScoutWeb.Specs.Public" + +# --- Parse flags --- +CHAIN_TYPE="${CHAIN_TYPE:-}" +OUTPUT_PATH="" + +while [ "$#" -gt 0 ]; do + case "$1" in + --chain) + [ "$#" -ge 2 ] || { echo "Error: --chain requires a value" >&2; exit 1; } + CHAIN_TYPE="$2" + shift 2 + ;; + --output) + [ "$#" -ge 2 ] || { echo "Error: --output requires a value" >&2; exit 1; } + OUTPUT_PATH="$2" + shift 2 + ;; + *) + echo "Error: unknown argument: $1" >&2 + echo "Usage: generate-spec.sh [--chain ] [--output ]" >&2 + exit 1 + ;; + esac +done + +# --- Compute default output path --- +if [ -z "$OUTPUT_PATH" ]; then + if [ -n "$CHAIN_TYPE" ]; then + OUTPUT_PATH=".ai/tmp/openapi_public_${CHAIN_TYPE}.yaml" + else + OUTPUT_PATH=".ai/tmp/openapi_public.yaml" + fi +fi + +# --- Export CHAIN_TYPE if set --- +if [ -n "$CHAIN_TYPE" ]; then + export CHAIN_TYPE +fi + +# --- If mix is not available, re-invoke inside the devcontainer --- +if ! command -v mix &>/dev/null; then + # Locate _find-devcontainer-exec.sh + FIND_EXEC="" + for agents_dir in "$PROJECT_ROOT/.agents/agents/scripts" "$PROJECT_ROOT/.claude/agents/scripts"; do + if [ -x "$agents_dir/_find-devcontainer-exec.sh" ]; then + FIND_EXEC="$agents_dir/_find-devcontainer-exec.sh" + break + fi + done + if [ -z "$FIND_EXEC" ]; then + echo "Error: _find-devcontainer-exec.sh not found in .agents/agents/scripts or .claude/agents/scripts" >&2 + exit 1 + fi + + EXEC_SH="$("$FIND_EXEC")" || exit 1 + + EXEC_ENV_ARGS=() + if [ -n "$CHAIN_TYPE" ]; then + EXEC_ENV_ARGS+=(-e "CHAIN_TYPE=$CHAIN_TYPE") + fi + + exec "$EXEC_SH" ${EXEC_ENV_ARGS[@]+"${EXEC_ENV_ARGS[@]}"} \ + bash .agents/skills/openapi-spec/scripts/generate-spec.sh \ + ${CHAIN_TYPE:+--chain "$CHAIN_TYPE"} --output "$OUTPUT_PATH" +fi + +# --- Ensure output directory exists --- +mkdir -p "$PROJECT_ROOT/.ai/tmp" + +# --- Run spec generation --- +cd "$PROJECT_ROOT" + +CAPTURE_FILE="$PROJECT_ROOT/.ai/tmp/.generate-spec-output-$$.log" +cleanup() { rm -f "$CAPTURE_FILE"; } +trap cleanup EXIT + +RESULT=0 +mix openapi.spec.yaml --spec "$SPEC_MODULE" "$OUTPUT_PATH" --start-app=false \ + >"$CAPTURE_FILE" 2>&1 || RESULT=$? + +echo "=== SPEC_RESULTS ===" +if [ -n "$CHAIN_TYPE" ]; then + echo "Chain: $CHAIN_TYPE" +else + echo "Chain: default" +fi + +if [ "$RESULT" -eq 0 ]; then + echo "Output: $OUTPUT_PATH" + echo "---" + echo "SPEC_OK" + exit 0 +else + echo "---" + cat "$CAPTURE_FILE" + echo "---" + echo "SPEC_FAIL" + exit 2 +fi diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/arbitrum_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/arbitrum_controller.ex index 3c88c4b250ca..1913d0184c4b 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/arbitrum_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/arbitrum_controller.ex @@ -1,5 +1,6 @@ defmodule BlockScoutWeb.API.V2.ArbitrumController do use BlockScoutWeb, :controller + use OpenApiSpex.ControllerSpecs import BlockScoutWeb.Chain, only: [ @@ -11,6 +12,8 @@ defmodule BlockScoutWeb.API.V2.ArbitrumController do import Explorer.Chain.Arbitrum.DaMultiPurposeRecord.Helper, only: [calculate_celestia_data_key: 2] + alias BlockScoutWeb.Schemas.API.V2.ErrorResponses.BadRequestResponse + alias BlockScoutWeb.Schemas.API.V2.ErrorResponses.NotFoundResponse alias Explorer.Arbitrum.ClaimRollupMessage alias Explorer.Chain.Arbitrum.{L1Batch, Message} alias Explorer.Chain.Hash @@ -21,13 +24,322 @@ defmodule BlockScoutWeb.API.V2.ArbitrumController do action_fallback(BlockScoutWeb.API.V2.FallbackController) + plug(OpenApiSpex.Plug.CastAndValidate, json_render_error_v2: true) + + tags(["arbitrum"]) + @batch_necessity_by_association %{:commitment_transaction => :required} + @direction_param %OpenApiSpex.Parameter{ + name: :direction, + in: :path, + required: true, + schema: %Schema{type: :string, enum: ["from-rollup", "to-rollup"]}, + description: "Message direction: `from-rollup` for Rollup to Parent chain, `to-rollup` for Parent chain to Rollup." + } + + operation :messages, + summary: "List cross-chain messages.", + description: "Retrieves a paginated list of Arbitrum cross-chain messages filtered by the specified direction.", + parameters: [@direction_param | base_params()] ++ define_paging_params(["id", "items_count"]), + responses: [ + ok: + {"Paginated list of cross-chain messages.", "application/json", + paginated_response( + items: Schemas.Arbitrum.Message, + next_page_params_example: %{"id" => 123} + )}, + unprocessable_entity: JsonErrorResponse.response() + ] + + operation :messages_count, + summary: "Get cross-chain messages count.", + description: "Retrieves the total count of Arbitrum cross-chain messages for the specified direction.", + parameters: [@direction_param | base_params()], + responses: [ + ok: + {"Total count of cross-chain messages for the specified direction.", "application/json", + %Schema{type: :integer, minimum: 0}}, + unprocessable_entity: JsonErrorResponse.response() + ] + + operation :claim_message, + summary: "Get claim data for a withdrawal.", + description: + "Returns the ABI-encoded calldata and outbox contract address required to execute a Rollup withdrawal on the Parent chain.", + parameters: [ + %OpenApiSpex.Parameter{ + name: :message_id, + in: :path, + schema: %Schema{type: :integer, minimum: 0}, + required: true, + description: "Withdrawal message ID." + } + | base_params() + ], + responses: [ + ok: {"Claim data for the withdrawal.", "application/json", Schemas.Arbitrum.ClaimMessage}, + bad_request: + {"Withdrawal cannot be claimed. Returned when the withdrawal is unconfirmed, just initiated, or already executed.", + "application/json", BadRequestResponse}, + not_found: NotFoundResponse.response(), + unprocessable_entity: JsonErrorResponse.response() + ] + + operation :withdrawals, + summary: "Get withdrawal messages for a transaction.", + description: "Returns the list of Rollup withdrawal messages (L2ToL1Tx events) emitted by the given transaction.", + parameters: [ + %OpenApiSpex.Parameter{ + name: :transaction_hash, + in: :path, + schema: Schemas.General.FullHash, + required: true, + description: "Transaction hash." + } + | base_params() + ], + responses: [ + ok: + {"Withdrawal messages for the transaction.", "application/json", + %OpenApiSpex.Schema{ + type: :object, + properties: %{ + items: %OpenApiSpex.Schema{type: :array, items: Schemas.Arbitrum.Withdrawal} + }, + required: [:items], + additionalProperties: false + }}, + unprocessable_entity: JsonErrorResponse.response() + ] + + operation :batch, + summary: "Get batch by number.", + description: "Retrieves detailed information about an Arbitrum batch by its number.", + parameters: [ + %OpenApiSpex.Parameter{ + name: :batch_number, + in: :path, + schema: %Schema{type: :integer, minimum: 0}, + required: true, + description: "Batch number." + } + | base_params() + ], + responses: [ + ok: {"Batch info.", "application/json", Schemas.Arbitrum.Batch}, + not_found: NotFoundResponse.response(), + unprocessable_entity: JsonErrorResponse.response() + ] + + operation :batch_by_anytrust_da_info, + summary: "Get batch by AnyTrust data hash.", + description: + "Retrieves an Arbitrum batch associated with the given AnyTrust data hash. " <> + "By default, returns the most recently associated batch. " <> + "When `type=all`, returns a paginated list of all batches referencing this data hash.", + parameters: + [ + %OpenApiSpex.Parameter{ + name: :data_hash, + in: :path, + required: true, + schema: Schemas.General.FullHash, + description: "AnyTrust data hash." + } + | base_params() + ] ++ + [ + %OpenApiSpex.Parameter{ + name: :type, + in: :query, + required: false, + schema: %Schema{type: :string, enum: ["all"]}, + description: "When set to `all`, returns a paginated list of all batches for this data hash." + } + ] ++ define_paging_params(["number", "items_count"]), + responses: [ + ok: + {"Batch info, or paginated batch list when `type=all`.", "application/json", + %Schema{ + oneOf: [ + Schemas.Arbitrum.BatchByAnytrust, + paginated_response( + items: Schemas.Arbitrum.BatchForList, + next_page_params_example: %{"number" => 123} + ) + ] + }}, + not_found: NotFoundResponse.response(), + unprocessable_entity: JsonErrorResponse.response() + ] + + operation :batch_by_eigenda_da_info, + summary: "Get batch by EigenDA data hash.", + description: + "Retrieves an Arbitrum batch associated with the given EigenDA data hash. " <> + "By default, returns the most recently associated batch. " <> + "When `type=all`, returns a paginated list of all batches referencing this data hash.", + parameters: + [ + %OpenApiSpex.Parameter{ + name: :data_hash, + in: :path, + required: true, + schema: Schemas.General.FullHash, + description: "EigenDA data hash (Keccak-256 of the blob header)." + } + | base_params() + ] ++ + [ + %OpenApiSpex.Parameter{ + name: :type, + in: :query, + required: false, + schema: %Schema{type: :string, enum: ["all"]}, + description: "When set to `all`, returns a paginated list of all batches for this data hash." + } + ] ++ define_paging_params(["number", "items_count"]), + responses: [ + ok: + {"Batch info, or paginated batch list when `type=all`.", "application/json", + %Schema{ + oneOf: [ + Schemas.Arbitrum.BatchByEigenda, + paginated_response( + items: Schemas.Arbitrum.BatchForList, + next_page_params_example: %{"number" => 123} + ) + ] + }}, + not_found: NotFoundResponse.response(), + unprocessable_entity: JsonErrorResponse.response() + ] + + operation :batch_by_celestia_da_info, + summary: "Get batch by Celestia blob reference.", + description: + "Retrieves an Arbitrum batch whose data availability blob is identified by the given " <> + "Celestia block height and transaction commitment hash.", + parameters: [ + %OpenApiSpex.Parameter{ + name: :height, + in: :path, + required: true, + schema: %Schema{type: :integer, minimum: 0}, + description: "Celestia block height." + }, + %OpenApiSpex.Parameter{ + name: :transaction_commitment, + in: :path, + required: true, + schema: Schemas.General.FullHash, + description: "Celestia transaction commitment hash." + } + | base_params() + ], + responses: [ + ok: {"Batch info.", "application/json", Schemas.Arbitrum.BatchByCelestia}, + not_found: NotFoundResponse.response(), + unprocessable_entity: JsonErrorResponse.response() + ] + + operation :batches_count, + summary: "Get batches count.", + description: "Retrieves the total count of Arbitrum batches committed to the Parent chain.", + parameters: base_params(), + responses: [ + ok: {"Total count of batches.", "application/json", %Schema{type: :integer, minimum: 0}}, + unprocessable_entity: JsonErrorResponse.response() + ] + + operation :batches, + summary: "List batches.", + description: "Retrieves a paginated list of Arbitrum batches committed to the Parent chain.", + parameters: + base_params() ++ + [ + %OpenApiSpex.Parameter{ + name: :batch_numbers, + in: :query, + required: false, + schema: %Schema{type: :array, items: %Schema{type: :integer, minimum: 0}}, + description: "Optional list of specific batch numbers to retrieve." + } + ] ++ define_paging_params(["number", "items_count"]), + responses: [ + ok: + {"Paginated list of Arbitrum batches.", "application/json", + paginated_response( + items: Schemas.Arbitrum.BatchForList, + next_page_params_example: %{"number" => 123} + )}, + unprocessable_entity: JsonErrorResponse.response() + ] + + operation :batch_latest_number, + summary: "Get the latest batch number.", + description: + "Retrieves the number of the most recent Arbitrum batch submitted to the Parent chain. Returns 0 if no batches exist.", + parameters: base_params(), + responses: [ + ok: {"Latest Arbitrum batch number.", "application/json", %Schema{type: :integer, minimum: 0}}, + unprocessable_entity: JsonErrorResponse.response() + ], + tags: ["main-page"] + + operation :recent_messages_to_l2, + summary: "List recent Parent chain to Rollup messages on the main page.", + description: "Retrieves the most recent relayed messages from Parent chain to Rollup, displayed on the main page.", + parameters: base_params(), + responses: [ + ok: + {"List of recent Parent chain to Rollup messages.", "application/json", + %Schema{ + type: :object, + properties: %{ + items: %Schema{ + type: :array, + items: Schemas.Arbitrum.MinimalMessage, + nullable: false + } + }, + required: [:items], + additionalProperties: false + }}, + unprocessable_entity: JsonErrorResponse.response() + ], + tags: ["main-page"] + + operation :batches_committed, + summary: "List committed batches on the main page.", + description: + "Retrieves a list of Arbitrum batches that have been committed to the Parent chain, displayed on the main page.", + parameters: base_params(), + responses: [ + ok: + {"List of committed Arbitrum batches.", "application/json", + %Schema{ + type: :object, + properties: %{ + items: %Schema{ + type: :array, + items: Schemas.Arbitrum.BatchForList, + nullable: false + } + }, + required: [:items], + additionalProperties: false + }}, + unprocessable_entity: JsonErrorResponse.response() + ], + tags: ["main-page"] + @doc """ Function to handle GET requests to `/api/v2/arbitrum/messages/:direction` endpoint. """ @spec messages(Plug.Conn.t(), map()) :: Plug.Conn.t() - def messages(conn, %{"direction" => direction} = params) do + def messages(conn, %{direction: direction} = params) do options = params |> paging_options() @@ -58,7 +370,7 @@ defmodule BlockScoutWeb.API.V2.ArbitrumController do Function to handle GET requests to `/api/v2/arbitrum/messages/:direction/count` endpoint. """ @spec messages_count(Plug.Conn.t(), map()) :: Plug.Conn.t() - def messages_count(conn, %{"direction" => direction} = _params) do + def messages_count(conn, %{direction: direction} = _params) do conn |> put_status(200) |> render(:arbitrum_messages_count, %{count: MessagesReader.messages_count(direction)}) @@ -68,9 +380,7 @@ defmodule BlockScoutWeb.API.V2.ArbitrumController do Function to handle GET requests to `/api/v2/arbitrum/messages/claim/:message_id` endpoint. """ @spec claim_message(Plug.Conn.t(), map()) :: Plug.Conn.t() - def claim_message(conn, %{"message_id" => message_id} = _params) do - message_id = String.to_integer(message_id) - + def claim_message(conn, %{message_id: message_id} = _params) do case ClaimRollupMessage.claim(message_id) do {:ok, [contract_address: outbox_contract_address, calldata: calldata]} -> conn @@ -108,7 +418,7 @@ defmodule BlockScoutWeb.API.V2.ArbitrumController do Function to handle GET requests to `/api/v2/arbitrum/messages/withdrawals/:transaction_hash` endpoint. """ @spec withdrawals(Plug.Conn.t(), map()) :: Plug.Conn.t() - def withdrawals(conn, %{"transaction_hash" => transaction_hash} = _params) do + def withdrawals(conn, %{transaction_hash: transaction_hash} = _params) do hash = case Hash.Full.cast(transaction_hash) do {:ok, address} -> address @@ -126,7 +436,7 @@ defmodule BlockScoutWeb.API.V2.ArbitrumController do Function to handle GET requests to `/api/v2/arbitrum/batches/:batch_number` endpoint. """ @spec batch(Plug.Conn.t(), map()) :: Plug.Conn.t() - def batch(conn, %{"batch_number" => batch_number} = _params) do + def batch(conn, %{batch_number: batch_number} = _params) do case SettlementReader.batch(batch_number, necessity_by_association: @batch_necessity_by_association) do {:ok, batch} -> conn @@ -139,46 +449,47 @@ defmodule BlockScoutWeb.API.V2.ArbitrumController do end @doc """ - Function to handle GET requests to `/api/v2/arbitrum/batches/da/.../:data_hash` or - `/api/v2/arbitrum/batches/da/celestia/:transaction_commitment/:height` endpoints. - - For AnyTrust and EigenDA data hash, the function can be called in two ways: - 1. Without type parameter - returns the most recent batch for the data hash - 2. With type=all parameter - returns all batches for the data hash + Function to handle GET requests to `/api/v2/arbitrum/batches/da/anytrust/:data_hash` endpoint. + """ + @spec batch_by_anytrust_da_info(Plug.Conn.t(), map()) :: Plug.Conn.t() | {:error, :not_found} + # For AnyTrust, data_key is the hash of the data itself + def batch_by_anytrust_da_info(conn, %{data_hash: data_hash} = params) do + case Map.get(params, :type) do + "all" -> all_batches_by_data_availability_info(conn, data_hash, params) + _ -> one_batch_by_data_availability_info(conn, data_hash, params) + end + end - ## Parameters - - `conn`: The connection struct - - `params`: A map that may contain: - * `data_hash` - The AnyTrust or EigenDA data hash - * `transaction_commitment` and `height` - For Celestia data - * `type` - Optional parameter to specify return type ("all" for all batches) + @doc """ + Function to handle GET requests to `/api/v2/arbitrum/batches/da/eigenda/:data_hash` endpoint. """ - @spec batch_by_data_availability_info(Plug.Conn.t(), map()) :: Plug.Conn.t() - def batch_by_data_availability_info(conn, %{"data_hash" => data_hash} = params) do - # In case of AnyTrust or EigenDA, `data_key` is the hash of the data itself - case Map.get(params, "type") do + @spec batch_by_eigenda_da_info(Plug.Conn.t(), map()) :: Plug.Conn.t() | {:error, :not_found} + # For EigenDA, data_key is the hash of the data itself + def batch_by_eigenda_da_info(conn, %{data_hash: data_hash} = params) do + case Map.get(params, :type) do "all" -> all_batches_by_data_availability_info(conn, data_hash, params) _ -> one_batch_by_data_availability_info(conn, data_hash, params) end end - def batch_by_data_availability_info( + @doc """ + Function to handle GET requests to `/api/v2/arbitrum/batches/da/celestia/:height/:transaction_commitment` endpoint. + """ + @spec batch_by_celestia_da_info(Plug.Conn.t(), map()) :: Plug.Conn.t() | {:error, :not_found} + 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) + case SettlementReader.get_da_record_by_data_key(key) do {:ok, {batch_number, _}} -> - batch(conn, %{"batch_number" => batch_number}) + batch(conn, %{batch_number: batch_number}) {:error, :not_found} = res -> res end - else - res -> - res end end @@ -191,11 +502,12 @@ defmodule BlockScoutWeb.API.V2.ArbitrumController do # # ## Returns # - The connection struct with rendered response - @spec one_batch_by_data_availability_info(Plug.Conn.t(), binary(), map()) :: Plug.Conn.t() + @spec one_batch_by_data_availability_info(Plug.Conn.t(), binary(), map()) :: + Plug.Conn.t() | {:error, :not_found} defp one_batch_by_data_availability_info(conn, data_hash, _params) do case SettlementReader.get_da_record_by_data_key(data_hash) do {:ok, {batch_number, _}} -> - batch(conn, %{"batch_number" => batch_number}) + batch(conn, %{batch_number: batch_number}) {:error, :not_found} = res -> res @@ -211,11 +523,12 @@ defmodule BlockScoutWeb.API.V2.ArbitrumController do # # ## Returns # - The connection struct with rendered response - @spec all_batches_by_data_availability_info(Plug.Conn.t(), binary(), map()) :: Plug.Conn.t() + @spec all_batches_by_data_availability_info(Plug.Conn.t(), binary(), map()) :: + Plug.Conn.t() | {:error, :not_found} defp all_batches_by_data_availability_info(conn, data_hash, params) do case SettlementReader.get_all_da_records_by_data_key(data_hash) do {:ok, {batch_numbers, _}} -> - params = Map.put(params, "batch_numbers", batch_numbers) + params = Map.put(params, :batch_numbers, batch_numbers) batches(conn, params) {:error, :not_found} = res -> @@ -282,7 +595,7 @@ defmodule BlockScoutWeb.API.V2.ArbitrumController do # ## Returns # - The options keyword list, potentially extended with batch_numbers @spec maybe_add_batch_numbers(Keyword.t(), map()) :: Keyword.t() - defp maybe_add_batch_numbers(options, %{"batch_numbers" => batch_numbers}) when is_list(batch_numbers) do + defp maybe_add_batch_numbers(options, %{batch_numbers: batch_numbers}) when is_list(batch_numbers) do Keyword.put(options, :batch_numbers, batch_numbers) end diff --git a/apps/block_scout_web/lib/block_scout_web/paging_helper.ex b/apps/block_scout_web/lib/block_scout_web/paging_helper.ex index d45e04273e20..aec1c3ac967e 100644 --- a/apps/block_scout_web/lib/block_scout_web/paging_helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/paging_helper.ex @@ -262,9 +262,11 @@ defmodule BlockScoutWeb.PagingHelper do |> Map.drop([ :address_hash_param, :batch_number_param, + :batch_numbers, + :data_hash, :block_hash_or_number_param, + :direction, :transaction_hash_param, - :batch_number_param, :scale, :token_id_param, :token_id, diff --git a/apps/block_scout_web/lib/block_scout_web/rate_limit/hammer.ex b/apps/block_scout_web/lib/block_scout_web/rate_limit/hammer.ex index fdfe5fcd1606..033726c0b262 100644 --- a/apps/block_scout_web/lib/block_scout_web/rate_limit/hammer.ex +++ b/apps/block_scout_web/lib/block_scout_web/rate_limit/hammer.ex @@ -12,7 +12,9 @@ defmodule BlockScoutWeb.RateLimit.Hammer do @moduledoc """ Wrapper for the rate limit functions. Defines union of all functions from `BlockScoutWeb.RateLimit.Hammer.ETS` and `BlockScoutWeb.RateLimit.Hammer.Redis`. Resolves the backend to use based on `Application.get_env(:block_scout_web, :rate_limit_backend)` in runtime. """ + alias BlockScoutWeb.RateLimit.Hammer.{ETS, Redis} + alias Explorer.Helper functions = (ETS.__info__(:functions) ++ Redis.__info__(:functions)) @@ -27,10 +29,16 @@ defmodule BlockScoutWeb.RateLimit.Hammer do end def child_for_supervisor do - redis_url = Application.get_env(:block_scout_web, :api_rate_limit)[:redis_url] + config = Application.get_env(:block_scout_web, :api_rate_limit) - if redis_url do - {BlockScoutWeb.RateLimit.Hammer.Redis, [url: redis_url]} + if config[:redis_url] || config[:redis_sentinel_urls] do + {BlockScoutWeb.RateLimit.Hammer.Redis, + Helper.redix_opts( + config[:redis_url], + config[:redis_ssl], + config[:redis_sentinel_urls], + config[:redis_sentinel_master_name] + )} else {BlockScoutWeb.RateLimit.Hammer.ETS, []} end diff --git a/apps/block_scout_web/lib/block_scout_web/routers/api_router.ex b/apps/block_scout_web/lib/block_scout_web/routers/api_router.ex index c7585636f3af..d7f2576d2bd8 100644 --- a/apps/block_scout_web/lib/block_scout_web/routers/api_router.ex +++ b/apps/block_scout_web/lib/block_scout_web/routers/api_router.ex @@ -466,13 +466,13 @@ defmodule BlockScoutWeb.Routers.ApiRouter do get("/batches", V2.ArbitrumController, :batches) get("/batches/count", V2.ArbitrumController, :batches_count) get("/batches/:batch_number", V2.ArbitrumController, :batch) - get("/batches/da/anytrust/:data_hash", V2.ArbitrumController, :batch_by_data_availability_info) - get("/batches/da/eigenda/:data_hash", V2.ArbitrumController, :batch_by_data_availability_info) + get("/batches/da/anytrust/:data_hash", V2.ArbitrumController, :batch_by_anytrust_da_info) + get("/batches/da/eigenda/:data_hash", V2.ArbitrumController, :batch_by_eigenda_da_info) get( "/batches/da/celestia/:height/:transaction_commitment", V2.ArbitrumController, - :batch_by_data_availability_info + :batch_by_celestia_da_info ) end end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch.ex new file mode 100644 index 000000000000..f52d9213a742 --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch.ex @@ -0,0 +1,67 @@ +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.Batch do + @moduledoc """ + Schema for a detailed Arbitrum batch response. + """ + require OpenApiSpex + + alias BlockScoutWeb.Schemas.API.V2.Arbitrum.CommitmentTransaction + alias BlockScoutWeb.Schemas.API.V2.Arbitrum.DataAvailability + alias BlockScoutWeb.Schemas.API.V2.General + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + description: "Detailed Arbitrum batch info.", + type: :object, + properties: %{ + number: %Schema{ + type: :integer, + minimum: 0, + description: "Sequential identifier assigned to this batch by the sequencer." + }, + transactions_count: %Schema{type: :integer, minimum: 0, description: "Number of transactions in the batch."}, + start_block_number: %Schema{ + type: :integer, + minimum: 0, + description: "First Rollup block included in the batch." + }, + end_block_number: %Schema{ + type: :integer, + minimum: 0, + description: "Last Rollup block included in the batch." + }, + before_acc_hash: %Schema{ + allOf: [General.FullHash], + description: + "Accumulator hash of the sequencer inbox before this batch was appended. " <> + "Forms a hash chain: must equal `after_acc_hash` of the previous batch." + }, + after_acc_hash: %Schema{ + allOf: [General.FullHash], + description: + "Accumulator hash of the sequencer inbox after this batch was appended. " <> + "Must equal `before_acc_hash` of the next batch." + }, + commitment_transaction: CommitmentTransaction, + data_availability: %Schema{ + oneOf: [ + DataAvailability.Base, + DataAvailability.Anytrust, + DataAvailability.Celestia, + DataAvailability.Eigenda + ], + description: "Data availability information. Structure varies by `batch_data_container` type." + } + }, + required: [ + :number, + :transactions_count, + :start_block_number, + :end_block_number, + :before_acc_hash, + :after_acc_hash, + :commitment_transaction, + :data_availability + ], + additionalProperties: false + }) +end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_anytrust.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_anytrust.ex new file mode 100644 index 000000000000..c490e0937202 --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_anytrust.ex @@ -0,0 +1,23 @@ +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.BatchByAnytrust do + @moduledoc """ + Arbitrum batch schema narrowed to AnyTrust data availability. + + Extends `Batch` by constraining `data_availability` to the AnyTrust variant only. + """ + require OpenApiSpex + + alias BlockScoutWeb.Schemas.API.V2.Arbitrum.Batch + alias BlockScoutWeb.Schemas.API.V2.Arbitrum.DataAvailability + alias BlockScoutWeb.Schemas.Helper + + OpenApiSpex.schema( + Batch.schema() + |> Helper.extend_schema( + title: "Arbitrum.BatchByAnytrust", + description: "Arbitrum batch with AnyTrust data availability.", + properties: %{ + data_availability: DataAvailability.Anytrust + } + ) + ) +end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_celestia.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_celestia.ex new file mode 100644 index 000000000000..d9d67083085d --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_celestia.ex @@ -0,0 +1,23 @@ +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.BatchByCelestia do + @moduledoc """ + Arbitrum batch schema narrowed to Celestia data availability. + + Extends `Batch` by constraining `data_availability` to the Celestia variant only. + """ + require OpenApiSpex + + alias BlockScoutWeb.Schemas.API.V2.Arbitrum.Batch + alias BlockScoutWeb.Schemas.API.V2.Arbitrum.DataAvailability + alias BlockScoutWeb.Schemas.Helper + + OpenApiSpex.schema( + Batch.schema() + |> Helper.extend_schema( + title: "Arbitrum.BatchByCelestia", + description: "Arbitrum batch with Celestia data availability.", + properties: %{ + data_availability: DataAvailability.Celestia + } + ) + ) +end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_eigenda.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_eigenda.ex new file mode 100644 index 000000000000..5864fb6cfa7b --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_eigenda.ex @@ -0,0 +1,23 @@ +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.BatchByEigenda do + @moduledoc """ + Arbitrum batch schema narrowed to EigenDA data availability. + + Extends `Batch` by constraining `data_availability` to the EigenDA variant only. + """ + require OpenApiSpex + + alias BlockScoutWeb.Schemas.API.V2.Arbitrum.Batch + alias BlockScoutWeb.Schemas.API.V2.Arbitrum.DataAvailability + alias BlockScoutWeb.Schemas.Helper + + OpenApiSpex.schema( + Batch.schema() + |> Helper.extend_schema( + title: "Arbitrum.BatchByEigenda", + description: "Arbitrum batch with EigenDA data availability.", + properties: %{ + data_availability: DataAvailability.Eigenda + } + ) + ) +end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_data_container.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_data_container.ex new file mode 100644 index 000000000000..dfbcafdd1ca6 --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_data_container.ex @@ -0,0 +1,14 @@ +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.BatchDataContainer do + @moduledoc """ + Data availability container type for Arbitrum batches. + """ + require OpenApiSpex + + # Enum values must be kept in sync with Explorer.Chain.Arbitrum.L1Batch :batch_container field. + OpenApiSpex.schema(%{ + type: :string, + enum: ["in_blob4844", "in_calldata", "in_celestia", "in_anytrust", "in_eigenda"], + nullable: true, + description: "Data availability container type." + }) +end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_for_list.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_for_list.ex new file mode 100644 index 000000000000..61677ec9c677 --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_for_list.ex @@ -0,0 +1,27 @@ +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.BatchForList do + @moduledoc """ + Schema for an Arbitrum batch item in list responses. + """ + require OpenApiSpex + + alias BlockScoutWeb.Schemas.API.V2.Arbitrum.{BatchDataContainer, CommitmentTransaction} + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + description: "Arbitrum batch summary for list endpoints.", + type: :object, + properties: %{ + number: %Schema{ + type: :integer, + minimum: 0, + description: "Sequential identifier assigned to this batch by the sequencer." + }, + transactions_count: %Schema{type: :integer, minimum: 0, description: "Number of transactions in the batch."}, + blocks_count: %Schema{type: :integer, minimum: 0, description: "Number of blocks included in the batch."}, + batch_data_container: BatchDataContainer, + commitment_transaction: CommitmentTransaction + }, + required: [:number, :transactions_count, :blocks_count, :batch_data_container, :commitment_transaction], + additionalProperties: false + }) +end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/claim_message.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/claim_message.ex new file mode 100644 index 000000000000..167eb94a096a --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/claim_message.ex @@ -0,0 +1,24 @@ +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.ClaimMessage do + @moduledoc "Schema for Arbitrum claim message response." + + alias BlockScoutWeb.Schemas.API.V2.General + alias OpenApiSpex.Schema + + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "Arbitrum.ClaimMessage", + description: "Calldata and outbox contract address needed to execute a withdrawal on the Parent chain.", + type: :object, + required: [:calldata, :outbox_address_hash], + properties: %{ + calldata: %Schema{type: :string, description: "ABI-encoded calldata for the executeTransaction call."}, + outbox_address_hash: %Schema{ + allOf: [General.AddressHash], + description: + "Address of the Arbitrum Outbox contract on the Parent chain through which the withdrawal is executed." + } + }, + additionalProperties: false + }) +end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/commitment_transaction.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/commitment_transaction.ex new file mode 100644 index 000000000000..22dfddcf2468 --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/commitment_transaction.ex @@ -0,0 +1,32 @@ +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.CommitmentTransaction do + @moduledoc """ + Parent chain transaction that committed a batch. + """ + require OpenApiSpex + + alias BlockScoutWeb.Schemas.API.V2.General + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + description: "Parent chain transaction that committed the batch.", + type: :object, + properties: %{ + hash: General.FullHashNullable, + block_number: %Schema{ + type: :integer, + minimum: 0, + nullable: true, + description: "Parent chain block number containing this transaction." + }, + timestamp: General.TimestampNullable, + status: %Schema{ + type: :string, + enum: ["unfinalized", "finalized"], + nullable: true, + description: "Finalization status of the Parent chain transaction." + } + }, + required: [:hash, :block_number, :timestamp, :status], + additionalProperties: false + }) +end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/anytrust.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/anytrust.ex new file mode 100644 index 000000000000..26e96dae98d2 --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/anytrust.ex @@ -0,0 +1,40 @@ +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.DataAvailability.Anytrust do + @moduledoc """ + Data availability information for batches stored via AnyTrust committee. + """ + require OpenApiSpex + + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + description: "AnyTrust data availability certificate.", + type: :object, + properties: %{ + # Enum values must be kept in sync with Explorer.Chain.Arbitrum.L1Batch :batch_container field. + batch_data_container: %Schema{type: :string, enum: ["in_anytrust"]}, + data_hash: %Schema{type: :string, nullable: true, description: "AnyTrust data hash."}, + timeout: %Schema{type: :string, nullable: true, description: "Data availability timeout (ISO 8601)."}, + bls_signature: %Schema{ + type: :string, + nullable: true, + description: "Aggregated BLS signature of committee members." + }, + signers: %Schema{ + type: :array, + description: "Committee members who guaranteed data availability.", + items: %Schema{ + type: :object, + properties: %{ + trusted: %Schema{type: :boolean, description: "Whether the signer is a trusted member."}, + key: %Schema{type: :string, description: "BLS public key."}, + proof: %Schema{type: :string, description: "Proof of possession (absent for trusted members)."} + }, + required: [:trusted, :key], + additionalProperties: false + } + } + }, + required: [:batch_data_container, :data_hash, :timeout, :bls_signature, :signers], + additionalProperties: false + }) +end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/base.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/base.ex new file mode 100644 index 000000000000..b79ccf53f604 --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/base.ex @@ -0,0 +1,25 @@ +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.DataAvailability.Base do + @moduledoc """ + Data availability information for batches using base container types + (EIP-4844 blobs, calldata, or none). + """ + require OpenApiSpex + + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + description: "Data availability info for batches posted via EIP-4844 blobs, calldata, or with no DA.", + type: :object, + properties: %{ + # Enum values must be kept in sync with Explorer.Chain.Arbitrum.L1Batch :batch_container field. + batch_data_container: %Schema{ + type: :string, + enum: ["in_blob4844", "in_calldata"], + nullable: true, + description: "Data availability container type." + } + }, + required: [:batch_data_container], + additionalProperties: false + }) +end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/celestia.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/celestia.ex new file mode 100644 index 000000000000..564235dd6aae --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/celestia.ex @@ -0,0 +1,25 @@ +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.DataAvailability.Celestia do + @moduledoc """ + Data availability information for batches stored on Celestia. + """ + require OpenApiSpex + + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + description: "Celestia data availability blob reference.", + type: :object, + properties: %{ + # Enum values must be kept in sync with Explorer.Chain.Arbitrum.L1Batch :batch_container field. + batch_data_container: %Schema{type: :string, enum: ["in_celestia"]}, + height: %Schema{type: :integer, nullable: true, description: "Celestia block height."}, + transaction_commitment: %Schema{ + type: :string, + nullable: true, + description: "Celestia transaction commitment hash." + } + }, + required: [:batch_data_container, :height, :transaction_commitment], + additionalProperties: false + }) +end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/eigenda.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/eigenda.ex new file mode 100644 index 000000000000..ea27a9665e59 --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/eigenda.ex @@ -0,0 +1,29 @@ +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.DataAvailability.Eigenda do + @moduledoc """ + Data availability information for batches stored via EigenDA. + """ + require OpenApiSpex + + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + description: "EigenDA data availability blob reference.", + type: :object, + properties: %{ + # Enum values must be kept in sync with Explorer.Chain.Arbitrum.L1Batch :batch_container field. + batch_data_container: %Schema{type: :string, enum: ["in_eigenda"]}, + blob_header: %Schema{ + type: :string, + nullable: true, + description: "ABI-encoded EigenDA blob header." + }, + blob_verification_proof: %Schema{ + type: :string, + nullable: true, + description: "ABI-encoded EigenDA blob verification proof." + } + }, + required: [:batch_data_container, :blob_header, :blob_verification_proof], + additionalProperties: false + }) +end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/message.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/message.ex new file mode 100644 index 000000000000..9cab44575a1f --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/message.ex @@ -0,0 +1,46 @@ +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.Message do + @moduledoc """ + Full Arbitrum cross-chain message schema. + + Extends `MinimalMessage` with: `id`, `origination_address_hash`, `status`. + """ + + require OpenApiSpex + + alias BlockScoutWeb.Schemas.API.V2.Arbitrum.MinimalMessage + alias BlockScoutWeb.Schemas.API.V2.General + alias BlockScoutWeb.Schemas.Helper + alias OpenApiSpex.Schema + + OpenApiSpex.schema( + MinimalMessage.schema() + |> Helper.extend_schema( + title: "Arbitrum.Message", + description: "Full Arbitrum cross-chain message.", + properties: %{ + id: %Schema{ + type: :integer, + minimum: 0, + description: "Unique cross-chain message identifier assigned by the protocol." + }, + origination_address_hash: %Schema{ + allOf: [General.AddressHashNullable], + description: "Address that initiated the message on the originating chain." + }, + # Enum values must be kept in sync with Explorer.Chain.Arbitrum.Message :status field. + status: %Schema{ + type: :string, + enum: ["initiated", "sent", "confirmed", "relayed"], + description: + "Cross-chain message lifecycle. For Rollup→Parent messages: " <> + "`initiated` (L2ToL1Tx event emitted on Rollup) → " <> + "`sent` (included in a batch committed to Parent chain) → " <> + "`confirmed` (batch state root posted to the Outbox contract) → " <> + "`relayed` (executed on Parent chain). " <> + "For Parent→Rollup messages only `initiated` and `relayed` apply." + } + }, + required: [:id, :origination_address_hash, :status] + ) + ) +end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/minimal_message.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/minimal_message.ex new file mode 100644 index 000000000000..25bbd5a90688 --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/minimal_message.ex @@ -0,0 +1,38 @@ +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.MinimalMessage do + @moduledoc """ + Minimal Arbitrum cross-chain message schema with origination and completion fields only. + """ + require OpenApiSpex + + alias BlockScoutWeb.Schemas.API.V2.General + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + description: "Minimal Arbitrum cross-chain message with origination and completion fields.", + type: :object, + properties: %{ + origination_transaction_hash: %Schema{ + allOf: [General.FullHashNullable], + description: "Hash of the transaction on the originating chain that initiated this message." + }, + origination_timestamp: General.TimestampNullable, + origination_transaction_block_number: %Schema{ + type: :integer, + minimum: 0, + nullable: true, + description: "Block number on the originating chain containing the initiation transaction." + }, + completion_transaction_hash: %Schema{ + allOf: [General.FullHashNullable], + description: "Hash of the transaction on the destination chain that executed this message." + } + }, + required: [ + :origination_transaction_hash, + :origination_timestamp, + :origination_transaction_block_number, + :completion_transaction_hash + ], + additionalProperties: false + }) +end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/withdrawal.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/withdrawal.ex new file mode 100644 index 000000000000..3b929930211b --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/withdrawal.ex @@ -0,0 +1,88 @@ +defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.Withdrawal do + @moduledoc "Schema for an Arbitrum Rollup withdrawal message (L2ToL1Tx event)." + + require OpenApiSpex + + alias BlockScoutWeb.Schemas.API.V2.General + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + title: "Arbitrum.Withdrawal", + description: "Arbitrum Rollup withdrawal message.", + type: :object, + required: [ + :id, + :status, + :caller_address_hash, + :destination_address_hash, + :arb_block_number, + :eth_block_number, + :l2_timestamp, + :callvalue, + :data, + :token, + :completion_transaction_hash + ], + properties: %{ + id: %Schema{type: :integer, minimum: 0, description: "Withdrawal message ID."}, + # Status values must be kept in sync with Explorer.Arbitrum.Withdraw :status type. + status: %Schema{ + type: :string, + enum: ["unknown", "initiated", "sent", "confirmed", "relayed"], + description: + "Withdrawal lifecycle status. " <> + "Progresses from `initiated` (L2ToL1Tx event emitted) through `sent` (included in an RBlock) " <> + "and `confirmed` (RBlock confirmed on Parent chain) to `relayed` (executed on Parent chain). " <> + "`unknown` indicates the status could not be determined, e.g. when the Parent chain RPC is unavailable." + }, + caller_address_hash: %Schema{ + allOf: [General.AddressHash], + description: "Address of the account that initiated the withdrawal on the Rollup." + }, + destination_address_hash: %Schema{ + allOf: [General.AddressHash], + description: "Recipient address on the Parent chain that will receive funds when the withdrawal is executed." + }, + arb_block_number: %Schema{type: :integer, minimum: 0, description: "Rollup block number."}, + eth_block_number: %Schema{type: :integer, minimum: 0, description: "Parent chain block number."}, + l2_timestamp: %Schema{type: :integer, minimum: 0, description: "Unix timestamp of the originating transaction."}, + callvalue: %Schema{ + allOf: [General.IntegerString], + description: "Native coin amount in wei attached to the withdrawal message." + }, + data: %Schema{ + allOf: [General.HexString], + description: + "ABI-encoded calldata passed to the destination address when the withdrawal is executed on the Parent chain. " <> + "Empty (`0x`) for plain native coin transfers." + }, + token: %Schema{ + type: :object, + nullable: true, + description: + "Token withdrawal details. Present when the withdrawal is for a bridged token, null for native coin.", + properties: %{ + address_hash: %Schema{ + allOf: [General.AddressHashNullable], + description: "Token contract address on the Parent chain." + }, + destination_address_hash: %Schema{ + allOf: [General.AddressHashNullable], + description: "Token recipient address on the Parent chain." + }, + amount: %Schema{ + allOf: [General.IntegerString], + description: "Token amount in the token's smallest unit." + }, + decimals: %Schema{type: :integer, minimum: 0, nullable: true}, + name: %Schema{type: :string, nullable: true}, + symbol: %Schema{type: :string, nullable: true} + }, + required: [:address_hash, :destination_address_hash, :amount, :decimals, :name, :symbol], + additionalProperties: false + }, + completion_transaction_hash: General.FullHashNullable + }, + additionalProperties: false + }) +end diff --git a/apps/block_scout_web/lib/block_scout_web/specs/public.ex b/apps/block_scout_web/lib/block_scout_web/specs/public.ex index 86dbf1c16e67..c4a3f8c4b118 100644 --- a/apps/block_scout_web/lib/block_scout_web/specs/public.ex +++ b/apps/block_scout_web/lib/block_scout_web/specs/public.ex @@ -52,7 +52,7 @@ defmodule BlockScoutWeb.Specs.Public do end end - {chain_type, nil} when chain_type in [:scroll, :zilliqa] -> + {chain_type, nil} when chain_type in [:arbitrum, :scroll, :zilliqa] -> @chain_type_category_tags [%Tag{name: to_string(chain_type)}] defp chain_type_category_tags, do: @chain_type_category_tags diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/arbitrum_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/arbitrum_controller_test.exs new file mode 100644 index 000000000000..942861cb223f --- /dev/null +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/arbitrum_controller_test.exs @@ -0,0 +1,1149 @@ +defmodule BlockScoutWeb.API.V2.ArbitrumControllerTest do + use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] + + if @chain_type == :arbitrum do + use BlockScoutWeb.ConnCase + + alias Explorer.Chain.Arbitrum.{BatchToDaBlob, DaMultiPurposeRecord, L1Batch} + + import Explorer.Chain.Arbitrum.DaMultiPurposeRecord.Helper, only: [calculate_celestia_data_key: 2] + + describe "/main-page/arbitrum/batches/committed" do + test "returns committed batches", %{conn: conn} do + batches = insert_list(3, :arbitrum_l1_batch) + + request = get(conn, "/api/v2/main-page/arbitrum/batches/committed") + assert response = json_response(request, 200) + + assert length(response["items"]) == 3 + + # Response is ordered by batch number descending + sorted_batches = Enum.sort_by(batches, & &1.number, :desc) + + for {batch, item} <- Enum.zip(sorted_batches, response["items"]) do + compare_batch(batch, item) + end + end + + test "returns empty list when no committed batches exist", %{conn: conn} do + request = get(conn, "/api/v2/main-page/arbitrum/batches/committed") + assert response = json_response(request, 200) + assert response["items"] == [] + end + + test "returns at most 10 committed batches", %{conn: conn} do + insert_list(12, :arbitrum_l1_batch) + + request = get(conn, "/api/v2/main-page/arbitrum/batches/committed") + assert response = json_response(request, 200) + + assert length(response["items"]) == 10 + end + end + + describe "/main-page/arbitrum/messages/to-rollup" do + test "returns recent L1-to-L2 messages", %{conn: conn} do + messages = insert_list(3, :arbitrum_message, direction: :to_l2, status: :relayed) + + request = get(conn, "/api/v2/main-page/arbitrum/messages/to-rollup") + assert response = json_response(request, 200) + + assert length(response["items"]) == 3 + + sorted_messages = Enum.sort_by(messages, & &1.message_id, :desc) + + for {msg, item} <- Enum.zip(sorted_messages, response["items"]) do + assert to_string(msg.originating_transaction_hash) == item["origination_transaction_hash"] + assert to_string(msg.completion_transaction_hash) == item["completion_transaction_hash"] + assert msg.originating_transaction_block_number == item["origination_transaction_block_number"] + end + end + + test "returns empty list when no messages exist", %{conn: conn} do + request = get(conn, "/api/v2/main-page/arbitrum/messages/to-rollup") + assert response = json_response(request, 200) + assert response["items"] == [] + end + + test "returns at most 6 messages", %{conn: conn} do + insert_list(8, :arbitrum_message, direction: :to_l2, status: :relayed) + + request = get(conn, "/api/v2/main-page/arbitrum/messages/to-rollup") + assert response = json_response(request, 200) + + assert length(response["items"]) == 6 + end + end + + describe "/arbitrum/messages/:direction" do + test "returns to-rollup messages", %{conn: conn} do + messages = insert_list(3, :arbitrum_message, direction: :to_l2, status: :relayed) + + request = get(conn, "/api/v2/arbitrum/messages/to-rollup") + assert response = json_response(request, 200) + + assert length(response["items"]) == 3 + assert response["next_page_params"] == nil + + sorted_messages = Enum.sort_by(messages, & &1.message_id, :desc) + + for {msg, item} <- Enum.zip(sorted_messages, response["items"]) do + assert msg.message_id == item["id"] + assert to_string(msg.originator_address) == item["origination_address_hash"] + assert to_string(msg.originating_transaction_hash) == item["origination_transaction_hash"] + assert msg.originating_transaction_block_number == item["origination_transaction_block_number"] + assert to_string(msg.completion_transaction_hash) == item["completion_transaction_hash"] + assert to_string(msg.status) == item["status"] + end + end + + test "returns from-rollup messages", %{conn: conn} do + messages = insert_list(3, :arbitrum_message, direction: :from_l2, status: :initiated) + + request = get(conn, "/api/v2/arbitrum/messages/from-rollup") + assert response = json_response(request, 200) + + assert length(response["items"]) == 3 + assert response["next_page_params"] == nil + + sorted_messages = Enum.sort_by(messages, & &1.message_id, :desc) + + for {msg, item} <- Enum.zip(sorted_messages, response["items"]) do + assert msg.message_id == item["id"] + assert to_string(msg.status) == item["status"] + end + end + + test "returns empty list when no messages exist", %{conn: conn} do + request = get(conn, "/api/v2/arbitrum/messages/to-rollup") + assert response = json_response(request, 200) + assert response["items"] == [] + assert response["next_page_params"] == nil + end + + test "does not include messages from opposite direction", %{conn: conn} do + insert_list(3, :arbitrum_message, direction: :from_l2, status: :initiated) + + request = get(conn, "/api/v2/arbitrum/messages/to-rollup") + assert response = json_response(request, 200) + assert response["items"] == [] + end + + test "paginates messages", %{conn: conn} do + insert_list(51, :arbitrum_message, direction: :to_l2, status: :relayed) + + request = get(conn, "/api/v2/arbitrum/messages/to-rollup") + assert response = json_response(request, 200) + assert length(response["items"]) == 50 + assert response["next_page_params"] != nil + + request_2nd_page = get(conn, "/api/v2/arbitrum/messages/to-rollup", response["next_page_params"]) + assert response_2nd_page = json_response(request_2nd_page, 200) + assert length(response_2nd_page["items"]) == 1 + assert response_2nd_page["next_page_params"] == nil + end + + test "returns 422 for invalid direction", %{conn: conn} do + request = get(conn, "/api/v2/arbitrum/messages/invalid") + assert %{"errors" => _} = json_response(request, 422) + end + end + + describe "/arbitrum/messages/:direction/count" do + test "returns count for to-rollup messages", %{conn: conn} do + insert_list(3, :arbitrum_message, direction: :to_l2, status: :relayed) + + request = get(conn, "/api/v2/arbitrum/messages/to-rollup/count") + assert json_response(request, 200) == 3 + end + + test "returns count for from-rollup messages", %{conn: conn} do + insert_list(5, :arbitrum_message, direction: :from_l2, status: :initiated) + + request = get(conn, "/api/v2/arbitrum/messages/from-rollup/count") + assert json_response(request, 200) == 5 + end + + test "returns 0 when no messages exist", %{conn: conn} do + request = get(conn, "/api/v2/arbitrum/messages/to-rollup/count") + assert json_response(request, 200) == 0 + end + + test "returns 422 for invalid direction", %{conn: conn} do + request = get(conn, "/api/v2/arbitrum/messages/invalid/count") + assert %{"errors" => _} = json_response(request, 422) + end + end + + describe "/main-page/arbitrum/batches/latest-number" do + test "returns latest batch number", %{conn: conn} do + insert(:arbitrum_l1_batch, number: 5) + insert(:arbitrum_l1_batch, number: 10) + + request = get(conn, "/api/v2/main-page/arbitrum/batches/latest-number") + assert json_response(request, 200) == 10 + end + + test "returns 0 when no batches exist", %{conn: conn} do + request = get(conn, "/api/v2/main-page/arbitrum/batches/latest-number") + assert json_response(request, 200) == 0 + end + end + + describe "/arbitrum/batches" do + test "returns empty list when no batches exist", %{conn: conn} do + request = get(conn, "/api/v2/arbitrum/batches") + assert response = json_response(request, 200) + assert response["items"] == [] + assert response["next_page_params"] == nil + end + + test "returns batches", %{conn: conn} do + batches = insert_list(3, :arbitrum_l1_batch) + + request = get(conn, "/api/v2/arbitrum/batches") + assert response = json_response(request, 200) + + assert length(response["items"]) == 3 + + sorted_batches = Enum.sort_by(batches, & &1.number, :desc) + + for {batch, item} <- Enum.zip(sorted_batches, response["items"]) do + compare_batch(batch, item) + end + end + + test "filters by batch_numbers", %{conn: conn} do + batches = insert_list(5, :arbitrum_l1_batch) + selected = Enum.take(batches, 2) + selected_numbers = Enum.map(selected, & &1.number) + + query = %{"batch_numbers" => selected_numbers} + request = get(conn, "/api/v2/arbitrum/batches", query) + assert response = json_response(request, 200) + + assert length(response["items"]) == 2 + + returned_numbers = Enum.map(response["items"], & &1["number"]) + assert Enum.sort(returned_numbers) == Enum.sort(selected_numbers) + end + + test "paginates batches", %{conn: conn} do + batches = insert_list(51, :arbitrum_l1_batch) + + request = get(conn, "/api/v2/arbitrum/batches") + assert response = json_response(request, 200) + + assert length(response["items"]) == 50 + assert response["next_page_params"] != nil + + request = get(conn, "/api/v2/arbitrum/batches", response["next_page_params"]) + assert response = json_response(request, 200) + + assert length(response["items"]) == 1 + assert response["next_page_params"] == nil + + assert length(Enum.uniq_by(batches, & &1.number)) == 51 + end + end + + describe "/arbitrum/batches/count" do + test "returns 0 when no batches exist", %{conn: conn} do + request = get(conn, "/api/v2/arbitrum/batches/count") + assert json_response(request, 200) == 0 + end + + # The endpoint uses get_table_rows_total_count/2 which relies on PostgreSQL's + # reltuples estimate rather than an exact COUNT. In the test database, reltuples + # is stale after inserts (ANALYZE hasn't run), so the returned count may be 0 + # instead of the actual row count. We assert the response type rather than an + # exact value; schema validation via json_response/2 is the main check here. + test "returns batches count", %{conn: conn} do + insert_list(3, :arbitrum_l1_batch) + + request = get(conn, "/api/v2/arbitrum/batches/count") + assert response = json_response(request, 200) + assert is_integer(response) and response >= 0 + end + end + + describe "/arbitrum/batches/:batch_number" do + test "returns batch by number", %{conn: conn} do + batch = insert(:arbitrum_l1_batch) + + request = get(conn, "/api/v2/arbitrum/batches/#{batch.number}") + assert response = json_response(request, 200) + + batch = Explorer.Repo.preload(batch, :commitment_transaction) + + assert response["number"] == batch.number + assert response["transactions_count"] == batch.transactions_count + assert response["start_block_number"] == batch.start_block + assert response["end_block_number"] == batch.end_block + assert response["before_acc_hash"] == to_string(batch.before_acc) + assert response["after_acc_hash"] == to_string(batch.after_acc) + + commitment_json = response["commitment_transaction"] + assert to_string(batch.commitment_transaction.hash) == commitment_json["hash"] + assert batch.commitment_transaction.block_number == commitment_json["block_number"] + assert commitment_json["status"] == "finalized" + + assert response["data_availability"] != nil + assert response["data_availability"]["batch_data_container"] == nil + end + + test "returns batch with unfinalized commitment transaction status", %{conn: conn} do + lifecycle_tx = insert(:arbitrum_lifecycle_transaction, status: :unfinalized) + batch = insert(:arbitrum_l1_batch, commitment_id: lifecycle_tx.id) + + request = get(conn, "/api/v2/arbitrum/batches/#{batch.number}") + assert response = json_response(request, 200) + + assert response["commitment_transaction"]["status"] == "unfinalized" + end + + test "returns batch with celestia data availability info", %{conn: conn} do + batch = insert(:arbitrum_l1_batch, batch_container: :in_celestia) + + {:ok, data_key} = Explorer.Chain.Hash.Full.cast("0x" <> String.duplicate("ab", 32)) + + Explorer.Repo.insert!(%DaMultiPurposeRecord{ + data_key: data_key, + data_type: 0, + batch_number: batch.number, + data: %{ + "height" => 123_456, + "transaction_commitment" => "0x" <> String.duplicate("cd", 32) + } + }) + + Explorer.Repo.insert!(%BatchToDaBlob{ + batch_number: batch.number, + data_blob_id: data_key + }) + + request = get(conn, "/api/v2/arbitrum/batches/#{batch.number}") + assert response = json_response(request, 200) + + da = response["data_availability"] + assert da["batch_data_container"] == "in_celestia" + assert da["height"] == 123_456 + assert da["transaction_commitment"] == "0x" <> String.duplicate("cd", 32) + end + + test "returns batch with in_blob4844 data availability", %{conn: conn} do + batch = insert(:arbitrum_l1_batch, batch_container: :in_blob4844) + + request = get(conn, "/api/v2/arbitrum/batches/#{batch.number}") + assert response = json_response(request, 200) + + da = response["data_availability"] + assert da["batch_data_container"] == "in_blob4844" + end + + test "returns batch with anytrust data availability info", %{conn: conn} do + batch = insert(:arbitrum_l1_batch, batch_container: :in_anytrust) + + {:ok, data_key} = Explorer.Chain.Hash.Full.cast("0x" <> String.duplicate("a1", 32)) + {:ok, keyset_key} = Explorer.Chain.Hash.Full.cast("0x" <> String.duplicate("b2", 32)) + + Explorer.Repo.insert!(%DaMultiPurposeRecord{ + data_key: data_key, + data_type: 0, + batch_number: batch.number, + data: %{ + "keyset_hash" => "0x" <> String.duplicate("b2", 32), + "data_hash" => "0x" <> String.duplicate("c3", 32), + "timeout" => "2024-10-01T12:00:00Z", + "signers_mask" => 3, + "bls_signature" => "0x" <> String.duplicate("d4", 32) + } + }) + + Explorer.Repo.insert!(%BatchToDaBlob{ + batch_number: batch.number, + data_blob_id: data_key + }) + + Explorer.Repo.insert!(%DaMultiPurposeRecord{ + data_key: keyset_key, + data_type: 1, + data: %{ + "threshold" => 1, + "pubkeys" => [ + %{"trusted" => true, "key" => "0x" <> String.duplicate("e5", 32)}, + %{ + "trusted" => false, + "key" => "0x" <> String.duplicate("f6", 32), + "proof" => "0x" <> String.duplicate("07", 32) + } + ] + } + }) + + request = get(conn, "/api/v2/arbitrum/batches/#{batch.number}") + assert response = json_response(request, 200) + + da = response["data_availability"] + assert da["batch_data_container"] == "in_anytrust" + assert da["data_hash"] == "0x" <> String.duplicate("c3", 32) + assert da["timeout"] == "2024-10-01T12:00:00Z" + assert da["bls_signature"] == "0x" <> String.duplicate("d4", 32) + assert length(da["signers"]) == 2 + + [signer1, signer2] = da["signers"] + assert signer1["trusted"] == true + assert signer1["key"] == "0x" <> String.duplicate("e5", 32) + assert signer2["trusted"] == false + assert signer2["proof"] != nil + end + + test "returns batch with eigenda data availability info", %{conn: conn} do + batch = insert(:arbitrum_l1_batch, batch_container: :in_eigenda) + + {:ok, data_key} = Explorer.Chain.Hash.Full.cast("0x" <> String.duplicate("e1", 32)) + + Explorer.Repo.insert!(%DaMultiPurposeRecord{ + data_key: data_key, + data_type: 0, + batch_number: batch.number, + data: %{ + "blob_header" => "0x" <> String.duplicate("f2", 32), + "blob_verification_proof" => "0x" <> String.duplicate("03", 32) + } + }) + + Explorer.Repo.insert!(%BatchToDaBlob{ + batch_number: batch.number, + data_blob_id: data_key + }) + + request = get(conn, "/api/v2/arbitrum/batches/#{batch.number}") + assert response = json_response(request, 200) + + da = response["data_availability"] + assert da["batch_data_container"] == "in_eigenda" + assert da["blob_header"] == "0x" <> String.duplicate("f2", 32) + assert da["blob_verification_proof"] == "0x" <> String.duplicate("03", 32) + end + + test "returns 404 for non-existing batch", %{conn: conn} do + request = get(conn, "/api/v2/arbitrum/batches/0") + assert %{"message" => "Not found"} = json_response(request, 404) + end + + test "returns 422 for invalid batch number", %{conn: conn} do + request = get(conn, "/api/v2/arbitrum/batches/invalid") + assert %{"errors" => _} = json_response(request, 422) + end + end + + describe "/arbitrum/messages/claim/:message_id" do + test "returns 400 for already relayed withdrawal", %{conn: conn} do + message_id = 42 + + transaction = insert(:transaction) |> with_block() + + insert(:arbitrum_message, + direction: :from_l2, + message_id: message_id, + originating_transaction_hash: transaction.hash, + status: :relayed + ) + + {:ok, fourth_topic} = + Explorer.Chain.Hash.Full.cast("0x" <> String.pad_leading(Integer.to_string(message_id, 16), 64, "0")) + + {:ok, second_topic} = + Explorer.Chain.Hash.Full.cast("0x" <> String.pad_leading("dead", 64, "0")) + + # ABI-encode unindexed params: [caller, arb_block_number, eth_block_number, timestamp, callvalue, data] + log_data_bin = + ABI.TypeEncoder.encode_raw( + [<<0::160>>, 1, 2, 3, 0, <<>>], + [:address, {:uint, 256}, {:uint, 256}, {:uint, 256}, {:uint, 256}, :bytes], + :standard + ) + + {:ok, data} = Explorer.Chain.Data.cast("0x" <> Base.encode16(log_data_bin, case: :lower)) + + insert(:log, + transaction: transaction, + block: transaction.block, + block_number: transaction.block_number, + first_topic: "0x3e7aafa77dbf186b7fd488006beff893744caa3c4f6f299e8a709fa2087374fc", + second_topic: second_topic, + fourth_topic: fourth_topic, + data: data + ) + + request = get(conn, "/api/v2/arbitrum/messages/claim/#{message_id}") + assert %{"message" => "withdrawal was executed already"} = json_response(request, 400) + end + + test "returns 404 for non-existing message", %{conn: conn} do + request = get(conn, "/api/v2/arbitrum/messages/claim/0") + assert %{"message" => _} = json_response(request, 404) + end + + test "returns 422 for invalid message id", %{conn: conn} do + request = get(conn, "/api/v2/arbitrum/messages/claim/invalid") + assert %{"errors" => _} = json_response(request, 422) + end + end + + describe "/arbitrum/messages/withdrawals/:transaction_hash" do + test "returns empty list for a transaction with no withdrawals", %{conn: conn} do + transaction = insert(:transaction) + + request = get(conn, "/api/v2/arbitrum/messages/withdrawals/#{transaction.hash}") + assert response = json_response(request, 200) + assert response["items"] == [] + end + + test "returns 422 for invalid transaction hash", %{conn: conn} do + request = get(conn, "/api/v2/arbitrum/messages/withdrawals/invalid") + assert %{"errors" => _} = json_response(request, 422) + end + + # Native ETH withdrawal whose DB-side message is already :relayed. + # The renderer skips the L1 RPC status check entirely (see + # `ClaimRollupMessage.log_to_withdrawal/2`), and `obtain_token_withdrawal_data/1` + # returns nil because the L2ToL1Tx event data does not start with the + # `finalizeInboundTransfer` selector. So no L1 RPC mocking is required. + test "returns native ETH withdrawal with status :relayed (no token)", %{conn: conn} do + transaction = insert(:transaction) |> with_block() + + message_id = 100 + completion_transaction_hash = transaction_hash() + + insert(:arbitrum_message, + direction: :from_l2, + message_id: message_id, + originating_transaction_hash: transaction.hash, + completion_transaction_hash: completion_transaction_hash, + status: :relayed + ) + + callvalue = 1_000_000_000_000_000 + + insert_l2_to_l1_log!(transaction, + message_id: message_id, + callvalue: callvalue, + data: <<>> + ) + + request = get(conn, "/api/v2/arbitrum/messages/withdrawals/#{transaction.hash}") + assert response = json_response(request, 200) + + assert [item] = response["items"] + assert item["id"] == message_id + assert item["status"] == "relayed" + assert item["callvalue"] == Integer.to_string(callvalue) + assert item["token"] == nil + assert item["completion_transaction_hash"] == to_string(completion_transaction_hash) + end + + # ERC20 token withdrawal whose DB-side message is already :relayed. + # Status check is skipped, but `obtain_token_withdrawal_data/1` decodes the + # `finalizeInboundTransfer(...)` calldata and calls `ERC20.fetch_token_properties/3` + # against the L1 RPC for `name`/`symbol`/`decimals`. We mock those via Mox. + test "returns ERC20 withdrawal with token sub-object and status :relayed", %{conn: conn} do + setup_arbitrum_l1_rpc_mocks!() + + transaction = insert(:transaction) |> with_block() + + message_id = 160_586 + completion_transaction_hash = transaction_hash() + + insert(:arbitrum_message, + direction: :from_l2, + message_id: message_id, + originating_transaction_hash: transaction.hash, + completion_transaction_hash: completion_transaction_hash, + status: :relayed + ) + + # UNI on Ethereum mainnet — chosen from real Arbitrum withdrawal data + # (tx 0x692ebe...557021, position 160586) discovered via the Blockscout + # MCP server. Token metadata returned by the mock matches L1 reality. + l1_token_address = "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984" + l1_recipient_address = "0xb8018422bce25d82e70cb98fda96a4f502d89427" + amount = 0x6C6B935B8BBD400000 + + insert_l2_to_l1_log!(transaction, + message_id: message_id, + data: build_finalize_inbound_transfer_calldata(l1_token_address, l1_recipient_address, amount) + ) + + expect_erc20_metadata!(l1_token_address, name: "Uniswap", symbol: "UNI", decimals: 18) + + request = get(conn, "/api/v2/arbitrum/messages/withdrawals/#{transaction.hash}") + assert response = json_response(request, 200) + + assert [item] = response["items"] + assert item["status"] == "relayed" + + token = item["token"] + assert token != nil + assert String.downcase(token["address_hash"]) == l1_token_address + assert String.downcase(token["destination_address_hash"]) == l1_recipient_address + assert token["amount"] == Integer.to_string(amount) + assert token["name"] == "Uniswap" + assert token["symbol"] == "UNI" + assert token["decimals"] == 18 + end + + # Native ETH withdrawal whose DB-side message is :initiated. + # Forces `get_actual_message_status/1` to run: it calls Outbox.outbox()/ + # sequencerInbox() (batched) plus Outbox.isSpent(message_id) on the L1 RPC, + # then compares message_id to the highest-confirmed-block's `send_count` + # (sourced from the DB). `send_count > message_id` resolves to :confirmed. + test "returns withdrawal with status :confirmed when isSpent=false and send_count > message_id", + %{conn: conn} do + setup_arbitrum_l1_rpc_mocks!() + + transaction = insert(:transaction) |> with_block() + message_id = 50 + + insert(:arbitrum_message, + direction: :from_l2, + message_id: message_id, + originating_transaction_hash: transaction.hash, + status: :initiated + ) + + insert_l2_to_l1_log!(transaction, message_id: message_id, callvalue: 1_000) + + # send_count > message_id ⇒ :confirmed + seed_highest_confirmed_block!(message_id + 50) + + outbox_address = "0x" <> String.duplicate("ab", 20) + expect_inbox_outbox_query!(outbox_address) + expect_outbox_is_spent!(outbox_address, message_id, false) + + request = get(conn, "/api/v2/arbitrum/messages/withdrawals/#{transaction.hash}") + assert response = json_response(request, 200) + + assert [item] = response["items"] + assert item["id"] == message_id + assert item["status"] == "confirmed" + end + + # Same machinery as the :confirmed test, but `send_count <= message_id` + # so `get_actual_message_status/1` resolves to :sent. + test "returns withdrawal with status :sent when isSpent=false and send_count <= message_id", + %{conn: conn} do + setup_arbitrum_l1_rpc_mocks!() + + transaction = insert(:transaction) |> with_block() + message_id = 100 + + insert(:arbitrum_message, + direction: :from_l2, + message_id: message_id, + originating_transaction_hash: transaction.hash, + status: :initiated + ) + + insert_l2_to_l1_log!(transaction, message_id: message_id, callvalue: 1_000) + + # send_count <= message_id ⇒ :sent + seed_highest_confirmed_block!(message_id) + + outbox_address = "0x" <> String.duplicate("ab", 20) + expect_inbox_outbox_query!(outbox_address) + expect_outbox_is_spent!(outbox_address, message_id, false) + + request = get(conn, "/api/v2/arbitrum/messages/withdrawals/#{transaction.hash}") + assert response = json_response(request, 200) + + assert [item] = response["items"] + assert item["id"] == message_id + assert item["status"] == "sent" + end + + # The `:unknown` status branch of `get_actual_message_status/1` is not covered. + # It requires the Outbox `isSpent` check to return false AND `get_size_for_proof/0` + # to return nil — which only happens when both the DB lookup (no confirmed block + # linked to an L1 batch) AND the RPC fallback (multi-step L1/L2 calls to resolve + # a send-count) fail. Exercising that fallback requires mocking several additional + # Arbitrum L1/L2 RPC endpoints beyond the ones set up here. + end + + describe "/arbitrum/batches/da/anytrust/:data_hash" do + test "returns batch by anytrust data hash", %{conn: conn} do + batch = insert(:arbitrum_l1_batch, batch_container: :in_anytrust) + + {:ok, data_key} = Explorer.Chain.Hash.Full.cast("0x" <> String.duplicate("a1", 32)) + {:ok, keyset_key} = Explorer.Chain.Hash.Full.cast("0x" <> String.duplicate("b2", 32)) + + Explorer.Repo.insert!(%DaMultiPurposeRecord{ + data_key: data_key, + data_type: 0, + batch_number: batch.number, + data: %{ + "keyset_hash" => "0x" <> String.duplicate("b2", 32), + "data_hash" => "0x" <> String.duplicate("c3", 32), + "timeout" => "2024-10-01T12:00:00Z", + "signers_mask" => 3, + "bls_signature" => "0x" <> String.duplicate("d4", 32) + } + }) + + Explorer.Repo.insert!(%BatchToDaBlob{ + batch_number: batch.number, + data_blob_id: data_key + }) + + Explorer.Repo.insert!(%DaMultiPurposeRecord{ + data_key: keyset_key, + data_type: 1, + data: %{ + "threshold" => 1, + "pubkeys" => [ + %{"trusted" => true, "key" => "0x" <> String.duplicate("e5", 32)}, + %{ + "trusted" => false, + "key" => "0x" <> String.duplicate("f6", 32), + "proof" => "0x" <> String.duplicate("07", 32) + } + ] + } + }) + + request = get(conn, "/api/v2/arbitrum/batches/da/anytrust/#{data_key}") + assert response = json_response(request, 200) + + assert response["number"] == batch.number + + da = response["data_availability"] + assert da["batch_data_container"] == "in_anytrust" + assert da["data_hash"] == "0x" <> String.duplicate("c3", 32) + assert da["bls_signature"] == "0x" <> String.duplicate("d4", 32) + assert length(da["signers"]) == 2 + end + + test "returns paginated batch list with type=all", %{conn: conn} do + batch = insert(:arbitrum_l1_batch, batch_container: :in_anytrust) + + {:ok, data_key} = Explorer.Chain.Hash.Full.cast("0x" <> String.duplicate("a1", 32)) + + Explorer.Repo.insert!(%DaMultiPurposeRecord{ + data_key: data_key, + data_type: 0, + batch_number: batch.number, + data: %{ + "keyset_hash" => "0x" <> String.duplicate("b2", 32), + "data_hash" => "0x" <> String.duplicate("c3", 32), + "timeout" => "2024-10-01T12:00:00Z", + "signers_mask" => 1, + "bls_signature" => "0x" <> String.duplicate("d4", 32) + } + }) + + Explorer.Repo.insert!(%BatchToDaBlob{ + batch_number: batch.number, + data_blob_id: data_key + }) + + request = get(conn, "/api/v2/arbitrum/batches/da/anytrust/#{data_key}", %{"type" => "all"}) + assert response = json_response(request, 200) + + assert length(response["items"]) == 1 + assert response["next_page_params"] == nil + end + + test "returns 404 for non-existing data hash", %{conn: conn} do + data_hash = "0x" <> String.duplicate("00", 32) + + request = get(conn, "/api/v2/arbitrum/batches/da/anytrust/#{data_hash}") + assert %{"message" => "Not found"} = json_response(request, 404) + end + + test "returns 404 for non-existing data hash with type=all", %{conn: conn} do + data_hash = "0x" <> String.duplicate("00", 32) + + request = get(conn, "/api/v2/arbitrum/batches/da/anytrust/#{data_hash}", %{"type" => "all"}) + assert %{"message" => "Not found"} = json_response(request, 404) + end + + test "returns 422 for invalid data hash", %{conn: conn} do + request = get(conn, "/api/v2/arbitrum/batches/da/anytrust/invalid") + assert %{"errors" => _} = json_response(request, 422) + end + end + + describe "/arbitrum/batches/da/eigenda/:data_hash" do + test "returns batch by eigenda data hash", %{conn: conn} do + batch = insert(:arbitrum_l1_batch, batch_container: :in_eigenda) + + {:ok, data_key} = Explorer.Chain.Hash.Full.cast("0x" <> String.duplicate("e1", 32)) + + Explorer.Repo.insert!(%DaMultiPurposeRecord{ + data_key: data_key, + data_type: 0, + batch_number: batch.number, + data: %{ + "blob_header" => "0x" <> String.duplicate("f2", 32), + "blob_verification_proof" => "0x" <> String.duplicate("03", 32) + } + }) + + Explorer.Repo.insert!(%BatchToDaBlob{ + batch_number: batch.number, + data_blob_id: data_key + }) + + request = get(conn, "/api/v2/arbitrum/batches/da/eigenda/#{data_key}") + assert response = json_response(request, 200) + + assert response["number"] == batch.number + + da = response["data_availability"] + assert da["batch_data_container"] == "in_eigenda" + assert da["blob_header"] == "0x" <> String.duplicate("f2", 32) + assert da["blob_verification_proof"] == "0x" <> String.duplicate("03", 32) + end + + test "returns paginated batch list with type=all", %{conn: conn} do + batch = insert(:arbitrum_l1_batch, batch_container: :in_eigenda) + + {:ok, data_key} = Explorer.Chain.Hash.Full.cast("0x" <> String.duplicate("e1", 32)) + + Explorer.Repo.insert!(%DaMultiPurposeRecord{ + data_key: data_key, + data_type: 0, + batch_number: batch.number, + data: %{ + "blob_header" => "0x" <> String.duplicate("f2", 32), + "blob_verification_proof" => "0x" <> String.duplicate("03", 32) + } + }) + + Explorer.Repo.insert!(%BatchToDaBlob{ + batch_number: batch.number, + data_blob_id: data_key + }) + + request = get(conn, "/api/v2/arbitrum/batches/da/eigenda/#{data_key}", %{"type" => "all"}) + assert response = json_response(request, 200) + + assert length(response["items"]) == 1 + assert response["next_page_params"] == nil + end + + test "returns 404 for non-existing data hash", %{conn: conn} do + data_hash = "0x" <> String.duplicate("00", 32) + + request = get(conn, "/api/v2/arbitrum/batches/da/eigenda/#{data_hash}") + assert %{"message" => "Not found"} = json_response(request, 404) + end + + test "returns 404 for non-existing data hash with type=all", %{conn: conn} do + data_hash = "0x" <> String.duplicate("00", 32) + + request = get(conn, "/api/v2/arbitrum/batches/da/eigenda/#{data_hash}", %{"type" => "all"}) + assert %{"message" => "Not found"} = json_response(request, 404) + end + + test "returns 422 for invalid data hash", %{conn: conn} do + request = get(conn, "/api/v2/arbitrum/batches/da/eigenda/invalid") + assert %{"errors" => _} = json_response(request, 422) + end + end + + describe "/arbitrum/batches/da/celestia/:height/:transaction_commitment" do + test "returns batch by celestia blob reference", %{conn: conn} do + batch = insert(:arbitrum_l1_batch, batch_container: :in_celestia) + + height = 123_456 + commitment_hex = "0x" <> String.duplicate("cd", 32) + {:ok, commitment_hash} = Explorer.Chain.Hash.Full.cast(commitment_hex) + raw_key = calculate_celestia_data_key(height, commitment_hash) + hex_key = "0x" <> Base.encode16(raw_key, case: :lower) + {:ok, data_key} = Explorer.Chain.Hash.Full.cast(hex_key) + + Explorer.Repo.insert!(%DaMultiPurposeRecord{ + data_key: data_key, + data_type: 0, + batch_number: batch.number, + data: %{ + "height" => height, + "transaction_commitment" => commitment_hex + } + }) + + Explorer.Repo.insert!(%BatchToDaBlob{ + batch_number: batch.number, + data_blob_id: data_key + }) + + request = get(conn, "/api/v2/arbitrum/batches/da/celestia/#{height}/#{commitment_hex}") + assert response = json_response(request, 200) + + assert response["number"] == batch.number + + da = response["data_availability"] + assert da["batch_data_container"] == "in_celestia" + assert da["height"] == height + assert da["transaction_commitment"] == commitment_hex + end + + test "returns 404 for non-existing celestia blob reference", %{conn: conn} do + commitment_hex = "0x" <> String.duplicate("00", 32) + + request = get(conn, "/api/v2/arbitrum/batches/da/celestia/999999/#{commitment_hex}") + assert %{"message" => "Not found"} = json_response(request, 404) + end + + test "returns 422 for invalid transaction commitment", %{conn: conn} do + request = get(conn, "/api/v2/arbitrum/batches/da/celestia/123/invalid") + assert %{"errors" => _} = json_response(request, 422) + end + + test "returns 422 for invalid height", %{conn: conn} do + commitment_hex = "0x" <> String.duplicate("00", 32) + + request = get(conn, "/api/v2/arbitrum/batches/da/celestia/invalid/#{commitment_hex}") + assert %{"errors" => _} = json_response(request, 422) + end + end + + # Sets up `:meck` to make `Indexer.Helper.json_rpc_named_arguments/1` return + # the Mox transport (via `EthereumJSONRPC.Mox`) regardless of the configured URL, + # and seeds the Arbitrum fetcher config so `get_json_rpc(:l1)` and + # `get_l1_rollup_address/0` return usable values. Also installs `Mox.set_mox_global` + # so the stubs are visible from the controller's request process. + # + # Registers `on_exit` callbacks to restore the original config and unload meck. + # Use this in any test that needs to mock Arbitrum L1 RPC calls (Outbox, ERC20, ...). + defp setup_arbitrum_l1_rpc_mocks!(rollup_address \\ "0x" <> String.duplicate("aa", 20)) do + Mox.set_mox_global() + Mox.verify_on_exit!() + + prev_config = Application.get_env(:indexer, Indexer.Fetcher.Arbitrum, []) + + Application.put_env( + :indexer, + Indexer.Fetcher.Arbitrum, + Keyword.merge(prev_config, + l1_rpc: "http://placeholder.invalid", + l1_rollup_address: rollup_address + ) + ) + + :meck.new(Indexer.Helper, [:passthrough]) + + :meck.expect(Indexer.Helper, :json_rpc_named_arguments, fn _rpc_url -> + [ + transport: EthereumJSONRPC.Mox, + transport_options: [], + variant: EthereumJSONRPC.Geth + ] + end) + + ExUnit.Callbacks.on_exit(fn -> + Application.put_env(:indexer, Indexer.Fetcher.Arbitrum, prev_config) + + try do + :meck.unload(Indexer.Helper) + catch + _, _ -> :ok + end + end) + + rollup_address + end + + # Inserts an L2ToL1Tx event log on the given transaction. Pads the destination + # address into the indexed `second_topic` and the message id into the indexed + # `fourth_topic`, then ABI-encodes the unindexed params + # `[caller, arbBlockNum, ethBlockNum, timestamp, callvalue, data]` for the data field. + defp insert_l2_to_l1_log!(transaction, opts) do + message_id = Keyword.fetch!(opts, :message_id) + destination = Keyword.get(opts, :destination, "0x" <> String.duplicate("de", 20)) + callvalue = Keyword.get(opts, :callvalue, 0) + data_bytes = Keyword.get(opts, :data, <<>>) + caller = Keyword.get(opts, :caller, <<0::160>>) + arb_block_number = Keyword.get(opts, :arb_block_number, 1) + eth_block_number = Keyword.get(opts, :eth_block_number, 2) + timestamp = Keyword.get(opts, :timestamp, 3) + + {:ok, fourth_topic} = + Explorer.Chain.Hash.Full.cast("0x" <> String.pad_leading(Integer.to_string(message_id, 16), 64, "0")) + + destination_hex = String.replace(destination, "0x", "") + + {:ok, second_topic} = + Explorer.Chain.Hash.Full.cast("0x" <> String.pad_leading(destination_hex, 64, "0")) + + log_data_bin = + ABI.TypeEncoder.encode_raw( + [caller, arb_block_number, eth_block_number, timestamp, callvalue, data_bytes], + [:address, {:uint, 256}, {:uint, 256}, {:uint, 256}, {:uint, 256}, :bytes], + :standard + ) + + {:ok, data} = Explorer.Chain.Data.cast("0x" <> Base.encode16(log_data_bin, case: :lower)) + + insert(:log, + transaction: transaction, + block: transaction.block, + block_number: transaction.block_number, + first_topic: "0x3e7aafa77dbf186b7fd488006beff893744caa3c4f6f299e8a709fa2087374fc", + second_topic: second_topic, + fourth_topic: fourth_topic, + data: data + ) + end + + # Builds the bytes for `finalizeInboundTransfer(address,address,address,uint256,bytes)` + # — selector `0x2e567b36`. Used as the `data` field of an L2ToL1Tx log to trigger + # the token-withdrawal code path in `obtain_token_withdrawal_data/1`. + defp build_finalize_inbound_transfer_calldata(l1_token, l1_recipient, amount) do + {:ok, %{bytes: token_bytes}} = Explorer.Chain.Hash.Address.cast(l1_token) + {:ok, %{bytes: recipient_bytes}} = Explorer.Chain.Hash.Address.cast(l1_recipient) + # Second `from` arg is unused by `obtain_token_withdrawal_data/1` (it ignores + # the second decoded value), so a zero-padded placeholder is sufficient. + from_bytes = <<0::160>> + + args = + ABI.TypeEncoder.encode_raw( + [token_bytes, from_bytes, recipient_bytes, amount, <<>>], + [:address, :address, :address, {:uint, 256}, :bytes], + :standard + ) + + <<0x2E, 0x56, 0x7B, 0x36>> <> args + end + + # Inserts a confirmed Arbitrum batch + block linkage so that + # `SettlementReader.highest_confirmed_block/0` returns a block whose `:send_count` + # is the supplied value. Used to drive `get_size_for_proof_from_database/0`. + defp seed_highest_confirmed_block!(send_count) do + lifecycle_tx = insert(:arbitrum_lifecycle_transaction) + block = insert(:block, send_count: send_count, consensus: true) + batch = insert(:arbitrum_l1_batch) + + insert(:arbitrum_batch_block, + batch_number: batch.number, + block_number: block.number, + confirmation_id: lifecycle_tx.id + ) + + block + end + + # Mocks the batched eth_call that `get_contracts_for_rollup(:inbox_outbox, ...)` + # issues against the rollup contract: `sequencerInbox()` (selector 0xee35f327) + # and `outbox()` (selector 0xce11e6ab). Returns `outbox_address` for the latter + # and an arbitrary placeholder for the former. + defp expect_inbox_outbox_query!(outbox_address) do + outbox_hex = String.replace(outbox_address, "0x", "") + outbox_response = "0x" <> String.pad_leading(outbox_hex, 64, "0") + sequencer_inbox_response = "0x" <> String.pad_leading("ff", 64, "0") + + Mox.expect(EthereumJSONRPC.Mox, :json_rpc, fn requests, _opts -> + responses = + Enum.map(requests, fn %{id: id, method: "eth_call", params: [%{data: data}, _block]} -> + result = + cond do + String.starts_with?(data, "0xce11e6ab") -> outbox_response + String.starts_with?(data, "0xee35f327") -> sequencer_inbox_response + true -> raise "Unexpected eth_call to rollup contract: #{data}" + end + + %{id: id, jsonrpc: "2.0", result: result} + end) + + {:ok, responses} + end) + end + + # Mocks the batched eth_call that `ArbitrumRpc.withdrawal_spent?/3` issues against + # the Outbox contract: `isSpent(uint256)` — selector 0x5a129efe. + defp expect_outbox_is_spent!(outbox_address, message_id, value) do + expected_data = + "0x5a129efe" <> String.pad_leading(Integer.to_string(message_id, 16), 64, "0") + + result_byte = if value, do: "01", else: "00" + result = "0x" <> String.pad_leading(result_byte, 64, "0") + + Mox.expect(EthereumJSONRPC.Mox, :json_rpc, fn requests, _opts -> + responses = + Enum.map(requests, fn %{id: id, method: "eth_call", params: [%{data: data, to: to}, _block]} -> + assert String.downcase(to) == String.downcase(outbox_address), + "isSpent must target the outbox address" + + assert String.downcase(data) == expected_data, "isSpent data mismatch" + + %{id: id, jsonrpc: "2.0", result: result} + end) + + {:ok, responses} + end) + end + + # Mocks the batched eth_call that `ERC20.fetch_token_properties/3` issues: + # `name()` (0x06fdde03), `symbol()` (0x95d89b41), `decimals()` (0x313ce567). + defp expect_erc20_metadata!(token_address, opts) do + name = Keyword.fetch!(opts, :name) + symbol = Keyword.fetch!(opts, :symbol) + decimals = Keyword.fetch!(opts, :decimals) + + decimals_response = "0x" <> String.pad_leading(Integer.to_string(decimals, 16), 64, "0") + name_response = abi_encoded_string(name) + symbol_response = abi_encoded_string(symbol) + + Mox.expect(EthereumJSONRPC.Mox, :json_rpc, fn requests, _opts -> + token_addr_lower = String.downcase(token_address) + + responses = + Enum.map(requests, fn %{id: id, method: "eth_call", params: [%{data: data, to: to}, _block]} -> + assert String.downcase(to) == token_addr_lower, + "ERC20 metadata call must target the token contract" + + result = + cond do + String.starts_with?(data, "0x313ce567") -> decimals_response + String.starts_with?(data, "0x06fdde03") -> name_response + String.starts_with?(data, "0x95d89b41") -> symbol_response + true -> raise "Unexpected ERC20 call: #{data}" + end + + %{id: id, jsonrpc: "2.0", result: result} + end) + + {:ok, responses} + end) + end + + # ABI-encodes a single string value as the eth_call return payload (offset+length+padded data). + defp abi_encoded_string(str) do + encoded = + ABI.TypeEncoder.encode([str], %ABI.FunctionSelector{ + function: nil, + types: [:string] + }) + + "0x" <> Base.encode16(encoded, case: :lower) + end + + defp compare_batch(%L1Batch{} = batch, json) do + batch = Explorer.Repo.preload(batch, :commitment_transaction) + + assert batch.number == json["number"] + assert batch.transactions_count == json["transactions_count"] + assert batch.end_block - batch.start_block + 1 == json["blocks_count"] + + commitment_tx = batch.commitment_transaction + commitment_json = json["commitment_transaction"] + + assert to_string(commitment_tx.hash) == commitment_json["hash"] + assert commitment_tx.block_number == commitment_json["block_number"] + assert DateTime.to_iso8601(commitment_tx.timestamp) == commitment_json["timestamp"] + assert to_string(commitment_tx.status) == commitment_json["status"] + end + end +end diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/block_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/block_controller_test.exs index d13a07415500..b577a5b27b78 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/block_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/block_controller_test.exs @@ -1059,4 +1059,53 @@ defmodule BlockScoutWeb.API.V2.BlockControllerTest do assert second_page_resp["next_page_params"] == nil compare_item(Enum.at(list, 0), Enum.at(second_page_resp["items"], 0)) end + + if @chain_type == :arbitrum do + describe "/blocks/arbitrum-batch/:batch_number_param" do + test "returns empty list when batch has no blocks", %{conn: conn} do + batch = insert(:arbitrum_l1_batch) + + request = get(conn, "/api/v2/blocks/arbitrum-batch/#{batch.number}") + assert response = json_response(request, 200) + assert response["items"] == [] + assert response["next_page_params"] == nil + end + + test "returns blocks in the batch", %{conn: conn} do + batch = insert(:arbitrum_l1_batch) + block = insert(:block, consensus: true) + + insert(:arbitrum_batch_block, batch_number: batch.number, block_number: block.number) + + request = get(conn, "/api/v2/blocks/arbitrum-batch/#{batch.number}") + assert response = json_response(request, 200) + assert length(response["items"]) == 1 + assert hd(response["items"])["height"] == block.number + end + + test "can paginate blocks in Arbitrum batch", %{conn: conn} do + batch = insert(:arbitrum_l1_batch) + blocks = insert_list(51, :block, consensus: true) + + Enum.each(blocks, fn block -> + insert(:arbitrum_batch_block, batch_number: batch.number, block_number: block.number) + end) + + request = get(conn, "/api/v2/blocks/arbitrum-batch/#{batch.number}") + assert response = json_response(request, 200) + + request_2nd_page = + get(conn, "/api/v2/blocks/arbitrum-batch/#{batch.number}", response["next_page_params"]) + + assert response_2nd_page = json_response(request_2nd_page, 200) + + check_paginated_response(response, response_2nd_page, blocks) + end + + test "returns 422 for non-integer batch_number_param", %{conn: conn} do + request = get(conn, "/api/v2/blocks/arbitrum-batch/invalid") + assert %{"errors" => [_]} = json_response(request, 422) + end + end + end end diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/transaction_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/transaction_controller_test.exs index f376ee8b2ae5..1063acffa2ec 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/transaction_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/transaction_controller_test.exs @@ -3383,4 +3383,53 @@ defmodule BlockScoutWeb.API.V2.TransactionControllerTest do end end end + + if @chain_type == :arbitrum do + describe "/transactions/arbitrum-batch/:batch_number_param" do + test "returns empty list when batch has no transactions", %{conn: conn} do + batch = insert(:arbitrum_l1_batch) + + request = get(conn, "/api/v2/transactions/arbitrum-batch/#{batch.number}") + assert response = json_response(request, 200) + assert response["items"] == [] + assert response["next_page_params"] == nil + end + + test "returns transactions in the batch", %{conn: conn} do + batch = insert(:arbitrum_l1_batch) + transaction = :transaction |> insert() |> with_block() + + insert(:arbitrum_batch_transaction, batch_number: batch.number, transaction_hash: transaction.hash) + + request = get(conn, "/api/v2/transactions/arbitrum-batch/#{batch.number}") + assert response = json_response(request, 200) + assert length(response["items"]) == 1 + assert hd(response["items"])["hash"] == to_string(transaction.hash) + end + + test "can paginate transactions in Arbitrum batch", %{conn: conn} do + batch = insert(:arbitrum_l1_batch) + transactions = 51 |> insert_list(:transaction) |> with_block() + + Enum.each(transactions, fn tx -> + insert(:arbitrum_batch_transaction, batch_number: batch.number, transaction_hash: tx.hash) + end) + + request = get(conn, "/api/v2/transactions/arbitrum-batch/#{batch.number}") + assert response = json_response(request, 200) + + request_2nd_page = + get(conn, "/api/v2/transactions/arbitrum-batch/#{batch.number}", response["next_page_params"]) + + assert response_2nd_page = json_response(request_2nd_page, 200) + + check_paginated_response(response, response_2nd_page, transactions) + end + + test "returns 422 for non-integer batch_number_param", %{conn: conn} do + request = get(conn, "/api/v2/transactions/arbitrum-batch/invalid") + assert %{"errors" => [_]} = json_response(request, 422) + end + end + end end diff --git a/apps/block_scout_web/test/support/api_schema_assertions.ex b/apps/block_scout_web/test/support/api_schema_assertions.ex index 31c4de1b907c..6e38215b361c 100644 --- a/apps/block_scout_web/test/support/api_schema_assertions.ex +++ b/apps/block_scout_web/test/support/api_schema_assertions.ex @@ -67,15 +67,34 @@ defmodule BlockScoutWeb.TestApiSchemaAssertions do defp match_template_path(paths_map, actual_path) do actual_segments = split_path(actual_path) - Enum.find_value(paths_map, fn {template_path, %PathItem{} = item} -> - template_segments = split_path(template_path) - - if segments_match?(template_segments, actual_segments) do - {:ok, {template_path, item}} - else - false - end - end) || :error + # The OpenAPI spec paths map is unordered, so when multiple templates match + # the same request path, Enum.find_value would pick one non-deterministically. + # This matters because the router has many sibling routes where a literal + # segment coexists with a dynamic parameter at the same position, e.g.: + # + # GET /batches/count → :batches_count + # GET /batches/{batch_number} → :batch + # + # Phoenix resolves these by declaration order (literal first), but here we + # match against the spec map, where both templates satisfy segments_match?. + # To mirror Phoenix's behaviour we prefer the template with the fewest + # dynamic segments — the more specific (literal) path always wins. + paths_map + |> Enum.filter(fn {template_path, %PathItem{}} -> + segments_match?(split_path(template_path), actual_segments) + end) + |> Enum.min_by( + fn {template_path, _} -> + segments = split_path(template_path) + dynamic_count = Enum.count(segments, &dynamic_segment?/1) + {dynamic_count, length(segments), template_path} + end, + fn -> nil end + ) + |> case do + {_, %PathItem{}} = match -> {:ok, match} + nil -> :error + end end defp split_path(path) when is_binary(path) do diff --git a/apps/explorer/lib/explorer/application.ex b/apps/explorer/lib/explorer/application.ex index e350326ee3ca..ddfc2b0f0f53 100644 --- a/apps/explorer/lib/explorer/application.ex +++ b/apps/explorer/lib/explorer/application.ex @@ -5,7 +5,7 @@ defmodule Explorer.Application do use Application - alias Explorer.Admin + alias Explorer.{Admin, Helper} alias Explorer.Chain.Cache.{ Accounts, @@ -586,7 +586,14 @@ defmodule Explorer.Application do end defp redix_opts do - {ConfigHelper.parse_url_env_var("ACCOUNT_REDIS_URL", "redis://127.0.0.1:6379"), [name: :redix]} + "ACCOUNT_REDIS_URL" + |> ConfigHelper.parse_url_env_var("redis://127.0.0.1:6379") + |> Helper.redix_opts( + String.downcase(ConfigHelper.safe_get_env("ACCOUNT_REDIS_SSL_ENABLED", "false")) == "true", + ConfigHelper.safe_get_env("ACCOUNT_REDIS_SENTINEL_URLS", ""), + ConfigHelper.safe_get_env("ACCOUNT_REDIS_SENTINEL_MASTER_NAME", "") + ) + |> Keyword.merge(name: :redix) end defp configure_libcluster do diff --git a/apps/explorer/lib/explorer/arbitrum/claim_rollup_message.ex b/apps/explorer/lib/explorer/arbitrum/claim_rollup_message.ex index 39318ecf8590..8e6705784fd8 100644 --- a/apps/explorer/lib/explorer/arbitrum/claim_rollup_message.ex +++ b/apps/explorer/lib/explorer/arbitrum/claim_rollup_message.ex @@ -379,16 +379,15 @@ defmodule Explorer.Arbitrum.ClaimRollupMessage do # - `data`: Binary data containing the finalizeInboundTransfer calldata # # ## Returns - # - Map containing token contract `address`, `destination` address, token `amount`, + # - Map containing token contract `address_hash`, `destination_address_hash`, token `amount`, # token `name`, `symbol` and `decimals` if the data corresponds to finalizeInboundTransfer selector # - `nil` if data is void or doesn't match finalizeInboundTransfer method (which # happens when the L2->L1 message is for arbitrary data transfer, such as a remote # call of a smart contract on L1) @spec obtain_token_withdrawal_data(binary()) :: %{ - address_hash: Explorer.Chain.Hash.Address.t(), - address: Explorer.Chain.Hash.Address.t(), - destination: Explorer.Chain.Hash.Address.t(), + address_hash: Explorer.Chain.Hash.Address.t() | nil, + destination_address_hash: Explorer.Chain.Hash.Address.t() | nil, amount: non_neg_integer(), decimals: non_neg_integer() | nil, name: binary() | nil, diff --git a/apps/explorer/lib/explorer/arbitrum/withdraw.ex b/apps/explorer/lib/explorer/arbitrum/withdraw.ex index d026f829bbda..37fea4dde130 100644 --- a/apps/explorer/lib/explorer/arbitrum/withdraw.ex +++ b/apps/explorer/lib/explorer/arbitrum/withdraw.ex @@ -21,8 +21,8 @@ defmodule Explorer.Arbitrum.Withdraw do otherwise the transaction will fail. Typically this field contain calldata for `finalizeInboundTransfer(address,address,address,uint256,bytes)` method of the Bridge contract and it intended to withdraw supported tokens instead of native coins. - * `token_address` - extracted L1 address of the token to withdraw in case of `data` field represents Bridge transaction - * `token_destination` - extracted L1 receiver address in case of `data` field represents Bridge transaction + * `token_address_hash` - extracted L1 address of the token to withdraw in case of `data` field represents Bridge transaction + * `token_destination_address_hash` - extracted L1 receiver address in case of `data` field represents Bridge transaction * `token_amount` - extracted token amount in case of `data` field represents Bridge transaction * `token_decimals` - how many decimal places the associated L1 token has * `token_name` - the name of the associated L1 token @@ -42,8 +42,8 @@ defmodule Explorer.Arbitrum.Withdraw do data: data, token: %{ - address: token_address, - destination: token_destination, + address_hash: token_address_hash, + destination_address_hash: token_destination_address_hash, amount: token_amount, decimals: token_decimals, name: token_name, @@ -62,8 +62,8 @@ defmodule Explorer.Arbitrum.Withdraw do @typep l2_timestamp :: non_neg_integer() @typep callvalue :: non_neg_integer() @typep data :: binary() - @typep token_address :: Hash.Address.t() - @typep token_destination :: Hash.Address.t() + @typep token_address_hash :: Hash.Address.t() | nil + @typep token_destination_address_hash :: Hash.Address.t() | nil @typep token_amount :: non_neg_integer() @typep token_decimals :: non_neg_integer() | nil @typep token_name :: binary() | nil diff --git a/apps/explorer/lib/explorer/helper.ex b/apps/explorer/lib/explorer/helper.ex index f778619ff829..8aaa31c6dbf4 100644 --- a/apps/explorer/lib/explorer/helper.ex +++ b/apps/explorer/lib/explorer/helper.ex @@ -9,6 +9,7 @@ defmodule Explorer.Helper do alias ABI.TypeDecoder alias Explorer.Chain alias Explorer.Chain.{Address.Reputation, Address.ScamBadgeToAddress, Data, Hash, Wei} + alias Redix.URI, as: RedixURI require Logger @@ -804,4 +805,50 @@ defmodule Explorer.Helper do @spec maybe_timeout(timeout() | nil) :: keyword() def maybe_timeout(nil), do: [] def maybe_timeout(timeout), do: [timeout: timeout] + + @doc """ + Builds Redix connection options for either direct Redis URL or Redis Sentinel configuration. + + This function supports two connection modes: + - **Direct connection**: When `sentinel_urls` is `nil` or empty, parses the + provided Redis URL into Redix start options. + - **Sentinel connection**: When `sentinel_urls` is provided, configures Redix + to connect through Redis Sentinel for high availability. In this mode, the + `sentinel_master_name` is required. + + ## Parameters + - `url`: Redis connection URL (e.g., `redis://host:port/db`). Used only in + direct connection mode. + - `use_ssl?`: When `true`, adds SSL options with certificate verification + disabled. + - `sentinel_urls`: Comma-separated list of Sentinel node URLs. When provided, + enables Sentinel connection mode. + - `sentinel_master_name`: The name of the master group monitored by Sentinel. + Required when `sentinel_urls` is provided. + + ## Returns + - A keyword list of Redix connection options. + + ## Raises + - `RuntimeError` if `sentinel_urls` is provided but `sentinel_master_name` is + `nil` or empty. + """ + @spec redix_opts(String.t() | nil, boolean(), String.t() | nil, String.t() | nil) :: keyword() + def redix_opts(url, use_ssl?, sentinel_urls, sentinel_master_name) do + ssl_opts = if use_ssl?, do: [ssl: true, socket_opts: [verify: :verify_none]], else: [] + + case sentinel_urls do + sentinel_urls when sentinel_urls in [nil, ""] -> + url |> RedixURI.to_start_options() |> Keyword.merge(ssl_opts) + + sentinel_urls_str -> + sentinel_urls = String.split(sentinel_urls_str, ",") + + if sentinel_master_name in [nil, ""] do + raise "sentinel_master_name is required when sentinel_urls is set" + end + + [sentinel: [sentinels: sentinel_urls, group: sentinel_master_name]] |> Keyword.merge(ssl_opts) + end + end end diff --git a/apps/explorer/lib/explorer/third_party_integrations/auth0.ex b/apps/explorer/lib/explorer/third_party_integrations/auth0.ex index 151166b32bcb..fa2d7abd4d19 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/auth0.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/auth0.ex @@ -5,7 +5,7 @@ defmodule Explorer.ThirdPartyIntegrations.Auth0 do require Logger alias Explorer.Account.{Authentication, Identity} - alias Explorer.{Helper, HttpClient} + alias Explorer.{Helper, HttpClient, Vault} alias Explorer.ThirdPartyIntegrations.Auth0.Internal alias Explorer.ThirdPartyIntegrations.Dynamic alias Ueberauth.Strategy.Auth0.OAuth @@ -35,7 +35,7 @@ defmodule Explorer.ThirdPartyIntegrations.Auth0 do get_m2m_jwt_inner(Redix.command(:redix, ["GET", m2m_jwt_key()])) end - defp get_m2m_jwt_inner({:ok, token}) when not is_nil(token), do: token + defp get_m2m_jwt_inner({:ok, token}) when not is_nil(token), do: Vault.decrypt!(token) defp get_m2m_jwt_inner(_) do config = Application.get_env(:ueberauth, OAuth) @@ -51,7 +51,8 @@ defmodule Explorer.ThirdPartyIntegrations.Auth0 do {:ok, %{status_code: 200, body: body}} -> case Jason.decode!(body) do %{"access_token" => token, "expires_in" => ttl} -> - cache_token(token, ttl - 1) + cache_token(Vault.encrypt!(token), ttl - 1) + token _ -> nil diff --git a/apps/explorer/lib/explorer/utility/hammer.ex b/apps/explorer/lib/explorer/utility/hammer.ex index 9cb44367f7ee..ebb1826862cb 100644 --- a/apps/explorer/lib/explorer/utility/hammer.ex +++ b/apps/explorer/lib/explorer/utility/hammer.ex @@ -12,6 +12,8 @@ defmodule Explorer.Utility.Hammer do @moduledoc """ Wrapper for the rate limit functions. Defines union of all functions from `Explorer.Utility.Hammer.ETS` and `Explorer.Utility.Hammer.Redis`. Resolves the backend to use based on `Application.get_env(:explorer, Explorer.Utility.RateLimiter)[:hammer_backend_module]` in runtime. """ + + alias Explorer.Helper alias Explorer.Utility.Hammer.{ETS, Redis} functions = @@ -34,8 +36,17 @@ defmodule Explorer.Utility.Hammer do config = Application.get_env(:explorer, Explorer.Utility.RateLimiter) case config[:storage] do - :redis -> {Explorer.Utility.Hammer.Redis, [url: config[:redis_url]]} - :ets -> {Explorer.Utility.Hammer.ETS, []} + :redis -> + {Explorer.Utility.Hammer.Redis, + Helper.redix_opts( + config[:redis_url], + config[:redis_ssl], + config[:redis_sentinel_urls], + config[:redis_sentinel_master_name] + )} + + :ets -> + {Explorer.Utility.Hammer.ETS, []} end end end diff --git a/apps/explorer/lib/explorer/utility/rate_limiter.ex b/apps/explorer/lib/explorer/utility/rate_limiter.ex index 4b683a507dc8..0e5e6bdb7377 100644 --- a/apps/explorer/lib/explorer/utility/rate_limiter.ex +++ b/apps/explorer/lib/explorer/utility/rate_limiter.ex @@ -2,6 +2,8 @@ defmodule Explorer.Utility.RateLimiter do @moduledoc """ Rate limit logic with separation by action type and exponential backoff for bans. """ + + alias Explorer.Helper alias Explorer.Utility.Hammer use GenServer @@ -15,8 +17,18 @@ defmodule Explorer.Utility.RateLimiter do config = Application.get_env(:explorer, __MODULE__) case config[:storage] do - :redis -> Redix.start_link(config[:redis_url], name: @redis_conn_name) - :ets -> GenServer.start_link(__MODULE__, :ok, name: __MODULE__) + :redis -> + config[:redis_url] + |> Helper.redix_opts( + config[:redis_ssl], + config[:redis_sentinel_urls], + config[:redis_sentinel_master_name] + ) + |> Keyword.merge(name: @redis_conn_name) + |> Redix.start_link() + + :ets -> + GenServer.start_link(__MODULE__, :ok, name: __MODULE__) end end diff --git a/apps/explorer/test/support/factory.ex b/apps/explorer/test/support/factory.ex index d3934ce7d4fe..9f7a4af005f0 100644 --- a/apps/explorer/test/support/factory.ex +++ b/apps/explorer/test/support/factory.ex @@ -25,6 +25,11 @@ defmodule Explorer.Factory do alias Explorer.Admin.Administrator alias Explorer.Chain.Beacon.{Blob, BlobTransaction, Deposit} alias Explorer.Chain.Block.{EmissionReward, Range, Reward} + alias Explorer.Chain.Arbitrum.BatchBlock, as: ArbitrumBatchBlock + alias Explorer.Chain.Arbitrum.BatchTransaction, as: ArbitrumBatchTransaction + alias Explorer.Chain.Arbitrum.L1Batch, as: ArbitrumL1Batch + alias Explorer.Chain.Arbitrum.LifecycleTransaction, as: ArbitrumLifecycleTransaction + alias Explorer.Chain.Arbitrum.Message, as: ArbitrumMessage alias Explorer.Chain.Scroll.Batch, as: ScrollBatch alias Explorer.Chain.Scroll.BatchBundle, as: ScrollBatchBundle alias Explorer.Chain.Scroll.Bridge, as: ScrollBridge @@ -1938,4 +1943,58 @@ defmodule Explorer.Factory do meta: nil } end + + def arbitrum_lifecycle_transaction_factory do + %ArbitrumLifecycleTransaction{ + id: sequence("arbitrum_lifecycle_tx_id", & &1, start_at: 1), + hash: transaction_hash(), + block_number: block_number(), + timestamp: DateTime.utc_now(), + status: :finalized + } + end + + def arbitrum_l1_batch_factory do + lifecycle_tx = insert(:arbitrum_lifecycle_transaction) + start = Enum.random(1..100_000) + + %ArbitrumL1Batch{ + number: sequence("arbitrum_l1_batch_number", & &1), + transactions_count: Enum.random(1..100), + start_block: start, + end_block: Kernel.+(start, 10), + before_acc: block_hash(), + after_acc: block_hash(), + commitment_id: lifecycle_tx.id + } + end + + def arbitrum_message_factory do + %ArbitrumMessage{ + direction: :to_l2, + message_id: sequence("arbitrum_message_id", & &1, start_at: 1), + originator_address: address_hash(), + originating_transaction_hash: transaction_hash(), + origination_timestamp: DateTime.utc_now(), + originating_transaction_block_number: block_number(), + completion_transaction_hash: transaction_hash(), + status: :relayed + } + end + + # Pure association factory — callers must supply `:batch_number` and `:block_number` + # as overrides referencing existing records. Both are required foreign keys on + # `Explorer.Chain.Arbitrum.BatchBlock`, so `insert(:arbitrum_batch_block)` without + # overrides will raise. + def arbitrum_batch_block_factory do + %ArbitrumBatchBlock{} + end + + # Pure association factory — callers must supply `:batch_number` and `:transaction_hash` + # as overrides referencing existing records. Both are required foreign keys on + # `Explorer.Chain.Arbitrum.BatchTransaction`, so `insert(:arbitrum_batch_transaction)` + # without overrides will raise. + def arbitrum_batch_transaction_factory do + %ArbitrumBatchTransaction{} + end end diff --git a/config/runtime.exs b/config/runtime.exs index 5cad288fce93..5ac942b26f65 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -145,6 +145,9 @@ default_global_api_rate_limit = 25 default_api_rate_limit_by_key = 10 api_rate_limit_redis_url = ConfigHelper.safe_get_env("API_RATE_LIMIT_HAMMER_REDIS_URL", nil) +api_rate_limit_redis_sentinel_urls = + ConfigHelper.safe_get_env("API_RATE_LIMIT_HAMMER_REDIS_SENTINEL_URLS", "") + config :block_scout_web, :api_rate_limit, disabled: ConfigHelper.parse_bool_env_var("API_RATE_LIMIT_DISABLED"), static_api_key_value: System.get_env("API_RATE_LIMIT_STATIC_API_KEY"), @@ -172,8 +175,11 @@ config :block_scout_web, :api_rate_limit, api_v2_token_ttl: ConfigHelper.parse_time_env_var("API_RATE_LIMIT_UI_V2_TOKEN_TTL", "30m"), eth_json_rpc_max_batch_size: ConfigHelper.parse_integer_env_var("ETH_JSON_RPC_MAX_BATCH_SIZE", 5), redis_url: if(api_rate_limit_redis_url == "", do: nil, else: api_rate_limit_redis_url), + redis_ssl: ConfigHelper.parse_bool_env_var("API_RATE_LIMIT_HAMMER_REDIS_SSL_ENABLED", "false"), + redis_sentinel_urls: if(api_rate_limit_redis_sentinel_urls == "", do: nil, else: api_rate_limit_redis_sentinel_urls), + redis_sentinel_master_name: ConfigHelper.safe_get_env("API_RATE_LIMIT_HAMMER_REDIS_SENTINEL_MASTER_NAME", ""), rate_limit_backend: - if(api_rate_limit_redis_url == "", + if(api_rate_limit_redis_url == "" and api_rate_limit_redis_sentinel_urls == "", do: BlockScoutWeb.RateLimit.Hammer.ETS, else: BlockScoutWeb.RateLimit.Hammer.Redis ), @@ -935,10 +941,14 @@ config :explorer, Explorer.Chain.Fetcher.AddressesBlacklist, provider: ConfigHelper.parse_catalog_value("ADDRESSES_BLACKLIST_PROVIDER", ["blockaid"], false, "blockaid") rate_limiter_redis_url = ConfigHelper.parse_url_env_var("RATE_LIMITER_REDIS_URL") +rate_limiter_redis_sentinel_urls = ConfigHelper.safe_get_env("RATE_LIMITER_REDIS_SENTINEL_URLS", "") config :explorer, Explorer.Utility.RateLimiter, - storage: (rate_limiter_redis_url && :redis) || :ets, + storage: if(rate_limiter_redis_url || rate_limiter_redis_sentinel_urls != "", do: :redis, else: :ets), redis_url: rate_limiter_redis_url, + redis_ssl: ConfigHelper.parse_bool_env_var("RATE_LIMITER_REDIS_SSL_ENABLED", "false"), + redis_sentinel_urls: rate_limiter_redis_sentinel_urls, + redis_sentinel_master_name: ConfigHelper.safe_get_env("RATE_LIMITER_REDIS_SENTINEL_MASTER_NAME", ""), on_demand: [ time_interval_limit: ConfigHelper.parse_time_env_var("RATE_LIMITER_ON_DEMAND_TIME_INTERVAL", "5s"), limit_by_ip: ConfigHelper.parse_integer_env_var("RATE_LIMITER_ON_DEMAND_LIMIT_BY_IP", 50), @@ -947,7 +957,10 @@ config :explorer, Explorer.Utility.RateLimiter, limitation_period: ConfigHelper.parse_time_env_var("RATE_LIMITER_ON_DEMAND_LIMITATION_PERIOD", "1h") ], hammer_backend_module: - if(rate_limiter_redis_url, do: Explorer.Utility.Hammer.Redis, else: Explorer.Utility.Hammer.ETS) + if(rate_limiter_redis_url || rate_limiter_redis_sentinel_urls != "", + do: Explorer.Utility.Hammer.Redis, + else: Explorer.Utility.Hammer.ETS + ) universal_proxy_config_url = ConfigHelper.parse_url_env_var( diff --git a/docker-compose/envs/common-blockscout.env b/docker-compose/envs/common-blockscout.env index 7ca1424b770b..68f1e4bcef1c 100644 --- a/docker-compose/envs/common-blockscout.env +++ b/docker-compose/envs/common-blockscout.env @@ -185,6 +185,15 @@ API_V1_WRITE_METHODS_DISABLED=false # API_GRAPHQL_RATE_LIMIT_BY_IP_TIME_INTERVAL= # API_GRAPHQL_RATE_LIMIT_STATIC_API_KEY= # API_DISABLE_CONTRACT_CREATION_INTERNAL_TRANSACTION_ASSOCIATION=false +# RATE_LIMITER_REDIS_URL= +# RATE_LIMITER_REDIS_SSL_ENABLED= +# RATE_LIMITER_REDIS_SENTINEL_URLS= +# RATE_LIMITER_REDIS_SENTINEL_MASTER_NAME= +# RATE_LIMITER_ON_DEMAND_TIME_INTERVAL= +# RATE_LIMITER_ON_DEMAND_LIMIT_BY_IP= +# RATE_LIMITER_ON_DEMAND_EXPONENTIAL_TIMEOUT_COEFF= +# RATE_LIMITER_ON_DEMAND_MAX_BAN_INTERVAL= +# RATE_LIMITER_ON_DEMAND_LIMITATION_PERIOD= # DISABLE_INDEXER=false # DISABLE_REALTIME_INDEXER=false # DISABLE_CATCHUP_INDEXER=false @@ -455,6 +464,9 @@ RE_CAPTCHA_DISABLED=false # RE_CAPTCHA_BYPASS_TOKEN # RE_CAPTCHA_TOKEN_INSTANCE_REFETCH_METADATA_SCOPED_BYPASS_TOKEN= # API_RATE_LIMIT_HAMMER_REDIS_URL=redis://redis-db:6379/1 +# API_RATE_LIMIT_HAMMER_REDIS_SSL_ENABLED= +# API_RATE_LIMIT_HAMMER_REDIS_SENTINEL_URLS= +# API_RATE_LIMIT_HAMMER_REDIS_SENTINEL_MASTER_NAME= # API_RATE_LIMIT_IS_BLOCKSCOUT_BEHIND_PROXY=false # API_RATE_LIMIT_UI_V2_TOKEN_TTL_IN_SECONDS=18000 # FETCH_REWARDS_WAY=trace_block @@ -511,6 +523,9 @@ DECODE_NOT_A_CONTRACT_CALLS=true ACCOUNT_CLOAK_KEY= ACCOUNT_ENABLED=false ACCOUNT_REDIS_URL=redis://redis-db:6379 +# ACCOUNT_REDIS_SSL_ENABLED= +# ACCOUNT_REDIS_SENTINEL_URLS= +# ACCOUNT_REDIS_SENTINEL_MASTER_NAME= # EIP_1559_ELASTICITY_MULTIPLIER=2 # EIP_1559_BASE_FEE_MAX_CHANGE_DENOMINATOR=8 # EIP_1559_BASE_FEE_LOWER_BOUND_WEI=0 From 05381be47201334ee06a1c440fe3588a3ed44128 Mon Sep 17 00:00:00 2001 From: Alexander Kolotov Date: Fri, 8 May 2026 09:59:10 -0600 Subject: [PATCH 02/31] chore: OpenAPI specifications for all `/api/v2/advanced-filters` endpoints (#14227) Co-authored-by: Alexander Kolotov Co-authored-by: Maxim Filonov <53992153+sl1depengwyn@users.noreply.github.com> Co-authored-by: Victor Baranov Co-authored-by: Qwerty5Uiop <105209995+Qwerty5Uiop@users.noreply.github.com> --- .../api/v2/advanced_filter_controller.ex | 286 ++++++++++++++++-- .../schemas/api/v2/advanced_filter.ex | 275 +++++++++++++++++ .../schemas/api/v2/advanced_filter/method.ex | 28 ++ .../block_scout_web/schemas/api/v2/general.ex | 7 + ...integer_string_or_empty_or_null_literal.ex | 13 + .../lib/block_scout_web/specs/public.ex | 3 +- .../v2/advanced_filter_controller_test.exs | 42 ++- 7 files changed, 632 insertions(+), 22 deletions(-) create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/advanced_filter.ex create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/advanced_filter/method.ex create mode 100644 apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/integer_string_or_empty_or_null_literal.ex diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/advanced_filter_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/advanced_filter_controller.ex index 4a8a5478c6b8..bdc2485f7ab5 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/advanced_filter_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/advanced_filter_controller.ex @@ -1,5 +1,6 @@ defmodule BlockScoutWeb.API.V2.AdvancedFilterController do use BlockScoutWeb, :controller + use OpenApiSpex.ControllerSpecs use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] import BlockScoutWeb.Chain, only: [split_list_by_page: 1, next_page_params: 5, fetch_scam_token_toggle: 2] @@ -7,6 +8,7 @@ defmodule BlockScoutWeb.API.V2.AdvancedFilterController do alias BlockScoutWeb.AccessHelper alias BlockScoutWeb.API.V2.CsvExportController + alias BlockScoutWeb.Schemas.API.V2.General alias Explorer.{Chain, PagingOptions} alias Explorer.Chain.{Address.Reputation, AdvancedFilter, ContractMethod, Data, Token, Transaction} alias Explorer.Chain.CsvExport.AdvancedFilter, as: CsvExportAdvancedFilter @@ -19,6 +21,13 @@ defmodule BlockScoutWeb.API.V2.AdvancedFilterController do action_fallback(BlockScoutWeb.API.V2.FallbackController) + # Once CastAndValidate is installed, every new action in this controller must + # declare either a real `operation …` spec or `operation :name, false`; + # otherwise the plug rejects requests to it. + plug(OpenApiSpex.Plug.CastAndValidate, json_render_error_v2: true) + + tags(["advanced-filters"]) + @api_true [api?: true] @methods [ @@ -55,6 +64,197 @@ defmodule BlockScoutWeb.API.V2.AdvancedFilterController do @token_options [api?: true, necessity_by_association: %{Reputation.reputation_association() => :optional}] + @comma_separated_address_hashes_example "0x5a52e96bacdabb82fd05763e25335261b270efcb,0x00000000219ab540356cbb839cbe05303d7705fa" + + @advanced_filter_query_params [ + %OpenApiSpex.Parameter{ + name: :transaction_types, + in: :query, + schema: %OpenApiSpex.Schema{type: :string, nullable: true}, + required: false, + description: + "Comma-separated list of transaction types to include. Allowed values: `COIN_TRANSFER`, " <> + "`CONTRACT_INTERACTION`, `CONTRACT_CREATION`, `ERC-20`, `ERC-404`, `ERC-721`, `ERC-1155`, `ERC-7984` " <> + "(plus `ZRC-2` on Zilliqa). Values are matched case-insensitively; unknown entries are silently dropped.", + example: "COIN_TRANSFER,ERC-20" + }, + %OpenApiSpex.Parameter{ + name: :methods, + in: :query, + schema: %OpenApiSpex.Schema{type: :string, nullable: true}, + required: false, + description: + "Comma-separated list of 4-byte contract method selectors (lowercase, `0x`-prefixed). At most 20 unique " <> + "entries are honored; invalid entries are dropped.", + example: "0xa9059cbb,0x095ea7b3" + }, + %OpenApiSpex.Parameter{ + name: :age_from, + in: :query, + schema: %OpenApiSpex.Schema{type: :string, nullable: true}, + required: false, + description: "Inclusive lower bound on `timestamp` (ISO 8601).", + example: "2024-01-01T00:00:00Z" + }, + %OpenApiSpex.Parameter{ + name: :age_to, + in: :query, + schema: %OpenApiSpex.Schema{type: :string, nullable: true}, + required: false, + description: "Inclusive upper bound on `timestamp` (ISO 8601).", + example: "2024-12-31T23:59:59Z" + }, + %OpenApiSpex.Parameter{ + name: :from_address_hashes_to_include, + in: :query, + schema: %OpenApiSpex.Schema{type: :string, nullable: true}, + required: false, + description: "Comma-separated list of sender address hashes to include.", + example: @comma_separated_address_hashes_example + }, + %OpenApiSpex.Parameter{ + name: :from_address_hashes_to_exclude, + in: :query, + schema: %OpenApiSpex.Schema{type: :string, nullable: true}, + required: false, + description: "Comma-separated list of sender address hashes to exclude.", + example: @comma_separated_address_hashes_example + }, + %OpenApiSpex.Parameter{ + name: :to_address_hashes_to_include, + in: :query, + schema: %OpenApiSpex.Schema{type: :string, nullable: true}, + required: false, + description: "Comma-separated list of recipient address hashes to include.", + example: @comma_separated_address_hashes_example + }, + %OpenApiSpex.Parameter{ + name: :to_address_hashes_to_exclude, + in: :query, + schema: %OpenApiSpex.Schema{type: :string, nullable: true}, + required: false, + description: "Comma-separated list of recipient address hashes to exclude.", + example: @comma_separated_address_hashes_example + }, + %OpenApiSpex.Parameter{ + name: :address_relation, + in: :query, + schema: %OpenApiSpex.Schema{type: :string, nullable: true}, + required: false, + description: + "How to combine the `from_address_hashes_*` and `to_address_hashes_*` filters. " <> + "Accepts `or` or `and` (case-insensitive). `or` (default) matches an item if either side matches; " <> + "`and` requires both sides to match. Any other value is silently coerced to `nil` (no relation constraint).", + example: "and" + }, + %OpenApiSpex.Parameter{ + name: :amount_from, + in: :query, + schema: %OpenApiSpex.Schema{type: :string, nullable: true}, + required: false, + description: "Inclusive lower bound on the item's transferred amount (decimal string in the token's base units).", + example: "0" + }, + %OpenApiSpex.Parameter{ + name: :amount_to, + in: :query, + schema: %OpenApiSpex.Schema{type: :string, nullable: true}, + required: false, + description: "Inclusive upper bound on the item's transferred amount (decimal string in the token's base units).", + example: "1000000" + }, + %OpenApiSpex.Parameter{ + name: :token_contract_address_hashes_to_include, + in: :query, + schema: %OpenApiSpex.Schema{type: :string, nullable: true}, + required: false, + description: + "Comma-separated list of token contract address hashes to include. Use the literal `native` to also " <> + "include native coin transfers. Each list (include and exclude) is capped to 20 entries separately.", + example: "native,0xdac17f958d2ee523a2206206994597c13d831ec7" + }, + %OpenApiSpex.Parameter{ + name: :token_contract_address_hashes_to_exclude, + in: :query, + schema: %OpenApiSpex.Schema{type: :string, nullable: true}, + required: false, + description: + "Comma-separated list of token contract address hashes to exclude. Use the literal `native` to also " <> + "exclude native coin transfers. Each list (include and exclude) is capped to 20 entries separately.", + example: "0x0000000000000000000000000000000000000000" + } + ] + + @advanced_filter_keyset_params [ + %OpenApiSpex.Parameter{ + name: :block_number, + in: :query, + schema: %OpenApiSpex.Schema{type: :string, pattern: General.non_negative_integer_pattern()}, + required: false, + description: "Keyset cursor: block number of the last item from the previous page.", + example: "23532302" + }, + %OpenApiSpex.Parameter{ + name: :transaction_index, + in: :query, + schema: %OpenApiSpex.Schema{type: :string, pattern: General.non_negative_integer_pattern()}, + required: false, + description: "Keyset cursor: transaction index within the block of the last item from the previous page.", + example: "1" + }, + %OpenApiSpex.Parameter{ + name: :internal_transaction_index, + in: :query, + schema: General.IntegerStringOrEmptyOrNullLiteral, + required: false, + description: + "Keyset cursor: internal-transaction index of the last item from the previous page. " <> + "Use an empty string or the literal `null` when the previous item was not an internal transaction." + }, + %OpenApiSpex.Parameter{ + name: :token_transfer_index, + in: :query, + schema: General.IntegerStringOrEmptyOrNullLiteral, + required: false, + description: + "Keyset cursor: token-transfer index of the last item from the previous page. " <> + "Use an empty string or the literal `null` when the previous item was not a token transfer." + }, + %OpenApiSpex.Parameter{ + name: :token_transfer_batch_index, + in: :query, + schema: General.IntegerStringOrEmptyOrNullLiteral, + required: false, + description: + "Keyset cursor: index within an ERC-1155 batch token transfer. " <> + "Use an empty string or the literal `null` when the previous item was not part of a batch." + } + ] + + @items_count_param %OpenApiSpex.Parameter{ + name: :items_count, + in: :query, + schema: %OpenApiSpex.Schema{type: :integer, minimum: 1}, + required: false, + description: "Cumulative number of items already returned across previous pages." + } + + operation :list, + summary: "List transactions, internal transactions and token transfers matching the advanced filter criteria", + description: + "Returns a paginated, mixed list of activity — native value transfers, internal transactions and token " <> + "transfers — filtered by transaction type, contract method, time window, address relations, value range " <> + "and/or token contract. The response also echoes the resolved human-readable names of the methods and " <> + "tokens referenced in the request filters.", + parameters: + base_params() ++ @advanced_filter_query_params ++ @advanced_filter_keyset_params ++ [@items_count_param], + responses: [ + ok: + {"List of matching items with pagination information and resolved search params.", "application/json", + Schemas.AdvancedFilter.Response}, + unprocessable_entity: JsonErrorResponse.response() + ] + @doc """ Function responsible for `api/v2/advanced-filters/` endpoint. """ @@ -77,7 +277,7 @@ defmodule BlockScoutWeb.API.V2.AdvancedFilterController do |> Transaction.decode_transactions(true, @api_true) next_page_params = - next_page |> next_page_params(advanced_filters, Map.take(params, ["items_count"]), false, &paging_params/1) + next_page |> next_page_params(advanced_filters, Map.take(params, [:items_count]), false, &paging_params/1) render(conn, :advanced_filters, advanced_filters: advanced_filters, @@ -90,6 +290,25 @@ defmodule BlockScoutWeb.API.V2.AdvancedFilterController do ) end + operation :list_csv, + summary: "Export advanced-filter results as CSV", + description: + "Streams the items matching the advanced filter criteria as a CSV file. " <> + "When asynchronous CSV export is enabled on the deployment, returns `202 Accepted` with a `request_id` " <> + "that can be polled via `/api/v2/csv-exports/{request_id}`; otherwise the CSV body is streamed inline.", + parameters: base_params() ++ @advanced_filter_query_params ++ @advanced_filter_keyset_params, + responses: [ + ok: {"CSV file (sync export).", "application/csv", nil}, + accepted: + {"Async export queued; poll `/api/v2/csv-exports/{request_id}` with the returned `request_id`.", + "application/json", Schemas.AdvancedFilter.CsvExportAccepted}, + conflict: + {"Too many pending export requests for this client.", "application/json", Schemas.AdvancedFilter.CsvExportError}, + internal_server_error: + {"Failed to create CSV export request.", "application/json", Schemas.AdvancedFilter.CsvExportError}, + unprocessable_entity: JsonErrorResponse.response() + ] + @doc """ Function responsible for `api/v2/advanced-filters/csv` endpoint. """ @@ -142,12 +361,41 @@ defmodule BlockScoutWeb.API.V2.AdvancedFilterController do end) end + operation :list_methods, + summary: "List known contract methods", + description: + "Returns a list of known contract methods. " <> + "When the `q` parameter is provided, searches for a single method by its 4-byte selector or name. " <> + "Without `q`, returns the default list of popular methods.", + parameters: [ + %OpenApiSpex.Parameter{ + name: :q, + in: :query, + schema: %OpenApiSpex.Schema{type: :string, nullable: true}, + required: false, + description: + "Search string: either a 4-byte method selector (e.g. `0xa9059cbb`) or a method name (e.g. `transfer`).", + example: "transfer" + } + | base_params() + ], + responses: [ + ok: + {"List of contract methods.", "application/json", + %OpenApiSpex.Schema{ + type: :array, + items: Schemas.AdvancedFilter.Method, + nullable: false + }}, + unprocessable_entity: JsonErrorResponse.response() + ] + @doc """ Function responsible for `api/v2/advanced-filters/methods` endpoint, including `api/v2/advanced-filters/methods/?q=:search_string`. """ - @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 query = String.downcase(query) case {@methods_id_to_name_map[query], @methods_name_to_id_map[query]} do @@ -233,27 +481,27 @@ defmodule BlockScoutWeb.API.V2.AdvancedFilterController do defp extract_filters(params) do [ - transaction_types: prepare_transaction_types(params["transaction_types"]), - methods: params["methods"] |> prepare_methods(), - age: prepare_age(params["age_from"], params["age_to"]), + transaction_types: prepare_transaction_types(params[:transaction_types]), + methods: params[:methods] |> prepare_methods(), + age: prepare_age(params[:age_from], params[:age_to]), from_address_hashes: prepare_include_exclude_address_hashes( - params["from_address_hashes_to_include"], - params["from_address_hashes_to_exclude"], + params[:from_address_hashes_to_include], + params[:from_address_hashes_to_exclude], &prepare_address_hash/1 ), to_address_hashes: prepare_include_exclude_address_hashes( - params["to_address_hashes_to_include"], - params["to_address_hashes_to_exclude"], + params[:to_address_hashes_to_include], + params[:to_address_hashes_to_exclude], &prepare_address_hash/1 ), - address_relation: prepare_address_relation(params["address_relation"]), - amount: prepare_amount(params["amount_from"], params["amount_to"]), + address_relation: prepare_address_relation(params[:address_relation]), + amount: prepare_amount(params[:amount_from], params[:amount_to]), token_contract_address_hashes: - params["token_contract_address_hashes_to_include"] + params[:token_contract_address_hashes_to_include] |> prepare_include_exclude_address_hashes( - params["token_contract_address_hashes_to_exclude"], + params[:token_contract_address_hashes_to_exclude], &prepare_token_address_hash/1 ) |> Enum.map(fn @@ -361,11 +609,11 @@ defmodule BlockScoutWeb.API.V2.AdvancedFilterController do # Paging defp paging_options(%{ - "block_number" => block_number_string, - "transaction_index" => transaction_index_string, - "internal_transaction_index" => internal_transaction_index_string, - "token_transfer_index" => token_transfer_index_string, - "token_transfer_batch_index" => token_transfer_batch_index_string + block_number: block_number_string, + transaction_index: transaction_index_string, + internal_transaction_index: internal_transaction_index_string, + token_transfer_index: token_transfer_index_string, + token_transfer_batch_index: token_transfer_batch_index_string }) do with {block_number, ""} <- block_number_string && Integer.parse(block_number_string), {transaction_index, ""} <- transaction_index_string && Integer.parse(transaction_index_string), diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/advanced_filter.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/advanced_filter.ex new file mode 100644 index 000000000000..9fbc66e47021 --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/advanced_filter.ex @@ -0,0 +1,275 @@ +defmodule BlockScoutWeb.Schemas.API.V2.AdvancedFilter do + @moduledoc """ + Schema for a single item returned by the `/api/v2/advanced-filters` endpoint. + + Each item represents one unit of on-chain activity (a native value transfer, + an internal transaction or a token transfer) projected through the advanced + filters pipeline. See `Explorer.Chain.AdvancedFilter`. + """ + require OpenApiSpex + + alias BlockScoutWeb.Schemas.API.V2.{Address, General, Token, TokenTransfer} + alias BlockScoutWeb.Schemas.Helper + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + title: "AdvancedFilterItem", + type: :object, + properties: %{ + hash: General.FullHash, + # Keep this enum in sync with `Explorer.Chain.AdvancedFilter.assign_type/1` + # (the `coin_transfer`/`contract_interaction`/`contract_creation` branches) and + # `Explorer.Chain.Token.valid_types/0` (the `ERC-*` token-transfer labels). + type: %Schema{ + type: :string, + enum: [ + "coin_transfer", + "contract_interaction", + "contract_creation", + "ERC-20", + "ERC-721", + "ERC-1155", + "ERC-404", + "ERC-7984" + ], + description: + "Kind of activity represented by the item. Values `coin_transfer`, `contract_interaction`, and " <> + "`contract_creation` apply to top-level transactions and internal transactions; the `ERC-*` " <> + "values apply to token transfers.", + nullable: false + }, + status: %Schema{ + type: :string, + description: + "Execution status of the parent transaction. One of `pending`, `awaiting_internal_transactions`, " <> + "`success`, or a free-form error reason string when the transaction reverted (e.g. `Reverted`).", + nullable: false + }, + method: General.MethodNameNullable, + from: %Schema{ + allOf: [Address], + nullable: true, + description: "Sender address. `null` for contract-creation items." + }, + to: %Schema{ + allOf: [Address], + nullable: true, + description: "Recipient address. `null` for contract-creation items and some internal transactions." + }, + created_contract: %Schema{ + allOf: [Address], + nullable: true, + description: "Address of the contract deployed by this item. `null` unless the item is a contract creation." + }, + value: %Schema{ + type: :string, + pattern: General.non_negative_integer_pattern(), + nullable: true, + description: + "Native coin amount transferred, in the chain's base unit (e.g. wei). `null` for token-transfer items." + }, + total: %Schema{ + anyOf: [ + TokenTransfer.TotalERC721, + TokenTransfer.TotalERC1155, + TokenTransfer.TotalERC7984, + TokenTransfer.Total + ], + description: + "Token transfer amount (or token id for NFTs). Populated only for token-transfer items; `null` otherwise.", + nullable: true + }, + token: %Schema{ + allOf: [Token], + nullable: true, + description: "Token contract metadata. Populated only for token-transfer items; `null` otherwise." + }, + timestamp: + Helper.extend_schema(General.Timestamp.schema(), + description: "Block timestamp of the parent transaction." + ), + block_number: %Schema{ + type: :integer, + minimum: 0, + nullable: false, + description: "Number of the block that contains the parent transaction." + }, + transaction_index: %Schema{ + type: :integer, + minimum: 0, + nullable: false, + description: "Zero-based position of the parent transaction within its block." + }, + internal_transaction_index: %Schema{ + type: :integer, + minimum: 0, + nullable: true, + description: + "Zero-based position of the internal transaction within its parent transaction. Populated only for " <> + "internal-transaction items; `null` otherwise." + }, + token_transfer_index: %Schema{ + type: :integer, + minimum: 0, + nullable: true, + description: + "Zero-based position of the token transfer, unique per parent transaction. Populated only for " <> + "token-transfer items; `null` otherwise." + }, + token_transfer_batch_index: %Schema{ + type: :integer, + minimum: 0, + nullable: true, + description: + "Zero-based position within an ERC-1155 batch token transfer. Populated only for items that belong " <> + "to a batch; `null` otherwise." + }, + fee: %Schema{ + type: :string, + pattern: General.non_negative_integer_pattern(), + nullable: false, + description: "Transaction fee paid by the sender, in the chain's base unit (e.g. wei)." + } + }, + required: [ + :hash, + :type, + :status, + :method, + :from, + :to, + :created_contract, + :value, + :total, + :token, + :timestamp, + :block_number, + :transaction_index, + :internal_transaction_index, + :token_transfer_index, + :token_transfer_batch_index, + :fee + ], + additionalProperties: false + }) +end + +defmodule BlockScoutWeb.Schemas.API.V2.AdvancedFilter.SearchParams do + @moduledoc """ + Auxiliary lookup map returned alongside advanced-filter items that echoes + the resolved human-readable names of the `methods` and `tokens` used in the + request filters. + """ + require OpenApiSpex + + alias BlockScoutWeb.Schemas.API.V2.Token + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + title: "AdvancedFilterSearchParams", + type: :object, + properties: %{ + methods: %Schema{ + type: :object, + description: + "Map of 4-byte method selectors (keys) to resolved method names (values) for the `methods` filter.", + additionalProperties: %Schema{type: :string, nullable: false} + }, + tokens: %Schema{ + type: :object, + description: + "Map of token contract address hashes (keys) to `Token` objects for tokens referenced in the " <> + "`token_contract_address_hashes_to_include`/`_exclude` filters. At most 20 entries are returned " <> + "(combined across both lists).", + additionalProperties: Token + } + }, + required: [:methods, :tokens], + additionalProperties: false + }) +end + +defmodule BlockScoutWeb.Schemas.API.V2.AdvancedFilter.Response do + @moduledoc """ + Schema for the paginated response returned by the `/api/v2/advanced-filters` endpoint. + """ + require OpenApiSpex + + alias BlockScoutWeb.Schemas.API.V2.AdvancedFilter + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + title: "AdvancedFilterResponse", + type: :object, + properties: %{ + items: %Schema{type: :array, items: AdvancedFilter, nullable: false}, + search_params: AdvancedFilter.SearchParams, + next_page_params: %Schema{ + type: :object, + nullable: true, + example: %{ + "block_number" => 23_532_302, + "transaction_index" => 1, + "internal_transaction_index" => nil, + "token_transfer_index" => 0, + "token_transfer_batch_index" => nil, + "items_count" => 50 + } + } + }, + required: [:items, :search_params, :next_page_params], + additionalProperties: false + }) +end + +defmodule BlockScoutWeb.Schemas.API.V2.AdvancedFilter.CsvExportAccepted do + @moduledoc """ + Schema for the 202 Accepted JSON body returned by + `/api/v2/advanced-filters/csv` when asynchronous CSV export is enabled. + """ + require OpenApiSpex + + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + title: "AdvancedFilterCsvExportAccepted", + description: + "Body returned when an asynchronous CSV export job has been queued. " <> + "Poll `/api/v2/csv-exports/{request_id}` with the returned `request_id` to check status.", + type: :object, + properties: %{ + request_id: %Schema{ + type: :string, + format: :uuid, + description: "UUID of the queued export request.", + nullable: false + } + }, + required: [:request_id], + additionalProperties: false + }) +end + +defmodule BlockScoutWeb.Schemas.API.V2.AdvancedFilter.CsvExportError do + @moduledoc """ + Schema for the JSON error body returned by `/api/v2/advanced-filters/csv` + when the asynchronous export job cannot be created (HTTP 409 or 500). + + Note: uses an `error` key rather than the `message` key carried by the + reusable `ErrorResponses.*` schemas — the CSV controller predates that + convention. + """ + require OpenApiSpex + + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + title: "AdvancedFilterCsvExportError", + type: :object, + properties: %{ + error: %Schema{type: :string, nullable: false, description: "Human-readable error description."} + }, + required: [:error], + additionalProperties: false + }) +end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/advanced_filter/method.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/advanced_filter/method.ex new file mode 100644 index 000000000000..3711608d2a68 --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/advanced_filter/method.ex @@ -0,0 +1,28 @@ +defmodule BlockScoutWeb.Schemas.API.V2.AdvancedFilter.Method do + @moduledoc "Schema for a contract method (id + name pair) returned by the advanced filters methods endpoint." + + alias OpenApiSpex.Schema + + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "AdvancedFilterMethod", + description: "Contract method identified by its 4-byte selector and human-readable name.", + type: :object, + required: [:method_id, :name], + properties: %{ + method_id: %Schema{ + type: :string, + pattern: ~r/^0x[0-9a-f]{8}$/, + description: "4-byte method selector prefixed with 0x (lowercase hex).", + example: "0xa9059cbb" + }, + name: %Schema{ + type: :string, + description: "Human-readable method name. Empty string if the name could not be resolved.", + example: "transfer" + } + }, + additionalProperties: false + }) +end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general.ex index 6bdd5aad8214..0bb5ee69a6c3 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general.ex @@ -23,6 +23,7 @@ defmodule BlockScoutWeb.Schemas.API.V2.General do alias Explorer.Chain.InternalTransaction.CallType alias OpenApiSpex.{Parameter, Schema} @integer_pattern ~r"^-?([1-9][0-9]*|0)$" + @non_negative_integer_pattern ~r"^([1-9][0-9]*|0)$" @float_pattern ~r"^([1-9][0-9]*|0)(\.[0-9]+)?$" @address_hash_pattern ~r"^0x([A-Fa-f0-9]{40})$" @full_hash_pattern ~r"^0x([A-Fa-f0-9]{64})$" @@ -1597,6 +1598,12 @@ defmodule BlockScoutWeb.Schemas.API.V2.General do @spec integer_pattern() :: Regex.t() def integer_pattern, do: @integer_pattern + @doc """ + Returns the non-negative integer pattern. + """ + @spec non_negative_integer_pattern() :: Regex.t() + def non_negative_integer_pattern, do: @non_negative_integer_pattern + @doc """ Returns the float pattern. """ diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/integer_string_or_empty_or_null_literal.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/integer_string_or_empty_or_null_literal.ex new file mode 100644 index 000000000000..7b535b11d077 --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/integer_string_or_empty_or_null_literal.ex @@ -0,0 +1,13 @@ +defmodule BlockScoutWeb.Schemas.API.V2.General.IntegerStringOrEmptyOrNullLiteral do + @moduledoc false + require OpenApiSpex + alias BlockScoutWeb.Schemas.API.V2.General + alias OpenApiSpex.Schema + + OpenApiSpex.schema(%{ + oneOf: [ + %Schema{type: :string, pattern: General.non_negative_integer_pattern()}, + %Schema{type: :string, enum: ["", "null"]} + ] + }) +end diff --git a/apps/block_scout_web/lib/block_scout_web/specs/public.ex b/apps/block_scout_web/lib/block_scout_web/specs/public.ex index c4a3f8c4b118..402dfb227cc1 100644 --- a/apps/block_scout_web/lib/block_scout_web/specs/public.ex +++ b/apps/block_scout_web/lib/block_scout_web/specs/public.ex @@ -30,7 +30,8 @@ defmodule BlockScoutWeb.Specs.Public do "stats", "csv-export", "account-abstraction", - "withdrawals" + "withdrawals", + "advanced-filters" ] # todo: if new chain type is covered with OpenAPI specs diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/advanced_filter_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/advanced_filter_controller_test.exs index 78e5db9c41d2..aded80a60585 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/advanced_filter_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/advanced_filter_controller_test.exs @@ -98,6 +98,23 @@ defmodule BlockScoutWeb.API.V2.AdvancedFilterControllerTest do assert response["next_page_params"] == nil end + # Regression: keyset cursor params accept the literal string "null" in addition + # to an empty string, signalling that the previous-page item was not of the + # corresponding kind (internal transaction / token transfer / batch item). + # Locks in the second branch of `General.IntegerStringOrEmptyOrNullLiteral`. + test "accepts the literal \"null\" in keyset cursor params", %{conn: conn} do + cursor_params = %{ + "block_number" => "0", + "transaction_index" => "0", + "internal_transaction_index" => "null", + "token_transfer_index" => "null", + "token_transfer_batch_index" => "null" + } + + request = get(conn, "/api/v2/advanced-filters", cursor_params) + assert json_response(request, 200) + end + test "get and paginate advanced filter (transactions split between pages)", %{conn: conn} do first_transaction = :transaction |> insert() |> with_block() insert_list(3, :token_transfer, transaction: first_transaction) @@ -1338,7 +1355,7 @@ defmodule BlockScoutWeb.API.V2.AdvancedFilterControllerTest do to_timestamp = List.last(transactions).block.timestamp params = %{ - "tx_types" => "coin_transfer,ERC-20", + "transaction_types" => "COIN_TRANSFER,ERC-20", "methods" => method_id_string, "age_from" => from_timestamp |> DateTime.to_iso8601(), "age_to" => to_timestamp |> DateTime.to_iso8601(), @@ -1360,7 +1377,7 @@ defmodule BlockScoutWeb.API.V2.AdvancedFilterControllerTest do check_paginated_response( AdvancedFilter.list( - tx_types: ["COIN_TRANSFER", "ERC-20"], + transaction_types: ["COIN_TRANSFER", "ERC-20"], methods: ["0xa9059cbb"], age: [from: from_timestamp, to: to_timestamp], from_address_hashes: [ @@ -1389,6 +1406,21 @@ defmodule BlockScoutWeb.API.V2.AdvancedFilterControllerTest do end end + describe "/advanced_filters/methods" do + test "returns default list of methods", %{conn: conn} do + request = get(conn, "/api/v2/advanced-filters/methods") + assert response = json_response(request, 200) + assert is_list(response) + assert length(response) > 0 + + Enum.each(response, fn method -> + assert %{"method_id" => method_id, "name" => name} = method + assert method_id =~ ~r/^0x[0-9a-f]{8}$/ + assert is_binary(name) and name != "" + end) + end + end + describe "/advanced_filters/methods?q=" do test "returns empty list if method does not exist", %{conn: conn} do request = get(conn, "/api/v2/advanced-filters/methods", %{"q" => "foo"}) @@ -1396,6 +1428,12 @@ defmodule BlockScoutWeb.API.V2.AdvancedFilterControllerTest do assert response == [] end + test "returns empty list for empty q", %{conn: conn} do + request = get(conn, "/api/v2/advanced-filters/methods", %{"q" => ""}) + assert response = json_response(request, 200) + assert response == [] + end + test "finds method by name", %{conn: conn} do insert(:contract_method) request = get(conn, "/api/v2/advanced-filters/methods", %{"q" => "set"}) From da94a97e307b13e10fef3369014b2aace956e5b2 Mon Sep 17 00:00:00 2001 From: Victor Baranov Date: Fri, 8 May 2026 20:52:44 +0300 Subject: [PATCH 03/31] doc: add verification websocket subscription guide (#14259) --- .../SMART_CONTRACT_VERIFICATION_WEBSOCKET.md | 253 ++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 apps/block_scout_web/SMART_CONTRACT_VERIFICATION_WEBSOCKET.md diff --git a/apps/block_scout_web/SMART_CONTRACT_VERIFICATION_WEBSOCKET.md b/apps/block_scout_web/SMART_CONTRACT_VERIFICATION_WEBSOCKET.md new file mode 100644 index 000000000000..b330f68bcf0e --- /dev/null +++ b/apps/block_scout_web/SMART_CONTRACT_VERIFICATION_WEBSOCKET.md @@ -0,0 +1,253 @@ +# Smart Contract Verification Websocket Events + +This guide explains how to subscribe to websocket notifications related to smart contract verification. + +It covers: +- verification result notifications +- automated source lookup lifecycle notifications +- legacy and V2 websocket namespaces + +## 1. Which Socket To Use + +Blockscout exposes two websocket endpoints: + +- Legacy UI socket: `/socket` +- V2 socket: `/socket/v2` + +For new integrations, use the V2 socket. + +## 2. Topic Format + +Subscribe to an address topic. + +- Legacy topic: `addresses_old:` +- V2 topic: `addresses:` + +Examples: +- `addresses_old:0xabc123...` +- `addresses:0xabc123...` + +The join validates the address hash and access restrictions. Join may fail with: +- `Invalid address hash` +- `Restricted access` + +## 3. Events You Can Receive + +### 3.1 `verification_result` + +Purpose: +- Final result of a verification attempt (success or validation errors). + +Emitted to topics: +- `addresses:` +- `addresses_old:` + +Broadcast type in event bus: +- `:on_demand` + +#### V2 payload + +Success: + +```json +{ + "status": "success" +} +``` + +Error: + +```json +{ + "status": "error", + "errors": { + "field_name": [ + "error message" + ] + } +} +``` + +Notes: +- `errors` is generated from changeset errors. +- Field names and messages depend on verification flow and validator results. + +#### Legacy behavior + +Legacy notifier broadcasts an internal payload with `result`, but the legacy address channel intercepts `verification_result` and pushes event `verification` to clients. + +Legacy client-facing event: +- `verification` + +Legacy client payload: + +```json +{ + "verification_result": "ok" +} +``` + +or + +```json +{ + "verification_result": "" +} +``` + +Important legacy nuance: +- If the intercepted result is `{:error, %Ecto.Changeset{}}`, the channel does not push a websocket message for that event. + +### 3.2 `eth_bytecode_db_lookup_started` + +Purpose: +- Signals that automated lookup in Ethereum Bytecode DB started. + +Emitted to topics: +- `addresses:` +- `addresses_old:` + +Payload: + +```json +{} +``` + +### 3.3 `smart_contract_was_verified` + +Purpose: +- Signals that automated lookup/verification finished with a verified result. + +Emitted to topics: +- `addresses:` +- `addresses_old:` + +Payload: + +```json +{} +``` + +### 3.4 `smart_contract_was_not_verified` + +Purpose: +- Signals that automated lookup/verification finished without verification. + +Emitted to topics: +- `addresses:` +- `addresses_old:` + +Payload: + +```json +{} +``` + +## 4. Event Producers (Server-Side) + +### `contract_verification_result` chain event + +Produced by verification workers/helpers and then mapped to websocket `verification_result`: +- Solidity verification worker +- Vyper verification worker +- Stylus verification worker +- Solidity publish helper (including some error paths) + +### Automated source lookup lifecycle chain events + +Produced by on-demand source lookup fetcher and mapped 1:1 to websocket event names: +- `eth_bytecode_db_lookup_started` +- `smart_contract_was_verified` +- `smart_contract_was_not_verified` + +## 5. Subscription Example (Phoenix JS) + +### V2 (recommended) + +```javascript +import { Socket } from "phoenix"; + +const socket = new Socket("https://your-blockscout.example/socket/v2", { + params: {} +}); + +socket.connect(); + +const addressHash = "0x..."; +const channel = socket.channel(`addresses:${addressHash}`, {}); + +channel + .join() + .receive("ok", () => console.log("joined")) + .receive("error", (err) => console.error("join failed", err)); + +channel.on("verification_result", (payload) => { + // { status: "success" } OR { status: "error", errors: {...} } + console.log("verification_result", payload); +}); + +channel.on("eth_bytecode_db_lookup_started", () => { + console.log("lookup started"); +}); + +channel.on("smart_contract_was_verified", () => { + console.log("verified via automatic lookup"); +}); + +channel.on("smart_contract_was_not_verified", () => { + console.log("not verified via automatic lookup"); +}); +``` + +### Legacy + +```javascript +import { Socket } from "phoenix"; + +const socket = new Socket("https://your-blockscout.example/socket", { + params: { locale: "en" } +}); + +socket.connect(); + +const addressHash = "0x..."; +const channel = socket.channel(`addresses_old:${addressHash}`, {}); + +channel.join(); + +// Legacy verification result event name is "verification" +channel.on("verification", (payload) => { + // payload.verification_result is "ok" or rendered html error string + console.log("verification", payload); +}); + +// Automatic lookup lifecycle events are forwarded with original names +channel.on("eth_bytecode_db_lookup_started", () => { + console.log("lookup started"); +}); + +channel.on("smart_contract_was_verified", () => { + console.log("verified"); +}); + +channel.on("smart_contract_was_not_verified", () => { + console.log("not verified"); +}); +``` + +## 6. Practical Client Flow + +Recommended for automation clients: + +1. Submit verification request via HTTP API. +2. Immediately subscribe to `addresses:` on `/socket/v2`. +3. Wait for `verification_result` for final API-style outcome. +4. Optionally track automated lookup lifecycle with: + - `eth_bytecode_db_lookup_started` + - `smart_contract_was_verified` + - `smart_contract_was_not_verified` + +Notes: +- API response like "verification started" means the job was accepted, not completed. +- Final state should be taken from websocket events. +- Server currently broadcasts to both legacy and V2 address namespaces for backward compatibility. From e4a8500219991b2f2ffe623abe83f26aad097a12 Mon Sep 17 00:00:00 2001 From: Alexander Kolotov Date: Tue, 12 May 2026 00:13:27 -0600 Subject: [PATCH 04/31] fix: improvements of OpenAPI specification for `/v2/blocks` (#14251) Signed-off-by: dependabot[bot] Co-authored-by: Alexander Kolotov Co-authored-by: Victor Baranov Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nikita Pozdniakov Co-authored-by: Maxim Filonov <53992153+sl1depengwyn@users.noreply.github.com> Co-authored-by: Qwerty5Uiop Co-authored-by: Qwerty5Uiop <105209995+Qwerty5Uiop@users.noreply.github.com> --- AGENTS.md | 65 +++ CLAUDE.md | 1 + .../controllers/api/v2/block_controller.ex | 16 +- .../block_scout_web/schemas/api/v2/block.ex | 158 ++++++- .../schemas/api/v2/block/response.ex | 4 +- .../block_scout_web/schemas/api/v2/general.ex | 2 +- .../block_scout_web/schemas/api/v2/token.ex | 2 + .../views/api/v2/block_view.ex | 2 + .../views/api/v2/token_view.ex | 2 + .../channels/exchange_rate_channel_test.exs | 3 +- .../v2/exchange_rate_channel_test.exs | 3 +- .../api/rpc/stats_controller_test.exs | 6 +- .../api/v2/block_controller_test.exs | 14 + .../lib/ethereum_jsonrpc/besu/trace.ex | 1 + .../lib/ethereum_jsonrpc/geth/call.ex | 2 + .../lib/ethereum_jsonrpc/http/tesla.ex | 34 +- .../lib/ethereum_jsonrpc/nethermind/trace.ex | 1 + .../nethermind/trace/action.ex | 2 + .../nethermind/trace/result.ex | 2 + .../lib/ethereum_jsonrpc/withdrawal.ex | 1 + apps/explorer/config/prod.exs | 6 +- apps/explorer/lib/explorer/application.ex | 93 ++-- .../chain/address/current_token_balance.ex | 2 + .../explorer/chain/address/token_balance.ex | 36 +- ... => address_transactions_gas_usage_sum.ex} | 0 .../explorer/chain/import/runner/tokens.ex | 67 ++- .../token_info_export_queue.ex | 6 +- apps/explorer/lib/explorer/chain/token.ex | 3 +- apps/explorer/lib/explorer/market/AGENTS.md | 13 + apps/explorer/lib/explorer/market/CLAUDE.md | 1 + .../lib/explorer/market/fetcher/token.ex | 92 +++- .../lib/explorer/market/fetcher/token_list.ex | 119 +++++ .../lib/explorer/market/market_history.ex | 3 +- apps/explorer/lib/explorer/market/source.ex | 7 + .../lib/explorer/market/source/coin_gecko.ex | 3 +- .../explorer/market/source/coin_market_cap.ex | 3 +- .../lib/explorer/market/source/crypto_rank.ex | 4 +- .../lib/explorer/market/source/dia.ex | 3 +- .../lib/explorer/market/source/mobula.ex | 4 +- apps/explorer/lib/explorer/market/token.ex | 11 +- .../multichain_search.ex | 26 +- .../lib/explorer/repo/config_helper.ex | 80 +++- .../certified_smart_contract_cataloger.ex | 2 +- .../utility/missing_balance_of_token.ex | 19 + ...20000_add_circulating_supply_to_tokens.exs | 9 + .../20260511114944_update_oban_to_v14.exs | 7 + apps/explorer/test/AGENTS.md | 16 + apps/explorer/test/CLAUDE.md | 1 + .../explorer/market/fetcher/coin_test.exs | 3 +- .../market/fetcher/token_list_test.exs | 258 +++++++++++ .../explorer/market/fetcher/token_test.exs | 242 +++++++++++ .../market/source/coin_gecko_test.exs | 108 ++++- .../market/source/coin_market_cap_test.exs | 75 +++- .../market/source/crypto_compare_test.exs | 90 ++++ .../market/source/crypto_rank_test.exs | 12 +- .../explorer/market/source/defillama_test.exs | 172 ++++++++ .../test/explorer/market/source/dia_test.exs | 6 +- .../explorer/market/source/mobula_test.exs | 405 ++++++++++++++++++ .../test/explorer/market/source_test.exs | 108 +++++ .../test/explorer/market/token_test.exs | 54 +++ .../multichain_search_test.exs | 34 +- .../test/explorer/repo/config_helper_test.exs | 98 +++++ apps/explorer/test/support/factory.ex | 2 +- .../test/support/fakes/one_coin_source.ex | 3 +- .../token_info_export_queue_test.exs | 3 +- bin/deployment/migrate | 2 +- config/runtime.exs | 7 + config/runtime/prod.exs | 100 +++-- cspell.json | 1 + docker-compose/envs/common-blockscout.env | 5 +- mix.lock | 4 +- 71 files changed, 2570 insertions(+), 179 deletions(-) create mode 100644 AGENTS.md create mode 100644 CLAUDE.md rename apps/explorer/lib/explorer/chain/cache/counters/{address_gas_usage_sum.ex => address_transactions_gas_usage_sum.ex} (100%) create mode 100644 apps/explorer/lib/explorer/market/AGENTS.md create mode 100644 apps/explorer/lib/explorer/market/CLAUDE.md create mode 100644 apps/explorer/lib/explorer/market/fetcher/token_list.ex create mode 100644 apps/explorer/priv/repo/migrations/20260407120000_add_circulating_supply_to_tokens.exs create mode 100644 apps/explorer/priv/repo/migrations/20260511114944_update_oban_to_v14.exs create mode 100644 apps/explorer/test/AGENTS.md create mode 100644 apps/explorer/test/CLAUDE.md create mode 100644 apps/explorer/test/explorer/market/fetcher/token_list_test.exs create mode 100644 apps/explorer/test/explorer/market/source/defillama_test.exs create mode 100644 apps/explorer/test/explorer/market/source/mobula_test.exs create mode 100644 apps/explorer/test/explorer/market/source_test.exs create mode 100644 apps/explorer/test/explorer/market/token_test.exs diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 000000000000..85f793c624ac --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,65 @@ +# Agent Guidelines for Blockscout + +## Separate API / Indexer Mode Architecture + +Blockscout supports running as a single combined application or as separate API and indexer instances via the `APPLICATION_MODE` environment variable. + +### Mode Configuration + +`APPLICATION_MODE` environment variable (defined in `config/config_helper.exs`): +- `all` (default) — both API and indexer run together +- `api` — API-only instance, no indexing +- `indexer` — indexer-only instance, no API serving + +The current mode is accessible via `Explorer.mode()` (defined in `apps/explorer/lib/explorer.ex`), which returns `:all`, `:api`, `:indexer`, or `:media_worker`. + +`:media_worker` is a special standalone mode for NFT media processing. It is not set via `APPLICATION_MODE` — it activates when `nft_media_handler[:standalone_media_worker?]` is true, overriding the configured mode. In this mode, `Explorer.Application` starts only libcluster — no base_children or configurable_children. The process mode filtering rules below do not apply to `:media_worker`. + +Related environment variables: +- `DISABLE_INDEXER` — forces indexer off (auto-set when `APPLICATION_MODE=api`) +- `DISABLE_API` — forces API off (compile-time, controls `BlockScoutWeb.Endpoint`) + +### Rules for Assigning Processes to Modes + +When adding or modifying processes started by `Explorer.Application`, `Indexer.Application`, or `BlockScoutWeb.Application`, follow these rules: + +**Start in `:indexer` mode only:** +- Active periodic updaters — GenServers that periodically query the DB and write results to `last_fetched_counters` table (e.g., `ContractsCount`, `NewPendingTransactionsCount`, `Transactions24hCount`). The API side reads directly from the DB table without needing a local process. +- Data migrators (`Explorer.Migrator.*`) — one-time or ongoing data transformations. +- Catalogers and tag importers (`AddressTag.Cataloger`, `CertifiedSmartContractCataloger`). +- Block gap scanning (`MinMissingBlockNumber`). +- Indexer-specific caches that are written and read by indexer only (`LatestL1BlockNumber`). + +**Start in `:api` mode only:** +- Passive on-demand ETS/in-memory caches — GenServers that manage an ETS table and populate it on API request (e.g., `AddressTransactionsCount`, `TokenHoldersCount`, `BlockBurntFeeCount`, `AverageBlockTime`). ETS is local to the process, so these must run on the instance serving requests. +- On-demand fetchers triggered by API requests (`CheckBytecodeMatchingOnDemand`, `FetchValidatorInfoOnDemand`, `LookUpSmartContractSourcesOnDemand`). +- API access control (`AddressesBlacklist`). +- Contract verification tooling (`SolcDownloader`, `VyperDownloader`). +- Read-only DB replicas (`Explorer.Repo.Replica1`). +- API-only caches (`OptimismFinalizationPeriod`, `CeloEpochs`, `Rootstock.LockedBTCCount`). + +**Start in both modes (`:all`, `:api`, `:indexer`):** +- Core infrastructure: main `Explorer.Repo`, `Explorer.Vault`, `Registry.ChainEvents`, `Redix`. +- Event system: `Explorer.Chain.Events.Listener` (mode-controlled via its own `:enabled` config). +- Cluster discovery (`libcluster`) — needed for node communication in separate mode. + +### Helper Functions in Explorer.Application + +- `configure(process)` — starts if `Application.get_env(:explorer, process)[:enabled] == true`. No mode check. +- `configure_mode_dependent_process(process, mode)` — starts if `:enabled` is true AND `Explorer.mode()` matches. Use for processes that have `:enabled` config in `runtime.exs`. +- `only_in_mode(process, mode)` — starts if `Explorer.mode()` matches. No `:enabled` check. Use for processes without `:enabled` config (e.g., repos, downloaders, unconditional entries). +- `configure_chain_type_dependent_process(process, chain_type)` — starts if chain type matches. Can be piped with mode filters. + +Piping pattern for combined restrictions: +```elixir +SomeProcess +|> configure_mode_dependent_process(:indexer) +|> configure_chain_type_dependent_process(:optimism) +``` + +### Cache Pattern Reference + +How to distinguish active updaters from passive caches when deciding the mode: +- **Active periodic updater**: has `schedule_next_consolidation()`, `handle_info(:consolidate)`, writes to `last_fetched_counters` via `LastFetchedCounter.upsert()` -> `:indexer` +- **Passive on-demand ETS cache**: has `fetch()` with cache expiry check, stores in ETS via `Helper.put_into_ets_cache()`, may update model columns -> `:api` +- **MapCache (ConCache)**: uses `use Explorer.Chain.MapCache`, implements `handle_fallback` -> `:api` diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 000000000000..5e7a02004399 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1 @@ +See AGENTS.md for Blockscout architecture guidance. diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/block_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/block_controller.ex index cf413eae5c66..a1134b01687c 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/block_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/block_controller.ex @@ -176,7 +176,18 @@ defmodule BlockScoutWeb.API.V2.BlockController do operation :blocks, summary: "List blocks with optional filtering by block type", - description: "Retrieves a paginated list of blocks with optional filtering by block type.", + description: """ + Retrieves a paginated list of blocks ordered by descending block number. + + When the `type` query parameter is omitted, only main-chain consensus blocks + (equivalent to `type=block`) are returned. Use `type=uncle` to list ommer + blocks (valid but not in the main chain) and `type=reorg` to list blocks + that lost consensus during a chain reorganization. + + Pagination is cursor-based: the response contains `next_page_params` with + `block_number` and `items_count` — pass these back as query parameters on + the next request to fetch the following page. + """, parameters: base_params() ++ [block_type_param()] ++ @@ -190,7 +201,8 @@ defmodule BlockScoutWeb.API.V2.BlockController do "block_number" => 22_566_361, "items_count" => 50 } - )} + )}, + unprocessable_entity: JsonErrorResponse.response() ] @doc """ diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block.ex index fc414dcc6532..45e5de43a5d5 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block.ex @@ -247,6 +247,10 @@ defmodule BlockScoutWeb.Schemas.API.V2.Block.ChainTypeCustomizations do ## Returns - The schema map with chain-specific properties added based on the current chain type configuration """ + # The per-chain extension object (e.g. :arbitrum, :optimism, :zksync, :rsk) is + # always advertised in the schema, but BlockScoutWeb.API.V2.BlockView.chain_type_fields/3 + # only populates it for single-block responses (single_block? = true). This is + # consistent only because none of these extension fields appear in `required:`. @spec chain_type_fields(map()) :: map() def chain_type_fields(schema) do chain_type() @@ -341,14 +345,44 @@ defmodule BlockScoutWeb.Schemas.API.V2.Block.Common do :is_pending_update ] + # List-response variant: `type` is the machine-readable enum. @rewards_schema %Schema{ type: :array, + description: + "Block rewards grouped by recipient category. Each entry describes a reward paid for this block; the set of categories depends on the chain and block type.", items: %Schema{ type: :object, 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 + }, + nullable: false + } + + # Single-block-response variant: `type` is a human-readable label. + @rewards_schema_single_block %Schema{ + type: :array, + description: + "Block rewards grouped by recipient category. Single-block variant: `type` is a human-readable label rather than a machine identifier.", + items: %Schema{ + type: :object, + properties: %{ + reward: General.IntegerString, + type: %Schema{ + type: :string, + nullable: false, + description: "Human-readable reward category label (e.g. \"Miner Reward\", \"Uncle Reward\")." + } }, required: [:type, :reward], additionalProperties: false @@ -357,11 +391,18 @@ defmodule BlockScoutWeb.Schemas.API.V2.Block.Common do } @doc """ - Returns the common rewards schema for block. + Returns the common rewards schema for block (list-response variant). """ @spec rewards_schema() :: Schema.t() def rewards_schema, do: @rewards_schema + @doc """ + Returns the rewards schema for a single-block response, where `type` is a + human-readable label rather than the `Explorer.Chain.Block.Reward.AddressType` enum. + """ + @spec rewards_schema_single_block() :: Schema.t() + def rewards_schema_single_block, do: @rewards_schema_single_block + @doc """ Returns the list of required fields for the block schema. """ @@ -376,24 +417,64 @@ defmodule BlockScoutWeb.Schemas.API.V2.Block.Common do %{ type: :object, properties: %{ - height: %Schema{type: :integer, nullable: false, minimum: 0}, + height: %Schema{ + type: :integer, + nullable: false, + minimum: 0, + description: "Block number (zero-based index from genesis)." + }, timestamp: General.Timestamp, - transactions_count: %Schema{type: :integer, nullable: false}, - internal_transactions_count: %Schema{type: :integer, nullable: true}, - miner: Address, - size: %Schema{type: :integer, nullable: false}, + transactions_count: %Schema{type: :integer, nullable: false, minimum: 0}, + internal_transactions_count: %Schema{ + type: :integer, + nullable: true, + minimum: 0, + description: "Number of internal transactions in this block; null when the count is unavailable." + }, + miner: %Schema{ + allOf: [Address], + description: + "Address credited with the block — the miner on PoW chains, the fee recipient / proposer on PoS chains, and the sequencer on rollups." + }, + size: %Schema{ + type: :integer, + nullable: true, + minimum: 0, + description: "Block size in bytes (length of the RLP-encoded block)." + }, hash: General.FullHash, parent_hash: General.FullHash, - difficulty: General.IntegerStringNullable, - total_difficulty: General.IntegerStringNullable, + difficulty: %Schema{ + allOf: [General.IntegerStringNullable], + description: "Proof-of-work difficulty of this block. Zero on proof-of-stake chains." + }, + total_difficulty: %Schema{ + allOf: [General.IntegerStringNullable], + description: + "Cumulative chain difficulty through this block (sum of `difficulty` of this block and all ancestors)." + }, gas_used: General.IntegerString, gas_limit: General.IntegerString, - nonce: General.HexStringNullable, - base_fee_per_gas: General.IntegerStringNullable, - burnt_fees: General.IntegerStringNullable, - priority_fee: General.IntegerStringNullable, + nonce: %Schema{ + allOf: [General.HexString], + description: "Proof-of-work nonce used to satisfy the difficulty target. Zero on proof-of-stake chains." + }, + base_fee_per_gas: %Schema{ + allOf: [General.IntegerStringNullable], + description: + "EIP-1559 base fee per gas, in wei. Null on blocks produced before EIP-1559 activation or on chains that do not implement EIP-1559." + }, + burnt_fees: %Schema{ + allOf: [General.IntegerStringNullable], + description: "Sum of EIP-1559 base fees burned by transactions in this block, in wei." + }, + priority_fee: %Schema{ + allOf: [General.IntegerStringNullable], + description: "Sum of validator tips (EIP-1559 priority fees) paid by transactions in this block, in wei." + }, uncles_hashes: %Schema{ type: :array, + description: "Hashes of ommer (uncle) blocks referenced by this block.", items: %Schema{ type: :object, properties: %{hash: General.FullHash}, @@ -404,13 +485,48 @@ defmodule BlockScoutWeb.Schemas.API.V2.Block.Common do nullable: false }, rewards: @rewards_schema, - gas_target_percentage: %Schema{type: :number, format: :float, nullable: false}, - gas_used_percentage: %Schema{type: :number, format: :float, nullable: false}, - burnt_fees_percentage: %Schema{type: :number, format: :float, nullable: true}, - type: %Schema{type: :string, nullable: false, enum: ["block", "uncle", "reorg"]}, - transaction_fees: General.IntegerString, - withdrawals_count: %Schema{type: :integer, minimum: 0, nullable: true}, - is_pending_update: %Schema{type: :boolean, nullable: false} + gas_target_percentage: %Schema{ + type: :number, + format: :float, + nullable: false, + description: "Percent above the EIP-1559 elasticity target (gas_used vs. gas_limit / elasticity_multiplier)." + }, + gas_used_percentage: %Schema{ + type: :number, + format: :float, + nullable: false, + description: "Gas used in this block as a percentage of `gas_limit`." + }, + burnt_fees_percentage: %Schema{ + type: :number, + format: :float, + nullable: true, + description: "Burned base fees as a percentage of total transaction fees in this block." + }, + # Values mirror BlockScoutWeb.BlockView.block_type/1 output, downcased. + type: %Schema{ + type: :string, + nullable: false, + enum: ["block", "uncle", "reorg"], + description: + "Block classification: `block` = main-chain consensus block; `uncle` = ommer (valid but not in main chain); `reorg` = former main-chain block lost to reorganization." + }, + transaction_fees: %Schema{ + allOf: [General.IntegerString], + description: "Sum of transaction fees (gas price × gas used) paid by transactions in this block, in wei." + }, + withdrawals_count: %Schema{ + type: :integer, + minimum: 0, + nullable: true, + description: "Number of withdrawals included in this block; null when the count is unavailable." + }, + is_pending_update: %Schema{ + type: :boolean, + nullable: true, + description: + "True when the block is scheduled for re-fetch; its fields may change once re-fetching completes." + } }, required: required_fields(), additionalProperties: false diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block/response.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block/response.ex index f07f077d00da..1fc311afaf70 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block/response.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block/response.ex @@ -5,13 +5,15 @@ defmodule BlockScoutWeb.Schemas.API.V2.Block.Response do require OpenApiSpex alias BlockScoutWeb.Schemas.API.V2.Block + alias BlockScoutWeb.Schemas.API.V2.Block.Common alias BlockScoutWeb.Schemas.Helper OpenApiSpex.schema( Block.schema() |> Helper.extend_schema( title: "BlockResponse", - description: "Block response" + description: "Block response", + properties: %{rewards: Common.rewards_schema_single_block()} ) ) end diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general.ex index 0bb5ee69a6c3..3e77fe783d59 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general.ex @@ -286,7 +286,7 @@ defmodule BlockScoutWeb.Schemas.API.V2.General do %Parameter{ name: :type, in: :query, - schema: %Schema{type: :string, enum: ["uncle", "reorg", "block"]}, + schema: %Schema{type: :string, enum: ["uncle", "reorg", "block"], default: "block"}, required: false, description: """ Filter by block type: diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token.ex index fe8d837aa6e2..cc9ee0d55c87 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token.ex @@ -60,6 +60,7 @@ defmodule BlockScoutWeb.Schemas.API.V2.Token do total_supply: General.IntegerStringNullable, icon_url: General.URLNullable, circulating_market_cap: General.FloatStringNullable, + circulating_supply: General.FloatStringNullable, reputation: %Schema{ type: :string, enum: Reputation.enum_values(), @@ -87,6 +88,7 @@ defmodule BlockScoutWeb.Schemas.API.V2.Token do :total_supply, :icon_url, :circulating_market_cap, + :circulating_supply, :reputation ], additionalProperties: false diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/block_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/block_view.ex index fdaf689cf192..b2e79ecead19 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/block_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/block_view.ex @@ -50,6 +50,8 @@ defmodule BlockScoutWeb.API.V2.BlockView do %{ "height" => block.number, "timestamp" => block.timestamp, + # Callers must preload :transactions; Block.aggregate_transactions/1 leaves + # transactions_count as nil when transactions is %NotLoaded{}. "transactions_count" => block.transactions_count, "internal_transactions_count" => count_internal_transactions(block), "miner" => Helper.address_with_info(nil, block.miner, block.miner_hash, false), diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/token_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/token_view.ex index 60738088df68..0af766511a29 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/token_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/token_view.ex @@ -21,6 +21,7 @@ defmodule BlockScoutWeb.API.V2.TokenView do "total_supply" => nil, "icon_url" => nil, "circulating_market_cap" => nil, + "circulating_supply" => nil, "reputation" => nil } |> maybe_append_bridged_info(token) @@ -43,6 +44,7 @@ defmodule BlockScoutWeb.API.V2.TokenView do "total_supply" => token.total_supply, "icon_url" => token.icon_url, "circulating_market_cap" => token.circulating_market_cap, + "circulating_supply" => token.circulating_supply, "reputation" => token.reputation } |> maybe_append_bridged_info(token) diff --git a/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs b/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs index 41ee3b6aa449..52df60f1dd5a 100644 --- a/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs +++ b/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs @@ -32,7 +32,8 @@ defmodule BlockScoutWeb.ExchangeRateChannelTest do symbol: Explorer.coin(), fiat_value: Decimal.new("2.5"), volume_24h: Decimal.new("1000.0"), - image_url: nil + image_url: nil, + circulating_supply: nil } on_exit(fn -> diff --git a/apps/block_scout_web/test/block_scout_web/channels/v2/exchange_rate_channel_test.exs b/apps/block_scout_web/test/block_scout_web/channels/v2/exchange_rate_channel_test.exs index f2af726161f2..7d9e30769286 100644 --- a/apps/block_scout_web/test/block_scout_web/channels/v2/exchange_rate_channel_test.exs +++ b/apps/block_scout_web/test/block_scout_web/channels/v2/exchange_rate_channel_test.exs @@ -31,7 +31,8 @@ defmodule BlockScoutWeb.V2.ExchangeRateChannelTest do symbol: Explorer.coin(), fiat_value: Decimal.new(1), volume_24h: Decimal.new(1), - image_url: nil + image_url: nil, + circulating_supply: nil } on_exit(fn -> diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/stats_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/stats_controller_test.exs index dd93bb76fb4c..2fcee52572ed 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/stats_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/stats_controller_test.exs @@ -302,7 +302,8 @@ defmodule BlockScoutWeb.API.RPC.StatsControllerTest do symbol: symbol, fiat_value: Decimal.new("1.0"), volume_24h: Decimal.new("1000.0"), - image_url: nil + image_url: nil, + circulating_supply: nil } Coin.handle_info({nil, {{:ok, eth}, false}}, %{}) @@ -368,7 +369,8 @@ defmodule BlockScoutWeb.API.RPC.StatsControllerTest do symbol: symbol, fiat_value: Decimal.new("1.0"), volume_24h: Decimal.new("1000.0"), - image_url: nil + image_url: nil, + circulating_supply: nil } Coin.handle_info({nil, {{:ok, eth}, false}}, %{}) diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/block_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/block_controller_test.exs index b577a5b27b78..df20b8d5e9ab 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/block_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/block_controller_test.exs @@ -208,6 +208,20 @@ defmodule BlockScoutWeb.API.V2.BlockControllerTest do check_paginated_response(response, response_2nd_page, uncles) end + + test "return 422 on invalid type", %{conn: conn} do + request = get(conn, "/api/v2/blocks", %{"type" => "bogus"}) + + assert %{ + "errors" => [ + %{ + "source" => %{"pointer" => "/type"}, + "title" => "Invalid value" + } + | _ + ] + } = json_response(request, 422) + end end describe "/blocks/{block_hash_or_number}" do diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu/trace.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu/trace.ex index e06c9d8da3a5..e2b9f405fb6f 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu/trace.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu/trace.ex @@ -44,4 +44,5 @@ defmodule EthereumJSONRPC.Besu.Trace do end defp entry_to_elixir({"transactionIndex", index} = entry) when is_integer(index), do: entry + defp entry_to_elixir({_, _}), do: {:ignore, :ignore} end diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/call.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/call.ex index da37b8779980..f0f1c6bb1712 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/call.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/call.ex @@ -323,6 +323,8 @@ defmodule EthereumJSONRPC.Geth.Call do entry end + defp entry_to_elixir({_, _}), do: {:ignore, :ignore} + defp elixir_to_internal_transaction_params( %{ "blockNumber" => block_number, diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http/tesla.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http/tesla.ex index 4db01c3df862..b3efbc208352 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http/tesla.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http/tesla.ex @@ -3,6 +3,8 @@ defmodule EthereumJSONRPC.HTTP.Tesla do Uses `Tesla.Mint` for `EthereumJSONRPC.HTTP` """ + require Logger + alias EthereumJSONRPC.HTTP alias EthereumJSONRPC.HTTP.Helper alias EthereumJSONRPC.Prometheus.Instrumenter @@ -16,7 +18,7 @@ defmodule EthereumJSONRPC.HTTP.Tesla do Instrumenter.json_rpc_requests(method) - case Tesla.post(TeslaHelper.client(options), url, json, headers: headers, opts: TeslaHelper.request_opts(options)) do + case do_post(url, json, headers, options) do {:ok, %Tesla.Env{body: body, status: status_code, headers: headers}} -> with {:ok, decoded_body} <- Jason.decode(body), true <- Helper.response_body_has_error?(decoded_body) do @@ -33,4 +35,34 @@ defmodule EthereumJSONRPC.HTTP.Tesla do end def json_rpc(url, _json, _headers, _options) when is_nil(url), do: {:error, "URL is nil"} + + defp do_post(url, json, headers, options) do + Tesla.post(TeslaHelper.client(options), url, json, headers: headers, opts: TeslaHelper.request_opts(options)) + rescue + error -> + if timeout_middleware_exception?(__STACKTRACE__) do + log_normalized_timeout(:rescue, url, headers, options) + {:error, :timeout} + else + {:error, error} + end + catch + :exit, {:timeout, _} -> + log_normalized_timeout(:exit, url, headers, options) + {:error, :timeout} + end + + defp timeout_middleware_exception?(stacktrace) do + Enum.any?(stacktrace, fn + {Tesla.Middleware.Timeout, :call, 3, _} -> true + {Tesla.Middleware.Timeout, :repass_error, 1, _} -> true + _ -> false + end) + end + + defp log_normalized_timeout(source, url, headers, options) do + Logger.warning( + "Normalized timeout in do_post/4 source=#{source} url=#{inspect(url)} timeout=#{inspect(options[:timeout])} recv_timeout=#{inspect(options[:recv_timeout])} headers_count=#{length(headers)}" + ) + end end diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace.ex index 51ce0ea9af00..f7fe676de7e7 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace.ex @@ -484,4 +484,5 @@ defmodule EthereumJSONRPC.Nethermind.Trace do end defp entry_to_elixir({"transactionIndex", index} = entry) when is_integer(index), do: entry + defp entry_to_elixir({_, _}), do: {:ignore, :ignore} end diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace/action.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace/action.ex index ee5d571653b2..168b13efc7e0 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace/action.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace/action.ex @@ -51,4 +51,6 @@ defmodule EthereumJSONRPC.Nethermind.Trace.Action do defp entry_to_elixir({key, quantity}) when key in ~w(balance gas value) do {key, quantity_to_integer(quantity)} end + + defp entry_to_elixir({_, _}), do: {:ignore, :ignore} end diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace/result.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace/result.ex index c3ea279a8c6c..8bab46b3072e 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace/result.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace/result.ex @@ -39,4 +39,6 @@ defmodule EthereumJSONRPC.Nethermind.Trace.Result do defp entry_to_elixir({key, quantity}) when key in ~w(gasUsed) do {key, quantity_to_integer(quantity)} end + + defp entry_to_elixir({_, _}), do: {:ignore, :ignore} end diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/withdrawal.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/withdrawal.ex index 3763fc5d66c0..98c72db232ff 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/withdrawal.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/withdrawal.ex @@ -98,4 +98,5 @@ defmodule EthereumJSONRPC.Withdrawal do defp entry_to_elixir({key, value}) when key in ~w(index validatorIndex amount), do: {key, quantity_to_integer(value)} defp entry_to_elixir({key, value}) when key in ~w(address), do: {key, value} + defp entry_to_elixir({_, _}), do: {:ignore, :ignore} end diff --git a/apps/explorer/config/prod.exs b/apps/explorer/config/prod.exs index 04d809efa753..89c289570e71 100644 --- a/apps/explorer/config/prod.exs +++ b/apps/explorer/config/prod.exs @@ -4,8 +4,7 @@ import Config config :explorer, Explorer.Repo, prepare: :unnamed, timeout: :timer.seconds(60), - migration_lock: nil, - ssl_opts: [verify: :verify_none] + migration_lock: nil for repo <- [ # Configures API the database @@ -37,8 +36,7 @@ for repo <- [ ] do config :explorer, repo, prepare: :unnamed, - timeout: :timer.seconds(60), - ssl_opts: [verify: :verify_none] + timeout: :timer.seconds(60) end config :explorer, Explorer.Tracer, env: "production", disabled?: true diff --git a/apps/explorer/lib/explorer/application.ex b/apps/explorer/lib/explorer/application.ex index ddfc2b0f0f53..cac4ee138d50 100644 --- a/apps/explorer/lib/explorer/application.ex +++ b/apps/explorer/lib/explorer/application.ex @@ -61,7 +61,6 @@ defmodule Explorer.Application do # Children to start in all environments base_children = [ Explorer.Repo, - Explorer.Repo.Replica1, Explorer.Vault, Supervisor.child_spec({SpandexDatadog.ApiServer, datadog_opts()}, id: SpandexDatadog.ApiServer), Supervisor.child_spec({Task.Supervisor, name: Explorer.HistoryTaskSupervisor}, @@ -74,11 +73,8 @@ defmodule Explorer.Application do id: LookUpSmartContractSourcesTaskSupervisor ), Supervisor.child_spec({Task.Supervisor, name: Explorer.WETHMigratorSupervisor}, id: WETHMigratorSupervisor), - Explorer.SmartContract.SolcDownloader, - Explorer.SmartContract.VyperDownloader, Explorer.Chain.Health.Monitor, {Registry, keys: :duplicate, name: Registry.ChainEvents, id: Registry.ChainEvents}, - {Admin.Recovery, [[], [name: Admin.Recovery]]}, Accounts, AddressesCoinBalanceSum, AddressesCoinBalanceSumMinusBurnt, @@ -122,44 +118,53 @@ defmodule Explorer.Application do defp configurable_children do configurable_children_set = [ + only_in_mode(Explorer.Repo.Replica1, :api), + only_in_mode(Explorer.SmartContract.SolcDownloader, :api), + only_in_mode(Explorer.SmartContract.VyperDownloader, :api), + only_in_mode({Admin.Recovery, [[], [name: Admin.Recovery]]}, :api), configure_mode_dependent_process(Explorer.Utility.VersionConstantsUpdater, :indexer), configure(Explorer.Utility.VersionUpgrade), configure_mode_dependent_process(Explorer.Market.Fetcher.Coin, :api), configure_mode_dependent_process(Explorer.Market.Fetcher.Token, :indexer), + configure_mode_dependent_process(Explorer.Market.Fetcher.TokenList, :indexer), configure_mode_dependent_process(Explorer.Market.Fetcher.History, :indexer), configure_mode_dependent_process(Explorer.Market, :api), - configure(Explorer.ChainSpec.GenesisData), - configure(Explorer.Chain.Cache.Counters.ContractsCount), - configure(Explorer.Chain.Cache.Counters.NewContractsCount), - configure(Explorer.Chain.Cache.Counters.VerifiedContractsCount), - configure(Explorer.Chain.Cache.Counters.NewVerifiedContractsCount), - configure(Explorer.Chain.Cache.Counters.WithdrawalsSum), + configure_mode_dependent_process(Explorer.ChainSpec.GenesisData, :indexer), + configure_mode_dependent_process(Explorer.Chain.Cache.Counters.ContractsCount, :indexer), + configure_mode_dependent_process(Explorer.Chain.Cache.Counters.NewContractsCount, :indexer), + configure_mode_dependent_process(Explorer.Chain.Cache.Counters.VerifiedContractsCount, :indexer), + configure_mode_dependent_process(Explorer.Chain.Cache.Counters.NewVerifiedContractsCount, :indexer), + configure_mode_dependent_process(Explorer.Chain.Cache.Counters.WithdrawalsSum, :indexer), configure_mode_dependent_process(Explorer.Chain.Transaction.History.Historian, :indexer), configure(Explorer.Chain.Events.Listener), - configure(Explorer.Chain.Cache.Counters.AddressesCount), - configure(Explorer.Chain.Cache.Counters.AddressTransactionsCount), - configure(Explorer.Chain.Cache.Counters.AddressTokenTransfersCount), - configure(Explorer.Chain.Cache.Counters.AddressTransactionsGasUsageSum), - configure(Explorer.Chain.Cache.Counters.AddressTokensUsdSum), + configure_mode_dependent_process(Explorer.Chain.Cache.Counters.AddressesCount, :api), + configure_mode_dependent_process(Explorer.Chain.Cache.Counters.AddressTransactionsCount, :api), + configure_mode_dependent_process(Explorer.Chain.Cache.Counters.AddressTokenTransfersCount, :api), + configure_mode_dependent_process(Explorer.Chain.Cache.Counters.AddressTransactionsGasUsageSum, :api), + configure_mode_dependent_process(Explorer.Chain.Cache.Counters.AddressTokensUsdSum, :api), configure(Explorer.Chain.Cache.Counters.TokenHoldersCount), configure(Explorer.Chain.Cache.Counters.TokenTransfersCount), - configure(Explorer.Chain.Cache.Counters.BlockBurntFeeCount), - configure(Explorer.Chain.Cache.Counters.BlockPriorityFeeCount), + configure_mode_dependent_process(Explorer.Chain.Cache.Counters.BlockBurntFeeCount, :api), + configure_mode_dependent_process(Explorer.Chain.Cache.Counters.BlockPriorityFeeCount, :api), configure(Explorer.Chain.Cache.Counters.AverageBlockTime), - configure(Explorer.Chain.Cache.Counters.Optimism.LastOutputRootSizeCount), - configure(Explorer.Chain.Cache.Counters.NewPendingTransactionsCount), - configure(Explorer.Chain.Cache.Counters.Transactions24hCount), - configure(Explorer.Validator.MetadataProcessor), - configure(Explorer.Tags.AddressTag.Cataloger), - configure(Explorer.SmartContract.CertifiedSmartContractCataloger), - configure(MinMissingBlockNumber), - configure(Explorer.Chain.Fetcher.CheckBytecodeMatchingOnDemand), + Explorer.Chain.Cache.Counters.Optimism.LastOutputRootSizeCount + |> configure_mode_dependent_process(:indexer) + |> configure_chain_type_dependent_process(:optimism), + configure_mode_dependent_process(Explorer.Chain.Cache.Counters.NewPendingTransactionsCount, :indexer), + configure_mode_dependent_process(Explorer.Chain.Cache.Counters.Transactions24hCount, :indexer), + configure_mode_dependent_process(Explorer.Validator.MetadataProcessor, :indexer), + configure_mode_dependent_process(Explorer.Tags.AddressTag.Cataloger, :indexer), + configure_mode_dependent_process(Explorer.SmartContract.CertifiedSmartContractCataloger, :indexer), + configure_mode_dependent_process(MinMissingBlockNumber, :indexer), + configure_mode_dependent_process(Explorer.Chain.Fetcher.CheckBytecodeMatchingOnDemand, :api), configure(Explorer.Chain.Fetcher.FetchValidatorInfoOnDemand), - configure(Explorer.TokenInstanceOwnerAddressMigration.Supervisor), - configure_sc_microservice(Explorer.Chain.Fetcher.LookUpSmartContractSourcesOnDemand), - configure(Explorer.Chain.Cache.Counters.Rootstock.LockedBTCCount), - configure(Explorer.Chain.Cache.OptimismFinalizationPeriod), - configure(Explorer.Chain.Cache.CeloEpochs), + configure_mode_dependent_process(Explorer.TokenInstanceOwnerAddressMigration.Supervisor, :indexer), + Explorer.Chain.Fetcher.LookUpSmartContractSourcesOnDemand + |> configure_sc_microservice() + |> only_in_mode(:api), + configure_mode_dependent_process(Explorer.Chain.Cache.Counters.Rootstock.LockedBTCCount, :api), + configure_mode_dependent_process(Explorer.Chain.Cache.OptimismFinalizationPeriod, :api), + configure_mode_dependent_process(Explorer.Chain.Cache.CeloEpochs, :api), configure_mode_dependent_process(Explorer.Migrator.TransactionsDenormalization, :indexer), configure_mode_dependent_process(Explorer.Migrator.AddressCurrentTokenBalanceTokenType, :indexer), configure_mode_dependent_process(Explorer.Migrator.AddressTokenBalanceTokenType, :indexer), @@ -180,13 +185,19 @@ defmodule Explorer.Application do |> configure_multichain_search_microservice(), configure_mode_dependent_process(Explorer.Migrator.ArbitrumDaRecordsNormalization, :indexer), configure_mode_dependent_process(Explorer.Migrator.ShrinkInternalTransactions, :indexer), - configure_chain_type_dependent_process(Explorer.Chain.Cache.Counters.Blackfort.ValidatorsCount, :blackfort), - configure_chain_type_dependent_process(Explorer.Chain.Cache.Counters.Stability.ValidatorsCount, :stability), - configure_chain_type_dependent_process(Explorer.Chain.Cache.LatestL1BlockNumber, [ + Explorer.Chain.Cache.Counters.Blackfort.ValidatorsCount + |> configure_chain_type_dependent_process(:blackfort) + |> only_in_mode(:indexer), + Explorer.Chain.Cache.Counters.Stability.ValidatorsCount + |> configure_chain_type_dependent_process(:stability) + |> only_in_mode(:indexer), + Explorer.Chain.Cache.LatestL1BlockNumber + |> configure_chain_type_dependent_process([ :optimism, :scroll, :shibarium - ]), + ]) + |> only_in_mode(:indexer), configure_chain_type_dependent_con_cache(), Explorer.Migrator.SanitizeDuplicatedLogIndexLogs |> configure_mode_dependent_process(:indexer) @@ -409,9 +420,11 @@ defmodule Explorer.Application do Explorer.Migrator.HeavyDbIndexOperation.CreateAddressesHashContractCodeNotNullIndex, :indexer ), - Explorer.Migrator.RefetchContractCodes |> configure() |> configure_chain_type_dependent_process(:zksync), - configure(Explorer.Chain.Fetcher.AddressesBlacklist), - Explorer.Migrator.SwitchPendingOperations, + Explorer.Migrator.RefetchContractCodes + |> configure_mode_dependent_process(:indexer) + |> configure_chain_type_dependent_process(:zksync), + configure_mode_dependent_process(Explorer.Chain.Fetcher.AddressesBlacklist, :api), + only_in_mode(Explorer.Migrator.SwitchPendingOperations, :indexer), configure_mode_dependent_process(Explorer.Utility.RateLimiter, :api), Hammer.child_for_supervisor() |> configure_mode_dependent_process(:api), configure_mode_dependent_process(Explorer.ThirdPartyIntegrations.Dynamic.Strategy, :api), @@ -522,7 +535,11 @@ defmodule Explorer.Application do end defp configure_mode_dependent_process(process, mode) do - if should_start?(process) and Explorer.mode() in [mode, :all] do + process |> configure() |> only_in_mode(mode) + end + + defp only_in_mode(process, mode) do + if Explorer.mode() in [mode, :all] do process else [] diff --git a/apps/explorer/lib/explorer/chain/address/current_token_balance.ex b/apps/explorer/lib/explorer/chain/address/current_token_balance.ex index d77752059f9a..0271e69f9b0f 100644 --- a/apps/explorer/lib/explorer/chain/address/current_token_balance.ex +++ b/apps/explorer/lib/explorer/chain/address/current_token_balance.ex @@ -17,6 +17,7 @@ defmodule Explorer.Chain.Address.CurrentTokenBalance do alias Explorer.Chain.{Address, Block, Hash, Token} alias Explorer.Chain.Address.TokenBalance alias Explorer.Chain.Cache.BackgroundMigrations + alias Explorer.Utility.MissingBalanceOfToken @default_paging_options %PagingOptions{page_size: 50} @@ -350,6 +351,7 @@ defmodule Explorer.Chain.Address.CurrentTokenBalance do when accumulator: term() def stream_unfetched_current_token_balances(initial, reducer, limited? \\ false) when is_function(reducer, 2) do unfetched_current_token_balances() + |> MissingBalanceOfToken.filter_token_balances_query() |> TokenBalance.add_token_balances_fetcher_limit(limited?) |> Repo.stream_reduce(initial, reducer) end diff --git a/apps/explorer/lib/explorer/chain/address/token_balance.ex b/apps/explorer/lib/explorer/chain/address/token_balance.ex index 02710fbb6ec0..e240c215501a 100644 --- a/apps/explorer/lib/explorer/chain/address/token_balance.ex +++ b/apps/explorer/lib/explorer/chain/address/token_balance.ex @@ -10,10 +10,12 @@ defmodule Explorer.Chain.Address.TokenBalance do use Explorer.Schema import Explorer.Chain.SmartContract, only: [burn_address_hash_string: 0] + import Explorer.QueryHelper, only: [select_ctid: 1, join_on_ctid: 2] alias Explorer.{Chain, Repo} alias Explorer.Chain.{Address, Block, Hash, Token} alias Explorer.Chain.Cache.BackgroundMigrations + alias Explorer.Utility.MissingBalanceOfToken @typedoc """ * `address` - The `t:Explorer.Chain.Address.t/0` that is the balance's owner. @@ -142,11 +144,34 @@ defmodule Explorer.Chain.Address.TokenBalance do @spec delete_token_balance_placeholders_below(atom(), Hash.Address.t(), Block.block_number()) :: {non_neg_integer(), nil | [term()]} def delete_token_balance_placeholders_below(module, token_contract_address_hash, block_number) do - module - |> where([tb], tb.token_contract_address_hash == ^token_contract_address_hash) - |> where([tb], tb.block_number <= ^block_number) - |> where([tb], is_nil(tb.value_fetched_at) or is_nil(tb.value)) - |> Repo.delete_all() + {:ok, result} = + Repo.transaction(fn -> + ordered_query = + from(tb in module, + where: tb.token_contract_address_hash == ^token_contract_address_hash, + where: tb.block_number <= ^block_number, + where: is_nil(tb.value_fetched_at) or is_nil(tb.value), + select: select_ctid(tb), + # Enforce TokenBalance ShareLocks order (see docs: sharelocks.md) + order_by: [ + tb.token_contract_address_hash, + tb.token_id, + tb.address_hash, + tb.block_number + ], + lock: "FOR UPDATE" + ) + + query = + from(tb in module, + inner_join: ordered_address_token_balance in subquery(ordered_query), + on: join_on_ctid(tb, ordered_address_token_balance) + ) + + Repo.delete_all(query) + end) + + result end @doc """ @@ -160,6 +185,7 @@ defmodule Explorer.Chain.Address.TokenBalance do when accumulator: term() def stream_unfetched_token_balances(initial, reducer, limited? \\ false) when is_function(reducer, 2) do __MODULE__.unfetched_token_balances() + |> MissingBalanceOfToken.filter_token_balances_query() |> add_token_balances_fetcher_limit(limited?) |> Repo.stream_reduce(initial, reducer) end diff --git a/apps/explorer/lib/explorer/chain/cache/counters/address_gas_usage_sum.ex b/apps/explorer/lib/explorer/chain/cache/counters/address_transactions_gas_usage_sum.ex similarity index 100% rename from apps/explorer/lib/explorer/chain/cache/counters/address_gas_usage_sum.ex rename to apps/explorer/lib/explorer/chain/cache/counters/address_transactions_gas_usage_sum.ex diff --git a/apps/explorer/lib/explorer/chain/import/runner/tokens.ex b/apps/explorer/lib/explorer/chain/import/runner/tokens.ex index be57c209b545..2c1a3234be70 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/tokens.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/tokens.ex @@ -266,6 +266,7 @@ defmodule Explorer.Chain.Import.Runner.Tokens do circulating_market_cap: fragment("COALESCE(EXCLUDED.circulating_market_cap, ?)", token.circulating_market_cap), volume_24h: fragment("COALESCE(EXCLUDED.volume_24h, ?)", token.volume_24h), + circulating_supply: fragment("COALESCE(EXCLUDED.circulating_supply, ?)", token.circulating_supply), icon_url: fragment("COALESCE(?, EXCLUDED.icon_url)", token.icon_url), decimals: fragment("COALESCE(?, EXCLUDED.decimals)", token.decimals), inserted_at: fragment("LEAST(?, EXCLUDED.inserted_at)", token.inserted_at), @@ -274,13 +275,14 @@ defmodule Explorer.Chain.Import.Runner.Tokens do ], where: fragment( - "(EXCLUDED.name, EXCLUDED.symbol, EXCLUDED.type, EXCLUDED.fiat_value, EXCLUDED.circulating_market_cap, EXCLUDED.volume_24h, EXCLUDED.icon_url, EXCLUDED.decimals) IS DISTINCT FROM (?, ?, ?, ?, ?, ?, ?, ?)", + "(EXCLUDED.name, EXCLUDED.symbol, EXCLUDED.type, EXCLUDED.fiat_value, EXCLUDED.circulating_market_cap, EXCLUDED.volume_24h, EXCLUDED.circulating_supply, EXCLUDED.icon_url, EXCLUDED.decimals) IS DISTINCT FROM (?, ?, ?, ?, ?, ?, ?, ?, ?)", token.name, token.symbol, token.type, token.fiat_value, token.circulating_market_cap, token.volume_24h, + token.circulating_supply, token.icon_url, token.decimals ) @@ -299,10 +301,69 @@ defmodule Explorer.Chain.Import.Runner.Tokens do `:volume_24h` """ @spec market_data_fields_to_update() :: [ - :name | :symbol | :type | :fiat_value | :circulating_market_cap | :volume_24h | :decimals + :name + | :symbol + | :type + | :fiat_value + | :circulating_market_cap + | :volume_24h + | :circulating_supply + | :decimals ] def market_data_fields_to_update do - [:name, :symbol, :type, :fiat_value, :circulating_market_cap, :volume_24h, :decimals] + [:name, :symbol, :type, :fiat_value, :circulating_market_cap, :volume_24h, :circulating_supply, :decimals] + end + + @doc """ + Returns an Ecto query that defines the conflict resolution strategy when importing tokens from a token list + """ + @spec token_list_on_conflict() :: Ecto.Query.t() + def token_list_on_conflict do + from( + token in Token, + update: [ + set: [ + name: fragment("COALESCE(?, EXCLUDED.name)", token.name), + symbol: fragment("COALESCE(?, EXCLUDED.symbol)", token.symbol), + decimals: fragment("COALESCE(?, EXCLUDED.decimals)", token.decimals), + icon_url: + fragment( + "CASE WHEN ? THEN ? ELSE COALESCE(EXCLUDED.icon_url, ?) END", + token.is_verified_via_admin_panel, + token.icon_url, + token.icon_url + ), + inserted_at: fragment("LEAST(?, EXCLUDED.inserted_at)", token.inserted_at), + updated_at: fragment("GREATEST(?, EXCLUDED.updated_at)", token.updated_at) + ] + ], + where: + fragment( + """ + (COALESCE(?, EXCLUDED.name), COALESCE(?, EXCLUDED.symbol), COALESCE(?, EXCLUDED.decimals), + CASE WHEN ? THEN ? ELSE COALESCE(EXCLUDED.icon_url, ?) END) + IS DISTINCT FROM (?, ?, ?, ?) + """, + token.name, + token.symbol, + token.decimals, + token.is_verified_via_admin_panel, + token.icon_url, + token.icon_url, + token.name, + token.symbol, + token.decimals, + token.icon_url + ) + ) + end + + @doc """ + Returns a list of token fields that should be updated when importing from a token list. + """ + @spec token_list_fields_to_update() :: [:name | :symbol | :decimals | :icon_url] + def token_list_fields_to_update do + [:name, :symbol, :decimals, :icon_url] end defp should_update?(_new_token, nil, _fields_to_replace), do: true diff --git a/apps/explorer/lib/explorer/chain/multichain_search_db/token_info_export_queue.ex b/apps/explorer/lib/explorer/chain/multichain_search_db/token_info_export_queue.ex index 860f6705016c..567eadbd4f09 100644 --- a/apps/explorer/lib/explorer/chain/multichain_search_db/token_info_export_queue.ex +++ b/apps/explorer/lib/explorer/chain/multichain_search_db/token_info_export_queue.ex @@ -7,6 +7,7 @@ defmodule Explorer.Chain.MultichainSearchDb.TokenInfoExportQueue do import Ecto.Query + alias Explorer.Chain.Hash alias Explorer.Repo @required_attrs ~w(address_hash data_type data)a @@ -15,7 +16,7 @@ defmodule Explorer.Chain.MultichainSearchDb.TokenInfoExportQueue do @primary_key false typed_schema "multichain_search_db_export_token_info_queue" do - field(:address_hash, :binary, null: false, primary_key: true) + field(:address_hash, Hash.Address, null: false, primary_key: true) field(:data_type, Ecto.Enum, values: [ @@ -86,7 +87,8 @@ defmodule Explorer.Chain.MultichainSearchDb.TokenInfoExportQueue do ## Returns - An `Ecto.Query` struct containing the delete operation. """ - @spec delete_query(%{:address_hash => binary(), :data_type => atom(), optional(:data) => map()}) :: Ecto.Query.t() + @spec delete_query(%{:address_hash => Hash.Address.t() | binary(), :data_type => atom(), optional(:data) => map()}) :: + Ecto.Query.t() def delete_query(queue_item) do from(q in __MODULE__, where: q.address_hash == ^queue_item.address_hash and q.data_type == ^queue_item.data_type diff --git a/apps/explorer/lib/explorer/chain/token.ex b/apps/explorer/lib/explorer/chain/token.ex index 242d8d412f28..82316b09cae7 100644 --- a/apps/explorer/lib/explorer/chain/token.ex +++ b/apps/explorer/lib/explorer/chain/token.ex @@ -34,6 +34,7 @@ defmodule Explorer.Chain.Token.Schema do field(:icon_url, :string) field(:is_verified_via_admin_panel, :boolean) field(:volume_24h, FiatValue) + field(:circulating_supply, :decimal) field(:transfer_count, :integer) belongs_to( @@ -148,7 +149,7 @@ defmodule Explorer.Chain.Token do Explorer.Chain.Token.Schema.generate() @required_attrs ~w(contract_address_hash type)a - @optional_attrs ~w(cataloged decimals name symbol total_supply skip_metadata total_supply_updated_at_block metadata_updated_at updated_at fiat_value circulating_market_cap icon_url is_verified_via_admin_panel volume_24h)a + @optional_attrs ~w(cataloged decimals name symbol total_supply skip_metadata total_supply_updated_at_block metadata_updated_at updated_at fiat_value circulating_market_cap circulating_supply icon_url is_verified_via_admin_panel volume_24h)a @doc """ Returns the **ordered** list of allowed NFT type labels. diff --git a/apps/explorer/lib/explorer/market/AGENTS.md b/apps/explorer/lib/explorer/market/AGENTS.md new file mode 100644 index 000000000000..b5a0c5ed418b --- /dev/null +++ b/apps/explorer/lib/explorer/market/AGENTS.md @@ -0,0 +1,13 @@ +# Explorer Market + +## FiatValue.load and persistent_term + +`Explorer.Chain.Token.FiatValue.load/1` returns `nil` for any value when `:market_token_fetcher_enabled` persistent_term is `false` (the default in test env). If your test needs to assert on loaded `fiat_value` / `circulating_market_cap` fields, add to setup: + +```elixir +:persistent_term.put(:market_token_fetcher_enabled, true) + +on_exit(fn -> + :persistent_term.put(:market_token_fetcher_enabled, false) +end) +``` \ No newline at end of file diff --git a/apps/explorer/lib/explorer/market/CLAUDE.md b/apps/explorer/lib/explorer/market/CLAUDE.md new file mode 100644 index 000000000000..43c994c2d361 --- /dev/null +++ b/apps/explorer/lib/explorer/market/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/apps/explorer/lib/explorer/market/fetcher/token.ex b/apps/explorer/lib/explorer/market/fetcher/token.ex index 4a48875b0a84..f00306beef28 100644 --- a/apps/explorer/lib/explorer/market/fetcher/token.ex +++ b/apps/explorer/lib/explorer/market/fetcher/token.ex @@ -6,9 +6,13 @@ defmodule Explorer.Market.Fetcher.Token do require Logger - alias Explorer.Chain + import Ecto.Query + + alias Ecto.Multi + alias Explorer.{Chain, Repo} alias Explorer.Chain.Hash.Address alias Explorer.Chain.Import.Runner.Tokens + alias Explorer.Chain.Token alias Explorer.Market.Source alias Explorer.MicroserviceInterfaces.MultichainSearch @@ -17,7 +21,8 @@ defmodule Explorer.Market.Fetcher.Token do :source_state, :max_batch_size, :interval, - :refetch_interval + :refetch_interval, + seen_token_hashes: MapSet.new() ] @spec start_link(term()) :: GenServer.on_start() @@ -60,9 +65,11 @@ defmodule Explorer.Market.Fetcher.Token do ) do case source.fetch_tokens(source_state, max_batch_size) do {:ok, source_state, fetch_finished?, tokens_data} -> - case update_tokens(tokens_data) do + filtered_tokens = Enum.reject(tokens_data, &Source.zero_or_nil?(&1[:fiat_value])) + + case update_tokens(filtered_tokens) do {:ok, _imported} -> - enqueue_to_multichain(tokens_data) + enqueue_to_multichain(filtered_tokens) {:error, err} -> Logger.error("Error while importing tokens market data: #{inspect(err)}") @@ -71,13 +78,23 @@ defmodule Explorer.Market.Fetcher.Token do Logger.error("Error while importing tokens market data: #{inspect({step, failed_value, changes_so_far})}") end - if fetch_finished? do - Process.send_after(self(), {:fetch, 0}, refetch_interval) - else - Process.send_after(self(), {:fetch, 0}, interval) - end + new_seen = + filtered_tokens + |> Enum.reduce(state.seen_token_hashes, fn token, acc -> + MapSet.put(acc, token.contract_address_hash) + end) + + new_seen = + if fetch_finished? do + nullify_stale_market_data(new_seen) + Process.send_after(self(), {:fetch, 0}, refetch_interval) + MapSet.new() + else + Process.send_after(self(), {:fetch, 0}, interval) + new_seen + end - {:noreply, %{state | source_state: source_state}} + {:noreply, %{state | source_state: source_state, seen_token_hashes: new_seen}} {:error, reason} -> Logger.error("Error while fetching tokens: #{inspect(reason)}") @@ -136,6 +153,61 @@ defmodule Explorer.Market.Fetcher.Token do |> MultichainSearch.send_token_info_to_queue(:market_data) end + defp nullify_stale_market_data(seen_token_hashes) do + if !Enum.empty?(seen_token_hashes) do + do_nullify_stale_market_data(seen_token_hashes) + end + end + + defp do_nullify_stale_market_data(seen_token_hashes) do + entries = Enum.map(seen_token_hashes, &%{contract_address_hash: &1.bytes}) + + Multi.new() + |> Multi.run(:create_temp_seen_token_hashes_table, fn repo, _changes -> + repo.query(""" + CREATE TEMP TABLE temp_seen_token_hashes ( + contract_address_hash bytea + ) ON COMMIT DROP + """) + end) + |> Multi.run(:insert_seen_token_hashes, fn repo, _changes -> + {:ok, repo.safe_insert_all("temp_seen_token_hashes", entries, [])} + end) + |> Multi.update_all( + :nullify_stale_market_data, + from(t in Token, + as: :token, + where: not is_nil(t.fiat_value), + where: + not exists( + from(s in "temp_seen_token_hashes", + where: s.contract_address_hash == parent_as(:token).contract_address_hash, + select: 1 + ) + ) + ), + [ + set: [ + fiat_value: nil, + circulating_market_cap: nil, + circulating_supply: nil, + volume_24h: nil, + updated_at: DateTime.utc_now() + ] + ], + timeout: :infinity + ) + |> Repo.transaction() + |> case do + {:ok, _} -> + :ok + + {:error, step, reason, _} -> + Logger.error("Failed to nullify stale market data at step #{step}: #{inspect(reason)}") + :error + end + end + defp update_tokens(token_params) do Chain.import(%{ tokens: %{ diff --git a/apps/explorer/lib/explorer/market/fetcher/token_list.ex b/apps/explorer/lib/explorer/market/fetcher/token_list.ex new file mode 100644 index 000000000000..4f74a3e610be --- /dev/null +++ b/apps/explorer/lib/explorer/market/fetcher/token_list.ex @@ -0,0 +1,119 @@ +defmodule Explorer.Market.Fetcher.TokenList do + @moduledoc """ + Periodically fetches a token list from a URL conforming to the + [Token Lists](https://tokenlists.org/) standard and imports token + metadata (icon, name, symbol, decimals) into the database. + + Enabled when `TOKEN_LIST_URL` environment variable is set. + """ + use GenServer, restart: :transient + + use Utils.RuntimeEnvHelper, + chain_id: [:explorer, :chain_id] + + alias Explorer.{Chain, HttpClient} + alias Explorer.Chain.Import.Runner.Tokens + + require Logger + + defstruct [:url, :refetch_interval] + + @spec start_link(term()) :: GenServer.on_start() + def start_link(_) do + GenServer.start_link(__MODULE__, :ok, name: __MODULE__) + end + + @impl GenServer + def init(_args) do + config = Application.get_env(:explorer, __MODULE__) + url = config[:token_list_url] + + if url do + state = %__MODULE__{ + url: url, + refetch_interval: config[:refetch_interval] || :timer.hours(24) + } + + send(self(), :fetch) + + {:ok, state} + else + :ignore + end + end + + @impl GenServer + def handle_info(:fetch, %__MODULE__{url: url, refetch_interval: refetch_interval} = state) do + case fetch_and_import(url) do + {:ok, count} -> + Logger.info("Token list: imported #{count} tokens from #{url}") + + {:error, reason} -> + Logger.error("Token list: failed to fetch from #{url}: #{inspect(reason)}") + end + + Process.send_after(self(), :fetch, refetch_interval) + {:noreply, state} + end + + @impl GenServer + def handle_info(_msg, state), do: {:noreply, state} + + defp fetch_and_import(url) do + with {:ok, %{body: body, status_code: 200}} <- HttpClient.get(url), + {:ok, %{"tokens" => tokens}} when is_list(tokens) <- Jason.decode(body) do + token_params = + tokens + |> filter_by_chain_id() + |> Enum.map(&to_token_params/1) + |> Enum.reject(&is_nil/1) + + case import_tokens(token_params) do + {:ok, _} -> {:ok, length(token_params)} + {:error, _} = error -> error + {:error, step, failed_value, _changes} -> {:error, {step, failed_value}} + end + else + {:ok, %{status_code: status}} -> {:error, {:http_status, status}} + {:ok, _invalid_payload} -> {:error, :invalid_token_list} + {:error, _} = error -> error + end + end + + defp filter_by_chain_id(tokens) do + case chain_id() do + nil -> + Logger.warning("Token list: CHAIN_ID is not set, importing all tokens from the list") + tokens + + chain_id_string -> + chain_id_int = String.to_integer(chain_id_string) + Enum.filter(tokens, fn token -> token["chainId"] == chain_id_int end) + end + end + + defp to_token_params(%{"address" => address} = token) when is_binary(address) do + %{ + contract_address_hash: address, + name: token["name"], + symbol: token["symbol"], + decimals: token["decimals"], + icon_url: token["logoURI"], + type: "ERC-20" + } + end + + defp to_token_params(_), do: nil + + defp import_tokens([]), do: {:ok, %{}} + + defp import_tokens(token_params) do + Chain.import(%{ + tokens: %{ + params: token_params, + on_conflict: Tokens.token_list_on_conflict(), + fields_to_update: Tokens.token_list_fields_to_update() + } + }) + end +end diff --git a/apps/explorer/lib/explorer/market/market_history.ex b/apps/explorer/lib/explorer/market/market_history.ex index 5a865496f4d5..300b1b8d6dfb 100644 --- a/apps/explorer/lib/explorer/market/market_history.ex +++ b/apps/explorer/lib/explorer/market/market_history.ex @@ -74,7 +74,8 @@ defmodule Explorer.Market.MarketHistory do name: nil, symbol: nil, volume_24h: nil, - image_url: nil + image_url: nil, + circulating_supply: nil } end diff --git a/apps/explorer/lib/explorer/market/source.ex b/apps/explorer/lib/explorer/market/source.ex index 2377b4f63b7d..c642c98a076c 100644 --- a/apps/explorer/lib/explorer/market/source.ex +++ b/apps/explorer/lib/explorer/market/source.ex @@ -235,6 +235,13 @@ defmodule Explorer.Market.Source do Decimal.new(value) end + @doc """ + Returns true if the value is nil or a Decimal equal to zero. + """ + @spec zero_or_nil?(Decimal.t() | nil) :: boolean() + def zero_or_nil?(nil), do: true + def zero_or_nil?(%Decimal{} = value), do: Decimal.equal?(value, Decimal.new(0)) + @sources [CoinGecko, CoinMarketCap, CryptoCompare, CryptoRank, DefiLlama, Mobula, DIA] @doc """ diff --git a/apps/explorer/lib/explorer/market/source/coin_gecko.ex b/apps/explorer/lib/explorer/market/source/coin_gecko.ex index 817deec7bb63..8cc3239dd31c 100644 --- a/apps/explorer/lib/explorer/market/source/coin_gecko.ex +++ b/apps/explorer/lib/explorer/market/source/coin_gecko.ex @@ -147,7 +147,8 @@ defmodule Explorer.Market.Source.CoinGecko do symbol: String.upcase(data["symbol"]), fiat_value: Source.to_decimal(market_data["current_price"][config(:currency)]), volume_24h: Source.to_decimal(market_data["total_volume"][config(:currency)]), - image_url: Source.handle_image_url(data["image"]["small"] || data["image"]["thumb"]) + image_url: Source.handle_image_url(data["image"]["small"] || data["image"]["thumb"]), + circulating_supply: Source.to_decimal(market_data["circulating_supply"]) }} else nil -> {:error, coin_id_not_specified_error} diff --git a/apps/explorer/lib/explorer/market/source/coin_market_cap.ex b/apps/explorer/lib/explorer/market/source/coin_market_cap.ex index b9d7ad781a53..f0f5d91e8a49 100644 --- a/apps/explorer/lib/explorer/market/source/coin_market_cap.ex +++ b/apps/explorer/lib/explorer/market/source/coin_market_cap.ex @@ -119,7 +119,8 @@ defmodule Explorer.Market.Source.CoinMarketCap do symbol: String.upcase(token_properties["symbol"]), fiat_value: Source.to_decimal(currency_id["price"]), volume_24h: Source.to_decimal(currency_id["volume_24h"]), - image_url: nil + image_url: nil, + circulating_supply: Source.to_decimal(token_properties["circulating_supply"]) }} else nil -> diff --git a/apps/explorer/lib/explorer/market/source/crypto_rank.ex b/apps/explorer/lib/explorer/market/source/crypto_rank.ex index 100ea511afc9..945a1c9239b1 100644 --- a/apps/explorer/lib/explorer/market/source/crypto_rank.ex +++ b/apps/explorer/lib/explorer/market/source/crypto_rank.ex @@ -66,6 +66,7 @@ defmodule Explorer.Market.Source.CryptoRank do fiat_value: fiat_value, volume_24h: Source.to_decimal(token["volume24hUSD"]), circulating_market_cap: circulating_supply && fiat_value && Decimal.mult(fiat_value, circulating_supply), + circulating_supply: circulating_supply, contract_address_hash: token_contract_address_hash, type: "ERC-20" } @@ -127,7 +128,8 @@ defmodule Explorer.Market.Source.CryptoRank do symbol: String.upcase(coin["symbol"]), fiat_value: Source.to_decimal(coin_data["price"]), volume_24h: Source.to_decimal(coin_data["volume24h"]), - image_url: Source.handle_image_url(coin["images"]["60x60"] || coin["images"]["16x16"]) + image_url: Source.handle_image_url(coin["images"]["60x60"] || coin["images"]["16x16"]), + circulating_supply: Source.to_decimal(coin["circulatingSupply"]) }} else nil -> {:error, coin_id_not_specified_error} diff --git a/apps/explorer/lib/explorer/market/source/dia.ex b/apps/explorer/lib/explorer/market/source/dia.ex index 53d3c2b262e2..539eb07a3e2f 100644 --- a/apps/explorer/lib/explorer/market/source/dia.ex +++ b/apps/explorer/lib/explorer/market/source/dia.ex @@ -155,7 +155,8 @@ defmodule Explorer.Market.Source.DIA do symbol: data["Symbol"], fiat_value: Source.to_decimal(data["Price"]), volume_24h: Source.to_decimal(data["VolumeYesterdayUSD"]), - image_url: nil + image_url: nil, + circulating_supply: nil }} else {:coin, nil} -> {:error, coin_address_hash_not_specified_error} diff --git a/apps/explorer/lib/explorer/market/source/mobula.ex b/apps/explorer/lib/explorer/market/source/mobula.ex index 18c58d80bc46..b42c4d8f1f1a 100644 --- a/apps/explorer/lib/explorer/market/source/mobula.ex +++ b/apps/explorer/lib/explorer/market/source/mobula.ex @@ -75,6 +75,7 @@ defmodule Explorer.Market.Source.Mobula do fiat_value: Source.to_decimal(token["price"]), volume_24h: Source.to_decimal(token["off_chain_volume"]), circulating_market_cap: Source.to_decimal(token["market_cap"]), + circulating_supply: Source.to_decimal(token["circulating_supply"]), icon_url: Source.handle_image_url(token["logo"]), contract_address_hash: token_contract_address_hash, type: "ERC-20" @@ -127,7 +128,8 @@ defmodule Explorer.Market.Source.Mobula do symbol: data["symbol"], fiat_value: Source.to_decimal(data["price"]), volume_24h: Source.to_decimal(data["off_chain_volume"]), - image_url: Source.handle_image_url(data["logo"]) + image_url: Source.handle_image_url(data["logo"]), + circulating_supply: Source.to_decimal(data["circulating_supply"]) }} else nil -> diff --git a/apps/explorer/lib/explorer/market/token.ex b/apps/explorer/lib/explorer/market/token.ex index 1b5b0797bd2b..ea56892bcee7 100644 --- a/apps/explorer/lib/explorer/market/token.ex +++ b/apps/explorer/lib/explorer/market/token.ex @@ -18,6 +18,7 @@ defmodule Explorer.Market.Token do * `:fiat_value` - The fiat value of the currency * `:volume_24h` - The volume from the last 24 hours * `:image_url` - Token image URL + * `:circulating_supply` - Circulating supply of a token """ @type t :: %__MODULE__{ available_supply: Decimal.t() | nil, @@ -30,12 +31,13 @@ defmodule Explorer.Market.Token do symbol: String.t() | nil, fiat_value: Decimal.t() | nil, volume_24h: Decimal.t() | nil, - image_url: String.t() | nil + image_url: String.t() | nil, + circulating_supply: Decimal.t() | nil } @derive Jason.Encoder - @enforce_keys ~w(available_supply total_supply btc_value last_updated market_cap tvl name symbol fiat_value volume_24h image_url)a - defstruct ~w(available_supply total_supply btc_value last_updated market_cap tvl name symbol fiat_value volume_24h image_url)a + @enforce_keys ~w(available_supply total_supply btc_value last_updated market_cap tvl name symbol fiat_value volume_24h image_url circulating_supply)a + defstruct ~w(available_supply total_supply btc_value last_updated market_cap tvl name symbol fiat_value volume_24h image_url circulating_supply)a def null, do: %__MODULE__{ @@ -49,7 +51,8 @@ defmodule Explorer.Market.Token do symbol: nil, fiat_value: nil, volume_24h: nil, - image_url: nil + image_url: nil, + circulating_supply: nil } def null?(token), do: token == null() diff --git a/apps/explorer/lib/explorer/microservice_interfaces/multichain_search.ex b/apps/explorer/lib/explorer/microservice_interfaces/multichain_search.ex index 0e9cb31f2970..c4e374f1e347 100644 --- a/apps/explorer/lib/explorer/microservice_interfaces/multichain_search.ex +++ b/apps/explorer/lib/explorer/microservice_interfaces/multichain_search.ex @@ -140,7 +140,7 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearch do """ @spec batch_export_token_info([ %{ - :address_hash => binary(), + :address_hash => Hash.Address.t() | binary(), :data_type => :metadata | :total_supply | :counters | :market_data, :data => map() } @@ -430,7 +430,7 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearch do - A map ready to send to Multichain service via HTTP. """ @spec token_info_queue_item_to_http_item(%{ - :address_hash => binary(), + :address_hash => Hash.Address.t() | binary(), :data_type => :metadata | :total_supply | :counters | :market_data, :data => map() }) :: @@ -438,7 +438,7 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearch do | %{:address_hash => String.t(), :counters => map()} | %{:address_hash => String.t(), :price_data => map()} def token_info_queue_item_to_http_item(item_from_db_queue) do - token = %{address_hash: "0x" <> Base.encode16(item_from_db_queue.address_hash, case: :lower)} + token = %{address_hash: item_from_db_queue.address_hash |> cast_address_hash!() |> Hash.to_string()} case item_from_db_queue.data_type do :metadata -> Map.put(token, :metadata, item_from_db_queue.data) @@ -463,12 +463,12 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearch do | %{:address_hash => String.t(), :counters => map()} | %{:address_hash => String.t(), :price_data => map()} ) :: %{ - :address_hash => binary(), + :address_hash => Hash.Address.t(), :data_type => :metadata | :total_supply | :counters | :market_data, :data => map() } def token_info_http_item_to_queue_item(%{address_hash: "0x" <> address_string} = http_item) do - {:ok, address_hash} = Base.decode16(address_string, case: :mixed) + address_hash = cast_address_hash!("0x" <> address_string) metadata = Map.get(http_item, :metadata) @@ -746,7 +746,10 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearch do # - `:ok` if the data is accepted for insertion. # - `:ignore` if the Multichain service is not used. """ - @spec send_token_info_to_queue(%{binary() => map()}, :metadata | :total_supply | :counters | :market_data) :: + @spec send_token_info_to_queue( + %{(Hash.Address.t() | binary()) => map()}, + :metadata | :total_supply | :counters | :market_data + ) :: :ok | :ignore def send_token_info_to_queue(entries, entries_type) do if enabled?() do @@ -768,14 +771,14 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearch do end @spec extract_token_info_entries_into_chunks( - %{binary() => map()}, + %{(Hash.Address.t() | binary()) => map()}, :metadata | :total_supply | :counters | :market_data ) :: list() defp extract_token_info_entries_into_chunks(entries, entries_type) do entries |> Enum.map(fn {address_hash, data} -> %{ - address_hash: address_hash, + address_hash: cast_address_hash!(address_hash), data_type: entries_type, data: data } @@ -783,6 +786,13 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearch do |> Enum.chunk_every(token_info_chunk_size()) end + defp cast_address_hash!(address_hash) do + case Hash.Address.cast(address_hash) do + {:ok, cast_address_hash} -> cast_address_hash + :error -> raise ArgumentError, "invalid token info address_hash: #{inspect(address_hash)}" + end + end + @doc """ Writes counters to database queue to send those to Multichain service later. diff --git a/apps/explorer/lib/explorer/repo/config_helper.ex b/apps/explorer/lib/explorer/repo/config_helper.ex index 39f11eefdd74..10a262cb5a80 100644 --- a/apps/explorer/lib/explorer/repo/config_helper.ex +++ b/apps/explorer/lib/explorer/repo/config_helper.ex @@ -18,6 +18,8 @@ defmodule Explorer.Repo.ConfigHelper do database: "PGDATABASE" ] + @ecto_ssl_modes ~w(disable allow prefer require verify-ca verify-full) + def get_db_config(opts) do url_encoded = opts[:url] url = url_encoded && URI.decode(url_encoded) @@ -64,7 +66,56 @@ defmodule Explorer.Repo.ConfigHelper do {:ok, opts |> Keyword.put(:url, remove_search_path(db_url)) |> Keyword.merge(Keyword.take(merged, [:search_path]))} end - def ssl_enabled?, do: String.equivalent?(System.get_env("ECTO_USE_SSL") || "true", "true") + @doc """ + Determines the Ecto SSL mode based on the ECTO_SSL_MODE environment variable, the + sslmode parameter in the database URL, or defaults to "require" if neither is set. + """ + @spec ecto_ssl_mode(database_url :: String.t() | nil) :: String.t() + def ecto_ssl_mode(database_url \\ nil), do: ecto_ssl_mode(database_url, &System.get_env/1) + + @spec ecto_ssl_mode(database_url :: String.t() | nil, env_function :: (String.t() -> String.t() | nil)) :: String.t() + def ecto_ssl_mode(database_url, env_function) do + mode = + blank_to_nil(env_function.("ECTO_SSL_MODE")) || + ssl_mode_from_database_url(database_url) || + "require" + + normalize_ssl_mode!(mode) + end + + defp blank_to_nil(value) when value in [nil, ""], do: nil + defp blank_to_nil(value), do: value + + @doc """ + Returns SSL options for Postgrex based on the ECTO_SSL_MODE environment variable or ssl mode parameter in the database URL. + """ + @spec ssl_options(database_url :: String.t() | nil) :: Keyword.t() + def ssl_options(database_url \\ nil), do: ssl_options(database_url, &System.get_env/1) + + @spec ssl_options(database_url :: String.t() | nil, env_function :: (String.t() -> String.t() | nil)) :: Keyword.t() + def ssl_options(database_url, env_function) do + case ecto_ssl_mode(database_url, env_function) do + "disable" -> + [ssl: false] + + # Postgrex cannot emulate allow/prefer fallback semantics exactly, + # so both modes are mapped to encrypted, non-verified transport. + mode when mode in ["allow", "prefer", "require"] -> + [ssl: [verify: :verify_none]] + + "verify-ca" -> + [ + ssl: [ + cacerts: :public_key.cacerts_get(), + verify: :verify_peer, + server_name_indication: :disable + ] + ] + + "verify-full" -> + [ssl: true] + end + end def extract_parameters(empty) when empty == nil or empty == "", do: [] @@ -120,6 +171,33 @@ defmodule Explorer.Repo.ConfigHelper do end) end + defp ssl_mode_from_database_url(nil), do: nil + defp ssl_mode_from_database_url(""), do: nil + + defp ssl_mode_from_database_url(database_url) do + case URI.parse(database_url) do + %{query: nil} -> + nil + + %{query: query} -> + query + |> URI.decode_query() + |> Map.get("sslmode") + end + end + + defp normalize_ssl_mode!(mode) when is_binary(mode) do + normalized_mode = mode |> String.trim() |> String.downcase() + + if normalized_mode in @ecto_ssl_modes do + normalized_mode + else + raise ArgumentError, + "Unsupported ECTO_SSL_MODE value: #{inspect(mode)}. " <> + "Supported values: #{Enum.join(@ecto_ssl_modes, ", ")}." + end + end + def network_path do path = System.get_env("NETWORK_PATH", "/") diff --git a/apps/explorer/lib/explorer/smart_contract/certified_smart_contract_cataloger.ex b/apps/explorer/lib/explorer/smart_contract/certified_smart_contract_cataloger.ex index 0315dcf8eedf..a7e2e4ef16bf 100644 --- a/apps/explorer/lib/explorer/smart_contract/certified_smart_contract_cataloger.ex +++ b/apps/explorer/lib/explorer/smart_contract/certified_smart_contract_cataloger.ex @@ -24,6 +24,6 @@ defmodule Explorer.SmartContract.CertifiedSmartContractCataloger do SmartContract.set_smart_contracts_certified_flag(certified_contracts_list) - {:noreply, state} + {:stop, :normal, state} end end diff --git a/apps/explorer/lib/explorer/utility/missing_balance_of_token.ex b/apps/explorer/lib/explorer/utility/missing_balance_of_token.ex index 13d239fa2840..45faf333487c 100644 --- a/apps/explorer/lib/explorer/utility/missing_balance_of_token.ex +++ b/apps/explorer/lib/explorer/utility/missing_balance_of_token.ex @@ -54,6 +54,25 @@ defmodule Explorer.Utility.MissingBalanceOfToken do |> Repo.update_all(set: [currently_implemented: true]) end + @doc """ + Filters provided token balances query by presence of record with the same `token_contract_address_hash` + and above or equal `block_number` in `missing_balance_of_tokens`. + """ + @spec filter_token_balances_query(Ecto.Query.t()) :: Ecto.Query.t() + def filter_token_balances_query(query) do + query + |> join(:left, [tb], mbot in __MODULE__, + on: tb.token_contract_address_hash == mbot.token_contract_address_hash, + as: :mbot + ) + |> where( + [tb], + is_nil(as(:mbot).token_contract_address_hash) or + (as(:mbot).currently_implemented == true and tb.block_number > as(:mbot).block_number) or + tb.block_number > as(:mbot).block_number + ^missing_balance_of_window() + ) + end + @doc """ Filters provided token balances params by presence of record with the same `token_contract_address_hash` and above or equal `block_number` in `missing_balance_of_tokens`. diff --git a/apps/explorer/priv/repo/migrations/20260407120000_add_circulating_supply_to_tokens.exs b/apps/explorer/priv/repo/migrations/20260407120000_add_circulating_supply_to_tokens.exs new file mode 100644 index 000000000000..49b5208312db --- /dev/null +++ b/apps/explorer/priv/repo/migrations/20260407120000_add_circulating_supply_to_tokens.exs @@ -0,0 +1,9 @@ +defmodule Explorer.Repo.Migrations.AddCirculatingSupplyToTokens do + use Ecto.Migration + + def change do + alter table(:tokens) do + add(:circulating_supply, :decimal) + end + end +end diff --git a/apps/explorer/priv/repo/migrations/20260511114944_update_oban_to_v14.exs b/apps/explorer/priv/repo/migrations/20260511114944_update_oban_to_v14.exs new file mode 100644 index 000000000000..33d274af01c6 --- /dev/null +++ b/apps/explorer/priv/repo/migrations/20260511114944_update_oban_to_v14.exs @@ -0,0 +1,7 @@ +defmodule Explorer.Repo.Migrations.UpdateObanToV14 do + use Ecto.Migration + + def up, do: Oban.Migrations.up(version: 14) + + def down, do: Oban.Migrations.down(version: 13) +end diff --git a/apps/explorer/test/AGENTS.md b/apps/explorer/test/AGENTS.md new file mode 100644 index 000000000000..31d4f08dfbf6 --- /dev/null +++ b/apps/explorer/test/AGENTS.md @@ -0,0 +1,16 @@ +# Explorer Test Conventions + +## Application config in tests + +When overriding `Application` config in test `setup`, use `Keyword.merge/2` with the initial config — don't replace the entire keyword list. Replacing drops keys that other code paths rely on. + +```elixir +# Good +initial = Application.get_env(:explorer, SomeModule) +Application.put_env(:explorer, SomeModule, Keyword.merge(initial, key: :override)) + +# Bad — drops all other keys +Application.put_env(:explorer, SomeModule, key: :override) +``` + +Handle potentially nil initial configs with `initial || []`. diff --git a/apps/explorer/test/CLAUDE.md b/apps/explorer/test/CLAUDE.md new file mode 100644 index 000000000000..43c994c2d361 --- /dev/null +++ b/apps/explorer/test/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/apps/explorer/test/explorer/market/fetcher/coin_test.exs b/apps/explorer/test/explorer/market/fetcher/coin_test.exs index 0ac9cfe77e8a..669af3cc4244 100644 --- a/apps/explorer/test/explorer/market/fetcher/coin_test.exs +++ b/apps/explorer/test/explorer/market/fetcher/coin_test.exs @@ -77,7 +77,8 @@ defmodule Explorer.Market.Fetcher.CoinTest do symbol: "test_symbol", fiat_value: Decimal.new("1.0"), volume_24h: Decimal.new("1000.0"), - image_url: nil + image_url: nil, + circulating_supply: nil } assert {:noreply, ^state} = Coin.handle_info({nil, {{:ok, expected_token}, false}}, state) diff --git a/apps/explorer/test/explorer/market/fetcher/token_list_test.exs b/apps/explorer/test/explorer/market/fetcher/token_list_test.exs new file mode 100644 index 000000000000..114ad46d17d1 --- /dev/null +++ b/apps/explorer/test/explorer/market/fetcher/token_list_test.exs @@ -0,0 +1,258 @@ +defmodule Explorer.Market.Fetcher.TokenListTest do + use Explorer.DataCase + + alias Explorer.Chain.Token + alias Explorer.Market.Fetcher.TokenList + + @moduletag :capture_log + + setup do + bypass = Bypass.open() + + original_config = Application.get_env(:explorer, TokenList) + original_chain_id = Application.get_env(:explorer, :chain_id) + + Application.put_env( + :explorer, + TokenList, + Keyword.merge(original_config || [], + enabled: true, + token_list_url: "http://localhost:#{bypass.port}/tokens.json", + refetch_interval: :timer.hours(24) + ) + ) + + Application.put_env(:explorer, :chain_id, "77") + Application.put_env(:tesla, :adapter, Tesla.Adapter.Mint) + + on_exit(fn -> + Application.put_env(:explorer, TokenList, original_config) + Application.put_env(:explorer, :chain_id, original_chain_id) + Application.put_env(:tesla, :adapter, Explorer.Mock.TeslaAdapter) + end) + + {:ok, %{bypass: bypass}} + end + + defp token_list_json(tokens) do + Jason.encode!(%{ + "name" => "Test Token List", + "tokens" => tokens + }) + end + + defp token_entry(address, opts) do + %{ + "address" => to_string(address), + "chainId" => opts[:chain_id] || 77, + "name" => opts[:name] || "Test Token", + "symbol" => opts[:symbol] || "TST", + "decimals" => opts[:decimals] || 18, + "logoURI" => opts[:logo_uri] || "https://example.com/logo.png" + } + end + + describe "init/1" do + test "returns :ignore when token_list_url is not set" do + Application.put_env(:explorer, TokenList, enabled: true, token_list_url: nil) + + assert :ignore = TokenList.init(:ok) + end + + test "starts when token_list_url is set" do + assert {:ok, %TokenList{url: url}} = TokenList.init(:ok) + assert url == Application.get_env(:explorer, TokenList)[:token_list_url] + end + end + + describe "fetch and import" do + test "imports tokens matching chain_id", %{bypass: bypass} do + token = insert(:token, icon_url: nil, name: nil, symbol: nil, decimals: nil) + other_token = insert(:token, icon_url: nil) + + body = + token_list_json([ + token_entry(token.contract_address_hash, + name: "Listed Token", + symbol: "LTK", + decimals: 18, + logo_uri: "https://example.com/listed.png" + ), + token_entry(other_token.contract_address_hash, + chain_id: 999, + name: "Other Chain Token", + logo_uri: "https://example.com/other.png" + ) + ]) + + Bypass.expect_once(bypass, "GET", "/tokens.json", fn conn -> + Plug.Conn.resp(conn, 200, body) + end) + + {:ok, pid} = GenServer.start_link(TokenList, :ok) + :timer.sleep(200) + GenServer.stop(pid) + + updated_token = Repo.get_by(Token, contract_address_hash: token.contract_address_hash) + assert updated_token.icon_url == "https://example.com/listed.png" + assert updated_token.name == "Listed Token" + assert updated_token.symbol == "LTK" + + # Token from chain_id 999 should NOT be updated + other_updated = Repo.get_by(Token, contract_address_hash: other_token.contract_address_hash) + assert is_nil(other_updated.icon_url) + end + + test "does not overwrite existing name, symbol, decimals", %{bypass: bypass} do + token = insert(:token, name: "Original Name", symbol: "OG", decimals: 8, icon_url: nil) + + body = + token_list_json([ + token_entry(token.contract_address_hash, + name: "New Name", + symbol: "NEW", + decimals: 18, + logo_uri: "https://example.com/new.png" + ) + ]) + + Bypass.expect_once(bypass, "GET", "/tokens.json", fn conn -> + Plug.Conn.resp(conn, 200, body) + end) + + {:ok, pid} = GenServer.start_link(TokenList, :ok) + :timer.sleep(200) + GenServer.stop(pid) + + updated_token = Repo.get_by(Token, contract_address_hash: token.contract_address_hash) + assert updated_token.name == "Original Name" + assert updated_token.symbol == "OG" + assert updated_token.decimals == Decimal.new(8) + assert updated_token.icon_url == "https://example.com/new.png" + end + + test "does not overwrite icon_url for admin-verified tokens", %{bypass: bypass} do + token = + insert(:token, + icon_url: "https://admin.example.com/icon.png", + is_verified_via_admin_panel: true + ) + + body = + token_list_json([ + token_entry(token.contract_address_hash, + logo_uri: "https://example.com/list-icon.png" + ) + ]) + + Bypass.expect_once(bypass, "GET", "/tokens.json", fn conn -> + Plug.Conn.resp(conn, 200, body) + end) + + {:ok, pid} = GenServer.start_link(TokenList, :ok) + :timer.sleep(200) + GenServer.stop(pid) + + updated_token = Repo.get_by(Token, contract_address_hash: token.contract_address_hash) + assert updated_token.icon_url == "https://admin.example.com/icon.png" + end + + test "overwrites icon_url for non-admin tokens", %{bypass: bypass} do + token = + insert(:token, + icon_url: "https://old.example.com/icon.png", + is_verified_via_admin_panel: false + ) + + body = + token_list_json([ + token_entry(token.contract_address_hash, + logo_uri: "https://example.com/new-icon.png" + ) + ]) + + Bypass.expect_once(bypass, "GET", "/tokens.json", fn conn -> + Plug.Conn.resp(conn, 200, body) + end) + + {:ok, pid} = GenServer.start_link(TokenList, :ok) + :timer.sleep(200) + GenServer.stop(pid) + + updated_token = Repo.get_by(Token, contract_address_hash: token.contract_address_hash) + assert updated_token.icon_url == "https://example.com/new-icon.png" + end + + test "handles HTTP error gracefully", %{bypass: bypass} do + Bypass.expect_once(bypass, "GET", "/tokens.json", fn conn -> + Plug.Conn.resp(conn, 500, "Internal Server Error") + end) + + {:ok, pid} = GenServer.start_link(TokenList, :ok) + :timer.sleep(200) + GenServer.stop(pid) + end + + test "handles invalid JSON gracefully", %{bypass: bypass} do + Bypass.expect_once(bypass, "GET", "/tokens.json", fn conn -> + Plug.Conn.resp(conn, 200, "not json") + end) + + {:ok, pid} = GenServer.start_link(TokenList, :ok) + :timer.sleep(200) + GenServer.stop(pid) + end + + test "handles empty token list", %{bypass: bypass} do + body = token_list_json([]) + + Bypass.expect_once(bypass, "GET", "/tokens.json", fn conn -> + Plug.Conn.resp(conn, 200, body) + end) + + {:ok, pid} = GenServer.start_link(TokenList, :ok) + :timer.sleep(200) + GenServer.stop(pid) + end + + test "skips tokens with missing address field", %{bypass: bypass} do + body = + Jason.encode!(%{ + "name" => "Test List", + "tokens" => [ + %{"chainId" => 77, "name" => "No Address", "symbol" => "NA", "decimals" => 18} + ] + }) + + Bypass.expect_once(bypass, "GET", "/tokens.json", fn conn -> + Plug.Conn.resp(conn, 200, body) + end) + + {:ok, pid} = GenServer.start_link(TokenList, :ok) + :timer.sleep(200) + GenServer.stop(pid) + end + + test "imports all tokens when CHAIN_ID is not set", %{bypass: bypass} do + Application.put_env(:explorer, :chain_id, nil) + + token = insert(:token, icon_url: nil) + + body = + token_list_json([ + token_entry(token.contract_address_hash, chain_id: 999, logo_uri: "https://example.com/any.png") + ]) + + Bypass.expect_once(bypass, "GET", "/tokens.json", fn conn -> + Plug.Conn.resp(conn, 200, body) + end) + + {:ok, pid} = GenServer.start_link(TokenList, :ok) + :timer.sleep(200) + GenServer.stop(pid) + + updated_token = Repo.get_by(Token, contract_address_hash: token.contract_address_hash) + assert updated_token.icon_url == "https://example.com/any.png" + end + end +end diff --git a/apps/explorer/test/explorer/market/fetcher/token_test.exs b/apps/explorer/test/explorer/market/fetcher/token_test.exs index eb3df9f5c217..b8e1115e10cf 100644 --- a/apps/explorer/test/explorer/market/fetcher/token_test.exs +++ b/apps/explorer/test/explorer/market/fetcher/token_test.exs @@ -224,4 +224,246 @@ defmodule Explorer.Market.Fetcher.TokenTest do |> Enum.each(fn %{fiat_value: fiat_value} -> assert is_nil(fiat_value) end) end end + + describe "stale market data cleanup" do + # We test the full cycle through handle_info since nullify_stale_market_data is private. + + setup do + bypass = Bypass.open() + + source_configuration = Application.get_env(:explorer, Explorer.Market.Source) + fetcher_configuration = Application.get_env(:explorer, Explorer.Market.Fetcher.Token) + coin_gecko_configuration = Application.get_env(:explorer, Explorer.Market.Source.CoinGecko) + + Application.put_env( + :explorer, + Explorer.Market.Source, + Keyword.merge(source_configuration || [], tokens_source: Explorer.Market.Source.CoinGecko) + ) + + Application.put_env( + :explorer, + Explorer.Market.Fetcher.Token, + Keyword.merge(fetcher_configuration || [], + enabled: true, + interval: 0, + refetch_interval: 10_000, + max_batch_size: 100 + ) + ) + + Application.put_env( + :explorer, + Explorer.Market.Source.CoinGecko, + Keyword.merge(coin_gecko_configuration || [], + platform: "ethereum", + currency: "usd", + base_url: "http://localhost:#{bypass.port}" + ) + ) + + Application.put_env(:tesla, :adapter, Tesla.Adapter.Mint) + + previous_fetcher_enabled = :persistent_term.get(:market_token_fetcher_enabled, false) + :persistent_term.put(:market_token_fetcher_enabled, true) + + on_exit(fn -> + Application.put_env(:explorer, Explorer.Market.Source, source_configuration) + Application.put_env(:explorer, Explorer.Market.Fetcher.Token, fetcher_configuration) + Application.put_env(:explorer, Explorer.Market.Source.CoinGecko, coin_gecko_configuration) + Application.put_env(:tesla, :adapter, Explorer.Mock.TeslaAdapter) + :persistent_term.put(:market_token_fetcher_enabled, previous_fetcher_enabled) + end) + + {:ok, %{bypass: bypass}} + end + + test "nullifies market data for tokens not returned by source", %{bypass: bypass} do + # Token that source WILL return + token_returned = + insert(:token, + fiat_value: Decimal.new("5.0"), + circulating_market_cap: Decimal.new("1000"), + volume_24h: Decimal.new("500"), + circulating_supply: Decimal.new("2000") + ) + + # Token that source will NOT return — should be nullified across all market fields + token_stale = + insert(:token, + fiat_value: Decimal.new("3.0"), + circulating_market_cap: Decimal.new("800"), + volume_24h: Decimal.new("200"), + circulating_supply: Decimal.new("1500") + ) + + # Token with nil fiat_value — WHERE clause should leave it alone even if not in seen set + token_already_nil = + insert(:token, + fiat_value: nil, + circulating_market_cap: nil, + volume_24h: Decimal.new("999"), + circulating_supply: Decimal.new("3000") + ) + + coins_list = [ + %{ + "id" => "returned_token", + "symbol" => "RT", + "name" => "Returned Token", + "platforms" => %{"ethereum" => "#{token_returned.contract_address_hash}"} + } + ] + + Bypass.expect_once(bypass, "GET", "/coins/list", fn conn -> + Conn.resp(conn, 200, Jason.encode!(coins_list)) + end) + + token_exchange_rates = %{ + "returned_token" => %{ + "usd" => 5.0, + "usd_market_cap" => 1000.0, + "usd_24h_vol" => 500.0 + } + } + + Bypass.expect_once(bypass, "GET", "/simple/price", fn conn -> + Conn.resp(conn, 200, Jason.encode!(token_exchange_rates)) + end) + + GenServer.start_link(TokenFetcher, []) + :timer.sleep(200) + + # Returned token keeps market data + returned = Repo.get_by(Token, contract_address_hash: token_returned.contract_address_hash) + assert returned.fiat_value + assert returned.circulating_market_cap + + # Stale token has all market data fields nullified + stale = Repo.get_by(Token, contract_address_hash: token_stale.contract_address_hash) + assert is_nil(stale.fiat_value) + assert is_nil(stale.circulating_market_cap) + assert is_nil(stale.volume_24h) + assert is_nil(stale.circulating_supply) + + # Token with nil fiat_value is skipped by the WHERE clause — other fields untouched + skipped = Repo.get_by(Token, contract_address_hash: token_already_nil.contract_address_hash) + assert Decimal.equal?(skipped.volume_24h, Decimal.new("999")) + assert Decimal.equal?(skipped.circulating_supply, Decimal.new("3000")) + end + + test "does not nullify when source errors out (empty coin list)", %{bypass: bypass} do + # Empty /coins/list makes CoinGecko return {:error, "Tokens not found..."}, exercising + # the error branch in handle_info — nullify is never called. + token_with_data = insert(:token, fiat_value: Decimal.new("5.0"), circulating_market_cap: Decimal.new("1000")) + + Bypass.expect(bypass, "GET", "/coins/list", fn conn -> + Conn.resp(conn, 200, "[]") + end) + + GenServer.start_link(TokenFetcher, []) + :timer.sleep(200) + + token = Repo.get_by(Token, contract_address_hash: token_with_data.contract_address_hash) + assert token.fiat_value + end + + test "skips nullification when all returned tokens are filtered out (empty seen set)", %{bypass: bypass} do + # Source returns a token, but with $0 — zero_or_nil? filter drops it. + # seen_token_hashes ends up empty → `!Enum.empty?` guard prevents any DB writes. + token_existing = insert(:token, fiat_value: Decimal.new("5.0"), circulating_market_cap: Decimal.new("1000")) + + filtered_out_address = "0x00000000000000000000000000000000000000aa" + + coins_list = [ + %{ + "id" => "zero_token", + "symbol" => "ZT", + "name" => "Zero Token", + "platforms" => %{"ethereum" => filtered_out_address} + } + ] + + Bypass.expect_once(bypass, "GET", "/coins/list", fn conn -> + Conn.resp(conn, 200, Jason.encode!(coins_list)) + end) + + Bypass.expect_once(bypass, "GET", "/simple/price", fn conn -> + Conn.resp(conn, 200, Jason.encode!(%{"zero_token" => %{"usd" => 0, "usd_market_cap" => 0, "usd_24h_vol" => 0}})) + end) + + GenServer.start_link(TokenFetcher, []) + :timer.sleep(200) + + # Pre-existing token was NOT in the (empty) seen set, yet still retains data because + # the guard short-circuits before the UPDATE runs. + token = Repo.get_by(Token, contract_address_hash: token_existing.contract_address_hash) + assert Decimal.equal?(token.fiat_value, Decimal.new("5.0")) + assert Decimal.equal?(token.circulating_market_cap, Decimal.new("1000")) + end + + test "tokens with $0 fiat_value are filtered out and their market data is nullified", %{bypass: bypass} do + # Token that source returns with $0 price — filtered out, not added to seen set + token_zero_price = + insert(:token, + fiat_value: Decimal.new("2.0"), + circulating_market_cap: Decimal.new("500"), + volume_24h: Decimal.new("50"), + circulating_supply: Decimal.new("123") + ) + + # A second token with a real price — goes into seen set, triggering nullification of the $0 token + token_real_price = insert(:token, fiat_value: Decimal.new("1.0")) + + coins_list = [ + %{ + "id" => "zero_price_token", + "symbol" => "ZP", + "name" => "Zero Price Token", + "platforms" => %{"ethereum" => "#{token_zero_price.contract_address_hash}"} + }, + %{ + "id" => "real_price_token", + "symbol" => "RP", + "name" => "Real Price Token", + "platforms" => %{"ethereum" => "#{token_real_price.contract_address_hash}"} + } + ] + + Bypass.expect_once(bypass, "GET", "/coins/list", fn conn -> + Conn.resp(conn, 200, Jason.encode!(coins_list)) + end) + + token_exchange_rates = %{ + "zero_price_token" => %{ + "usd" => 0, + "usd_market_cap" => 0, + "usd_24h_vol" => 0 + }, + "real_price_token" => %{ + "usd" => 10.0, + "usd_market_cap" => 5000.0, + "usd_24h_vol" => 100.0 + } + } + + Bypass.expect_once(bypass, "GET", "/simple/price", fn conn -> + Conn.resp(conn, 200, Jason.encode!(token_exchange_rates)) + end) + + GenServer.start_link(TokenFetcher, []) + :timer.sleep(200) + + # $0-price token is not in seen set → gets nullified across all market fields + token = Repo.get_by(Token, contract_address_hash: token_zero_price.contract_address_hash) + assert is_nil(token.fiat_value) + assert is_nil(token.circulating_market_cap) + assert is_nil(token.volume_24h) + assert is_nil(token.circulating_supply) + + # Real-price token is in seen set → retains its data + real = Repo.get_by(Token, contract_address_hash: token_real_price.contract_address_hash) + assert real.fiat_value + end + end end diff --git a/apps/explorer/test/explorer/market/source/coin_gecko_test.exs b/apps/explorer/test/explorer/market/source/coin_gecko_test.exs index da866050fb5c..59658884e17c 100644 --- a/apps/explorer/test/explorer/market/source/coin_gecko_test.exs +++ b/apps/explorer/test/explorer/market/source/coin_gecko_test.exs @@ -40,6 +40,21 @@ defmodule Explorer.Market.Source.CoinGeckoTest do {:ok, bypass: bypass} end + describe "native_coin_fetching_enabled?" do + test "returns true if coin_id is configured" do + assert CoinGecko.native_coin_fetching_enabled?() + end + + test "returns false if coin_id is not configured" do + config = Application.get_env(:explorer, CoinGecko) + Application.put_env(:explorer, CoinGecko, Keyword.merge(config || [], coin_id: nil)) + + on_exit(fn -> Application.put_env(:explorer, CoinGecko, config) end) + + refute CoinGecko.native_coin_fetching_enabled?() + end + end + describe "fetch_native_coin/0" do test "fetches native coin", %{bypass: bypass} do Bypass.expect_once(bypass, "GET", "/coins/native_coin_id", fn conn -> @@ -61,11 +76,27 @@ defmodule Explorer.Market.Source.CoinGeckoTest do symbol: "ETH", fiat_value: Decimal.new("123"), volume_24h: Decimal.new("66154765984"), - image_url: "https://coin-images.coingecko.com/coins/images/279/small/ethereum.png?1696501628" + image_url: "https://coin-images.coingecko.com/coins/images/279/small/ethereum.png?1696501628", + circulating_supply: Decimal.new("120547760.0137619") }} == CoinGecko.fetch_native_coin() end end + describe "secondary_coin_fetching_enabled?" do + test "returns true if secondary_coin_id is configured" do + assert CoinGecko.secondary_coin_fetching_enabled?() + end + + test "returns false if secondary_coin_id is not configured" do + config = Application.get_env(:explorer, CoinGecko) + Application.put_env(:explorer, CoinGecko, Keyword.merge(config || [], secondary_coin_id: nil)) + + on_exit(fn -> Application.put_env(:explorer, CoinGecko, config) end) + + refute CoinGecko.secondary_coin_fetching_enabled?() + end + end + describe "fetch_secondary_coin/0" do test "fetches native coin", %{bypass: bypass} do Bypass.expect_once(bypass, "GET", "/coins/secondary_coin_id", fn conn -> @@ -87,11 +118,27 @@ defmodule Explorer.Market.Source.CoinGeckoTest do symbol: "ETH", fiat_value: Decimal.new("324"), volume_24h: Decimal.new("66154765984"), - image_url: "https://coin-images.coingecko.com/coins/images/279/small/ethereum.png?1696501628" + image_url: "https://coin-images.coingecko.com/coins/images/279/small/ethereum.png?1696501628", + circulating_supply: Decimal.new("120547760.0137619") }} == CoinGecko.fetch_secondary_coin() end end + describe "tokens_fetching_enabled?" do + test "returns true if platform is configured" do + assert CoinGecko.tokens_fetching_enabled?() + end + + test "returns false if platform is not configured" do + config = Application.get_env(:explorer, CoinGecko) + Application.put_env(:explorer, CoinGecko, Keyword.merge(config || [], platform: nil)) + + on_exit(fn -> Application.put_env(:explorer, CoinGecko, config) end) + + refute CoinGecko.tokens_fetching_enabled?() + end + end + describe "fetch_tokens/2" do test "fetches list of tokens", %{bypass: bypass} do Bypass.expect_once(bypass, "GET", "/coins/list", fn conn -> @@ -203,6 +250,21 @@ defmodule Explorer.Market.Source.CoinGeckoTest do end end + describe "native_coin_price_history_fetching_enabled?" do + test "returns true if coin_id is configured" do + assert CoinGecko.native_coin_price_history_fetching_enabled?() + end + + test "returns false if coin_id is not configured" do + config = Application.get_env(:explorer, CoinGecko) + Application.put_env(:explorer, CoinGecko, Keyword.merge(config || [], coin_id: nil)) + + on_exit(fn -> Application.put_env(:explorer, CoinGecko, config) end) + + refute CoinGecko.native_coin_price_history_fetching_enabled?() + end + end + describe "fetch_native_coin_price_history/1" do test "fetches native coin price history", %{bypass: bypass} do Bypass.expect_once(bypass, "GET", "/coins/native_coin_id/market_chart", fn conn -> @@ -235,6 +297,21 @@ defmodule Explorer.Market.Source.CoinGeckoTest do end end + describe "secondary_coin_price_history_fetching_enabled?" do + test "returns true if secondary_coin_id is configured" do + assert CoinGecko.secondary_coin_price_history_fetching_enabled?() + end + + test "returns false if secondary_coin_id is not configured" do + config = Application.get_env(:explorer, CoinGecko) + Application.put_env(:explorer, CoinGecko, Keyword.merge(config || [], secondary_coin_id: nil)) + + on_exit(fn -> Application.put_env(:explorer, CoinGecko, config) end) + + refute CoinGecko.secondary_coin_price_history_fetching_enabled?() + end + end + describe "fetch_secondary_coin_price_history/1" do test "fetches secondary coin price history", %{bypass: bypass} do Bypass.expect_once(bypass, "GET", "/coins/secondary_coin_id/market_chart", fn conn -> @@ -267,6 +344,33 @@ defmodule Explorer.Market.Source.CoinGeckoTest do end end + describe "market_cap_history_fetching_enabled?" do + test "returns true if coin_id is configured" do + assert CoinGecko.market_cap_history_fetching_enabled?() + end + + test "returns false if coin_id is not configured" do + config = Application.get_env(:explorer, CoinGecko) + Application.put_env(:explorer, CoinGecko, Keyword.merge(config || [], coin_id: nil)) + + on_exit(fn -> Application.put_env(:explorer, CoinGecko, config) end) + + refute CoinGecko.market_cap_history_fetching_enabled?() + end + end + + describe "tvl_history_fetching_enabled?" do + test "ignored" do + assert CoinGecko.tvl_history_fetching_enabled?() == :ignore + end + end + + describe "fetch_tvl_history/1" do + test "ignored" do + assert CoinGecko.fetch_tvl_history(3) == :ignore + end + end + describe "fetch_market_cap_history/1" do test "fetches market cap history", %{bypass: bypass} do Bypass.expect_once(bypass, "GET", "/coins/native_coin_id/market_chart", fn conn -> diff --git a/apps/explorer/test/explorer/market/source/coin_market_cap_test.exs b/apps/explorer/test/explorer/market/source/coin_market_cap_test.exs index 9c57b75deaac..093247811e8b 100644 --- a/apps/explorer/test/explorer/market/source/coin_market_cap_test.exs +++ b/apps/explorer/test/explorer/market/source/coin_market_cap_test.exs @@ -39,6 +39,48 @@ defmodule Explorer.Market.Source.CoinMarketCapTest do {:ok, bypass: bypass} end + describe "native_coin_fetching_enabled?" do + test "returns true if coin_id is configured" do + assert CoinMarketCap.native_coin_fetching_enabled?() + end + + test "returns false if coin_id is not configured" do + config = Application.get_env(:explorer, CoinMarketCap) + Application.put_env(:explorer, CoinMarketCap, Keyword.merge(config || [], coin_id: nil)) + + on_exit(fn -> Application.put_env(:explorer, CoinMarketCap, config) end) + + refute CoinMarketCap.native_coin_fetching_enabled?() + end + end + + describe "secondary_coin_fetching_enabled?" do + test "returns true if secondary_coin_id is configured" do + assert CoinMarketCap.secondary_coin_fetching_enabled?() + end + + test "returns false if secondary_coin_id is not configured" do + config = Application.get_env(:explorer, CoinMarketCap) + Application.put_env(:explorer, CoinMarketCap, Keyword.merge(config || [], secondary_coin_id: nil)) + + on_exit(fn -> Application.put_env(:explorer, CoinMarketCap, config) end) + + refute CoinMarketCap.secondary_coin_fetching_enabled?() + end + end + + describe "tokens_fetching_enabled?" do + test "ignored" do + assert CoinMarketCap.tokens_fetching_enabled?() == :ignore + end + end + + describe "fetch_tokens/2" do + test "ignored" do + assert CoinMarketCap.fetch_tokens(nil, 10) == :ignore + end + end + describe "fetch_native_coin/0" do test "fetches native coin", %{bypass: bypass} do Bypass.expect_once(bypass, "GET", "/cryptocurrency/quotes/latest", fn conn -> @@ -58,7 +100,8 @@ defmodule Explorer.Market.Source.CoinMarketCapTest do symbol: "BTC", fiat_value: Decimal.new("10.1"), volume_24h: Decimal.new("28724591782.645985"), - image_url: nil + image_url: nil, + circulating_supply: Decimal.new("19824162") }} == CoinMarketCap.fetch_native_coin() end end @@ -82,11 +125,39 @@ defmodule Explorer.Market.Source.CoinMarketCapTest do symbol: "BTC", fiat_value: Decimal.new("20.2"), volume_24h: Decimal.new("28724591782.645985"), - image_url: nil + image_url: nil, + circulating_supply: Decimal.new("19824162") }} == CoinMarketCap.fetch_secondary_coin() end end + describe "market_cap_history_fetching_enabled?" do + test "returns true if coin_id is configured" do + assert CoinMarketCap.market_cap_history_fetching_enabled?() + end + + test "returns false if coin_id is not configured" do + config = Application.get_env(:explorer, CoinMarketCap) + Application.put_env(:explorer, CoinMarketCap, Keyword.merge(config || [], coin_id: nil)) + + on_exit(fn -> Application.put_env(:explorer, CoinMarketCap, config) end) + + refute CoinMarketCap.market_cap_history_fetching_enabled?() + end + end + + describe "tvl_history_fetching_enabled?" do + test "ignored" do + assert CoinMarketCap.tvl_history_fetching_enabled?() == :ignore + end + end + + describe "fetch_tvl_history/1" do + test "ignored" do + assert CoinMarketCap.fetch_tvl_history(3) == :ignore + end + end + describe "fetch_native_coin_price_history/1" do test "fetches native coin price history", %{bypass: bypass} do Bypass.expect_once(bypass, "GET", "/cryptocurrency/quotes/historical", fn conn -> diff --git a/apps/explorer/test/explorer/market/source/crypto_compare_test.exs b/apps/explorer/test/explorer/market/source/crypto_compare_test.exs index 963ecaa93d71..713ccdf8004e 100644 --- a/apps/explorer/test/explorer/market/source/crypto_compare_test.exs +++ b/apps/explorer/test/explorer/market/source/crypto_compare_test.exs @@ -42,6 +42,57 @@ defmodule Explorer.Market.Source.CryptoCompareTest do {:ok, bypass: bypass} end + describe "native_coin_fetching_enabled?" do + test "ignored" do + assert CryptoCompare.native_coin_fetching_enabled?() == :ignore + end + end + + describe "fetch_native_coin/0" do + test "ignored" do + assert CryptoCompare.fetch_native_coin() == :ignore + end + end + + describe "secondary_coin_fetching_enabled?" do + test "ignored" do + assert CryptoCompare.secondary_coin_fetching_enabled?() == :ignore + end + end + + describe "fetch_secondary_coin/0" do + test "ignored" do + assert CryptoCompare.fetch_secondary_coin() == :ignore + end + end + + describe "tokens_fetching_enabled?" do + test "ignored" do + assert CryptoCompare.tokens_fetching_enabled?() == :ignore + end + end + + describe "fetch_tokens/2" do + test "ignored" do + assert CryptoCompare.fetch_tokens(nil, 10) == :ignore + end + end + + describe "native_coin_price_history_fetching_enabled?" do + test "returns true if coin_symbol is configured" do + assert CryptoCompare.native_coin_price_history_fetching_enabled?() + end + + test "returns false if coin_symbol is not configured" do + config = Application.get_env(:explorer, CryptoCompare) + Application.put_env(:explorer, CryptoCompare, Keyword.merge(config || [], coin_symbol: nil)) + + on_exit(fn -> Application.put_env(:explorer, CryptoCompare, config) end) + + refute CryptoCompare.native_coin_price_history_fetching_enabled?() + end + end + describe "fetch_native_coin_price_history/1" do test "fetches native coin price history", %{bypass: bypass} do Bypass.expect_once(bypass, "GET", "data/v2/histoday", fn conn -> @@ -75,6 +126,45 @@ defmodule Explorer.Market.Source.CryptoCompareTest do end end + describe "secondary_coin_price_history_fetching_enabled?" do + test "returns true if secondary_coin_symbol is configured" do + assert CryptoCompare.secondary_coin_price_history_fetching_enabled?() + end + + test "returns false if secondary_coin_symbol is not configured" do + config = Application.get_env(:explorer, CryptoCompare) + Application.put_env(:explorer, CryptoCompare, Keyword.merge(config, secondary_coin_symbol: nil)) + + on_exit(fn -> Application.put_env(:explorer, CryptoCompare, config) end) + + refute CryptoCompare.secondary_coin_price_history_fetching_enabled?() + end + end + + describe "market_cap_history_fetching_enabled?" do + test "ignored" do + assert CryptoCompare.market_cap_history_fetching_enabled?() == :ignore + end + end + + describe "fetch_market_cap_history/1" do + test "ignored" do + assert CryptoCompare.fetch_market_cap_history(3) == :ignore + end + end + + describe "tvl_history_fetching_enabled?" do + test "ignored" do + assert CryptoCompare.tvl_history_fetching_enabled?() == :ignore + end + end + + describe "fetch_tvl_history/1" do + test "ignored" do + assert CryptoCompare.fetch_tvl_history(3) == :ignore + end + end + describe "fetch_secondary_coin_price_history/1" do test "fetches secondary coin price history", %{bypass: bypass} do Bypass.expect_once(bypass, "GET", "data/v2/histoday", fn conn -> diff --git a/apps/explorer/test/explorer/market/source/crypto_rank_test.exs b/apps/explorer/test/explorer/market/source/crypto_rank_test.exs index f0820796cf8d..db24d0634681 100644 --- a/apps/explorer/test/explorer/market/source/crypto_rank_test.exs +++ b/apps/explorer/test/explorer/market/source/crypto_rank_test.exs @@ -62,7 +62,8 @@ defmodule Explorer.Market.Source.CryptoRankTest do symbol: "ETH", total_supply: Decimal.new("120723694"), tvl: nil, - volume_24h: Decimal.new("5826359746") + volume_24h: Decimal.new("5826359746"), + circulating_supply: Decimal.new("120723694") }} == CryptoRank.fetch_native_coin() end @@ -99,7 +100,8 @@ defmodule Explorer.Market.Source.CryptoRankTest do symbol: "ETH", total_supply: Decimal.new("120723694"), tvl: nil, - volume_24h: Decimal.new("5826359746") + volume_24h: Decimal.new("5826359746"), + circulating_supply: Decimal.new("120723694") }} == CryptoRank.fetch_secondary_coin() end @@ -154,7 +156,8 @@ defmodule Explorer.Market.Source.CryptoRankTest do }, fiat_value: Decimal.new("0.019624517115"), circulating_market_cap: Decimal.new("3046537.982244971760"), - volume_24h: Decimal.new("214644.7428230154531300") + volume_24h: Decimal.new("214644.7428230154531300"), + circulating_supply: Decimal.new("155241424") }, %{ name: "Zyfi", @@ -166,7 +169,8 @@ defmodule Explorer.Market.Source.CryptoRankTest do }, fiat_value: Decimal.new("0.004467522847"), circulating_market_cap: Decimal.new("1019602.903569369320"), - volume_24h: Decimal.new("527.5318580293320804") + volume_24h: Decimal.new("527.5318580293320804"), + circulating_supply: Decimal.new("228225560") } ] } == CryptoRank.fetch_tokens(50, 50) diff --git a/apps/explorer/test/explorer/market/source/defillama_test.exs b/apps/explorer/test/explorer/market/source/defillama_test.exs new file mode 100644 index 000000000000..d707863c69f9 --- /dev/null +++ b/apps/explorer/test/explorer/market/source/defillama_test.exs @@ -0,0 +1,172 @@ +defmodule Explorer.Market.Source.DefiLlamaTest do + use ExUnit.Case + + alias Explorer.Market.Source.DefiLlama + alias Plug.Conn + + setup do + bypass = Bypass.open() + + defillama_configuration = Application.get_env(:explorer, DefiLlama) + source_configuration = Application.get_env(:explorer, Explorer.Market.Source) + + Application.put_env( + :explorer, + Explorer.Market.Source, + Keyword.merge(source_configuration || [], + native_coin_source: DefiLlama, + secondary_coin_source: DefiLlama, + tokens_source: DefiLlama, + native_coin_history_source: DefiLlama, + secondary_coin_history_source: DefiLlama, + market_cap_history_source: DefiLlama, + tvl_history_source: DefiLlama + ) + ) + + Application.put_env( + :explorer, + DefiLlama, + Keyword.merge(defillama_configuration || [], + base_url: "http://localhost:#{bypass.port}", + coin_id: "Ethereum" + ) + ) + + Application.put_env(:tesla, :adapter, Tesla.Adapter.Mint) + + on_exit(fn -> + Application.put_env(:explorer, Explorer.Market.Source, source_configuration) + Application.put_env(:explorer, DefiLlama, defillama_configuration) + Application.put_env(:tesla, :adapter, Explorer.Mock.TeslaAdapter) + end) + + {:ok, bypass: bypass} + end + + describe "native_coin_fetching_enabled?" do + test "ignored" do + assert DefiLlama.native_coin_fetching_enabled?() == :ignore + end + end + + describe "fetch_native_coin/0" do + test "ignored" do + assert DefiLlama.fetch_native_coin() == :ignore + end + end + + describe "secondary_coin_fetching_enabled?" do + test "ignored" do + assert DefiLlama.secondary_coin_fetching_enabled?() == :ignore + end + end + + describe "fetch_secondary_coin/0" do + test "ignored" do + assert DefiLlama.fetch_secondary_coin() == :ignore + end + end + + describe "tokens_fetching_enabled?" do + test "ignored" do + assert DefiLlama.tokens_fetching_enabled?() == :ignore + end + end + + describe "fetch_tokens/2" do + test "ignored" do + assert DefiLlama.fetch_tokens(nil, 10) == :ignore + end + end + + describe "native_coin_price_history_fetching_enabled?" do + test "ignored" do + assert DefiLlama.native_coin_price_history_fetching_enabled?() == :ignore + end + end + + describe "fetch_native_coin_price_history/1" do + test "ignored" do + assert DefiLlama.fetch_native_coin_price_history(3) == :ignore + end + end + + describe "secondary_coin_price_history_fetching_enabled?" do + test "ignored" do + assert DefiLlama.secondary_coin_price_history_fetching_enabled?() == :ignore + end + end + + describe "fetch_secondary_coin_price_history/1" do + test "ignored" do + assert DefiLlama.fetch_secondary_coin_price_history(3) == :ignore + end + end + + describe "market_cap_history_fetching_enabled?" do + test "ignored" do + assert DefiLlama.market_cap_history_fetching_enabled?() == :ignore + end + end + + describe "fetch_market_cap_history/1" do + test "ignored" do + assert DefiLlama.fetch_market_cap_history(3) == :ignore + end + end + + describe "tvl_history_fetching_enabled?" do + test "returns true if coin_id is configured" do + assert DefiLlama.tvl_history_fetching_enabled?() + end + + test "returns false if coin_id is not configured" do + config = Application.get_env(:explorer, DefiLlama) + Application.put_env(:explorer, DefiLlama, Keyword.merge(config, coin_id: nil)) + + refute DefiLlama.tvl_history_fetching_enabled?() + end + end + + describe "fetch_tvl_history/1" do + test "fetches TVL history", %{bypass: bypass} do + Bypass.expect_once(bypass, "GET", "/historicalChainTvl/Ethereum", fn conn -> + Conn.resp(conn, 200, json_historical_chain_tvl()) + end) + + assert {:ok, + [ + %{ + date: ~D[2025-02-12], + tvl: Decimal.new("50000000000") + }, + %{ + date: ~D[2025-02-13], + tvl: Decimal.new("51000000000") + }, + %{ + date: ~D[2025-02-14], + tvl: Decimal.new("52000000000") + } + ]} == DefiLlama.fetch_tvl_history(3) + end + + test "returns error when coin_id not configured" do + config = Application.get_env(:explorer, DefiLlama) + Application.put_env(:explorer, DefiLlama, Keyword.merge(config, coin_id: nil)) + + assert {:error, "Coin ID not specified"} == DefiLlama.fetch_tvl_history(3) + end + end + + defp json_historical_chain_tvl do + """ + [ + {"date": 1739318400, "tvl": 50000000000}, + {"date": 1739404800, "tvl": 51000000000}, + {"date": 1739491200, "tvl": 52000000000} + ] + """ + end +end diff --git a/apps/explorer/test/explorer/market/source/dia_test.exs b/apps/explorer/test/explorer/market/source/dia_test.exs index 26b9af444110..cae7d5fd0d4e 100644 --- a/apps/explorer/test/explorer/market/source/dia_test.exs +++ b/apps/explorer/test/explorer/market/source/dia_test.exs @@ -74,7 +74,8 @@ defmodule Explorer.Market.Source.DIATest do symbol: "ETH", total_supply: nil, tvl: nil, - volume_24h: Decimal.new("6577658642.868258") + volume_24h: Decimal.new("6577658642.868258"), + circulating_supply: nil }} == DIA.fetch_native_coin() end @@ -119,7 +120,8 @@ defmodule Explorer.Market.Source.DIATest do symbol: "WBTC", total_supply: nil, tvl: nil, - volume_24h: Decimal.new("6577658642.868258") + volume_24h: Decimal.new("6577658642.868258"), + circulating_supply: nil }} == DIA.fetch_secondary_coin() end diff --git a/apps/explorer/test/explorer/market/source/mobula_test.exs b/apps/explorer/test/explorer/market/source/mobula_test.exs new file mode 100644 index 000000000000..062c06c45deb --- /dev/null +++ b/apps/explorer/test/explorer/market/source/mobula_test.exs @@ -0,0 +1,405 @@ +# cspell:disable +defmodule Explorer.Market.Source.MobulaTest do + use ExUnit.Case + + alias Explorer.Market.Source.Mobula + alias Plug.Conn + + setup do + bypass = Bypass.open() + + mobula_configuration = Application.get_env(:explorer, Mobula) + source_configuration = Application.get_env(:explorer, Explorer.Market.Source) + + Application.put_env( + :explorer, + Explorer.Market.Source, + Keyword.merge(source_configuration || [], + native_coin_source: Mobula, + secondary_coin_source: Mobula, + tokens_source: Mobula, + native_coin_history_source: Mobula, + secondary_coin_history_source: Mobula, + market_cap_history_source: Mobula, + tvl_history_source: Mobula + ) + ) + + Application.put_env( + :explorer, + Mobula, + Keyword.merge(mobula_configuration || [], + base_url: "http://localhost:#{bypass.port}", + coin_id: "native_coin", + secondary_coin_id: "secondary_coin", + platform: "test_platform" + ) + ) + + Application.put_env(:tesla, :adapter, Tesla.Adapter.Mint) + + on_exit(fn -> + Application.put_env(:explorer, Explorer.Market.Source, source_configuration) + Application.put_env(:explorer, Mobula, mobula_configuration) + Application.put_env(:tesla, :adapter, Explorer.Mock.TeslaAdapter) + end) + + {:ok, bypass: bypass} + end + + describe "native_coin_fetching_enabled?" do + test "returns true if coin_id is configured" do + assert Mobula.native_coin_fetching_enabled?() + end + + test "returns false if coin_id is not configured" do + config = Application.get_env(:explorer, Mobula) + Application.put_env(:explorer, Mobula, Keyword.merge(config, coin_id: nil)) + + refute Mobula.native_coin_fetching_enabled?() + end + end + + describe "fetch_native_coin/0" do + test "fetches native coin", %{bypass: bypass} do + Bypass.expect_once(bypass, "GET", "/market/data", fn conn -> + assert conn.query_string == "asset=native_coin" + Conn.resp(conn, 200, json_market_data("native_coin", "2500.5")) + end) + + assert {:ok, + %Explorer.Market.Token{ + available_supply: Decimal.new("120000000"), + total_supply: Decimal.new("150000000"), + btc_value: nil, + last_updated: nil, + market_cap: Decimal.new("300000000000"), + tvl: nil, + name: "Ethereum", + symbol: "ETH", + fiat_value: Decimal.new("2500.5"), + volume_24h: Decimal.new("15000000000"), + image_url: "https://example.com/eth.png", + circulating_supply: Decimal.new("120000000") + }} == Mobula.fetch_native_coin() + end + + test "returns error when coin_id not configured" do + config = Application.get_env(:explorer, Mobula) + Application.put_env(:explorer, Mobula, Keyword.merge(config, coin_id: nil)) + + assert {:error, "Coin ID not specified"} == Mobula.fetch_native_coin() + end + end + + describe "secondary_coin_fetching_enabled?" do + test "returns true if secondary_coin_id is configured" do + assert Mobula.secondary_coin_fetching_enabled?() + end + + test "returns false if secondary_coin_id is not configured" do + config = Application.get_env(:explorer, Mobula) + Application.put_env(:explorer, Mobula, Keyword.merge(config, secondary_coin_id: nil)) + + refute Mobula.secondary_coin_fetching_enabled?() + end + end + + describe "fetch_secondary_coin/0" do + test "fetches secondary coin", %{bypass: bypass} do + Bypass.expect_once(bypass, "GET", "/market/data", fn conn -> + assert conn.query_string == "asset=secondary_coin" + Conn.resp(conn, 200, json_market_data("secondary_coin", "95000.0")) + end) + + assert {:ok, + %Explorer.Market.Token{ + available_supply: Decimal.new("120000000"), + total_supply: Decimal.new("150000000"), + btc_value: nil, + last_updated: nil, + market_cap: Decimal.new("300000000000"), + tvl: nil, + name: "Ethereum", + symbol: "ETH", + fiat_value: Decimal.new("9.5E+4"), + volume_24h: Decimal.new("15000000000"), + image_url: "https://example.com/eth.png", + circulating_supply: Decimal.new("120000000") + }} == Mobula.fetch_secondary_coin() + end + + test "returns error when secondary_coin_id not configured" do + config = Application.get_env(:explorer, Mobula) + Application.put_env(:explorer, Mobula, Keyword.merge(config, secondary_coin_id: nil)) + + assert {:error, "Secondary coin ID not specified"} == Mobula.fetch_secondary_coin() + end + end + + describe "tokens_fetching_enabled?" do + test "returns true if platform is configured" do + assert Mobula.tokens_fetching_enabled?() + end + + test "returns false if platform is not configured" do + config = Application.get_env(:explorer, Mobula) + Application.put_env(:explorer, Mobula, Keyword.merge(config, platform: nil)) + + refute Mobula.tokens_fetching_enabled?() + end + end + + describe "fetch_tokens/2" do + test "fetches tokens with nil state", %{bypass: bypass} do + Bypass.expect_once(bypass, "GET", "/market/query", fn conn -> + assert conn.query_string == "sortBy=market_cap&blockchain=test_platform&limit=5&offset=0" + Conn.resp(conn, 200, json_market_query()) + end) + + assert {:ok, nil, true, + [ + %{ + name: "Token B", + symbol: "TKB", + type: "ERC-20", + contract_address_hash: %Explorer.Chain.Hash{ + byte_count: 20, + bytes: <<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2>> + }, + fiat_value: Decimal.new("2.0"), + volume_24h: Decimal.new("200000"), + circulating_market_cap: Decimal.new("2000000"), + circulating_supply: Decimal.new("1000000"), + icon_url: "https://example.com/tkb.png" + }, + %{ + name: "Token A", + symbol: "TKA", + type: "ERC-20", + contract_address_hash: %Explorer.Chain.Hash{ + byte_count: 20, + bytes: <<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1>> + }, + fiat_value: Decimal.new("1.5"), + volume_24h: Decimal.new("100000"), + circulating_market_cap: Decimal.new("1500000"), + circulating_supply: Decimal.new("1000000"), + icon_url: "https://example.com/tka.png" + } + ]} == Mobula.fetch_tokens(nil, 5) + end + + test "paginates with batch size", %{bypass: bypass} do + Bypass.expect_once(bypass, "GET", "/market/query", fn conn -> + assert conn.query_string == "sortBy=market_cap&blockchain=test_platform&limit=1&offset=0" + Conn.resp(conn, 200, json_market_query_single()) + end) + + assert {:ok, 1, false, + [ + %{ + name: "Token A", + symbol: "TKA", + type: "ERC-20", + contract_address_hash: %Explorer.Chain.Hash{ + byte_count: 20, + bytes: <<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1>> + }, + fiat_value: Decimal.new("1.5"), + volume_24h: Decimal.new("100000"), + circulating_market_cap: Decimal.new("1500000"), + circulating_supply: Decimal.new("1000000"), + icon_url: "https://example.com/tka.png" + } + ]} == Mobula.fetch_tokens(nil, 1) + end + end + + describe "native_coin_price_history_fetching_enabled?" do + test "returns true if coin_id is configured" do + assert Mobula.native_coin_price_history_fetching_enabled?() + end + + test "returns false if coin_id is not configured" do + config = Application.get_env(:explorer, Mobula) + Application.put_env(:explorer, Mobula, Keyword.merge(config, coin_id: nil)) + + refute Mobula.native_coin_price_history_fetching_enabled?() + end + end + + describe "fetch_native_coin_price_history/1" do + test "fetches native coin price history", %{bypass: bypass} do + Bypass.expect_once(bypass, "GET", "/market/history", fn conn -> + assert conn.query_string =~ "asset=native_coin&from=" + Conn.resp(conn, 200, json_market_history()) + end) + + assert {:ok, + [ + %{ + date: ~D[2025-02-12], + opening_price: Decimal.new("2.5E+3"), + closing_price: Decimal.new("2.5E+3"), + secondary_coin: false + }, + %{ + date: ~D[2025-02-13], + opening_price: Decimal.new("2.6E+3"), + closing_price: Decimal.new("2.6E+3"), + secondary_coin: false + }, + %{ + date: ~D[2025-02-14], + opening_price: Decimal.new("2.7E+3"), + closing_price: Decimal.new("2.7E+3"), + secondary_coin: false + } + ]} == Mobula.fetch_native_coin_price_history(3) + end + end + + describe "secondary_coin_price_history_fetching_enabled?" do + test "returns true if secondary_coin_id is configured" do + assert Mobula.secondary_coin_price_history_fetching_enabled?() + end + + test "returns false if secondary_coin_id is not configured" do + config = Application.get_env(:explorer, Mobula) + Application.put_env(:explorer, Mobula, Keyword.merge(config, secondary_coin_id: nil)) + + refute Mobula.secondary_coin_price_history_fetching_enabled?() + end + end + + describe "fetch_secondary_coin_price_history/1" do + test "fetches secondary coin price history", %{bypass: bypass} do + Bypass.expect_once(bypass, "GET", "/market/history", fn conn -> + assert conn.query_string =~ "asset=secondary_coin&from=" + Conn.resp(conn, 200, json_market_history()) + end) + + assert {:ok, + [ + %{ + date: ~D[2025-02-12], + opening_price: Decimal.new("2.5E+3"), + closing_price: Decimal.new("2.5E+3"), + secondary_coin: true + }, + %{ + date: ~D[2025-02-13], + opening_price: Decimal.new("2.6E+3"), + closing_price: Decimal.new("2.6E+3"), + secondary_coin: true + }, + %{ + date: ~D[2025-02-14], + opening_price: Decimal.new("2.7E+3"), + closing_price: Decimal.new("2.7E+3"), + secondary_coin: true + } + ]} == Mobula.fetch_secondary_coin_price_history(3) + end + end + + describe "market_cap_history_fetching_enabled?" do + test "ignored" do + assert Mobula.market_cap_history_fetching_enabled?() == :ignore + end + end + + describe "fetch_market_cap_history/1" do + test "ignored" do + assert Mobula.fetch_market_cap_history(3) == :ignore + end + end + + describe "tvl_history_fetching_enabled?" do + test "ignored" do + assert Mobula.tvl_history_fetching_enabled?() == :ignore + end + end + + describe "fetch_tvl_history/1" do + test "ignored" do + assert Mobula.fetch_tvl_history(3) == :ignore + end + end + + defp json_market_data(_coin_id, price) do + """ + { + "data": { + "name": "Ethereum", + "symbol": "ETH", + "price": #{price}, + "market_cap": 300000000000, + "circulating_supply": 120000000, + "total_supply": 150000000, + "off_chain_volume": 15000000000, + "logo": "https://example.com/eth.png" + } + } + """ + end + + defp json_market_query do + """ + [ + { + "name": "Token A", + "symbol": "TKA", + "price": 1.5, + "market_cap": 1500000, + "circulating_supply": 1000000, + "off_chain_volume": 100000, + "logo": "https://example.com/tka.png", + "contracts": [{"address": "0x0000000000000000000000000000000000000001"}] + }, + { + "name": "Token B", + "symbol": "TKB", + "price": 2.0, + "market_cap": 2000000, + "circulating_supply": 1000000, + "off_chain_volume": 200000, + "logo": "https://example.com/tkb.png", + "contracts": [{"address": "0x0000000000000000000000000000000000000002"}] + } + ] + """ + end + + defp json_market_query_single do + """ + [ + { + "name": "Token A", + "symbol": "TKA", + "price": 1.5, + "market_cap": 1500000, + "circulating_supply": 1000000, + "off_chain_volume": 100000, + "logo": "https://example.com/tka.png", + "contracts": [{"address": "0x0000000000000000000000000000000000000001"}] + } + ] + """ + end + + defp json_market_history do + """ + { + "data": { + "price_history": [ + [1739318400000, 2500.0], + [1739404800000, 2600.0], + [1739491200000, 2700.0] + ] + } + } + """ + end +end diff --git a/apps/explorer/test/explorer/market/source_test.exs b/apps/explorer/test/explorer/market/source_test.exs new file mode 100644 index 000000000000..9444d57e1386 --- /dev/null +++ b/apps/explorer/test/explorer/market/source_test.exs @@ -0,0 +1,108 @@ +defmodule Explorer.Market.SourceTest do + use ExUnit.Case, async: true + + alias Explorer.Market.Source + + describe "zero_or_nil?/1" do + test "returns true for nil" do + assert Source.zero_or_nil?(nil) + end + + test "returns true for Decimal zero" do + assert Source.zero_or_nil?(Decimal.new(0)) + end + + test "returns true for Decimal zero with different representations" do + assert Source.zero_or_nil?(Decimal.new("0.0")) + assert Source.zero_or_nil?(Decimal.new("0.00")) + end + + test "returns false for positive Decimal" do + refute Source.zero_or_nil?(Decimal.new("1.5")) + end + + test "returns false for negative Decimal" do + refute Source.zero_or_nil?(Decimal.new("-1.5")) + end + end + + describe "to_decimal/1" do + test "returns nil for nil" do + assert Source.to_decimal(nil) == nil + end + + test "returns Decimal as-is" do + decimal = Decimal.new("1.23") + assert Source.to_decimal(decimal) == decimal + end + + test "converts float to Decimal" do + assert Source.to_decimal(3.14) == Decimal.from_float(3.14) + end + + test "converts integer to Decimal" do + assert Source.to_decimal(42) == Decimal.new(42) + end + + test "converts string to Decimal" do + assert Source.to_decimal("123.45") == Decimal.new("123.45") + end + + test "converts zero values" do + assert Source.to_decimal(0) == Decimal.new(0) + assert Source.to_decimal(0.0) == Decimal.from_float(0.0) + assert Source.to_decimal("0") == Decimal.new("0") + end + end + + describe "maybe_get_date/1" do + test "returns nil for nil" do + assert Source.maybe_get_date(nil) == nil + end + + test "parses valid ISO8601 date" do + assert Source.maybe_get_date("2025-02-14T05:40:07.774Z") == ~U[2025-02-14 05:40:07.774Z] + end + + test "returns nil for invalid date string" do + assert Source.maybe_get_date("not-a-date") == nil + end + + test "returns nil for empty string" do + assert Source.maybe_get_date("") == nil + end + end + + describe "handle_image_url/1" do + test "returns nil for nil" do + assert Source.handle_image_url(nil) == nil + end + + test "returns valid URL" do + url = "https://example.com/image.png" + assert Source.handle_image_url(url) == url + end + + test "returns nil for invalid URL without host" do + assert Source.handle_image_url("not-a-url") == nil + end + end + + describe "secondary_coin_string/1" do + test "returns 'Secondary coin' when true" do + assert Source.secondary_coin_string(true) == "Secondary coin" + end + + test "returns 'Coin' when false" do + assert Source.secondary_coin_string(false) == "Coin" + end + end + + describe "unexpected_response_error/2" do + test "formats error message with source and response" do + result = Source.unexpected_response_error("CoinGecko", %{"error" => "bad request"}) + assert result =~ "CoinGecko" + assert result =~ "bad request" + end + end +end diff --git a/apps/explorer/test/explorer/market/token_test.exs b/apps/explorer/test/explorer/market/token_test.exs new file mode 100644 index 000000000000..44ab1b68f925 --- /dev/null +++ b/apps/explorer/test/explorer/market/token_test.exs @@ -0,0 +1,54 @@ +defmodule Explorer.Market.TokenTest do + use ExUnit.Case, async: true + + alias Explorer.Market.Token + + describe "null/0" do + test "returns a Token struct with all nil fields" do + token = Token.null() + assert %Token{} = token + assert token.available_supply == nil + assert token.total_supply == nil + assert token.btc_value == nil + assert token.last_updated == nil + assert token.market_cap == nil + assert token.tvl == nil + assert token.name == nil + assert token.symbol == nil + assert token.fiat_value == nil + assert token.volume_24h == nil + assert token.circulating_supply == nil + assert token.image_url == nil + end + end + + describe "null?/1" do + test "returns true for null token" do + assert Token.null?(Token.null()) + end + + test "returns false for non-null token" do + token = %Token{ + available_supply: Decimal.new("100"), + total_supply: Decimal.new("100"), + btc_value: Decimal.new("1"), + last_updated: ~U[2025-01-01 00:00:00Z], + market_cap: Decimal.new("1000"), + tvl: nil, + name: "Test", + symbol: "TST", + fiat_value: Decimal.new("10"), + volume_24h: Decimal.new("500"), + image_url: "https://example.com/test.png", + circulating_supply: nil + } + + refute Token.null?(token) + end + + test "returns false for token with single non-nil field" do + token = %{Token.null() | name: "Test"} + refute Token.null?(token) + end + end +end diff --git a/apps/explorer/test/explorer/microservice_interfaces/multichain_search_test.exs b/apps/explorer/test/explorer/microservice_interfaces/multichain_search_test.exs index e7ad203598d4..d85883bd6684 100644 --- a/apps/explorer/test/explorer/microservice_interfaces/multichain_search_test.exs +++ b/apps/explorer/test/explorer/microservice_interfaces/multichain_search_test.exs @@ -5,7 +5,7 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearchTest do alias Explorer.Chain.Cache.ChainId alias Explorer.Chain.MultichainSearchDb.{MainExportQueue, TokenInfoExportQueue} - alias Explorer.Chain.{Token, Wei} + alias Explorer.Chain.{Hash, Token, Wei} alias Explorer.MicroserviceInterfaces.MultichainSearch alias Explorer.{Repo, TestHelper} alias Plug.Conn @@ -667,13 +667,13 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearchTest do describe "token_info_http_item_to_queue_item/1" do test "returns correct map to add to queue" do address_hash_string = "0x000102030405060708090a0b0c0d0e0f10111213" - address_hash_binary = Base.decode16!("000102030405060708090a0b0c0d0e0f10111213", case: :mixed) + {:ok, address_hash} = Hash.Address.cast(address_hash_string) assert MultichainSearch.token_info_http_item_to_queue_item(%{ address_hash: address_hash_string, metadata: %{token_type: "ERC-20", name: "TestToken", symbol: "TEST", decimals: 18, total_supply: "1000"} }) == %{ - address_hash: address_hash_binary, + address_hash: address_hash, data_type: :metadata, data: %{token_type: "ERC-20", name: "TestToken", symbol: "TEST", decimals: 18, total_supply: "1000"} } @@ -682,7 +682,7 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearchTest do address_hash: address_hash_string, metadata: %{token_type: "ERC-20"} }) == %{ - address_hash: address_hash_binary, + address_hash: address_hash, data_type: :metadata, data: %{token_type: "ERC-20"} } @@ -691,7 +691,7 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearchTest do address_hash: address_hash_string, metadata: %{total_supply: "1000"} }) == %{ - address_hash: address_hash_binary, + address_hash: address_hash, data_type: :total_supply, data: %{total_supply: "1000"} } @@ -700,7 +700,7 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearchTest do address_hash: address_hash_string, counters: %{holders_count: "123", transfers_count: "456"} }) == %{ - address_hash: address_hash_binary, + address_hash: address_hash, data_type: :counters, data: %{holders_count: "123", transfers_count: "456"} } @@ -709,7 +709,7 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearchTest do address_hash: address_hash_string, price_data: %{fiat_value: "123.456", circulating_market_cap: "1000.0001"} }) == %{ - address_hash: address_hash_binary, + address_hash: address_hash, data_type: :market_data, data: %{fiat_value: "123.456", circulating_market_cap: "1000.0001"} } @@ -940,8 +940,9 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearchTest do :ok [record] = Repo.all(TokenInfoExportQueue) + {:ok, address_hash} = Hash.Address.cast(address_hash_binary) - assert record.address_hash == address_hash_binary && record.data_type == :total_supply && + assert record.address_hash == address_hash && record.data_type == :total_supply && record.data == %{"total_supply" => "123"} end @@ -972,15 +973,19 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearchTest do assert MultichainSearch.send_token_info_to_queue(entries, :total_supply) == :ok records = Repo.all(TokenInfoExportQueue) + {:ok, address1_hash} = Hash.Address.cast(address1_hash_binary) + {:ok, address2_hash} = Hash.Address.cast(address2_hash_binary) + {:ok, address3_hash} = Hash.Address.cast(address3_hash_binary) + {:ok, address4_hash} = Hash.Address.cast(address4_hash_binary) assert Enum.all?(records, fn record -> - (record.address_hash == address1_hash_binary && record.data_type == :total_supply && + (record.address_hash == address1_hash && record.data_type == :total_supply && record.data == %{"total_supply" => "123"}) || - (record.address_hash == address2_hash_binary && record.data_type == :total_supply && + (record.address_hash == address2_hash && record.data_type == :total_supply && record.data == %{"total_supply" => "124"}) || - (record.address_hash == address3_hash_binary && record.data_type == :total_supply && + (record.address_hash == address3_hash && record.data_type == :total_supply && record.data == %{"total_supply" => "125"}) || - (record.address_hash == address4_hash_binary && record.data_type == :total_supply && + (record.address_hash == address4_hash && record.data_type == :total_supply && record.data == %{"total_supply" => "126"}) end) end @@ -1004,8 +1009,9 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearchTest do :ok [record] = Repo.all(TokenInfoExportQueue) + {:ok, address_hash} = Hash.Address.cast(address_hash_binary) - assert record.address_hash == address_hash_binary && record.data_type == :total_supply && + assert record.address_hash == address_hash && record.data_type == :total_supply && record.data == %{"total_supply" => "123"} assert MultichainSearch.send_token_info_to_queue(%{address_hash_binary => %{total_supply: "124"}}, :total_supply) == @@ -1013,7 +1019,7 @@ defmodule Explorer.MicroserviceInterfaces.MultichainSearchTest do [record_new] = Repo.all(TokenInfoExportQueue) - assert record_new.address_hash == address_hash_binary && record_new.data_type == :total_supply && + assert record_new.address_hash == address_hash && record_new.data_type == :total_supply && record_new.data == %{"total_supply" => "124"} && DateTime.compare(record_new.updated_at, record.updated_at) == :gt end diff --git a/apps/explorer/test/explorer/repo/config_helper_test.exs b/apps/explorer/test/explorer/repo/config_helper_test.exs index 71bb85077e31..a9942975e6c3 100644 --- a/apps/explorer/test/explorer/repo/config_helper_test.exs +++ b/apps/explorer/test/explorer/repo/config_helper_test.exs @@ -128,4 +128,102 @@ defmodule Explorer.Repo.ConfigHelperTest do assert result[:database] == "test_database" end end + + describe "ecto_ssl_mode/2" do + test "defaults to require when mode is not set" do + assert ConfigHelper.ecto_ssl_mode(nil, fn _ -> nil end) == "require" + end + + test "reads sslmode from database url" do + database_url = "postgresql://test:test@localhost:5432/test_db?sslmode=verify-full" + + assert ConfigHelper.ecto_ssl_mode(database_url, fn _ -> nil end) == "verify-full" + end + + test "ECTO_SSL_MODE has precedence over database url sslmode" do + database_url = "postgresql://test:test@localhost:5432/test_db?sslmode=disable" + + env_func = fn + "ECTO_SSL_MODE" -> "verify-ca" + _ -> nil + end + + assert ConfigHelper.ecto_ssl_mode(database_url, env_func) == "verify-ca" + end + + test "raises on invalid ssl mode" do + env_func = fn + "ECTO_SSL_MODE" -> "invalid-mode" + _ -> nil + end + + assert_raise ArgumentError, ~r/Unsupported ECTO_SSL_MODE value/, fn -> + ConfigHelper.ecto_ssl_mode(nil, env_func) + end + end + end + + describe "ssl_options/2" do + test "defaults to require (verify_none) when mode is not set" do + assert ConfigHelper.ssl_options(nil, fn _ -> nil end) == [ssl: [verify: :verify_none]] + end + + test "maps disable to ssl false" do + env_func = fn + "ECTO_SSL_MODE" -> "disable" + _ -> nil + end + + assert ConfigHelper.ssl_options(nil, env_func) == [ssl: false] + end + + test "maps allow to verify_none SSL" do + env_func = fn + "ECTO_SSL_MODE" -> "allow" + _ -> nil + end + + assert ConfigHelper.ssl_options(nil, env_func) == [ssl: [verify: :verify_none]] + end + + test "maps prefer to verify_none SSL" do + env_func = fn + "ECTO_SSL_MODE" -> "prefer" + _ -> nil + end + + assert ConfigHelper.ssl_options(nil, env_func) == [ssl: [verify: :verify_none]] + end + + test "maps require to verify_none SSL" do + env_func = fn + "ECTO_SSL_MODE" -> "require" + _ -> nil + end + + assert ConfigHelper.ssl_options(nil, env_func) == [ssl: [verify: :verify_none]] + end + + test "maps verify-ca to peer verification without SNI" do + env_func = fn + "ECTO_SSL_MODE" -> "verify-ca" + _ -> nil + end + + ssl_options = ConfigHelper.ssl_options(nil, env_func)[:ssl] + + assert ssl_options[:verify] == :verify_peer + assert ssl_options[:server_name_indication] == :disable + assert ssl_options[:cacerts] == :public_key.cacerts_get() + end + + test "maps verify-full to secure Postgrex defaults" do + env_func = fn + "ECTO_SSL_MODE" -> "verify-full" + _ -> nil + end + + assert ConfigHelper.ssl_options(nil, env_func) == [ssl: true] + end + end end diff --git a/apps/explorer/test/support/factory.ex b/apps/explorer/test/support/factory.ex index 9f7a4af005f0..9f84c806080e 100644 --- a/apps/explorer/test/support/factory.ex +++ b/apps/explorer/test/support/factory.ex @@ -326,7 +326,7 @@ defmodule Explorer.Factory do end %MultichainSearchDb.TokenInfoExportQueue{ - address_hash: address_hash().bytes, + address_hash: address_hash(), data_type: data_type, data: data } diff --git a/apps/explorer/test/support/fakes/one_coin_source.ex b/apps/explorer/test/support/fakes/one_coin_source.ex index 8152a12326fd..06ad5c0005f9 100644 --- a/apps/explorer/test/support/fakes/one_coin_source.ex +++ b/apps/explorer/test/support/fakes/one_coin_source.ex @@ -17,7 +17,8 @@ defmodule Explorer.Market.Source.OneCoinSource do symbol: Explorer.coin(), fiat_value: Decimal.new(1), volume_24h: Decimal.new(1), - image_url: nil + image_url: nil, + circulating_supply: Decimal.new(10_000_000) } {:ok, address_hash} = Hash.Address.cast("0x0000000000000000000000000000000000000001") diff --git a/apps/indexer/test/indexer/fetcher/multichain_search_db/token_info_export_queue_test.exs b/apps/indexer/test/indexer/fetcher/multichain_search_db/token_info_export_queue_test.exs index 879d32df8d35..bf3b2aa5ca24 100644 --- a/apps/indexer/test/indexer/fetcher/multichain_search_db/token_info_export_queue_test.exs +++ b/apps/indexer/test/indexer/fetcher/multichain_search_db/token_info_export_queue_test.exs @@ -4,6 +4,7 @@ defmodule Indexer.Fetcher.MultichainSearchDb.TokenInfoExportQueueTest do import ExUnit.CaptureLog, only: [capture_log: 1] + alias Explorer.Chain.Hash alias Explorer.Chain.MultichainSearchDb.TokenInfoExportQueue alias Explorer.MicroserviceInterfaces.MultichainSearch alias Explorer.TestHelper @@ -140,7 +141,7 @@ defmodule Indexer.Fetcher.MultichainSearchDb.TokenInfoExportQueueTest do token_info_item_2 = insert(:multichain_search_db_export_token_info_queue) token_info_item_3 = insert(:multichain_search_db_export_token_info_queue) token_info_item_4 = insert(:multichain_search_db_export_token_info_queue) - token_info_item_4_address_hash_string = "0x" <> Base.encode16(token_info_item_4.address_hash, case: :lower) + token_info_item_4_address_hash_string = Hash.to_string(token_info_item_4.address_hash) token_info_item_5 = insert(:multichain_search_db_export_token_info_queue) export_data = [ diff --git a/bin/deployment/migrate b/bin/deployment/migrate index b00a8df6b611..cd282e141756 100755 --- a/bin/deployment/migrate +++ b/bin/deployment/migrate @@ -11,7 +11,7 @@ source /etc/environment export DATABASE_URL export POOL_SIZE -export ECTO_USE_SSL +export ECTO_SSL_MODE mix ecto.create mix ecto.migrate diff --git a/config/runtime.exs b/config/runtime.exs index 5ac942b26f65..4d69f9fda25b 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -570,6 +570,13 @@ config :explorer, Explorer.Market.Fetcher.Token, ConfigHelper.parse_integer_env_var("TOKEN_EXCHANGE_RATE_MAX_BATCH_SIZE", 500) ) +token_list_url = ConfigHelper.parse_url_env_var("TOKEN_LIST_URL") + +config :explorer, Explorer.Market.Fetcher.TokenList, + enabled: !is_nil(token_list_url), + token_list_url: token_list_url, + refetch_interval: ConfigHelper.parse_time_env_var("TOKEN_LIST_REFETCH_INTERVAL", "24h") + config :explorer, Explorer.Market.Fetcher.History, enabled: !disable_exchange_rates? && ConfigHelper.parse_bool_env_var("MARKET_HISTORY_FETCHER_ENABLED", "true"), history_fetch_interval: ConfigHelper.parse_time_env_var("MARKET_HISTORY_FETCH_INTERVAL", "1h"), diff --git a/config/runtime/prod.exs b/config/runtime/prod.exs index 0285ad2b54bf..6e0059edc881 100644 --- a/config/runtime/prod.exs +++ b/config/runtime/prod.exs @@ -39,46 +39,75 @@ config :block_scout_web, BlockScoutWeb.HealthEndpoint, pool_size = ConfigHelper.parse_integer_env_var("POOL_SIZE", 50) queue_target = ConfigHelper.parse_integer_env_var("DATABASE_QUEUE_TARGET", 50) +database_url = ConfigHelper.parse_url_env_var("DATABASE_URL") # Configures the database -config :explorer, Explorer.Repo, - url: ConfigHelper.parse_url_env_var("DATABASE_URL"), - pool_size: pool_size, - ssl: ExplorerConfigHelper.ssl_enabled?(), - queue_target: queue_target +config :explorer, + Explorer.Repo, + [ + url: database_url, + pool_size: pool_size, + queue_target: queue_target + ] + |> Keyword.merge(ExplorerConfigHelper.ssl_options(database_url)) + +api_db_url = ExplorerConfigHelper.get_api_db_url() # Configures API the database -config :explorer, Explorer.Repo.Replica1, - url: ExplorerConfigHelper.get_api_db_url(), - pool_size: ConfigHelper.parse_integer_env_var("POOL_SIZE_API", 50), - ssl: ExplorerConfigHelper.ssl_enabled?(), - queue_target: queue_target +config :explorer, + Explorer.Repo.Replica1, + [ + url: api_db_url, + pool_size: ConfigHelper.parse_integer_env_var("POOL_SIZE_API", 50), + queue_target: queue_target + ] + |> Keyword.merge(ExplorerConfigHelper.ssl_options(api_db_url)) + +account_db_url = ExplorerConfigHelper.get_account_db_url() # Configures Account database -config :explorer, Explorer.Repo.Account, - url: ExplorerConfigHelper.get_account_db_url(), - pool_size: ConfigHelper.parse_integer_env_var("ACCOUNT_POOL_SIZE", 50), - ssl: ExplorerConfigHelper.ssl_enabled?(), - queue_target: queue_target +config :explorer, + Explorer.Repo.Account, + [ + url: account_db_url, + pool_size: ConfigHelper.parse_integer_env_var("ACCOUNT_POOL_SIZE", 50), + queue_target: queue_target + ] + |> Keyword.merge(ExplorerConfigHelper.ssl_options(account_db_url)) + +mud_db_url = ExplorerConfigHelper.get_mud_db_url() # Configures Mud database -config :explorer, Explorer.Repo.Mud, - url: ExplorerConfigHelper.get_mud_db_url(), - pool_size: ConfigHelper.parse_integer_env_var("MUD_POOL_SIZE", 50), - ssl: ExplorerConfigHelper.ssl_enabled?(), - queue_target: queue_target +config :explorer, + Explorer.Repo.Mud, + [ + url: mud_db_url, + pool_size: ConfigHelper.parse_integer_env_var("MUD_POOL_SIZE", 50), + queue_target: queue_target + ] + |> Keyword.merge(ExplorerConfigHelper.ssl_options(mud_db_url)) -# Configures Suave database -config :explorer, Explorer.Repo.Suave, - url: ExplorerConfigHelper.get_suave_db_url(), - pool_size: 1, - ssl: ExplorerConfigHelper.ssl_enabled?() +suave_db_url = ExplorerConfigHelper.get_suave_db_url() -config :explorer, Explorer.Repo.EventNotifications, - url: ExplorerConfigHelper.get_event_notification_db_url(), - pool_size: ConfigHelper.parse_integer_env_var("DATABASE_EVENT_POOL_SIZE", 10), - ssl: ExplorerConfigHelper.ssl_enabled?(), - queue_target: queue_target +# Configures Suave database +config :explorer, + Explorer.Repo.Suave, + [ + url: suave_db_url, + pool_size: 1 + ] + |> Keyword.merge(ExplorerConfigHelper.ssl_options(suave_db_url)) + +event_notification_db_url = ExplorerConfigHelper.get_event_notification_db_url() + +config :explorer, + Explorer.Repo.EventNotifications, + [ + url: event_notification_db_url, + pool_size: ConfigHelper.parse_integer_env_var("DATABASE_EVENT_POOL_SIZE", 10), + queue_target: queue_target + ] + |> Keyword.merge(ExplorerConfigHelper.ssl_options(event_notification_db_url)) # Actually the following repos are not started, and its pool size remains # unused. Separating repos for different chain type or feature flag is @@ -105,10 +134,13 @@ for repo <- [ Explorer.Repo.ZkSync, Explorer.Repo.Neon ] do - config :explorer, repo, - url: ConfigHelper.parse_url_env_var("DATABASE_URL"), - pool_size: 1, - ssl: ExplorerConfigHelper.ssl_enabled?() + config :explorer, + repo, + [ + url: database_url, + pool_size: 1 + ] + |> Keyword.merge(ExplorerConfigHelper.ssl_options(database_url)) end variant = Variant.get() diff --git a/cspell.json b/cspell.json index 2c16e6a74a37..9243a33197fd 100644 --- a/cspell.json +++ b/cspell.json @@ -645,6 +645,7 @@ "spex", "splitted", "srcset", + "sslmode", "stabletoken", "staker", "stakers", diff --git a/docker-compose/envs/common-blockscout.env b/docker-compose/envs/common-blockscout.env index 68f1e4bcef1c..23ef4ea8fd40 100644 --- a/docker-compose/envs/common-blockscout.env +++ b/docker-compose/envs/common-blockscout.env @@ -92,12 +92,15 @@ DISABLE_MARKET=true # MARKET_TOKENS_INTERVAL= # MARKET_TOKENS_REFETCH_INTERVAL= # MARKET_TOKENS_MAX_BATCH_SIZE= +# TOKEN_LIST_URL= +# TOKEN_LIST_REFETCH_INTERVAL= # MARKET_HISTORY_FETCHER_ENABLED= # MARKET_HISTORY_FETCH_INTERVAL= # MARKET_HISTORY_FIRST_FETCH_DAY_COUNT= POOL_SIZE=80 POOL_SIZE_API=10 -ECTO_USE_SSL=false +# Supported values: disable, allow, prefer, require, verify-ca, verify-full +ECTO_SSL_MODE=disable # DATADOG_HOST= # DATADOG_PORT= # SPANDEX_BATCH_SIZE= diff --git a/mix.lock b/mix.lock index 92907dd51ca2..538b3222e00a 100644 --- a/mix.lock +++ b/mix.lock @@ -35,7 +35,7 @@ "credo": {:hex, :credo, "1.7.18", "5c5596bf7aedf9c8c227f13272ac499fe8eae6237bd326f2f07dfc173786f042", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "a189d164685fd945809e862fe76a7420c4398fa288d76257662aecb909d6b3e5"}, "csv": {:hex, :csv, "2.5.0", "c47b5a5221bf2e56d6e8eb79e77884046d7fd516280dc7d9b674251e0ae46246", [:mix], [{:parallel_stream, "~> 1.0.4 or ~> 1.1.0", [hex: :parallel_stream, repo: "hexpm", optional: false]}], "hexpm", "e821f541487045c7591a1963eeb42afff0dfa99bdcdbeb3410795a2f59c77d34"}, "dataloader": {:hex, :dataloader, "2.0.2", "c45075e0692e68638a315e14f747bd8d7065fb5f38705cf980f62d4cd344401f", [:mix], [{:ecto, ">= 3.4.3 and < 4.0.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:opentelemetry_process_propagator, "~> 0.2.1 or ~> 0.3", [hex: :opentelemetry_process_propagator, repo: "hexpm", optional: true]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "4c6cabc0b55e96e7de74d14bf37f4a5786f0ab69aa06764a1f39dda40079b098"}, - "db_connection": {:hex, :db_connection, "2.9.0", "a6a97c5c958a2d7091a58a9be40caf41ab496b0701d21e1d1abff3fa27a7f371", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "17d502eacaf61829db98facf6f20808ed33da6ccf495354a41e64fe42f9c509c"}, + "db_connection": {:hex, :db_connection, "2.10.0", "8ff756471e41765bd5563b633f73e9a94bbc138816e8644bb17d0d91bf260a95", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "02cdd01b45efb1b550e68edbbea41be32de9b24bb07e1ea0e9cbc522ac377e54"}, "ddskerl": {:hex, :ddskerl, "0.4.3", "bb97b90eef1b5906520cebdd38da29b18a770b5567f6297927f53566eae9bebb", [:rebar3], [], "hexpm", "4e0f6047c6a002ce38f6ea155276dd918cd635fd0a5edb9e0b46aeb6f7aff2c2"}, "decimal": {:hex, :decimal, "2.3.0", "3ad6255aa77b4a3c4f818171b12d237500e63525c2fd056699967a3e7ea20f62", [:mix], [], "hexpm", "a4d66355cb29cb47c3cf30e71329e58361cfcb37c34235ef3bf1d7bf3773aeac"}, "decorator": {:hex, :decorator, "1.4.0", "a57ac32c823ea7e4e67f5af56412d12b33274661bb7640ec7fc882f8d23ac419", [:mix], [], "hexpm", "0a07cedd9083da875c7418dea95b78361197cf2bf3211d743f6f7ce39656597f"}, @@ -126,7 +126,7 @@ "numbers": {:hex, :numbers, "5.2.4", "f123d5bb7f6acc366f8f445e10a32bd403c8469bdbce8ce049e1f0972b607080", [:mix], [{:coerce, "~> 1.0", [hex: :coerce, repo: "hexpm", optional: false]}, {:decimal, "~> 1.9 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "eeccf5c61d5f4922198395bf87a465b6f980b8b862dd22d28198c5e6fab38582"}, "nx": {:hex, :nx, "0.11.0", "d37723dbd6cfa274a5def6d6664f5680c32e2eb8a1ce25ec6d91751967fa0abf", [:mix], [{:complex, "~> 0.6", [hex: :complex, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "36157b21239aeb251d6cbac23eb0eb3495a5e1e0cbc2e6df16afd2ede1575205"}, "oauth2": {:hex, :oauth2, "2.1.0", "beb657f393814a3a7a8a15bd5e5776ecae341fd344df425342a3b6f1904c2989", [:mix], [{:tesla, "~> 1.5", [hex: :tesla, repo: "hexpm", optional: false]}], "hexpm", "8ac07f85b3307dd1acfeb0ec852f64161b22f57d0ce0c15e616a1dfc8ebe2b41"}, - "oban": {:hex, :oban, "2.20.3", "e4d27336941955886cc7113420c32c63b70b64f10b27e08e3cf2b001153953cd", [:mix], [{:ecto_sql, "~> 3.10", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, "~> 0.9", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:igniter, "~> 0.5", [hex: :igniter, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: true]}, {:myxql, "~> 0.7", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.20", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 1.3", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "075ffbf1279a96bec495bc63d647b08929837d70bcc0427249ffe4d1dddaec33"}, + "oban": {:hex, :oban, "2.22.1", "9d2a38cec95070b31c1e274fae55f3925089f62159d8f3facabee0454d55b257", [:mix], [{:ecto_sql, "~> 3.10", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, "~> 0.9", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:igniter, "~> 0.5", [hex: :igniter, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: true]}, {:myxql, "~> 0.7", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.20", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 1.3", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "af2508c156c5b0ec30b21b0883babf7e2716af35ed5d264095896103fe3cea37"}, "open_api_spex": {:hex, :open_api_spex, "3.22.2", "0b3c4f572ee69cb6c936abf426b9d84d8eebd34960871fd77aead746f0d69cb0", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}, {:poison, "~> 3.0 or ~> 4.0 or ~> 5.0 or ~> 6.0", [hex: :poison, repo: "hexpm", optional: true]}, {:ymlr, "~> 2.0 or ~> 3.0 or ~> 4.0 or ~> 5.0", [hex: :ymlr, repo: "hexpm", optional: true]}], "hexpm", "0a4fc08472d75e9cfe96e0748c6b1565b3b4398f97bf43fcce41b41b6fd3fb33"}, "optimal": {:hex, :optimal, "0.3.6", "46bbf52fbbbd238cda81e02560caa84f93a53c75620f1fe19e81e4ae7b07d1dd", [:mix], [], "hexpm", "1a06ea6a653120226b35b283a1cd10039550f2c566edcdec22b29316d73640fd"}, "parallel_stream": {:hex, :parallel_stream, "1.1.0", "f52f73eb344bc22de335992377413138405796e0d0ad99d995d9977ac29f1ca9", [:mix], [], "hexpm", "684fd19191aedfaf387bbabbeb8ff3c752f0220c8112eb907d797f4592d6e871"}, From 9f26983c400fd11b1449eef7de634c3998c5ba12 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 09:14:14 +0300 Subject: [PATCH 05/31] chore(deps): bump decimal from 2.3.0 to 2.4.1 (#14357) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- mix.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.lock b/mix.lock index 538b3222e00a..fb4f5d1b11b1 100644 --- a/mix.lock +++ b/mix.lock @@ -37,7 +37,7 @@ "dataloader": {:hex, :dataloader, "2.0.2", "c45075e0692e68638a315e14f747bd8d7065fb5f38705cf980f62d4cd344401f", [:mix], [{:ecto, ">= 3.4.3 and < 4.0.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:opentelemetry_process_propagator, "~> 0.2.1 or ~> 0.3", [hex: :opentelemetry_process_propagator, repo: "hexpm", optional: true]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "4c6cabc0b55e96e7de74d14bf37f4a5786f0ab69aa06764a1f39dda40079b098"}, "db_connection": {:hex, :db_connection, "2.10.0", "8ff756471e41765bd5563b633f73e9a94bbc138816e8644bb17d0d91bf260a95", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "02cdd01b45efb1b550e68edbbea41be32de9b24bb07e1ea0e9cbc522ac377e54"}, "ddskerl": {:hex, :ddskerl, "0.4.3", "bb97b90eef1b5906520cebdd38da29b18a770b5567f6297927f53566eae9bebb", [:rebar3], [], "hexpm", "4e0f6047c6a002ce38f6ea155276dd918cd635fd0a5edb9e0b46aeb6f7aff2c2"}, - "decimal": {:hex, :decimal, "2.3.0", "3ad6255aa77b4a3c4f818171b12d237500e63525c2fd056699967a3e7ea20f62", [:mix], [], "hexpm", "a4d66355cb29cb47c3cf30e71329e58361cfcb37c34235ef3bf1d7bf3773aeac"}, + "decimal": {:hex, :decimal, "2.4.1", "6c0fbede12fb122ba685e9ab41c6a40c129e322b3aa192f9e072e61f3a6ffaf2", [:mix], [], "hexpm", "7e618897933a8455f19a727d7c5e50a2c071a544b700e5e724298ecb4340187f"}, "decorator": {:hex, :decorator, "1.4.0", "a57ac32c823ea7e4e67f5af56412d12b33274661bb7640ec7fc882f8d23ac419", [:mix], [], "hexpm", "0a07cedd9083da875c7418dea95b78361197cf2bf3211d743f6f7ce39656597f"}, "deep_merge": {:hex, :deep_merge, "1.0.0", "b4aa1a0d1acac393bdf38b2291af38cb1d4a52806cf7a4906f718e1feb5ee961", [:mix], [], "hexpm", "ce708e5f094b9cd4e8f2be4f00d2f4250c4095be93f8cd6d018c753894885430"}, "dialyxir": {:hex, :dialyxir, "1.4.7", "dda948fcee52962e4b6c5b4b16b2d8fa7d50d8645bbae8b8685c3f9ecb7f5f4d", [:mix], [{:erlex, ">= 0.2.8", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "b34527202e6eb8cee198efec110996c25c5898f43a4094df157f8d28f27d9efe"}, From e6eddc141c9963187656ecc921c5fe36495207f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 09:15:08 +0300 Subject: [PATCH 06/31] chore(deps): bump cldr_utils from 2.29.5 to 2.29.7 (#14355) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- mix.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.lock b/mix.lock index fb4f5d1b11b1..2ba0a9187df1 100644 --- a/mix.lock +++ b/mix.lock @@ -20,7 +20,7 @@ "cbor": {:hex, :cbor, "1.0.2", "9b0af85af291a556e10a0ffd48ba9a21a75e711828fafd3af193d56d95f0907f", [:mix], [], "hexpm", "edbc9b4a16eb93a582437b9b249c340a75af03958e338fb43d8c1be9fc65b864"}, "cc_precompiler": {:hex, :cc_precompiler, "0.1.11", "8c844d0b9fb98a3edea067f94f616b3f6b29b959b6b3bf25fee94ffe34364768", [:mix], [{:elixir_make, "~> 0.7", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "3427232caf0835f94680e5bcf082408a70b48ad68a5f5c0b02a3bea9f3a075b9"}, "certifi": {:hex, :certifi, "2.15.0", "0e6e882fcdaaa0a5a9f2b3db55b1394dba07e8d6d9bcad08318fb604c6839712", [:rebar3], [], "hexpm", "b147ed22ce71d72eafdad94f055165c1c182f61a2ff49df28bcc71d1d5b94a60"}, - "cldr_utils": {:hex, :cldr_utils, "2.29.5", "f43161e04acb4016f5841b2320d69120d51827f5346babb2227893a2c5916dc8", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.5", [hex: :certifi, repo: "hexpm", optional: true]}, {:decimal, "~> 1.9 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "962d3a2028b232ee0a5373941dc411028a9442f53444a4d5d2c354f687db1835"}, + "cldr_utils": {:hex, :cldr_utils, "2.29.7", "2189bc0117efe91c684558e79174b45eb43135595b7d1fe9b57f53917be195c1", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.5", [hex: :certifi, repo: "hexpm", optional: true]}, {:decimal, "~> 1.9 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "4bddcd597fee34e2d2829ae9ef62bcfef8d97ae5f6b75f0c6ee37a3db31aa73a"}, "cloak": {:hex, :cloak, "1.1.4", "aba387b22ea4d80d92d38ab1890cc528b06e0e7ef2a4581d71c3fdad59e997e7", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "92b20527b9aba3d939fab0dd32ce592ff86361547cfdc87d74edce6f980eb3d7"}, "cloak_ecto": {:hex, :cloak_ecto, "1.3.0", "0de127c857d7452ba3c3367f53fb814b0410ff9c680a8d20fbe8b9a3c57a1118", [:mix], [{:cloak, "~> 1.1.1", [hex: :cloak, repo: "hexpm", optional: false]}, {:ecto, "~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}], "hexpm", "314beb0c123b8a800418ca1d51065b27ba3b15f085977e65c0f7b2adab2de1cc"}, "combine": {:hex, :combine, "0.10.0", "eff8224eeb56498a2af13011d142c5e7997a80c8f5b97c499f84c841032e429f", [:mix], [], "hexpm", "1b1dbc1790073076580d0d1d64e42eae2366583e7aecd455d1215b0d16f2451b"}, From efbea3554e8733a335f71c3f8c4554a16c898527 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 09:15:38 +0300 Subject: [PATCH 07/31] chore(deps): bump phoenix_live_view from 1.1.28 to 1.1.30 (#14350) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- mix.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mix.lock b/mix.lock index 2ba0a9187df1..96be3bf9f60e 100644 --- a/mix.lock +++ b/mix.lock @@ -92,7 +92,7 @@ "image": {:hex, :image, "0.63.0", "03efcfeb1cfaac10d6ab364acce2bfa35e6b33b08947f291fdc17df796b36226", [:mix], [{:bumblebee, "~> 0.6", [hex: :bumblebee, repo: "hexpm", optional: true]}, {:evision, "~> 0.1.33 or ~> 0.2", [hex: :evision, repo: "hexpm", optional: true]}, {:exla, "~> 0.9", [hex: :exla, repo: "hexpm", optional: true]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: true]}, {:kino, "~> 0.13", [hex: :kino, repo: "hexpm", optional: true]}, {:nx, "~> 0.10", [hex: :nx, repo: "hexpm", optional: true]}, {:nx_image, "~> 0.1", [hex: :nx_image, repo: "hexpm", optional: true]}, {:phoenix_html, "~> 2.1 or ~> 3.2 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:plug, "~> 1.13", [hex: :plug, repo: "hexpm", optional: true]}, {:req, "~> 0.4", [hex: :req, repo: "hexpm", optional: true]}, {:rustler, "> 0.0.0", [hex: :rustler, repo: "hexpm", optional: true]}, {:scholar, "~> 0.3", [hex: :scholar, repo: "hexpm", optional: true]}, {:sweet_xml, "~> 0.7", [hex: :sweet_xml, repo: "hexpm", optional: false]}, {:vix, "~> 0.33", [hex: :vix, repo: "hexpm", optional: false]}], "hexpm", "63b39a312f889bb61a04a4957977a7cd3fa23974ff56de3feebf46f69c5fa60e"}, "inet_cidr": {:hex, :inet_cidr, "1.0.9", "e0ef72a2942529da78c8e4147d53f2ef5f6f5293335c3637b0fdf83c012cc816", [:mix], [], "hexpm", "172da15ff7cf635b1feaf14f5818be28c811b37cc5fb7c5f7c01058c1c1066cc"}, "inflex": {:hex, :inflex, "2.1.0", "a365cf0821a9dacb65067abd95008ca1b0bb7dcdd85ae59965deef2aa062924c", [:mix], [], "hexpm", "14c17d05db4ee9b6d319b0bff1bdf22aa389a25398d1952c7a0b5f3d93162dd8"}, - "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, + "jason": {:hex, :jason, "1.4.5", "2e3a008590b0b8d7388c20293e9dcc9cf3e5d642fd2a114e4cbbb52e595d940a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "b0c823996102bcd0239b3c2444eb00409b72f6a140c1950bc8b457d836b30684"}, "joken": {:hex, :joken, "2.6.2", "5daaf82259ca603af4f0b065475099ada1b2b849ff140ccd37f4b6828ca6892a", [:mix], [{:jose, "~> 1.11.10", [hex: :jose, repo: "hexpm", optional: false]}], "hexpm", "5134b5b0a6e37494e46dbf9e4dad53808e5e787904b7c73972651b51cce3d72b"}, "joken_jwks": {:hex, :joken_jwks, "1.7.0", "5db750732dddbfb51068c16da6e43439ad8a3932020bdd505e944dd918ec0771", [:mix], [{:hackney, "~> 1.18", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:joken, "~> 2.6", [hex: :joken, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:tesla, "~> 1.4", [hex: :tesla, repo: "hexpm", optional: false]}], "hexpm", "c1dd2d5161f079f660bda773c338d3ff2b90bb79673a0852becc0433416797d3"}, "jose": {:hex, :jose, "1.11.10", "a903f5227417bd2a08c8a00a0cbcc458118be84480955e8d251297a425723f83", [:mix, :rebar3], [], "hexpm", "0d6cd36ff8ba174db29148fc112b5842186b68a90ce9fc2b3ec3afe76593e614"}, @@ -136,7 +136,7 @@ "phoenix_html": {:hex, :phoenix_html, "4.2.1", "35279e2a39140068fc03f8874408d58eef734e488fc142153f055c5454fd1c08", [:mix], [], "hexpm", "cff108100ae2715dd959ae8f2a8cef8e20b593f8dfd031c9cba92702cf23e053"}, "phoenix_html_helpers": {:hex, :phoenix_html_helpers, "1.0.1", "7eed85c52eff80a179391036931791ee5d2f713d76a81d0d2c6ebafe1e11e5ec", [:mix], [{:phoenix_html, "~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "cffd2385d1fa4f78b04432df69ab8da63dc5cf63e07b713a4dcf36a3740e3090"}, "phoenix_live_reload": {:hex, :phoenix_live_reload, "1.6.2", "b18b0773a1ba77f28c52decbb0f10fd1ac4d3ae5b8632399bbf6986e3b665f62", [:mix], [{:file_system, "~> 0.2.10 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "d1f89c18114c50d394721365ffb428cce24f1c13de0467ffa773e2ff4a30d5b9"}, - "phoenix_live_view": {:hex, :phoenix_live_view, "1.1.28", "8a8e123d018025f756605a2fb02a4854f0d3cd7b207f710fef1fd5d9d72d0254", [:mix], [{:igniter, ">= 0.6.16 and < 1.0.0-0", [hex: :igniter, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:lazy_html, "~> 0.1.0", [hex: :lazy_html, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0 or ~> 1.8.0-rc", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "24faad535b65089642c3a7d84088109dc58f49c1f1c5a978659855d643466353"}, + "phoenix_live_view": {:hex, :phoenix_live_view, "1.1.30", "a84af1610755dc208da35d4d45564485edbf18c3f3c77373c4a650dc994cdcdb", [:mix], [{:igniter, ">= 0.6.16 and < 1.0.0-0", [hex: :igniter, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:lazy_html, "~> 0.1.0", [hex: :lazy_html, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0 or ~> 1.8.0-rc", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a353c51ac1e3190910f01a6100c7d5cc02c5e22e7374fd817bd3aedd21149039"}, "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.2.0", "ff3a5616e1bed6804de7773b92cbccfc0b0f473faf1f63d7daf1206c7aeaaa6f", [:mix], [], "hexpm", "adc313a5bf7136039f63cfd9668fde73bba0765e0614cba80c06ac9460ff3e96"}, "phoenix_template": {:hex, :phoenix_template, "1.0.4", "e2092c132f3b5e5b2d49c96695342eb36d0ed514c5b252a77048d5969330d639", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "2c0c81f0e5c6753faf5cca2f229c9709919aba34fab866d3bc05060c9c444206"}, "phoenix_view": {:hex, :phoenix_view, "2.0.4", "b45c9d9cf15b3a1af5fb555c674b525391b6a1fe975f040fb4d913397b31abf4", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}], "hexpm", "4e992022ce14f31fe57335db27a28154afcc94e9983266835bb3040243eb620b"}, @@ -170,7 +170,7 @@ "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.7", "354c321cf377240c7b8716899e182ce4890c5938111a1296add3ec74cf1715df", [:make, :mix, :rebar3], [], "hexpm", "fe4c190e8f37401d30167c8c405eda19469f34577987c76dde613e838bbc67f8"}, "statistex": {:hex, :statistex, "1.1.0", "7fec1eb2f580a0d2c1a05ed27396a084ab064a40cfc84246dbfb0c72a5c761e5", [:mix], [], "hexpm", "f5950ea26ad43246ba2cce54324ac394a4e7408fdcf98b8e230f503a0cba9cf5"}, "sweet_xml": {:hex, :sweet_xml, "0.7.5", "803a563113981aaac202a1dbd39771562d0ad31004ddbfc9b5090bdcd5605277", [:mix], [], "hexpm", "193b28a9b12891cae351d81a0cead165ffe67df1b73fe5866d10629f4faefb12"}, - "telemetry": {:hex, :telemetry, "1.4.1", "ab6de178e2b29b58e8256b92b382ea3f590a47152ca3651ea857a6cae05ac423", [:rebar3], [], "hexpm", "2172e05a27531d3d31dd9782841065c50dd5c3c7699d95266b2edd54c2dafa1c"}, + "telemetry": {:hex, :telemetry, "1.4.2", "a0cb522801dffb1c49fe6e30561badffc7b6d0e180db1300df759faa22062855", [:rebar3], [], "hexpm", "928f6495066506077862c0d1646609eed891a4326bee3126ba54b60af61febb1"}, "tesla": {:hex, :tesla, "1.17.0", "fde23e9d1a237ccdafd5b0d5193769104dad2091e400242f1048f72d7a2d0c11", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:exjsx, ">= 3.0.0", [hex: :exjsx, repo: "hexpm", optional: true]}, {:finch, "~> 0.13", [hex: :finch, repo: "hexpm", optional: true]}, {:fuse, "~> 2.4", [hex: :fuse, repo: "hexpm", optional: true]}, {:gun, ">= 1.0.0", [hex: :gun, repo: "hexpm", optional: true]}, {:hackney, "~> 1.21", [hex: :hackney, repo: "hexpm", optional: true]}, {:ibrowse, "4.4.2", [hex: :ibrowse, repo: "hexpm", optional: true]}, {:jason, ">= 1.0.0", [hex: :jason, repo: "hexpm", optional: true]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.0", [hex: :mint, repo: "hexpm", optional: true]}, {:mox, "~> 1.0", [hex: :mox, repo: "hexpm", optional: true]}, {:msgpax, "~> 2.3", [hex: :msgpax, repo: "hexpm", optional: true]}, {:opentelemetry_semantic_conventions, "~> 1.27", [hex: :opentelemetry_semantic_conventions, repo: "hexpm", optional: true]}, {:poison, ">= 1.0.0", [hex: :poison, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm", "98c85e5e614dad082789835d9561e2534c9b5aa980d45e465b898b166c2f3b21"}, "timex": {:hex, :timex, "3.7.13", "0688ce11950f5b65e154e42b47bf67b15d3bc0e0c3def62199991b8a8079a1e2", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.26", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 1.1", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm", "09588e0522669328e973b8b4fd8741246321b3f0d32735b589f78b136e6d4c54"}, "ton": {:hex, :ton, "0.5.1", "79745434a93e5f7de3572fdcf04feb048620f0edab9794fc412a73528672927d", [:mix], [{:cafezinho, "~> 0.4.4", [hex: :cafezinho, repo: "hexpm", optional: false]}, {:evil_crc32c, "~> 0.2.9", [hex: :evil_crc32c, repo: "hexpm", optional: false]}, {:ex_pbkdf2, "~> 0.8.4", [hex: :ex_pbkdf2, repo: "hexpm", optional: false]}, {:mnemoniac, "~> 0.1.4", [hex: :mnemoniac, repo: "hexpm", optional: false]}], "hexpm", "916f656c870902a61690347da9500c5ce27f04c02e02441363bac7b128030f07"}, From 768bf568efd00cc38f5ffe78da4e28b54977a426 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 09:17:31 +0300 Subject: [PATCH 08/31] chore(deps): bump absinthe_phoenix from 2.0.4 to 2.0.5 (#14345) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- mix.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mix.lock b/mix.lock index 96be3bf9f60e..158c779ab778 100644 --- a/mix.lock +++ b/mix.lock @@ -1,6 +1,6 @@ %{ - "absinthe": {:hex, :absinthe, "1.10.0", "58e4923c2a96bf12cba9aad9298f36f624533039f2e5305badf0d60904eee0a0", [:mix], [{:dataloader, "~> 1.0.0 or ~> 2.0", [hex: :dataloader, repo: "hexpm", optional: true]}, {:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}, {:opentelemetry_process_propagator, "~> 0.2.1 or ~> 0.3", [hex: :opentelemetry_process_propagator, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "6810d21f13a2b4783d1b7f468c63a5174d769a3035f188e3fc93f440128a46af"}, - "absinthe_phoenix": {:hex, :absinthe_phoenix, "2.0.4", "f36999412fbd6a2339abb5b7e24a4cc9492bbc7909d5806deeef83b06f55c508", [:mix], [{:absinthe, "~> 1.5", [hex: :absinthe, repo: "hexpm", optional: false]}, {:absinthe_plug, "~> 1.5", [hex: :absinthe_plug, repo: "hexpm", optional: false]}, {:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.5", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.13 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}], "hexpm", "66617ee63b725256ca16264364148b10b19e2ecb177488cd6353584f2e6c1cf3"}, + "absinthe": {:hex, :absinthe, "1.10.2", "7951efe6d22c7524752dc5e3fd4289e5bfb1d1e9ee2da2c79431c585552ded2e", [:mix], [{:dataloader, "~> 1.0.0 or ~> 2.0", [hex: :dataloader, repo: "hexpm", optional: true]}, {:decimal, "~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}, {:opentelemetry_process_propagator, "~> 0.2.1 or ~> 0.3", [hex: :opentelemetry_process_propagator, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "3948d6948c45b5cfd375892e578943eac8642d0a34b15e2a92ffdcdda9d91a22"}, + "absinthe_phoenix": {:hex, :absinthe_phoenix, "2.0.5", "1fdcfc59db241b1d5e45e4c8c9db162277e64ec5728e0fd6958a3fa491a05b82", [:mix], [{:absinthe, "~> 1.5", [hex: :absinthe, repo: "hexpm", optional: false]}, {:absinthe_plug, "~> 1.5", [hex: :absinthe_plug, repo: "hexpm", optional: false]}, {:decimal, "~> 1.0 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.5", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.13 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}], "hexpm", "086c6d4a1c32f7444713130d204c87b1b006169f5159026b73f02f7d38ccd05c"}, "absinthe_plug": {:git, "https://github.com/blockscout/absinthe_plug.git", "90a8188e94e2650f13259fb16462075a87f98e18", [tag: "1.5.8"]}, "absinthe_relay": {:hex, :absinthe_relay, "1.6.0", "73590bdb0dcc192622f39fa11da6fca9df4e339b603c45ec7a93493eb94f1829", [:mix], [{:absinthe, ">= 1.7.10", [hex: :absinthe, repo: "hexpm", optional: false]}, {:ecto, "~> 2.0 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: true]}], "hexpm", "32d6397a7af3fd02678ef9bc8e2f574487f14593cb3e4f9110fb1c695d4d2ac0"}, "accept": {:hex, :accept, "0.3.5", "b33b127abca7cc948bbe6caa4c263369abf1347cfa9d8e699c6d214660f10cd1", [:rebar3], [], "hexpm", "11b18c220bcc2eab63b5470c038ef10eb6783bcb1fcdb11aa4137defa5ac1bb8"}, @@ -44,7 +44,7 @@ "digital_token": {:hex, :digital_token, "1.0.0", "454a4444061943f7349a51ef74b7fb1ebd19e6a94f43ef711f7dae88c09347df", [:mix], [{:cldr_utils, "~> 2.17", [hex: :cldr_utils, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "8ed6f5a8c2fa7b07147b9963db506a1b4c7475d9afca6492136535b064c9e9e6"}, "dns": {:hex, :dns, "2.4.0", "44790a0375b28bdc7b59fc894460bfcb03ffeec4c5984e2c3e8b0797b1518327", [:mix], [], "hexpm", "e178e353c469820d02ba889d6a80d01c8c27b47dfcda4016a9cbc6218e3eed64"}, "earmark_parser": {:hex, :earmark_parser, "1.4.44", "f20830dd6b5c77afe2b063777ddbbff09f9759396500cdbe7523efd58d7a339c", [:mix], [], "hexpm", "4778ac752b4701a5599215f7030989c989ffdc4f6df457c5f36938cc2d2a2750"}, - "ecto": {:hex, :ecto, "3.13.5", "9d4a69700183f33bf97208294768e561f5c7f1ecf417e0fa1006e4a91713a834", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "df9efebf70cf94142739ba357499661ef5dbb559ef902b68ea1f3c1fabce36de"}, + "ecto": {:hex, :ecto, "3.13.6", "352135b474f91d1ab99a1b502171d207e9db60421c9e3d0ecab4c7ab96b24d14", [:mix], [{:decimal, "~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "8afa059bc16cd2c94739ec0a11e3e5df69d828125119109bef35f20a21a76af2"}, "ecto_sql": {:hex, :ecto_sql, "3.13.5", "2f8282b2ad97bf0f0d3217ea0a6fff320ead9e2f8770f810141189d182dc304e", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.13.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.7", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.19 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "aa36751f4e6a2b56ae79efb0e088042e010ff4935fc8684e74c23b1f49e25fdc"}, "elixir_make": {:hex, :elixir_make, "0.9.0", "6484b3cd8c0cee58f09f05ecaf1a140a8c97670671a6a0e7ab4dc326c3109726", [:mix], [], "hexpm", "db23d4fd8b757462ad02f8aa73431a426fe6671c80b200d9710caf3d1dd0ffdb"}, "erlex": {:hex, :erlex, "0.2.8", "cd8116f20f3c0afe376d1e8d1f0ae2452337729f68be016ea544a72f767d9c12", [:mix], [], "hexpm", "9d66ff9fedf69e49dc3fd12831e12a8a37b76f8651dd21cd45fcf5561a8a7590"}, From 22525658821caab94b6a6518d50e50030643b0e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 09:22:43 +0300 Subject: [PATCH 09/31] chore(deps-dev): bump ex_doc from 0.40.1 to 0.40.2 (#14341) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- mix.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mix.lock b/mix.lock index 158c779ab778..4ded98b4518b 100644 --- a/mix.lock +++ b/mix.lock @@ -60,7 +60,7 @@ "ex_cldr_lists": {:hex, :ex_cldr_lists, "2.12.2", "731532a3c0a9bfd062acbe79fd39affa4d6e3e5aa5b08a7405524166ce1cd47a", [:mix], [{:ex_cldr_numbers, "~> 2.25", [hex: :ex_cldr_numbers, repo: "hexpm", optional: false]}, {:ex_doc, "~> 0.18", [hex: :ex_doc, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "16e0b6dc63091c71a0c9a2c50e13db64798f261c3e121d7e3fb7d354872180e8"}, "ex_cldr_numbers": {:hex, :ex_cldr_numbers, "2.38.1", "e5124e288a8e672831e10d39530ecb5329bc9af2169709ebfbadc814cae7d4fb", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:digital_token, "~> 0.3 or ~> 1.0", [hex: :digital_token, repo: "hexpm", optional: false]}, {:ex_cldr, "~> 2.45", [hex: :ex_cldr, repo: "hexpm", optional: false]}, {:ex_cldr_currencies, "~> 2.17", [hex: :ex_cldr_currencies, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "4f95738f1dc4e821485e52226666f7691c9276bf6eba49cba8d23c8a2db05e84"}, "ex_cldr_units": {:hex, :ex_cldr_units, "3.20.3", "3b0588a9956aa432b1df6ae502ec75f27a221d331741b4e504c09ef855cc18be", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:ex_cldr_lists, "~> 2.10", [hex: :ex_cldr_lists, repo: "hexpm", optional: false]}, {:ex_cldr_numbers, "~> 2.36", [hex: :ex_cldr_numbers, repo: "hexpm", optional: false]}, {:ex_doc, "~> 0.18", [hex: :ex_doc, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "0a2e7ce4f46e4b72bbbc7a9bb7def2e4d3910b76e41cace8b7d117801cd9ddcd"}, - "ex_doc": {:hex, :ex_doc, "0.40.1", "67542e4b6dde74811cfd580e2c0149b78010fd13001fda7cfeb2b2c2ffb1344d", [:mix], [{:earmark_parser, "~> 1.4.44", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "bcef0e2d360d93ac19f01a85d58f91752d930c0a30e2681145feea6bd3516e00"}, + "ex_doc": {:hex, :ex_doc, "0.40.2", "f50edec428c4b0a457a167de42414c461122a3585a99515a69d09fff19e5597e", [:mix], [{:earmark_parser, "~> 1.4.44", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "4fa426e2beb47854a162e2c488727fdec51cd4692e319b23810c2804cb1a40fe"}, "ex_eth_bls": {:hex, :ex_eth_bls, "0.1.0", "33c2bf424b360e4b64d7630dd72ec028dac63df56802d0a14ade54a23ad1c743", [:mix], [{:rustler, ">= 0.0.0", [hex: :rustler, repo: "hexpm", optional: true]}, {:rustler_precompiled, "~> 0.8", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "25f6ffc36de4952e55adff1c712f0b9680850773678550f1da970d4d18329365"}, "ex_hash_ring": {:hex, :ex_hash_ring, "6.0.4", "bef9d2d796afbbe25ab5b5a7ed746e06b99c76604f558113c273466d52fa6d6b", [:mix], [], "hexpm", "89adabf31f7d3dfaa36802ce598ce918e9b5b33bae8909ac1a4d052e1e567d18"}, "ex_json_schema": {:hex, :ex_json_schema, "0.11.2", "8f8200e6afa5473f37dbebd1e72bf97d8d5dd0128125123ed1532611267f0138", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "395f4aaf32ea0a14d861b16695e7bc8a1b5d841e0fd374d25aef9701bf8da825"}, @@ -104,7 +104,7 @@ "logger_json": {:hex, :logger_json, "7.0.4", "e315f2b9a755504658a745f3eab90d88d2cd7ac2ecfd08c8da94d8893965ab5c", [:mix], [{:decimal, ">= 0.0.0", [hex: :decimal, repo: "hexpm", optional: true]}, {:ecto, "~> 3.11", [hex: :ecto, repo: "hexpm", optional: true]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: true]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm", "d1369f8094e372db45d50672c3b91e8888bcd695fdc444a37a0734e96717c45c"}, "makeup": {:hex, :makeup, "1.2.1", "e90ac1c65589ef354378def3ba19d401e739ee7ee06fb47f94c687016e3713d1", [:mix], [{:nimble_parsec, "~> 1.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "d36484867b0bae0fea568d10131197a4c2e47056a6fbe84922bf6ba71c8d17ce"}, "makeup_elixir": {:hex, :makeup_elixir, "1.0.1", "e928a4f984e795e41e3abd27bfc09f51db16ab8ba1aebdba2b3a575437efafc2", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "7284900d412a3e5cfd97fdaed4f5ed389b8f2b4cb49efc0eb3bd10e2febf9507"}, - "makeup_erlang": {:hex, :makeup_erlang, "1.0.3", "4252d5d4098da7415c390e847c814bad3764c94a814a0b4245176215615e1035", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "953297c02582a33411ac6208f2c6e55f0e870df7f80da724ed613f10e6706afd"}, + "makeup_erlang": {:hex, :makeup_erlang, "1.1.0", "835f7e60792e08824cda445639555d7bf1bbbddb1b60b306e33cb6f6db24dc74", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "1cd6780fb1dd1a03979abaed0fe82712b0625118fd5257d3ebbf73f960c73c3c"}, "math": {:hex, :math, "0.7.0", "12af548c3892abf939a2e242216c3e7cbfb65b9b2fe0d872d05c6fb609f8127b", [:mix], [], "hexpm", "7987af97a0c6b58ad9db43eb5252a49fc1dfe1f6d98f17da9282e297f594ebc2"}, "meck": {:hex, :meck, "0.9.2", "85ccbab053f1db86c7ca240e9fc718170ee5bda03810a6292b5306bf31bae5f5", [:rebar3], [], "hexpm", "81344f561357dc40a8344afa53767c32669153355b626ea9fcbc8da6b3045826"}, "memento": {:hex, :memento, "0.3.2", "38cfc8ff9bcb1adff7cbd0f3b78a762636b86dff764729d1c82d0464c539bdd0", [:mix], [], "hexpm", "25cf691a98a0cb70262f4a7543c04bab24648cb2041d937eb64154a8d6f8012b"}, From 4261212a855e3315e9bf2a877eaff821781616d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 12:27:14 +0300 Subject: [PATCH 10/31] chore(deps): bump open_api_spex from 3.22.2 to 3.22.3 (#14353) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- mix.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.lock b/mix.lock index 4ded98b4518b..c86a4ce4a3aa 100644 --- a/mix.lock +++ b/mix.lock @@ -127,7 +127,7 @@ "nx": {:hex, :nx, "0.11.0", "d37723dbd6cfa274a5def6d6664f5680c32e2eb8a1ce25ec6d91751967fa0abf", [:mix], [{:complex, "~> 0.6", [hex: :complex, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "36157b21239aeb251d6cbac23eb0eb3495a5e1e0cbc2e6df16afd2ede1575205"}, "oauth2": {:hex, :oauth2, "2.1.0", "beb657f393814a3a7a8a15bd5e5776ecae341fd344df425342a3b6f1904c2989", [:mix], [{:tesla, "~> 1.5", [hex: :tesla, repo: "hexpm", optional: false]}], "hexpm", "8ac07f85b3307dd1acfeb0ec852f64161b22f57d0ce0c15e616a1dfc8ebe2b41"}, "oban": {:hex, :oban, "2.22.1", "9d2a38cec95070b31c1e274fae55f3925089f62159d8f3facabee0454d55b257", [:mix], [{:ecto_sql, "~> 3.10", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, "~> 0.9", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:igniter, "~> 0.5", [hex: :igniter, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: true]}, {:myxql, "~> 0.7", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.20", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 1.3", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "af2508c156c5b0ec30b21b0883babf7e2716af35ed5d264095896103fe3cea37"}, - "open_api_spex": {:hex, :open_api_spex, "3.22.2", "0b3c4f572ee69cb6c936abf426b9d84d8eebd34960871fd77aead746f0d69cb0", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}, {:poison, "~> 3.0 or ~> 4.0 or ~> 5.0 or ~> 6.0", [hex: :poison, repo: "hexpm", optional: true]}, {:ymlr, "~> 2.0 or ~> 3.0 or ~> 4.0 or ~> 5.0", [hex: :ymlr, repo: "hexpm", optional: true]}], "hexpm", "0a4fc08472d75e9cfe96e0748c6b1565b3b4398f97bf43fcce41b41b6fd3fb33"}, + "open_api_spex": {:hex, :open_api_spex, "3.22.3", "0e383bf23cc3a060bffaebbcd09fc06bfc908d948c00e518aed36bbf8a2fe473", [:mix], [{:decimal, "~> 1.0 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}, {:poison, "~> 3.0 or ~> 4.0 or ~> 5.0 or ~> 6.0", [hex: :poison, repo: "hexpm", optional: true]}, {:ymlr, "~> 2.0 or ~> 3.0 or ~> 4.0 or ~> 5.0", [hex: :ymlr, repo: "hexpm", optional: true]}], "hexpm", "5f74f1878fdc38f8e961b0b943ac7af88dcf3a82a0c0ef6680ddfd3d161aecbd"}, "optimal": {:hex, :optimal, "0.3.6", "46bbf52fbbbd238cda81e02560caa84f93a53c75620f1fe19e81e4ae7b07d1dd", [:mix], [], "hexpm", "1a06ea6a653120226b35b283a1cd10039550f2c566edcdec22b29316d73640fd"}, "parallel_stream": {:hex, :parallel_stream, "1.1.0", "f52f73eb344bc22de335992377413138405796e0d0ad99d995d9977ac29f1ca9", [:mix], [], "hexpm", "684fd19191aedfaf387bbabbeb8ff3c752f0220c8112eb907d797f4592d6e871"}, "parse_trans": {:hex, :parse_trans, "3.4.1", "6e6aa8167cb44cc8f39441d05193be6e6f4e7c2946cb2759f015f8c56b76e5ff", [:rebar3], [], "hexpm", "620a406ce75dada827b82e453c19cf06776be266f5a67cff34e1ef2cbb60e49a"}, From 81b3d9d320d182d325e31c520712ebfea4751c91 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 13:50:00 +0300 Subject: [PATCH 11/31] chore(deps): bump ex_cldr_units from 3.20.3 to 3.20.4 (#14340) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- mix.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mix.lock b/mix.lock index c86a4ce4a3aa..9be9e5803c85 100644 --- a/mix.lock +++ b/mix.lock @@ -55,11 +55,11 @@ "ex_aws": {:hex, :ex_aws, "2.6.1", "194582c7b09455de8a5ab18a0182e6dd937d53df82be2e63c619d01bddaccdfa", [:mix], [{:configparser_ex, "~> 5.0", [hex: :configparser_ex, repo: "hexpm", optional: true]}, {:hackney, "~> 1.16", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: true]}, {:jsx, "~> 2.8 or ~> 3.0", [hex: :jsx, repo: "hexpm", optional: true]}, {:mime, "~> 1.2 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:req, "~> 0.5.10 or ~> 0.6 or ~> 1.0", [hex: :req, repo: "hexpm", optional: true]}, {:sweet_xml, "~> 0.7", [hex: :sweet_xml, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "67842a08c90a1d9a09dbe4ac05754175c7ca253abe4912987c759395d4bd9d26"}, "ex_aws_s3": {:hex, :ex_aws_s3, "2.5.9", "862b7792f2e60d7010e2920d79964e3fab289bc0fd951b0ba8457a3f7f9d1199", [:mix], [{:ex_aws, "~> 2.0", [hex: :ex_aws, repo: "hexpm", optional: false]}, {:sweet_xml, ">= 0.0.0", [hex: :sweet_xml, repo: "hexpm", optional: true]}], "hexpm", "a480d2bb2da64610014021629800e1e9457ca5e4a62f6775bffd963360c2bf90"}, "ex_brotli": {:hex, :ex_brotli, "0.5.0", "573645db5201317b6176b8858b668ea4ca89dc5c21852e84b9867579d483c220", [:mix], [{:phoenix, ">= 0.0.0", [hex: :phoenix, repo: "hexpm", optional: true]}, {:rustler, "~> 0.29", [hex: :rustler, repo: "hexpm", optional: true]}, {:rustler_precompiled, "~> 0.6", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "8447d98d51f8f312629fd38619d4f564507dcf3a03d175c3f8f4ddf98e46dd92"}, - "ex_cldr": {:hex, :ex_cldr, "2.47.2", "c866f4b45523abd25eea3e5252eb91364296dd15bddf970db1c78cd38f25df9a", [:mix], [{:cldr_utils, "~> 2.29", [hex: :cldr_utils, repo: "hexpm", optional: false]}, {:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:gettext, "~> 0.19 or ~> 1.0", [hex: :gettext, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: true]}], "hexpm", "4a7cef380a1c2546166b45d6ee5e8e2f707ea695b12ae6dadd250201588b4f16"}, - "ex_cldr_currencies": {:hex, :ex_cldr_currencies, "2.17.1", "89947c7102ff1b46fc46095624239a1c3d72499b19ed650597630771d9e4a662", [:mix], [{:ex_cldr, "~> 2.38", [hex: :ex_cldr, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "e266a0a61f4c7d83608154d49b59e4d7485b2aaa7ba1d0e17b3c55910595de51"}, + "ex_cldr": {:hex, :ex_cldr, "2.47.4", "64e1efda73d6c5fa0342d5b6554f39b740fa02ed540dc03997facf573101ad9e", [:mix], [{:cldr_utils, "~> 2.29", [hex: :cldr_utils, repo: "hexpm", optional: false]}, {:decimal, "~> 1.6 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:gettext, "~> 0.19 or ~> 1.0", [hex: :gettext, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: true]}], "hexpm", "918aabc032955f3eac70abbdf2c5469433132edfaaaccee55451f074ee1ccdba"}, + "ex_cldr_currencies": {:hex, :ex_cldr_currencies, "2.17.2", "4892b5255a205e8133297b702abbe13c9b51d0281fa8c2ea100f51df9657c3c7", [:mix], [{:ex_cldr, "~> 2.38", [hex: :ex_cldr, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "797095c106a2fe6632981531e29cfb1d2f8ee7de626f4d6243f974d6f74a0112"}, "ex_cldr_lists": {:hex, :ex_cldr_lists, "2.12.2", "731532a3c0a9bfd062acbe79fd39affa4d6e3e5aa5b08a7405524166ce1cd47a", [:mix], [{:ex_cldr_numbers, "~> 2.25", [hex: :ex_cldr_numbers, repo: "hexpm", optional: false]}, {:ex_doc, "~> 0.18", [hex: :ex_doc, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "16e0b6dc63091c71a0c9a2c50e13db64798f261c3e121d7e3fb7d354872180e8"}, - "ex_cldr_numbers": {:hex, :ex_cldr_numbers, "2.38.1", "e5124e288a8e672831e10d39530ecb5329bc9af2169709ebfbadc814cae7d4fb", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:digital_token, "~> 0.3 or ~> 1.0", [hex: :digital_token, repo: "hexpm", optional: false]}, {:ex_cldr, "~> 2.45", [hex: :ex_cldr, repo: "hexpm", optional: false]}, {:ex_cldr_currencies, "~> 2.17", [hex: :ex_cldr_currencies, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "4f95738f1dc4e821485e52226666f7691c9276bf6eba49cba8d23c8a2db05e84"}, - "ex_cldr_units": {:hex, :ex_cldr_units, "3.20.3", "3b0588a9956aa432b1df6ae502ec75f27a221d331741b4e504c09ef855cc18be", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:ex_cldr_lists, "~> 2.10", [hex: :ex_cldr_lists, repo: "hexpm", optional: false]}, {:ex_cldr_numbers, "~> 2.36", [hex: :ex_cldr_numbers, repo: "hexpm", optional: false]}, {:ex_doc, "~> 0.18", [hex: :ex_doc, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "0a2e7ce4f46e4b72bbbc7a9bb7def2e4d3910b76e41cace8b7d117801cd9ddcd"}, + "ex_cldr_numbers": {:hex, :ex_cldr_numbers, "2.38.2", "7fa47c9547aa5e6e14e952fa0f69e464a6e6328f0ceda84668b88efec4c5a3ae", [:mix], [{:decimal, "~> 1.6 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:digital_token, "~> 0.3 or ~> 1.0", [hex: :digital_token, repo: "hexpm", optional: false]}, {:ex_cldr, "~> 2.45", [hex: :ex_cldr, repo: "hexpm", optional: false]}, {:ex_cldr_currencies, "~> 2.17", [hex: :ex_cldr_currencies, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "a7eda0b3c7b8700a290e4330c6e0f36239225b987ee0332ace19c364ed3a3618"}, + "ex_cldr_units": {:hex, :ex_cldr_units, "3.20.4", "ad88df9680a224ee4f421379c1d22ad2877c7696a436cf56eb3c5de5e828f618", [:mix], [{:decimal, "~> 1.6 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:ex_cldr_lists, "~> 2.10", [hex: :ex_cldr_lists, repo: "hexpm", optional: false]}, {:ex_cldr_numbers, "~> 2.36", [hex: :ex_cldr_numbers, repo: "hexpm", optional: false]}, {:ex_doc, "~> 0.18", [hex: :ex_doc, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "4661fcb41bb847a17c5403def34c3951a526df70b8673272155885ff8f598221"}, "ex_doc": {:hex, :ex_doc, "0.40.2", "f50edec428c4b0a457a167de42414c461122a3585a99515a69d09fff19e5597e", [:mix], [{:earmark_parser, "~> 1.4.44", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "4fa426e2beb47854a162e2c488727fdec51cd4692e319b23810c2804cb1a40fe"}, "ex_eth_bls": {:hex, :ex_eth_bls, "0.1.0", "33c2bf424b360e4b64d7630dd72ec028dac63df56802d0a14ade54a23ad1c743", [:mix], [{:rustler, ">= 0.0.0", [hex: :rustler, repo: "hexpm", optional: true]}, {:rustler_precompiled, "~> 0.8", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "25f6ffc36de4952e55adff1c712f0b9680850773678550f1da970d4d18329365"}, "ex_hash_ring": {:hex, :ex_hash_ring, "6.0.4", "bef9d2d796afbbe25ab5b5a7ed746e06b99c76604f558113c273466d52fa6d6b", [:mix], [], "hexpm", "89adabf31f7d3dfaa36802ce598ce918e9b5b33bae8909ac1a4d052e1e567d18"}, From b59af08a5998517576ab18b2c64aaec9339f3ddb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 14:13:08 +0300 Subject: [PATCH 12/31] chore(deps): bump ex_json_schema from 0.11.2 to 0.11.3 (#14356) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- mix.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.lock b/mix.lock index 9be9e5803c85..fd7fe4af2ab3 100644 --- a/mix.lock +++ b/mix.lock @@ -63,7 +63,7 @@ "ex_doc": {:hex, :ex_doc, "0.40.2", "f50edec428c4b0a457a167de42414c461122a3585a99515a69d09fff19e5597e", [:mix], [{:earmark_parser, "~> 1.4.44", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "4fa426e2beb47854a162e2c488727fdec51cd4692e319b23810c2804cb1a40fe"}, "ex_eth_bls": {:hex, :ex_eth_bls, "0.1.0", "33c2bf424b360e4b64d7630dd72ec028dac63df56802d0a14ade54a23ad1c743", [:mix], [{:rustler, ">= 0.0.0", [hex: :rustler, repo: "hexpm", optional: true]}, {:rustler_precompiled, "~> 0.8", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "25f6ffc36de4952e55adff1c712f0b9680850773678550f1da970d4d18329365"}, "ex_hash_ring": {:hex, :ex_hash_ring, "6.0.4", "bef9d2d796afbbe25ab5b5a7ed746e06b99c76604f558113c273466d52fa6d6b", [:mix], [], "hexpm", "89adabf31f7d3dfaa36802ce598ce918e9b5b33bae8909ac1a4d052e1e567d18"}, - "ex_json_schema": {:hex, :ex_json_schema, "0.11.2", "8f8200e6afa5473f37dbebd1e72bf97d8d5dd0128125123ed1532611267f0138", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "395f4aaf32ea0a14d861b16695e7bc8a1b5d841e0fd374d25aef9701bf8da825"}, + "ex_json_schema": {:hex, :ex_json_schema, "0.11.3", "0f9128fde2a46976c21d1ed9506bf8462776ac9e333e7b42ececcdbf7433a1da", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "0e8e16866bc14339b1bf1e441f1d9231031c8fe2cf45fa5a988a8b685de8c002"}, "ex_keccak": {:hex, :ex_keccak, "0.7.8", "be1cf194d3158f0a305eaed0334e478d0d0f2c827e7c1f8f0e1e2a667da5a8ac", [:mix], [{:rustler, ">= 0.0.0", [hex: :rustler, repo: "hexpm", optional: true]}, {:rustler_precompiled, "~> 0.8", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "52de5b42b718df2534fb9a55780d8a05bbaea539f867c3e7c0a8e7e1d5f149d9"}, "ex_machina": {:hex, :ex_machina, "2.8.0", "a0e847b5712065055ec3255840e2c78ef9366634d62390839d4880483be38abe", [:mix], [{:ecto, "~> 2.2 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_sql, "~> 3.0", [hex: :ecto_sql, repo: "hexpm", optional: true]}], "hexpm", "79fe1a9c64c0c1c1fab6c4fa5d871682cb90de5885320c187d117004627a7729"}, "ex_pbkdf2": {:hex, :ex_pbkdf2, "0.8.5", "583733a1134a0c8b4df70c6b3e874d1896bf48f2aaafdf332ec5480c7b5117bf", [:mix], [{:rustler, ">= 0.0.0", [hex: :rustler, repo: "hexpm", optional: true]}, {:rustler_precompiled, "~> 0.8", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "f138b2acdc5a4d87880e42742e9bead4d1235fd9b1b2b29be0d1da1e01c3a312"}, From 1b51b4dcbed3a25abd9201a365e378a1733d4708 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 14:56:09 +0300 Subject: [PATCH 13/31] chore(deps): bump postgrex from 0.22.0 to 0.22.1 (#14354) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- mix.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mix.lock b/mix.lock index fd7fe4af2ab3..f14599c3e8a1 100644 --- a/mix.lock +++ b/mix.lock @@ -35,7 +35,7 @@ "credo": {:hex, :credo, "1.7.18", "5c5596bf7aedf9c8c227f13272ac499fe8eae6237bd326f2f07dfc173786f042", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "a189d164685fd945809e862fe76a7420c4398fa288d76257662aecb909d6b3e5"}, "csv": {:hex, :csv, "2.5.0", "c47b5a5221bf2e56d6e8eb79e77884046d7fd516280dc7d9b674251e0ae46246", [:mix], [{:parallel_stream, "~> 1.0.4 or ~> 1.1.0", [hex: :parallel_stream, repo: "hexpm", optional: false]}], "hexpm", "e821f541487045c7591a1963eeb42afff0dfa99bdcdbeb3410795a2f59c77d34"}, "dataloader": {:hex, :dataloader, "2.0.2", "c45075e0692e68638a315e14f747bd8d7065fb5f38705cf980f62d4cd344401f", [:mix], [{:ecto, ">= 3.4.3 and < 4.0.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:opentelemetry_process_propagator, "~> 0.2.1 or ~> 0.3", [hex: :opentelemetry_process_propagator, repo: "hexpm", optional: true]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "4c6cabc0b55e96e7de74d14bf37f4a5786f0ab69aa06764a1f39dda40079b098"}, - "db_connection": {:hex, :db_connection, "2.10.0", "8ff756471e41765bd5563b633f73e9a94bbc138816e8644bb17d0d91bf260a95", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "02cdd01b45efb1b550e68edbbea41be32de9b24bb07e1ea0e9cbc522ac377e54"}, + "db_connection": {:hex, :db_connection, "2.10.1", "d5465f6bcc125c1b8981c1dbf23c193ca16f446ec0b25832dc174f74f18be510", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "18ed94c6e627b4bf452dbd4df61b69a35a1e768525140bc1917b7a685026a6a3"}, "ddskerl": {:hex, :ddskerl, "0.4.3", "bb97b90eef1b5906520cebdd38da29b18a770b5567f6297927f53566eae9bebb", [:rebar3], [], "hexpm", "4e0f6047c6a002ce38f6ea155276dd918cd635fd0a5edb9e0b46aeb6f7aff2c2"}, "decimal": {:hex, :decimal, "2.4.1", "6c0fbede12fb122ba685e9ab41c6a40c129e322b3aa192f9e072e61f3a6ffaf2", [:mix], [], "hexpm", "7e618897933a8455f19a727d7c5e50a2c071a544b700e5e724298ecb4340187f"}, "decorator": {:hex, :decorator, "1.4.0", "a57ac32c823ea7e4e67f5af56412d12b33274661bb7640ec7fc882f8d23ac419", [:mix], [], "hexpm", "0a07cedd9083da875c7418dea95b78361197cf2bf3211d743f6f7ce39656597f"}, @@ -145,7 +145,7 @@ "plug_crypto": {:hex, :plug_crypto, "1.2.5", "918772575e48e81e455818229bf719d4ab4181fcbf7f85b68a35620f78d89ced", [:mix], [], "hexpm", "26549a1d6345e2172eb1c233866756ae44a9609bd33ee6f99147ab3fd87fd842"}, "poison": {:hex, :poison, "5.0.0", "d2b54589ab4157bbb82ec2050757779bfed724463a544b6e20d79855a9e43b24", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "11dc6117c501b80c62a7594f941d043982a1bd05a1184280c0d9166eb4d8d3fc"}, "poolboy": {:hex, :poolboy, "1.5.2", "392b007a1693a64540cead79830443abf5762f5d30cf50bc95cb2c1aaafa006b", [:rebar3], [], "hexpm", "dad79704ce5440f3d5a3681c8590b9dc25d1a561e8f5a9c995281012860901e3"}, - "postgrex": {:hex, :postgrex, "0.22.0", "fb027b58b6eab1f6de5396a2abcdaaeb168f9ed4eccbb594e6ac393b02078cbd", [:mix], [{:db_connection, "~> 2.9", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "a68c4261e299597909e03e6f8ff5a13876f5caadaddd0d23af0d0a61afcc5d84"}, + "postgrex": {:hex, :postgrex, "0.22.1", "b3665ad17e15441557da8f45eeebfcd56e4a2b0b98538b855679a13d05e5cc5d", [:mix], [{:db_connection, "~> 2.9", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "df59f828b167b49a5853f645b65f57eb1bc5f3b230497ceaca7af5d8ac05afef"}, "prometheus": {:hex, :prometheus, "6.1.2", "e5c3c567cd8b0994425920763405635211183c15bdc47d0cd524807dde20ca1d", [:rebar3], [{:ddskerl, "0.4.3", [hex: :ddskerl, repo: "hexpm", optional: false]}], "hexpm", "109662001328112b860de112d49b575310be8ff33fe04bf0482eec4b1e5a1278"}, "prometheus_ecto": {:hex, :prometheus_ecto, "1.4.3", "3dd4da1812b8e0dbee81ea58bb3b62ed7588f2eae0c9e97e434c46807ff82311", [:mix], [{:ecto, "~> 2.0 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:prometheus_ex, "~> 1.1 or ~> 2.0 or ~> 3.0", [hex: :prometheus_ex, repo: "hexpm", optional: false]}], "hexpm", "8d66289f77f913b37eda81fd287340c17e61a447549deb28efc254532b2bed82"}, "prometheus_ex": {:hex, :prometheus_ex, "5.1.0", "a978945b4be5923b87edae3537e3fd61f8d04d755fae865ec4cbb1be7b5ec2e5", [:mix], [{:prometheus, "~> 6.1", [hex: :prometheus, repo: "hexpm", optional: false]}], "hexpm", "15d3cd752063a1b51ffcba727fc0276f62d2a4387b523963883d125ea5e0d9e7"}, From 8c563561a3d8e66f9715c06274a4697235a96023 Mon Sep 17 00:00:00 2001 From: Victor Baranov Date: Tue, 12 May 2026 15:41:07 +0300 Subject: [PATCH 14/31] chore: Eliminate horizontal scroll in the main LICENSE file (#14359) --- LICENSE | 479 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 397 insertions(+), 82 deletions(-) diff --git a/LICENSE b/LICENSE index dcdcab806a8c..925326d4d936 100644 --- a/LICENSE +++ b/LICENSE @@ -4,127 +4,442 @@ Effective Date: 2026-04-22 Version: 1.0 Previous Version: N/A -PLEASE READ THIS LICENCE CAREFULLY. BY DOWNLOADING, ACCESSING, COPYING, MODIFYING, DISTRIBUTING, DEPLOYING, OR OTHERWISE USING THE SOFTWARE, YOU CONFIRM THAT YOU HAVE READ, UNDERSTOOD, AND AGREE TO BE LEGALLY BOUND BY THE TERMS OF THIS LICENCE IN FULL. IF YOU DO NOT AGREE TO THESE TERMS, YOU MUST NOT DOWNLOAD, USE, COPY, MODIFY, OR DISTRIBUTE THE SOFTWARE. +PLEASE READ THIS LICENCE CAREFULLY. BY DOWNLOADING, ACCESSING, COPYING, +MODIFYING, DISTRIBUTING, DEPLOYING, OR OTHERWISE USING THE SOFTWARE, YOU +CONFIRM THAT YOU HAVE READ, UNDERSTOOD, AND AGREE TO BE LEGALLY BOUND BY +THE TERMS OF THIS LICENCE IN FULL. IF YOU DO NOT AGREE TO THESE TERMS, +YOU MUST NOT DOWNLOAD, USE, COPY, MODIFY, OR DISTRIBUTE THE SOFTWARE. 1. Definitions -“Commercial Licence” means a separate written commercial licence agreement entered into between you and the Licensor, which expressly references this Licence and supplements its terms by granting additional rights, or permitting uses, that are not granted or permitted under this Licence. - -“Derivative Work” means any work, whether in source or object form, that is based on or derived from the Software and in which any editorial revisions, annotations, elaborations, additions, deletions, or other modifications, taken as a whole, constitute an original work of authorship. For the avoidance of doubt, Derivative Works do not include works that remain separable from, or merely link to, the Software. - -“Feedback” means any comments, suggestions, recommendations, ideas, proposals, or other feedback, whether oral or written, provided by you in connection with or relating to the Software. - -“Group” means, in respect of an entity, that entity together with any other entity that directly or indirectly controls, is controlled by, or is under common control with, that entity. For the purposes of this definition, “control” means the direct or indirect ownership of more than fifty per cent (50%) of the voting securities or other ownership interest of an entity, or the power to direct or cause the direction of the management and policies of that entity (whether by ownership, contract, or otherwise). - -“Licence” means this Blockscout Software Licence, as amended or updated from time to time. - -“Licensor” means Blockscout Limited, an international business company incorporated under the laws of the Republic of Seychelles. - -“Prior Software” means any prior version, release, build, or component of the Software that was made available by or on behalf of the Licensor before the Effective Date, and that is not distributed under this Licence. - -“Software” means the Blockscout blockchain explorer, a tool for inspecting and analyzing blockchain networks, as made available by the Licensor under this Licence, including the source code, object code, executable files, configuration and deployment materials, documentation, APIs/SDKs (if any), and any part or portion thereof. - -“You” or “your” means the individual who accepts this Licence. Where you act on behalf of an entity, “you” shall refer to both: (i) you as an individual exercising rights under this Licence; and (ii) the entity on whose behalf you are acting. +“Commercial Licence” means a separate written commercial licence +agreement entered into between you and the Licensor, which expressly +references this Licence and supplements its terms by granting additional +rights, or permitting uses, that are not granted or permitted under this +Licence. + +“Derivative Work” means any work, whether in source or object form, that +is based on or derived from the Software and in which any editorial +revisions, annotations, elaborations, additions, deletions, or other +modifications, taken as a whole, constitute an original work of +authorship. For the avoidance of doubt, Derivative Works do not include +works that remain separable from, or merely link to, the Software. + +“Feedback” means any comments, suggestions, recommendations, ideas, +proposals, or other feedback, whether oral or written, provided by you in +connection with or relating to the Software. + +“Group” means, in respect of an entity, that entity together with any +other entity that directly or indirectly controls, is controlled by, or +is under common control with, that entity. For the purposes of this +definition, “control” means the direct or indirect ownership of more than +fifty per cent (50%) of the voting securities or other ownership interest +of an entity, or the power to direct or cause the direction of the +management and policies of that entity (whether by ownership, contract, +or otherwise). + +“Licence” means this Blockscout Software Licence, as amended or updated +from time to time. + +“Licensor” means Blockscout Limited, an international business company +incorporated under the laws of the Republic of Seychelles. + +“Prior Software” means any prior version, release, build, or component of +the Software that was made available by or on behalf of the Licensor +before the Effective Date, and that is not distributed under this Licence. + +“Software” means the Blockscout blockchain explorer, a tool for +inspecting and analyzing blockchain networks, as made available by the +Licensor under this Licence, including the source code, object code, +executable files, configuration and deployment materials, documentation, +APIs/SDKs (if any), and any part or portion thereof. + +“You” or “your” means the individual who accepts this Licence. Where you +act on behalf of an entity, “you” shall refer to both: (i) you as an +individual exercising rights under this Licence; and (ii) the entity on +whose behalf you are acting. 2. Licence and Attribution - a. Licence. Subject to and conditional upon your compliance with this Licence, the Licensor hereby grants you a temporary, worldwide, non-exclusive, royalty-free, revocable, non-transferable, and non-sublicensable licence to download, review, use, deploy, copy, modify, and create Derivative Works of the Software. All rights not expressly granted under this Licence are reserved by the Licensor. + a. Licence. Subject to and conditional upon your compliance with this + Licence, the Licensor hereby grants you a temporary, worldwide, + non-exclusive, royalty-free, revocable, non-transferable, and + non-sublicensable licence to download, review, use, deploy, copy, + modify, and create Derivative Works of the Software. All rights not + expressly granted under this Licence are reserved by the Licensor. - b. Branding and Attribution. You shall preserve all copyright, patent, trademark, branding, and attribution notices included in or displayed by the Software, and shall not remove, obscure, conceal, replace, alter, disable, or otherwise interfere with the display or integrity of such notices. - - c. Interface Attribution. Where the Software is used to power, enable, or provide functionality for any user interface (including any website, web application, mobile application, or other frontend), you shall ensure that such interface includes clear and reasonably prominent attribution to the Licensor at all times while you use the Software. Such attribution shall (i) prominently identify the Licensor by the brand name “Blockscout” (such as “Made with Blockscout” or “Powered by Blockscout”), and (ii) include the respective attribution text, link (or a hyperlink) to the website https://blockscout.com and any branding or notices provided by the Licensor, in each case in the same form and manner as displayed in the footer of the following website: https://eth.blockscout.com. + b. Branding and Attribution. You shall preserve all copyright, patent, + trademark, branding, and attribution notices included in or displayed + by the Software, and shall not remove, obscure, conceal, replace, + alter, disable, or otherwise interfere with the display or integrity of + such notices. + + c. Interface Attribution. Where the Software is used to power, enable, + or provide functionality for any user interface (including any website, + web application, mobile application, or other frontend), you shall + ensure that such interface includes clear and reasonably prominent + attribution to the Licensor at all times while you use the Software. + Such attribution shall (i) prominently identify the Licensor by the + brand name “Blockscout” (such as “Made with Blockscout” or “Powered by + Blockscout”), and (ii) include the respective attribution text, link + (or a hyperlink) to the website https://blockscout.com and any branding + or notices provided by the Licensor, in each case in the same form and + manner as displayed in the footer of the following website: + https://eth.blockscout.com. - d. No Endorsement or Service Provision. Except as expressly agreed in writing by the Licensor, the Licensor does not provide, and shall not be deemed to provide, any product or service that you (or any third party) offer, operate, or make available using the Software, and the Licensor is not a party to, and has no responsibility or liability for, any relationship, transaction or interaction between you and any end user or other third party. The Licensor does not endorse, sponsor, approve, or recommend you, your business, or any of your products or services. Except as expressly agreed in writing by the Licensor, you shall not (and shall not authorise or permit any third party to) state, represent, imply, or otherwise hold out that: (i) the Licensor provides any services to or for you; (ii) the Licensor acts on your behalf; (iii) you are acting as an agent, representative, partner, or affiliate of the Licensor; or (iv) the Licensor endorses, sponsors, approves, or recommends you, your business, or any of your products or services. + d. No Endorsement or Service Provision. Except as expressly agreed in + writing by the Licensor, the Licensor does not provide, and shall not + be deemed to provide, any product or service that you (or any third + party) offer, operate, or make available using the Software, and the + Licensor is not a party to, and has no responsibility or liability for, + any relationship, transaction or interaction between you and any end + user or other third party. The Licensor does not endorse, sponsor, + approve, or recommend you, your business, or any of your products or + services. Except as expressly agreed in writing by the Licensor, you + shall not (and shall not authorise or permit any third party to) state, + represent, imply, or otherwise hold out that: (i) the Licensor provides + any services to or for you; (ii) the Licensor acts on your behalf; + (iii) you are acting as an agent, representative, partner, or affiliate + of the Licensor; or (iv) the Licensor endorses, sponsors, approves, or + recommends you, your business, or any of your products or services. 3. Scope and Updates - a. Scope. Subject to Third-Party Licences clause, this Licence applies solely to the version of the Software (and its components) with which it is distributed by or on behalf of the Licensor. This Licence does not apply to any Prior Software. - - - b. Software Changes. The Software is under active development and may be modified, updated, improved, withdrawn, suspended, or discontinued by the Licensor at any time, in whole or in part, with or without notice. The Licensor does not warrant or guarantee that any particular features, functionality, integrations, interfaces, or components of the Software will remain available, unchanged, or compatible with any prior or future versions. You acknowledge and agree that the Software may change over time and that continued use of the Software is at your sole risk. - - - c. Licence Updates. The Licensor may amend, replace, or update this Licence at any time in its sole discretion, with or without notice. Where you continue to access, use, deploy, copy, modify, or otherwise use the Software after the effective date of an updated Licence, you acknowledge and agree that your continued use constitutes acceptance of, and you shall comply with, the updated Licence. For the avoidance of doubt, an updated Licence may introduce additional restrictions or permissions, including requiring a Commercial Licence for certain uses. + a. Scope. Subject to Third-Party Licences clause, this Licence applies + solely to the version of the Software (and its components) with which + it is distributed by or on behalf of the Licensor. This Licence does + not apply to any Prior Software. + + + b. Software Changes. The Software is under active development and may + be modified, updated, improved, withdrawn, suspended, or discontinued + by the Licensor at any time, in whole or in part, with or without + notice. The Licensor does not warrant or guarantee that any particular + features, functionality, integrations, interfaces, or components of the + Software will remain available, unchanged, or compatible with any prior + or future versions. You acknowledge and agree that the Software may + change over time and that continued use of the Software is at your sole + risk. + + + c. Licence Updates. The Licensor may amend, replace, or update this + Licence at any time in its sole discretion, with or without notice. + Where you continue to access, use, deploy, copy, modify, or otherwise + use the Software after the effective date of an updated Licence, you + acknowledge and agree that your continued use constitutes acceptance + of, and you shall comply with, the updated Licence. For the avoidance + of doubt, an updated Licence may introduce additional restrictions or + permissions, including requiring a Commercial Licence for certain uses. 4. Restricted Uses and Commercial Licence - a. Restricted Commercial or Monetised Use (including SaaS and RaaS). Unless and until you obtain a Commercial Licence, you shall not, and shall not authorise or permit any third party to exercise any rights granted under this Licence to (directly or indirectly) sell, license, monetise, commercialise, or otherwise make available the Software or its functionality to any third party in exchange for any fee or other consideration (including without limitation fees for hosting, access, subscriptions, support, consulting, implementation, customisation, maintenance, managed services, or any other services), where such product or service incorporates, uses, depends on, or is materially enabled by the Software (including offering the Software or its functionality on a hosted, “as-a-service”, or managed basis). - - b. Obtaining Commercial Licence. If you intend to exercise any rights or engage in any uses of the Software that are prohibited, restricted, or not granted under this Licence, you must, prior to such use, contact the Licensor at https://eaas.blockscout.com/#contact to request a Commercial Licence and applicable pricing and terms. Any such rights or uses are unauthorised unless and until a Commercial Licence has been expressly agreed in writing by the Licensor. Nothing in this Licence obliges the Licensor to grant any Commercial Licence or to enter into any agreement with you. - - c. Compliance Verification. Upon the Licensor’s reasonable request, you shall promptly provide the Licensor with such information and documentation as the Licensor may reasonably require to verify your compliance with this Licence, including (without limitation) to confirm whether your use of the Software requires a Commercial Licence. The Licensor shall use any such information solely for compliance verification purposes. - - d. Name and Branding Restrictions. You shall not distribute, market, or otherwise make available the Software or any Derivative Works under any name, designation, branding, or identifier that is identical or confusingly similar to the Licensor’s product names, trademarks, service marks, or trade names, or that is likely to cause confusion as to the origin, sponsorship, affiliation, or endorsement by the Licensor. + a. Restricted Commercial or Monetised Use (including SaaS and RaaS). + Unless and until you obtain a Commercial Licence, you shall not, and + shall not authorise or permit any third party to exercise any rights + granted under this Licence to (directly or indirectly) sell, license, + monetise, commercialise, or otherwise make available the Software or + its functionality to any third party in exchange for any fee or other + consideration (including without limitation fees for hosting, access, + subscriptions, support, consulting, implementation, customisation, + maintenance, managed services, or any other services), where such + product or service incorporates, uses, depends on, or is materially + enabled by the Software (including offering the Software or its + functionality on a hosted, “as-a-service”, or managed basis). + + b. Obtaining Commercial Licence. If you intend to exercise any rights + or engage in any uses of the Software that are prohibited, restricted, + or not granted under this Licence, you must, prior to such use, contact + the Licensor at https://eaas.blockscout.com/#contact to request a + Commercial Licence and applicable pricing and terms. Any such rights or + uses are unauthorised unless and until a Commercial Licence has been + expressly agreed in writing by the Licensor. Nothing in this Licence + obliges the Licensor to grant any Commercial Licence or to enter into + any agreement with you. + + c. Compliance Verification. Upon the Licensor’s reasonable request, you + shall promptly provide the Licensor with such information and + documentation as the Licensor may reasonably require to verify your + compliance with this Licence, including (without limitation) to confirm + whether your use of the Software requires a Commercial Licence. The + Licensor shall use any such information solely for compliance + verification purposes. + + d. Name and Branding Restrictions. You shall not distribute, market, or + otherwise make available the Software or any Derivative Works under any + name, designation, branding, or identifier that is identical or + confusingly similar to the Licensor’s product names, trademarks, + service marks, or trade names, or that is likely to cause confusion as + to the origin, sponsorship, affiliation, or endorsement by the Licensor. 5. Derivative Works - a. Permission. Subject to and conditional upon your compliance with this Licence, you may create Derivative Works of the Software solely for your internal use of the Software. - - b. Restrictions. You shall not distribute, sublicense, sell, license, make available, or otherwise provide any Derivative Works, in whole or in part, to any third party without first obtaining a Commercial Licence. - - c. Ownership and Licence. Except as expressly provided in this Licence, ownership of any Derivative Works shall remain with you. Notwithstanding the foregoing, you hereby grant the Licensor a perpetual, irrevocable, worldwide, royalty-free, non-exclusive, transferable, and sublicensable licence to use, reproduce, modify, adapt, incorporate, and otherwise exploit any Derivative Works for any purpose, including to develop, improve, or distribute the Software. - - d. Tracking of Changes. Where you modify the Software or create any Derivative Works, you shall ensure that any modified files carry prominent notices stating that you have modified the Software and indicating the date of such modification. Any such notices shall not be construed as modifying, limiting, or otherwise affecting this Licence. - - e. Warranties. You represent and warrant that you own or otherwise have all necessary rights to create and license any Derivative Works as contemplated by this Licence, and that such Derivative Works do not infringe any third-party intellectual property rights, violate this Licence, or breach any applicable laws or regulations. + a. Permission. Subject to and conditional upon your compliance with + this Licence, you may create Derivative Works of the Software solely + for your internal use of the Software. + + b. Restrictions. You shall not distribute, sublicense, sell, license, + make available, or otherwise provide any Derivative Works, in whole or + in part, to any third party without first obtaining a Commercial + Licence. + + c. Ownership and Licence. Except as expressly provided in this Licence, + ownership of any Derivative Works shall remain with you. + Notwithstanding the foregoing, you hereby grant the Licensor a + perpetual, irrevocable, worldwide, royalty-free, non-exclusive, + transferable, and sublicensable licence to use, reproduce, modify, + adapt, incorporate, and otherwise exploit any Derivative Works for any + purpose, including to develop, improve, or distribute the Software. + + d. Tracking of Changes. Where you modify the Software or create any + Derivative Works, you shall ensure that any modified files carry + prominent notices stating that you have modified the Software and + indicating the date of such modification. Any such notices shall not be + construed as modifying, limiting, or otherwise affecting this Licence. + + e. Warranties. You represent and warrant that you own or otherwise have + all necessary rights to create and license any Derivative Works as + contemplated by this Licence, and that such Derivative Works do not + infringe any third-party intellectual property rights, violate this + Licence, or breach any applicable laws or regulations. 6. Feedback - a. Permission and Rights. You may, but are not obliged to, provide Feedback. Where you provide any Feedback, you acknowledge and agree that the Licensor may, in its sole discretion, use, reproduce, disclose, make publicly available, and otherwise exploit such Feedback for any purpose, commercial or otherwise, without restriction and without any obligation to you, including without acknowledgment or compensation. - - b. Licence. You hereby grant the Licensor a perpetual, irrevocable, worldwide, royalty-free, transferable, and sublicensable licence to use, reproduce, modify, adapt, publish, translate, distribute, publicly perform, publicly display, and otherwise exploit the Feedback, in whole or in part, in any manner and for any purpose. To the extent permitted by applicable law, you waive, and agree not to assert, any moral rights or similar rights you may have in the Feedback. - - c. Warranties. You represent and warrant that you own or otherwise have all necessary rights to grant the licence set out in this clause, and that the Feedback does not infringe any third-party rights or applicable laws. + a. Permission and Rights. You may, but are not obliged to, provide + Feedback. Where you provide any Feedback, you acknowledge and agree + that the Licensor may, in its sole discretion, use, reproduce, + disclose, make publicly available, and otherwise exploit such Feedback + for any purpose, commercial or otherwise, without restriction and + without any obligation to you, including without acknowledgment or + compensation. + + b. Licence. You hereby grant the Licensor a perpetual, irrevocable, + worldwide, royalty-free, transferable, and sublicensable licence to + use, reproduce, modify, adapt, publish, translate, distribute, publicly + perform, publicly display, and otherwise exploit the Feedback, in whole + or in part, in any manner and for any purpose. To the extent permitted + by applicable law, you waive, and agree not to assert, any moral rights + or similar rights you may have in the Feedback. + + c. Warranties. You represent and warrant that you own or otherwise have + all necessary rights to grant the licence set out in this clause, and + that the Feedback does not infringe any third-party rights or + applicable laws. 7. Ownership - a. Ownership. The Licensor is and shall remain the sole owner (or, where applicable, the authorised licensor) of the Software. Nothing in this Licence shall operate to assign, transfer, or otherwise convey to you any right, title, or interest in or to the Software, save for the limited licence expressly granted under this Licence and the Commercial Licence, if applicable. All rights are licensed, not sold. You shall not take, or assist others in taking, any action that may diminish the Licensor's rights in the Software. - - b. Branding. Subject to your compliance with this Licence, the Licensor hereby grants you a temporary, worldwide, non-exclusive, royalty-free, revocable, non-transferable, and non-sublicensable licence to display the Licensor’s trademarks, trade names, and logos as provided along with the Software or as required under this Licence, solely for attribution purposes as required under this Licence. Except for the foregoing, no rights in any trademarks, trade names, or logos of the Licensor or its affiliates are granted under this Licence. - - c. Third-Party Licences. While the Software is made available in its entirety under this Licence, certain components of the Software may incorporate or be derived from third-party open-source software provided under permissive licences. Such specific third-party open-source software components are distributed under the terms of the applicable third-party licences. To the extent required by such third-party licences, applicable copyright notices, licence texts, and attribution requirements shall be preserved. Subject to the foregoing, the Software as a whole, and all parts thereof, is licensed under this Licence. + a. Ownership. The Licensor is and shall remain the sole owner (or, + where applicable, the authorised licensor) of the Software. Nothing in + this Licence shall operate to assign, transfer, or otherwise convey to + you any right, title, or interest in or to the Software, save for the + limited licence expressly granted under this Licence and the Commercial + Licence, if applicable. All rights are licensed, not sold. You shall + not take, or assist others in taking, any action that may diminish the + Licensor's rights in the Software. + + b. Branding. Subject to your compliance with this Licence, the Licensor + hereby grants you a temporary, worldwide, non-exclusive, royalty-free, + revocable, non-transferable, and non-sublicensable licence to display + the Licensor’s trademarks, trade names, and logos as provided along + with the Software or as required under this Licence, solely for + attribution purposes as required under this Licence. Except for the + foregoing, no rights in any trademarks, trade names, or logos of the + Licensor or its affiliates are granted under this Licence. + + c. Third-Party Licences. While the Software is made available in its + entirety under this Licence, certain components of the Software may + incorporate or be derived from third-party open-source software + provided under permissive licences. Such specific third-party + open-source software components are distributed under the terms of the + applicable third-party licences. To the extent required by such + third-party licences, applicable copyright notices, licence texts, and + attribution requirements shall be preserved. Subject to the foregoing, + the Software as a whole, and all parts thereof, is licensed under this + Licence. 8. Disclaimers -To the maximum extent permitted by applicable law, the Software is provided on an “AS IS” and “AS AVAILABLE” basis and is used at your sole risk. The Licensor disclaims all warranties of any kind, whether express, implied, statutory, or otherwise, including (without limitation) any implied warranties of merchantability, satisfactory quality, fitness for a particular purpose, non-infringement, and title, and any warranties arising out of course of dealing, course of performance, or usage of trade. Without limiting the foregoing, the Licensor makes no representation or warranty that the Software will function as expected, meet your requirements, operate in combination with any other software, have any specific functionality, be uninterrupted, timely, secure, accurate, complete, or error-free, or that any defects or errors will be corrected. Nothing in this Licence excludes or limits any warranty, liability, or other term to the extent it cannot be excluded or limited under applicable law. The Software is provided for informational and technical purposes only and does not constitute legal, financial, tax, investment, or other professional advice. You are solely responsible for determining whether use of the Software is appropriate for your purposes. +To the maximum extent permitted by applicable law, the Software is +provided on an “AS IS” and “AS AVAILABLE” basis and is used at your sole +risk. The Licensor disclaims all warranties of any kind, whether express, +implied, statutory, or otherwise, including (without limitation) any +implied warranties of merchantability, satisfactory quality, fitness for +a particular purpose, non-infringement, and title, and any warranties +arising out of course of dealing, course of performance, or usage of +trade. Without limiting the foregoing, the Licensor makes no +representation or warranty that the Software will function as expected, +meet your requirements, operate in combination with any other software, +have any specific functionality, be uninterrupted, timely, secure, +accurate, complete, or error-free, or that any defects or errors will be +corrected. Nothing in this Licence excludes or limits any warranty, +liability, or other term to the extent it cannot be excluded or limited +under applicable law. The Software is provided for informational and +technical purposes only and does not constitute legal, financial, tax, +investment, or other professional advice. You are solely responsible for +determining whether use of the Software is appropriate for your purposes. 9. Limitation of Liability -Nothing in this Licence excludes or limits liability for: (i) death or personal injury caused by negligence; (ii) fraud or fraudulent misrepresentation; or (iii) any other liability which cannot be excluded or limited under applicable law. Subject to the foregoing, to the maximum extent permitted by applicable law, the Licensor shall not be liable to you for any loss or damage whatsoever (whether direct, indirect, incidental, special, punitive or consequential), or for any loss of profits, revenue, business, business opportunity, anticipated savings, goodwill or data, or for any business interruption, arising out of or in connection with the use of, or inability to use, the Software, whether in contract, tort (including negligence), misrepresentation, restitution, breach of statutory duty, or otherwise, even if advised of the possibility of such loss or damage. To the extent that the Licensor is held liable notwithstanding the above, the total aggregate liability arising out of or in connection with this Licence or the Software shall not exceed the total amounts actually paid by you to the Licensor under this Licence in the twelve (12) months preceding the event giving rise to the claim (or, if no such amounts were paid, USD 100). +Nothing in this Licence excludes or limits liability for: (i) death or +personal injury caused by negligence; (ii) fraud or fraudulent +misrepresentation; or (iii) any other liability which cannot be excluded +or limited under applicable law. Subject to the foregoing, to the maximum +extent permitted by applicable law, the Licensor shall not be liable to +you for any loss or damage whatsoever (whether direct, indirect, +incidental, special, punitive or consequential), or for any loss of +profits, revenue, business, business opportunity, anticipated savings, +goodwill or data, or for any business interruption, arising out of or in +connection with the use of, or inability to use, the Software, whether in +contract, tort (including negligence), misrepresentation, restitution, +breach of statutory duty, or otherwise, even if advised of the +possibility of such loss or damage. To the extent that the Licensor is +held liable notwithstanding the above, the total aggregate liability +arising out of or in connection with this Licence or the Software shall +not exceed the total amounts actually paid by you to the Licensor under +this Licence in the twelve (12) months preceding the event giving rise to +the claim (or, if no such amounts were paid, USD 100). 10. Term and Termination - a. Automatic Termination. This Licence shall automatically terminate, without any further action by the Licensor, upon any breach by you of its terms. - - b. Termination by the Licensor. The Licensor may terminate this Licence at any time in its sole discretion. Where reasonably practicable, the Licensor will use reasonable efforts to provide you with advance notice of termination. - - c. Effect of Termination. Upon termination of this Licence for any reason: (i) all rights granted to you under this Licence shall immediately cease; (ii) all Commercial Licences executed with you shall automatically terminate simultaneously with this Licence; (iii) you shall immediately cease all access to and use of the Software and any Derivative Works; (iv) you shall uninstall and delete the Software and any Derivative Works from all systems under your control and destroy all copies in your possession or control (in each case including any copies held by your contractors or service providers), except to the extent retention is required by applicable law; (v) you shall immediately cease all distribution or making available of the Software and any Derivative Works; and (vi) any provisions of this Licence which by their nature are intended to survive termination shall survive, including without limitation provisions relating to ownership, trademarks, feedback, disclaimers, limitation of liability, and governing law and jurisdiction. + a. Automatic Termination. This Licence shall automatically terminate, + without any further action by the Licensor, upon any breach by you of + its terms. + + b. Termination by the Licensor. The Licensor may terminate this Licence + at any time in its sole discretion. Where reasonably practicable, the + Licensor will use reasonable efforts to provide you with advance notice + of termination. + + c. Effect of Termination. Upon termination of this Licence for any + reason: (i) all rights granted to you under this Licence shall + immediately cease; (ii) all Commercial Licences executed with you shall + automatically terminate simultaneously with this Licence; (iii) you + shall immediately cease all access to and use of the Software and any + Derivative Works; (iv) you shall uninstall and delete the Software and + any Derivative Works from all systems under your control and destroy + all copies in your possession or control (in each case including any + copies held by your contractors or service providers), except to the + extent retention is required by applicable law; (v) you shall + immediately cease all distribution or making available of the Software + and any Derivative Works; and (vi) any provisions of this Licence which + by their nature are intended to survive termination shall survive, + including without limitation provisions relating to ownership, + trademarks, feedback, disclaimers, limitation of liability, and + governing law and jurisdiction. 11. Governing Law and Arbitration - a. Governing Law. This Licence and any dispute or claim (including non-contractual disputes or claims) arising out of or in connection with it or its subject matter or formation shall be governed by and construed in accordance with the law of England and Wales, excluding its conflict of law rules. For the avoidance of doubt, the provisions of the United Nations Convention on the International Sale of Goods shall not apply to this Licence. - - b. Dispute Resolution. The parties shall first attempt to resolve any dispute arising out of or in connection with this Licence informally. You may initiate such informal discussions by giving notice to the Licensor by email at info@blockscout.com. If the dispute is not resolved within thirty (30) days of such notice, the dispute shall be referred to and finally resolved by arbitration under the LCIA Rules, which Rules are deemed incorporated by reference into this clause. The seat (legal place) of arbitration shall be London, United Kingdom. The tribunal shall consist of one (1) arbitrator. The language of the arbitration shall be English. The governing law of this arbitration agreement shall be the laws of England and Wales. To the maximum extent permitted by applicable law, you may bring claims against the Licensor only in your individual capacity and not as a claimant or class member in any purported class, collective, consolidated, or representative proceeding. Any notices, requests, demands, or other communications given in connection with the arbitration may be sent in electronic form, including via email or any electronic filing system operated by the LCIA, and shall be deemed received when successfully transmitted to the recipient (as evidenced by no delivery failure notice). + a. Governing Law. This Licence and any dispute or claim (including + non-contractual disputes or claims) arising out of or in connection + with it or its subject matter or formation shall be governed by and + construed in accordance with the law of England and Wales, excluding + its conflict of law rules. For the avoidance of doubt, the provisions + of the United Nations Convention on the International Sale of Goods + shall not apply to this Licence. + + b. Dispute Resolution. The parties shall first attempt to resolve any + dispute arising out of or in connection with this Licence informally. + You may initiate such informal discussions by giving notice to the + Licensor by email at info@blockscout.com. If the dispute is not + resolved within thirty (30) days of such notice, the dispute shall be + referred to and finally resolved by arbitration under the LCIA Rules, + which Rules are deemed incorporated by reference into this clause. The + seat (legal place) of arbitration shall be London, United Kingdom. The + tribunal shall consist of one (1) arbitrator. The language of the + arbitration shall be English. The governing law of this arbitration + agreement shall be the laws of England and Wales. To the maximum extent + permitted by applicable law, you may bring claims against the Licensor + only in your individual capacity and not as a claimant or class member + in any purported class, collective, consolidated, or representative + proceeding. Any notices, requests, demands, or other communications + given in connection with the arbitration may be sent in electronic + form, including via email or any electronic filing system operated by + the LCIA, and shall be deemed received when successfully transmitted to + the recipient (as evidenced by no delivery failure notice). 12. Miscellaneous - a. Injunctive Relief. You acknowledge and agree that any breach of this Licence (including any breach of the restrictions on use of the Software) may cause the Licensor irreparable harm for which damages may not be an adequate remedy. Accordingly, the Licensor shall be entitled to seek injunctive relief, specific performance, and/or any other equitable relief for any such breach, in addition to any other rights or remedies available at law. + a. Injunctive Relief. You acknowledge and agree that any breach of this + Licence (including any breach of the restrictions on use of the + Software) may cause the Licensor irreparable harm for which damages may + not be an adequate remedy. Accordingly, the Licensor shall be entitled + to seek injunctive relief, specific performance, and/or any other + equitable relief for any such breach, in addition to any other rights + or remedies available at law. - b. Rights and Remedies. The rights and remedies provided under this Licence are cumulative and are in addition to, and not exclusive of, any rights or remedies provided by law. Any right or remedy may be exercised as often as required. - - c. Assignment. Unless otherwise permitted under this Licence, you shall not assign, transfer, charge, subcontract, declare a trust over, or deal in any other manner with any of your rights or obligations under this Licence without the prior written consent of the Licensor. The Licensor may at any time assign, transfer, charge, subcontract, or otherwise deal with any of its rights or obligations under this Licence without your consent or notice to you. - - d. Severability. If any provision (or part of a provision) of this Licence is found by any court or competent authority to be invalid, illegal, or unenforceable, that provision (or part-provision) shall be deemed modified to the minimum extent necessary to make it valid, legal, and enforceable. If such modification is not possible, the relevant provision (or part-provision) shall be deemed deleted. Any modification to or deletion of a provision (or part-provision) under this clause shall not affect the validity and enforceability of the remainder of this Licence. - - e. Entire Agreement. This Licence (together with the Commercial Licence, if any) constitutes the entire agreement between you and the Licensor in relation to its subject matter and supersedes and extinguishes all prior and contemporaneous agreements, understandings, negotiations, representations, and arrangements between the parties, whether written or oral. You acknowledge and agree that you shall have no remedies in respect of any statement, representation, assurance, or warranty (whether made innocently or negligently) that is not set out in this Licence (or the Commercial Licence). - - f. Commercial Licence. If a Commercial Licence is in place, it forms an integral part of this Licence. In the event of any conflict or inconsistency between the terms of this Licence and the Commercial Licence, the terms of the Commercial Licence shall prevail to the extent of such conflict or inconsistency. - - g. Notices. Any notice or other communication given by the Licensor under or in connection with this Licence may be given using any available means reasonably selected by the Licensor, including (without limitation) publication of notice in the Software repository, on the Licensor’s website, or through any other communication channel reasonably selected by the Licensor. Where you have a Commercial Licence in force, any notice or other communication given by the Licensor under or in connection with this Licence shall be in writing and may be delivered by email to the email address(es) specified for notices in the executed Commercial Licence. A notice sent by email shall be deemed received: (i) if sent during normal business hours, at the time of transmission; or (ii) if sent outside normal business hours, at 9:00 a.m. on the next business day. Notices sent by email shall be legally effective. - - h. Waiver. No failure or delay by the Licensor to exercise any right or remedy under this Licence or by law shall constitute a waiver of that or any other right or remedy, nor shall it prevent or restrict any further exercise of that or any other right or remedy. No single or partial exercise of any right or remedy shall prevent or restrict the further exercise of that or any other right or remedy. - - i. Third Party Rights. Except as expressly provided in this clause, a person who is not a party to this Licence shall not have any rights under the Contracts (Rights of Third Parties) Act 1999 to enforce any term of this Licence. Notwithstanding the foregoing, the Licensor’s affiliates and the Licensor’s directors, officers, employees, contractors, agents, representatives, and other personnel shall be entitled, pursuant to the Contracts (Rights of Third Parties) Act 1999, to enforce and rely on any provision of this Licence that limits or excludes the liability of the Licensor (including any limitations and exclusions of liability and any indemnities in favour of the Licensor) as if they were parties to this Licence. This Licence may be amended, varied, terminated, or rescinded (in whole or in part) without the consent of any such person. + b. Rights and Remedies. The rights and remedies provided under this + Licence are cumulative and are in addition to, and not exclusive of, + any rights or remedies provided by law. Any right or remedy may be + exercised as often as required. + + c. Assignment. Unless otherwise permitted under this Licence, you shall + not assign, transfer, charge, subcontract, declare a trust over, or + deal in any other manner with any of your rights or obligations under + this Licence without the prior written consent of the Licensor. The + Licensor may at any time assign, transfer, charge, subcontract, or + otherwise deal with any of its rights or obligations under this Licence + without your consent or notice to you. + + d. Severability. If any provision (or part of a provision) of this + Licence is found by any court or competent authority to be invalid, + illegal, or unenforceable, that provision (or part-provision) shall be + deemed modified to the minimum extent necessary to make it valid, + legal, and enforceable. If such modification is not possible, the + relevant provision (or part-provision) shall be deemed deleted. Any + modification to or deletion of a provision (or part-provision) under + this clause shall not affect the validity and enforceability of the + remainder of this Licence. + + e. Entire Agreement. This Licence (together with the Commercial + Licence, if any) constitutes the entire agreement between you and the + Licensor in relation to its subject matter and supersedes and + extinguishes all prior and contemporaneous agreements, understandings, + negotiations, representations, and arrangements between the parties, + whether written or oral. You acknowledge and agree that you shall have + no remedies in respect of any statement, representation, assurance, or + warranty (whether made innocently or negligently) that is not set out + in this Licence (or the Commercial Licence). + + f. Commercial Licence. If a Commercial Licence is in place, it forms an + integral part of this Licence. In the event of any conflict or + inconsistency between the terms of this Licence and the Commercial + Licence, the terms of the Commercial Licence shall prevail to the + extent of such conflict or inconsistency. + + g. Notices. Any notice or other communication given by the Licensor + under or in connection with this Licence may be given using any + available means reasonably selected by the Licensor, including (without + limitation) publication of notice in the Software repository, on the + Licensor’s website, or through any other communication channel + reasonably selected by the Licensor. Where you have a Commercial + Licence in force, any notice or other communication given by the + Licensor under or in connection with this Licence shall be in writing + and may be delivered by email to the email address(es) specified for + notices in the executed Commercial Licence. A notice sent by email + shall be deemed received: (i) if sent during normal business hours, at + the time of transmission; or (ii) if sent outside normal business + hours, at 9:00 a.m. on the next business day. Notices sent by email + shall be legally effective. + + h. Waiver. No failure or delay by the Licensor to exercise any right or + remedy under this Licence or by law shall constitute a waiver of that + or any other right or remedy, nor shall it prevent or restrict any + further exercise of that or any other right or remedy. No single or + partial exercise of any right or remedy shall prevent or restrict the + further exercise of that or any other right or remedy. + + i. Third Party Rights. Except as expressly provided in this clause, a + person who is not a party to this Licence shall not have any rights + under the Contracts (Rights of Third Parties) Act 1999 to enforce any + term of this Licence. Notwithstanding the foregoing, the Licensor’s + affiliates and the Licensor’s directors, officers, employees, + contractors, agents, representatives, and other personnel shall be + entitled, pursuant to the Contracts (Rights of Third Parties) Act 1999, + to enforce and rely on any provision of this Licence that limits or + excludes the liability of the Licensor (including any limitations and + exclusions of liability and any indemnities in favour of the Licensor) + as if they were parties to this Licence. This Licence may be amended, + varied, terminated, or rescinded (in whole or in part) without the + consent of any such person. END OF THE LICENCE From 34f4dcf895b17ba230a5357add0ef84bf6c78474 Mon Sep 17 00:00:00 2001 From: Victor Baranov Date: Tue, 12 May 2026 17:08:19 +0300 Subject: [PATCH 15/31] chore: Add SPDX attribution (#14360) --- .dialyzer_ignore.exs | 12 ++++++------ .../api/v2/block_controller_benchmark.exs | 1 + .../benchmarks/support/benchmark_case.ex | 1 + apps/block_scout_web/config/config.exs | 1 + apps/block_scout_web/config/dev.exs | 1 + apps/block_scout_web/config/prod.exs | 1 + apps/block_scout_web/config/runtime/test.exs | 1 + apps/block_scout_web/config/test.exs | 1 + apps/block_scout_web/lib/block_scout_web.ex | 1 + apps/block_scout_web/lib/block_scout_web/api_v2.ex | 1 + .../lib/block_scout_web/application.ex | 1 + .../lib/block_scout_web/authentication_helper.ex | 1 + .../lib/block_scout_web/captcha_helper.ex | 1 + apps/block_scout_web/lib/block_scout_web/chain.ex | 1 + .../lib/block_scout_web/channels/address_channel.ex | 1 + .../lib/block_scout_web/channels/arbitrum_channel.ex | 1 + .../lib/block_scout_web/channels/block_channel.ex | 1 + .../channels/exchange_rate_channel.ex | 1 + .../lib/block_scout_web/channels/optimism_channel.ex | 1 + .../lib/block_scout_web/channels/reward_channel.ex | 1 + .../lib/block_scout_web/channels/token_channel.ex | 1 + .../channels/token_instance_channel.ex | 1 + .../block_scout_web/channels/transaction_channel.ex | 1 + .../lib/block_scout_web/channels/user_socket.ex | 1 + .../block_scout_web/channels/v2/address_channel.ex | 1 + .../lib/block_scout_web/channels/v2/block_channel.ex | 1 + .../channels/v2/exchange_rate_channel.ex | 1 + .../block_scout_web/channels/v2/reward_channel.ex | 1 + .../lib/block_scout_web/channels/v2/token_channel.ex | 1 + .../channels/v2/transaction_channel.ex | 1 + .../lib/block_scout_web/channels/v2/user_socket.ex | 1 + .../lib/block_scout_web/checksum_address.ex | 1 + apps/block_scout_web/lib/block_scout_web/cldr.ex | 1 + .../lib/block_scout_web/controller.ex | 1 + .../controllers/account/api/v2/address_controller.ex | 1 + .../account/api/v2/authenticate_controller.ex | 1 + .../controllers/account/api/v2/email_controller.ex | 1 + .../account/api/v2/fallback_controller.ex | 1 + .../controllers/account/api/v2/tags_controller.ex | 1 + .../controllers/account/api/v2/user_controller.ex | 1 + .../controllers/account/api_key_controller.ex | 1 + .../controllers/account/auth_controller.ex | 1 + .../controllers/account/custom_abi_controller.ex | 1 + .../controllers/account/tag_address_controller.ex | 1 + .../account/tag_transaction_controller.ex | 1 + .../account/watchlist_address_controller.ex | 1 + .../controllers/account/watchlist_controller.ex | 1 + .../address_coin_balance_by_day_controller.ex | 1 + .../controllers/address_coin_balance_controller.ex | 1 + .../controllers/address_contract_controller.ex | 1 + .../address_contract_verification_controller.ex | 1 + ...act_verification_via_flattened_code_controller.ex | 1 + ...ress_contract_verification_via_json_controller.ex | 1 + ...t_verification_via_multi_part_files_controller.ex | 1 + ...erification_via_standard_json_input_controller.ex | 1 + ...address_contract_verification_vyper_controller.ex | 1 + .../controllers/address_controller.ex | 1 + .../address_internal_transaction_controller.ex | 1 + .../controllers/address_logs_controller.ex | 1 + .../controllers/address_read_contract_controller.ex | 1 + .../controllers/address_read_proxy_controller.ex | 1 + .../controllers/address_token_balance_controller.ex | 1 + .../controllers/address_token_controller.ex | 1 + .../controllers/address_token_transfer_controller.ex | 1 + .../controllers/address_transaction_controller.ex | 1 + .../controllers/address_validation_controller.ex | 1 + .../controllers/address_withdrawal_controller.ex | 1 + .../controllers/address_write_contract_controller.ex | 1 + .../controllers/address_write_proxy_controller.ex | 1 + .../controllers/admin/dashboard_controller.ex | 1 + .../controllers/admin/session_controller.ex | 1 + .../controllers/admin/setup_controller.ex | 1 + .../controllers/admin/tasks_controller.ex | 1 + .../block_scout_web/controllers/api/api_logger.ex | 1 + .../controllers/api/eth_rpc/eth_controller.ex | 1 + .../controllers/api/health_controller.ex | 1 + .../controllers/api/legacy/block_controller.ex | 1 + .../controllers/api/legacy/logs_controller.ex | 1 + .../controllers/api/rpc/address_controller.ex | 1 + .../controllers/api/rpc/block_controller.ex | 1 + .../controllers/api/rpc/celo_controller.ex | 1 + .../controllers/api/rpc/contract_controller.ex | 1 + .../block_scout_web/controllers/api/rpc/helper.ex | 1 + .../controllers/api/rpc/logs_controller.ex | 1 + .../controllers/api/rpc/rpc_translator.ex | 1 + .../controllers/api/rpc/stats_controller.ex | 1 + .../controllers/api/rpc/token_controller.ex | 1 + .../controllers/api/rpc/transaction_controller.ex | 1 + .../api/v1/gas_price_oracle_controller.ex | 1 + .../controllers/api/v1/supply_controller.ex | 1 + .../api/v1/verified_smart_contract_controller.ex | 1 + .../controllers/api/v2/address_badge_controller.ex | 1 + .../controllers/api/v2/address_controller.ex | 1 + .../controllers/api/v2/advanced_filter_controller.ex | 1 + .../controllers/api/v2/api_key_controller.ex | 1 + .../controllers/api/v2/arbitrum_controller.ex | 1 + .../controllers/api/v2/blob_controller.ex | 1 + .../controllers/api/v2/block_controller.ex | 1 + .../controllers/api/v2/celo_controller.ex | 1 + .../controllers/api/v2/config_controller.ex | 1 + .../controllers/api/v2/csv_export_controller.ex | 1 + .../api/v2/ethereum/deposit_controller.ex | 1 + .../controllers/api/v2/fallback_controller.ex | 1 + .../controllers/api/v2/import_controller.ex | 1 + .../api/v2/internal_transaction_controller.ex | 1 + .../controllers/api/v2/main_page_controller.ex | 1 + .../controllers/api/v2/mud_controller.ex | 1 + .../controllers/api/v2/optimism_controller.ex | 1 + .../api/v2/proxy/account_abstraction_controller.ex | 1 + .../controllers/api/v2/proxy/metadata_controller.ex | 1 + .../controllers/api/v2/proxy/noves_fi_controller.ex | 1 + .../api/v2/proxy/solidity_scan_controller.ex | 1 + .../api/v2/proxy/universal_proxy_controller.ex | 1 + .../controllers/api/v2/proxy/xname_controller.ex | 1 + .../controllers/api/v2/scroll_controller.ex | 1 + .../controllers/api/v2/search_controller.ex | 1 + .../controllers/api/v2/shibarium_controller.ex | 1 + .../controllers/api/v2/smart_contract_controller.ex | 1 + .../controllers/api/v2/stats_controller.ex | 1 + .../controllers/api/v2/token_controller.ex | 1 + .../controllers/api/v2/token_transfer_controller.ex | 1 + .../controllers/api/v2/transaction_controller.ex | 1 + .../controllers/api/v2/utils_controller.ex | 1 + .../controllers/api/v2/validator_controller.ex | 1 + .../controllers/api/v2/verification_controller.ex | 1 + .../controllers/api/v2/withdrawal_controller.ex | 1 + .../controllers/api/v2/zksync_controller.ex | 1 + .../controllers/api_docs_controller.ex | 1 + .../block_scout_web/controllers/block_controller.ex | 1 + .../controllers/block_transaction_controller.ex | 1 + .../controllers/block_withdrawal_controller.ex | 1 + .../chain/market_history_chart_controller.ex | 1 + .../chain/transaction_history_chart_controller.ex | 1 + .../block_scout_web/controllers/chain_controller.ex | 1 + .../controllers/common_components_controller.ex | 1 + .../controllers/csv_export_controller.ex | 1 + .../controllers/page_not_found_controller.ex | 1 + .../controllers/pending_transaction_controller.ex | 1 + .../controllers/recent_transactions_controller.ex | 1 + .../block_scout_web/controllers/robots_controller.ex | 1 + .../block_scout_web/controllers/search_controller.ex | 1 + .../controllers/smart_contract_controller.ex | 1 + .../controllers/tokens/contract_controller.ex | 1 + .../controllers/tokens/holder_controller.ex | 1 + .../controllers/tokens/instance/helper.ex | 1 + .../controllers/tokens/instance/holder_controller.ex | 1 + .../tokens/instance/metadata_controller.ex | 1 + .../tokens/instance/transfer_controller.ex | 1 + .../controllers/tokens/instance_controller.ex | 1 + .../controllers/tokens/inventory_controller.ex | 1 + .../controllers/tokens/token_controller.ex | 1 + .../controllers/tokens/tokens_controller.ex | 1 + .../controllers/tokens/transfer_controller.ex | 1 + .../controllers/transaction_controller.ex | 1 + .../transaction_internal_transaction_controller.ex | 1 + .../controllers/transaction_log_controller.ex | 1 + .../controllers/transaction_raw_trace_controller.ex | 1 + .../controllers/transaction_state_controller.ex | 1 + .../transaction_token_transfer_controller.ex | 1 + .../controllers/verified_contracts_controller.ex | 1 + .../controllers/visualize_sol2uml_controller.ex | 1 + .../controllers/withdrawal_controller.ex | 1 + .../counters/blocks_indexed_counter.ex | 1 + .../internal_transactions_indexed_counter.ex | 1 + .../lib/block_scout_web/csp_header.ex | 1 + .../csv_export/address/internal_transactions.ex | 1 + apps/block_scout_web/lib/block_scout_web/endpoint.ex | 1 + .../block_scout_web/lib/block_scout_web/etherscan.ex | 1 + apps/block_scout_web/lib/block_scout_web/gettext.ex | 1 + .../lib/block_scout_web/graphql/body_reader.ex | 1 + .../graphql/celo/resolvers/token_transfer.ex | 1 + .../celo/resolvers/token_transfer_transaction.ex | 1 + .../graphql/celo/schema/query_fields.ex | 1 + .../lib/block_scout_web/graphql/celo/schema/types.ex | 1 + .../graphql/middleware/api_enabled.ex | 1 + .../lib/block_scout_web/graphql/resolvers/address.ex | 1 + .../lib/block_scout_web/graphql/resolvers/block.ex | 1 + .../graphql/resolvers/internal_transaction.ex | 1 + .../lib/block_scout_web/graphql/resolvers/token.ex | 1 + .../graphql/resolvers/token_transfer.ex | 1 + .../block_scout_web/graphql/resolvers/transaction.ex | 1 + .../lib/block_scout_web/graphql/schema.ex | 1 + .../lib/block_scout_web/graphql/schema/scalars.ex | 1 + .../block_scout_web/graphql/schema/scalars/JSON.ex | 1 + .../lib/block_scout_web/graphql/schema/types.ex | 1 + .../lib/block_scout_web/graphql/schema_controller.ex | 1 + .../lib/block_scout_web/health_endpoint.ex | 1 + .../lib/block_scout_web/health_router.ex | 1 + .../transaction_interpretation.ex | 1 + .../lib/block_scout_web/models/get_address_tags.ex | 1 + .../block_scout_web/models/get_transaction_tags.ex | 1 + .../models/transaction_state_helper.ex | 1 + apps/block_scout_web/lib/block_scout_web/notifier.ex | 1 + .../lib/block_scout_web/notifiers/arbitrum.ex | 1 + .../lib/block_scout_web/notifiers/optimism.ex | 1 + .../lib/block_scout_web/paging_helper.ex | 1 + .../plug/admin/check_owner_registered.ex | 1 + .../block_scout_web/plug/admin/require_admin_role.ex | 1 + .../lib/block_scout_web/plug/allow_iframe.ex | 1 + .../lib/block_scout_web/plug/check_account_api.ex | 1 + .../lib/block_scout_web/plug/check_account_web.ex | 1 + .../lib/block_scout_web/plug/check_api_v2.ex | 1 + .../lib/block_scout_web/plug/check_chain_type.ex | 1 + .../lib/block_scout_web/plug/check_feature.ex | 1 + .../block_scout_web/plug/fetch_user_from_session.ex | 1 + .../lib/block_scout_web/plug/graphql.ex | 1 + .../plug/graphql_schema_introspection.ex | 1 + .../lib/block_scout_web/plug/logger.ex | 1 + .../lib/block_scout_web/plug/rate_limit.ex | 1 + .../lib/block_scout_web/plug/redis_cookie.ex | 1 + .../lib/block_scout_web/prometheus/exporter.ex | 1 + .../lib/block_scout_web/prometheus/instrumenter.ex | 1 + .../block_scout_web/prometheus/public_exporter.ex | 1 + .../lib/block_scout_web/rate_limit.ex | 1 + .../lib/block_scout_web/rate_limit/hammer.ex | 1 + .../block_scout_web/realtime_event_handlers/main.ex | 1 + .../realtime_event_handlers/main_page.ex | 1 + .../realtime_event_handlers/smart_contract.ex | 1 + .../realtime_event_handlers/token_transfer.ex | 1 + apps/block_scout_web/lib/block_scout_web/router.ex | 1 + .../lib/block_scout_web/routers/account_router.ex | 1 + .../routers/address_badges_v2_router.ex | 1 + .../lib/block_scout_web/routers/admin_router.ex | 1 + .../lib/block_scout_web/routers/api_key_v2_router.ex | 1 + .../lib/block_scout_web/routers/api_router.ex | 1 + .../lib/block_scout_web/routers/chain_type_scope.ex | 1 + .../routers/smart_contracts_api_v2_router.ex | 1 + .../block_scout_web/routers/tokens_api_v2_router.ex | 1 + .../block_scout_web/routers/utils_api_v2_router.ex | 1 + .../lib/block_scout_web/routers/web_router.ex | 1 + .../block_scout_web/schemas/api/legacy/envelope.ex | 1 + .../schemas/api/legacy/eth_block_number_result.ex | 1 + .../api/legacy/get_block_number_by_time_result.ex | 1 + .../block_scout_web/schemas/api/legacy/log_item.ex | 1 + .../lib/block_scout_web/schemas/api/v2/account.ex | 1 + .../schemas/api/v2/account/session.ex | 1 + .../block_scout_web/schemas/api/v2/account/user.ex | 1 + .../lib/block_scout_web/schemas/api/v2/address.ex | 1 + .../schemas/api/v2/address/counters.ex | 1 + .../schemas/api/v2/address/response.ex | 1 + .../schemas/api/v2/address/tabs_counters.ex | 1 + .../schemas/api/v2/address/token_balance.ex | 1 + .../schemas/api/v2/address_nullable.ex | 1 + .../schemas/api/v2/advanced_filter.ex | 1 + .../schemas/api/v2/advanced_filter/method.ex | 1 + .../block_scout_web/schemas/api/v2/arbitrum/batch.ex | 1 + .../schemas/api/v2/arbitrum/batch_by_anytrust.ex | 1 + .../schemas/api/v2/arbitrum/batch_by_celestia.ex | 1 + .../schemas/api/v2/arbitrum/batch_by_eigenda.ex | 1 + .../schemas/api/v2/arbitrum/batch_data_container.ex | 1 + .../schemas/api/v2/arbitrum/batch_for_list.ex | 1 + .../schemas/api/v2/arbitrum/claim_message.ex | 1 + .../api/v2/arbitrum/commitment_transaction.ex | 1 + .../api/v2/arbitrum/data_availability/anytrust.ex | 1 + .../api/v2/arbitrum/data_availability/base.ex | 1 + .../api/v2/arbitrum/data_availability/celestia.ex | 1 + .../api/v2/arbitrum/data_availability/eigenda.ex | 1 + .../schemas/api/v2/arbitrum/message.ex | 1 + .../schemas/api/v2/arbitrum/minimal_message.ex | 1 + .../schemas/api/v2/arbitrum/withdrawal.ex | 1 + .../block_scout_web/schemas/api/v2/beacon/deposit.ex | 1 + .../schemas/api/v2/beacon/deposit/response.ex | 1 + .../schemas/api/v2/beacon/deposit/status.ex | 1 + .../lib/block_scout_web/schemas/api/v2/blob.ex | 1 + .../block_scout_web/schemas/api/v2/blob/response.ex | 1 + .../lib/block_scout_web/schemas/api/v2/block.ex | 1 + .../schemas/api/v2/block/countdown.ex | 1 + .../block_scout_web/schemas/api/v2/block/response.ex | 1 + .../schemas/api/v2/celo/election_reward.ex | 1 + .../schemas/api/v2/celo/election_reward/type.ex | 1 + .../lib/block_scout_web/schemas/api/v2/celo/epoch.ex | 1 + .../schemas/api/v2/celo/epoch/detailed.ex | 1 + .../block_scout_web/schemas/api/v2/coin_balance.ex | 1 + .../schemas/api/v2/coin_balance_by_day.ex | 1 + .../schemas/api/v2/csv_export/response.ex | 1 + .../schemas/api/v2/error_responses.ex | 1 + .../block_scout_web/schemas/api/v2/fhe_operation.ex | 1 + .../lib/block_scout_web/schemas/api/v2/general.ex | 1 + .../schemas/api/v2/general/address_hash.ex | 1 + .../schemas/api/v2/general/address_hash_nullable.ex | 1 + .../schemas/api/v2/general/decoded_input.ex | 1 + .../schemas/api/v2/general/decoded_log_input.ex | 1 + .../schemas/api/v2/general/empty_string.ex | 1 + .../schemas/api/v2/general/float_string.ex | 1 + .../schemas/api/v2/general/float_string_nullable.ex | 1 + .../schemas/api/v2/general/full_hash.ex | 1 + .../schemas/api/v2/general/full_hash_nullable.ex | 1 + .../schemas/api/v2/general/hex_string.ex | 1 + .../schemas/api/v2/general/hex_string_nullable.ex | 1 + .../schemas/api/v2/general/implementation.ex | 1 + .../implementation/chain_type_customizations.ex | 1 + .../schemas/api/v2/general/integer_string.ex | 1 + .../api/v2/general/integer_string_nullable.ex | 1 + .../integer_string_or_empty_or_null_literal.ex | 1 + .../schemas/api/v2/general/method_name_nullable.ex | 1 + .../schemas/api/v2/general/null_string.ex | 1 + .../schemas/api/v2/general/proxy_type.ex | 1 + .../block_scout_web/schemas/api/v2/general/tag.ex | 1 + .../schemas/api/v2/general/timestamp.ex | 1 + .../schemas/api/v2/general/timestamp_nullable.ex | 1 + .../schemas/api/v2/general/url_nullable.ex | 1 + .../schemas/api/v2/general/watchlist_name.ex | 1 + .../schemas/api/v2/internal_transaction.ex | 1 + .../lib/block_scout_web/schemas/api/v2/log.ex | 1 + .../lib/block_scout_web/schemas/api/v2/mud/record.ex | 1 + .../lib/block_scout_web/schemas/api/v2/mud/system.ex | 1 + .../schemas/api/v2/mud/system_details.ex | 1 + .../lib/block_scout_web/schemas/api/v2/mud/table.ex | 1 + .../schemas/api/v2/mud/table_schema.ex | 1 + .../schemas/api/v2/mud/table_with_schema.ex | 1 + .../lib/block_scout_web/schemas/api/v2/mud/world.ex | 1 + .../block_scout_web/schemas/api/v2/nft_collection.ex | 1 + .../block_scout_web/schemas/api/v2/optimism/batch.ex | 1 + .../schemas/api/v2/optimism/batch/detailed.ex | 1 + .../schemas/api/v2/optimism/deposit.ex | 1 + .../schemas/api/v2/optimism/deposit/main_page.ex | 1 + .../block_scout_web/schemas/api/v2/optimism/game.ex | 1 + .../schemas/api/v2/optimism/output_root.ex | 1 + .../schemas/api/v2/optimism/withdrawal.ex | 1 + .../api/v2/proxy/account_abstraction/account.ex | 1 + .../api/v2/proxy/account_abstraction/bundle.ex | 1 + .../api/v2/proxy/account_abstraction/bundler.ex | 1 + .../api/v2/proxy/account_abstraction/factory.ex | 1 + .../api/v2/proxy/account_abstraction/paymaster.ex | 1 + .../api/v2/proxy/account_abstraction/status.ex | 1 + .../v2/proxy/account_abstraction/user_operation.ex | 1 + .../account_abstraction/user_operation_in_list.ex | 1 + .../block_scout_web/schemas/api/v2/proxy/metadata.ex | 1 + .../schemas/api/v2/proxy/metadata_tag.ex | 1 + .../block_scout_web/schemas/api/v2/scroll/batch.ex | 1 + .../block_scout_web/schemas/api/v2/scroll/bridge.ex | 1 + .../block_scout_web/schemas/api/v2/search/results.ex | 1 + .../schemas/api/v2/signed_authorization.ex | 1 + .../block_scout_web/schemas/api/v2/smart_contract.ex | 1 + .../schemas/api/v2/smart_contract/audit_report.ex | 1 + .../schemas/api/v2/smart_contract/counters.ex | 1 + .../schemas/api/v2/smart_contract/language.ex | 1 + .../schemas/api/v2/stats/hot_smart_contract.ex | 1 + .../block_scout_web/schemas/api/v2/stats/response.ex | 1 + .../lib/block_scout_web/schemas/api/v2/token.ex | 1 + .../block_scout_web/schemas/api/v2/token/counters.ex | 1 + .../block_scout_web/schemas/api/v2/token/holder.ex | 1 + .../block_scout_web/schemas/api/v2/token/response.ex | 1 + .../block_scout_web/schemas/api/v2/token_instance.ex | 1 + .../schemas/api/v2/token_instance_in_list.ex | 1 + .../block_scout_web/schemas/api/v2/token_transfer.ex | 1 + .../block_scout_web/schemas/api/v2/transaction.ex | 1 + .../schemas/api/v2/transaction/fee.ex | 1 + .../schemas/api/v2/transaction/raw_trace.ex | 1 + .../schemas/api/v2/transaction/response.ex | 1 + .../schemas/api/v2/transaction/state_change.ex | 1 + .../schemas/api/v2/transaction/summary.ex | 1 + .../api/v2/transaction/summary_just_request_body.ex | 1 + .../lib/block_scout_web/schemas/api/v2/withdrawal.ex | 1 + .../schemas/api/v2/withdrawal/counter.ex | 1 + .../block_scout_web/schemas/api/v2/zilliqa/staker.ex | 1 + .../schemas/api/v2/zilliqa/staker/detailed.ex | 1 + .../lib/block_scout_web/schemas/helper.ex | 1 + .../lib/block_scout_web/social_media.ex | 1 + apps/block_scout_web/lib/block_scout_web/specs.ex | 1 + .../lib/block_scout_web/specs/private.ex | 1 + .../lib/block_scout_web/specs/public.ex | 1 + apps/block_scout_web/lib/block_scout_web/tracer.ex | 1 + .../utility/event_handlers_metrics.ex | 1 + .../utility/rate_limit_config_helper.ex | 1 + .../block_scout_web/views/abi_encoded_value_view.ex | 1 + .../lib/block_scout_web/views/access_helper.ex | 1 + .../views/account/api/v2/account_view.ex | 1 + .../views/account/api/v2/tags_view.ex | 1 + .../views/account/api/v2/user_view.ex | 1 + .../block_scout_web/views/account/api_key_view.ex | 1 + .../lib/block_scout_web/views/account/auth_view.ex | 1 + .../lib/block_scout_web/views/account/common_view.ex | 1 + .../block_scout_web/views/account/custom_abi_view.ex | 1 + .../views/account/tag_address_view.ex | 1 + .../views/account/tag_transaction_view.ex | 1 + .../views/account/watchlist_address_view.ex | 1 + .../block_scout_web/views/account/watchlist_view.ex | 1 + .../views/address_coin_balance_view.ex | 1 + ...dress_contract_verification_common_fields_view.ex | 1 + ..._contract_verification_via_flattened_code_view.ex | 1 + .../address_contract_verification_via_json_view.ex | 1 + ...ontract_verification_via_multi_part_files_view.ex | 1 + ...ract_verification_via_standard_json_input_view.ex | 1 + .../views/address_contract_verification_view.ex | 1 + .../address_contract_verification_vyper_view.ex | 1 + .../block_scout_web/views/address_contract_view.ex | 1 + .../views/address_internal_transaction_view.ex | 1 + .../lib/block_scout_web/views/address_logs_view.ex | 1 + .../views/address_read_contract_view.ex | 1 + .../block_scout_web/views/address_read_proxy_view.ex | 1 + .../views/address_token_balance_view.ex | 1 + .../views/address_token_transfer_view.ex | 1 + .../lib/block_scout_web/views/address_token_view.ex | 1 + .../views/address_transaction_view.ex | 1 + .../block_scout_web/views/address_validation_view.ex | 1 + .../lib/block_scout_web/views/address_view.ex | 1 + .../block_scout_web/views/address_withdrawal_view.ex | 1 + .../views/address_write_contract_view.ex | 1 + .../views/address_write_proxy_view.ex | 1 + .../block_scout_web/views/admin/dashboard_view.ex | 1 + .../lib/block_scout_web/views/admin/session_view.ex | 1 + .../lib/block_scout_web/views/admin/setup_view.ex | 1 + .../views/advertisement/banners_ad_view.ex | 1 + .../views/advertisement/text_ad_view.ex | 1 + .../lib/block_scout_web/views/api/eth_rpc/view.ex | 1 + .../block_scout_web/views/api/legacy/block_view.ex | 1 + .../block_scout_web/views/api/legacy/logs_view.ex | 1 + .../block_scout_web/views/api/rpc/address_view.ex | 1 + .../lib/block_scout_web/views/api/rpc/block_view.ex | 1 + .../lib/block_scout_web/views/api/rpc/celo_view.ex | 1 + .../block_scout_web/views/api/rpc/contract_view.ex | 1 + .../lib/block_scout_web/views/api/rpc/logs_view.ex | 1 + .../lib/block_scout_web/views/api/rpc/rpc_view.ex | 1 + .../lib/block_scout_web/views/api/rpc/stats_view.ex | 1 + .../lib/block_scout_web/views/api/rpc/token_view.ex | 1 + .../views/api/rpc/transaction_view.ex | 1 + .../lib/block_scout_web/views/api/v1/supply_view.ex | 1 + .../views/api/v2/address_badge_view.ex | 1 + .../lib/block_scout_web/views/api/v2/address_view.ex | 1 + .../views/api/v2/advanced_filter_view.ex | 1 + .../lib/block_scout_web/views/api/v2/api_view.ex | 1 + .../block_scout_web/views/api/v2/arbitrum_view.ex | 1 + .../lib/block_scout_web/views/api/v2/blob_view.ex | 1 + .../lib/block_scout_web/views/api/v2/block_view.ex | 1 + .../lib/block_scout_web/views/api/v2/celo_view.ex | 1 + .../lib/block_scout_web/views/api/v2/config_view.ex | 1 + .../block_scout_web/views/api/v2/csv_export_view.ex | 1 + .../views/api/v2/ethereum/deposit_view.ex | 1 + .../block_scout_web/views/api/v2/ethereum_view.ex | 1 + .../block_scout_web/views/api/v2/filecoin_view.ex | 1 + .../lib/block_scout_web/views/api/v2/helper.ex | 1 + .../views/api/v2/internal_transaction_view.ex | 1 + .../lib/block_scout_web/views/api/v2/mud_view.ex | 1 + .../block_scout_web/views/api/v2/optimism_view.ex | 1 + .../views/api/v2/proxy/metadata_view.ex | 1 + .../block_scout_web/views/api/v2/rootstock_view.ex | 1 + .../lib/block_scout_web/views/api/v2/scroll_view.ex | 1 + .../lib/block_scout_web/views/api/v2/search_view.ex | 1 + .../block_scout_web/views/api/v2/shibarium_view.ex | 1 + .../views/api/v2/smart_contract_view.ex | 1 + .../block_scout_web/views/api/v2/stability_view.ex | 1 + .../lib/block_scout_web/views/api/v2/stats_view.ex | 1 + .../lib/block_scout_web/views/api/v2/suave_view.ex | 1 + .../views/api/v2/token_transfer_view.ex | 1 + .../lib/block_scout_web/views/api/v2/token_view.ex | 1 + .../block_scout_web/views/api/v2/transaction_view.ex | 1 + .../block_scout_web/views/api/v2/validator_view.ex | 1 + .../block_scout_web/views/api/v2/withdrawal_view.ex | 1 + .../lib/block_scout_web/views/api/v2/zilliqa_view.ex | 1 + .../lib/block_scout_web/views/api/v2/zksync_view.ex | 1 + .../lib/block_scout_web/views/api_docs_view.ex | 1 + .../block_scout_web/views/block_transaction_view.ex | 1 + .../lib/block_scout_web/views/block_view.ex | 1 + .../block_scout_web/views/block_withdrawal_view.ex | 1 + .../lib/block_scout_web/views/bridged_tokens_view.ex | 1 + .../lib/block_scout_web/views/chain_view.ex | 1 + .../lib/block_scout_web/views/cldr_helper/number.ex | 1 + .../block_scout_web/views/common_components_view.ex | 1 + .../lib/block_scout_web/views/csv_export.ex | 1 + .../lib/block_scout_web/views/currency_helper.ex | 1 + .../lib/block_scout_web/views/error_422.ex | 1 + .../lib/block_scout_web/views/error_helper.ex | 1 + .../lib/block_scout_web/views/error_view.ex | 1 + .../lib/block_scout_web/views/form_view.ex | 1 + .../lib/block_scout_web/views/icons_view.ex | 1 + .../views/internal_server_error_view.ex | 1 + .../views/internal_transaction_view.ex | 1 + .../lib/block_scout_web/views/layout_view.ex | 1 + .../lib/block_scout_web/views/log_view.ex | 1 + .../lib/block_scout_web/views/nft_helper.ex | 1 + .../lib/block_scout_web/views/page_not_found.ex | 1 + .../views/pending_transaction_view.ex | 1 + .../lib/block_scout_web/views/render_helper.ex | 1 + .../lib/block_scout_web/views/robots_view.ex | 1 + .../lib/block_scout_web/views/script_helper.ex | 1 + .../lib/block_scout_web/views/search_view.ex | 1 + .../lib/block_scout_web/views/smart_contract_view.ex | 1 + .../lib/block_scout_web/views/tab_helper.ex | 1 + .../block_scout_web/views/tokens/contract_view.ex | 1 + .../lib/block_scout_web/views/tokens/helper.ex | 1 + .../lib/block_scout_web/views/tokens/holder_view.ex | 1 + .../views/tokens/instance/holder_view.ex | 1 + .../views/tokens/instance/metadata_view.ex | 1 + .../views/tokens/instance/overview_view.ex | 1 + .../views/tokens/instance/transfer_view.ex | 1 + .../block_scout_web/views/tokens/instance_view.ex | 1 + .../block_scout_web/views/tokens/inventory_view.ex | 1 + .../block_scout_web/views/tokens/overview_view.ex | 1 + .../block_scout_web/views/tokens/transfer_view.ex | 1 + .../lib/block_scout_web/views/tokens_view.ex | 1 + .../views/transaction_internal_transaction_view.ex | 1 + .../block_scout_web/views/transaction_log_view.ex | 1 + .../views/transaction_raw_trace_view.ex | 1 + .../block_scout_web/views/transaction_state_view.ex | 1 + .../views/transaction_token_transfer_view.ex | 1 + .../lib/block_scout_web/views/transaction_view.ex | 1 + .../block_scout_web/views/verified_contracts_view.ex | 1 + .../block_scout_web/views/visualize_sol2uml_view.ex | 1 + .../lib/block_scout_web/views/wei_helper.ex | 1 + .../lib/block_scout_web/views/withdrawal_view.ex | 1 + apps/block_scout_web/lib/phoenix/html/safe.ex | 1 + apps/block_scout_web/lib/phoenix/param.ex | 1 + apps/block_scout_web/mix.exs | 1 + .../test/block_scout_web/chain_test.exs | 1 + .../channels/address_channel_test.exs | 1 + .../block_scout_web/channels/block_channel_test.exs | 1 + .../channels/exchange_rate_channel_test.exs | 1 + .../block_scout_web/channels/reward_channel_test.exs | 1 + .../channels/transaction_channel_test.exs | 1 + .../channels/v2/address_channel_test.exs | 1 + .../channels/v2/block_channel_test.exs | 1 + .../channels/v2/exchange_rate_channel_test.exs | 1 + .../channels/v2/reward_channel_test.exs | 1 + .../channels/v2/transaction_channel_test.exs | 1 + .../block_scout_web/channels/v2/websocket_test.exs | 1 + .../account/api/v2/authenticate_controller_test.exs | 1 + .../account/api/v2/user_controller_test.exs | 1 + .../account/custom_abi_controller_test.exs | 1 + .../address_coin_balance_by_day_controller_test.exs | 1 + .../controllers/address_contract_controller_test.exs | 1 + .../controllers/address_controller_test.exs | 1 + .../address_internal_transaction_controller_test.exs | 1 + .../address_read_contract_controller_test.exs | 1 + .../address_read_proxy_controller_test.exs | 1 + .../address_token_balance_controller_test.exs | 1 + .../controllers/address_token_controller_test.exs | 1 + .../address_token_transfer_controller_test.exs | 1 + .../address_transaction_controller_test.exs | 1 + .../address_withdrawal_controller_test.exs | 1 + .../address_write_contract_controller_test.exs | 1 + .../address_write_proxy_controller_test.exs | 1 + .../controllers/admin/dashboard_controller_test.exs | 1 + .../controllers/admin/session_controller_test.exs | 1 + .../controllers/admin/setup_controller_test.exs | 1 + .../controllers/api/legacy/block_controller_test.exs | 1 + .../controllers/api/legacy/logs_controller_test.exs | 1 + .../controllers/api/rpc/address_controller_test.exs | 1 + .../controllers/api/rpc/block_controller_test.exs | 1 + .../controllers/api/rpc/contract_controller_test.exs | 1 + .../controllers/api/rpc/eth_controller_test.exs | 1 + .../controllers/api/rpc/logs_controller_test.exs | 1 + .../controllers/api/rpc/rpc_translator_test.exs | 1 + .../controllers/api/rpc/stats_controller_test.exs | 1 + .../controllers/api/rpc/token_controller_test.exs | 1 + .../api/rpc/transaction_controller_test.exs | 1 + .../controllers/api/v1/health_controller_test.exs | 1 + .../controllers/api/v1/supply_controller_test.exs | 1 + .../v1/verified_smart_contract_controller_test.exs | 1 + .../controllers/api/v2/address_controller_test.exs | 1 + .../api/v2/advanced_filter_controller_test.exs | 1 + .../controllers/api/v2/arbitrum_controller_test.exs | 1 + .../controllers/api/v2/block_controller_test.exs | 1 + .../controllers/api/v2/celo_controller_test.exs | 1 + .../controllers/api/v2/config_controller_test.exs | 1 + .../api/v2/csv_export_controller_test.exs | 1 + .../api/v2/ethereum/deposit_controller_test.exs | 1 + .../controllers/api/v2/import_controller_test.exs | 1 + .../api/v2/internal_transaction_controller_test.exs | 1 + .../controllers/api/v2/main_page_controller_test.exs | 1 + .../controllers/api/v2/optimism_controller_test.exs | 1 + .../v2/proxy/account_abstraction_controller_test.exs | 1 + .../controllers/api/v2/scroll_controller_test.exs | 1 + .../controllers/api/v2/search_controller_test.exs | 1 + .../api/v2/smart_contract_controller_test.exs | 1 + .../controllers/api/v2/stats_controller_test.exs | 1 + .../controllers/api/v2/token_controller_test.exs | 1 + .../api/v2/token_transfer_controller_test.exs | 1 + .../api/v2/transaction_controller_test.exs | 1 + .../controllers/api/v2/utils_controller_test.exs | 1 + .../controllers/api/v2/validator_controller_test.exs | 1 + .../api/v2/verification_controller_test.exs | 1 + .../api/v2/withdrawal_controller_test.exs | 1 + .../controllers/api_docs_controller_test.exs | 1 + .../controllers/block_controller_test.exs | 1 + .../block_transaction_controller_test.exs | 1 + .../controllers/block_withdrawal_controller_test.exs | 1 + .../chain/market_history_chart_controller_test.exs | 1 + .../transaction_history_chart_controller_test.exs | 1 + .../controllers/chain_controller_test.exs | 1 + .../controllers/metrics_contoller_test.exs | 1 + .../controllers/page_not_found_controller_test.exs | 1 + .../pending_transaction_controller_test.exs | 1 + .../recent_transactions_controller_test.exs | 1 + .../controllers/smart_contract_controller_test.exs | 1 + .../controllers/tokens/holder_controller_test.exs | 1 + .../tokens/instance/transfer_controller_test.exs | 1 + .../controllers/tokens/instance_controller_test.exs | 1 + .../controllers/tokens/inventory_controller_test.exs | 1 + .../tokens/read_contract_controller_test.exs | 1 + .../controllers/tokens/token_controller_test.exs | 1 + ...nsaction_internal_transaction_controller_test.exs | 1 + .../controllers/transaction_log_controller_test.exs | 1 + .../transaction_state_controller_test.exs | 1 + .../transaction_token_transfer_controller_test.exs | 1 + .../verified_contracts_controller_test.exs | 1 + .../controllers/withdrawal_controller_test.exs | 1 + .../address/internal_transactions_test.exs | 1 + .../features/address_contract_verification_test.exs | 1 + .../features/pages/address_contract_page.ex | 1 + .../block_scout_web/features/pages/address_page.ex | 1 + .../test/block_scout_web/features/pages/app_page.ex | 1 + .../features/pages/block_list_page.ex | 1 + .../block_scout_web/features/pages/block_page.ex | 1 + .../block_scout_web/features/pages/chain_page.ex | 1 + .../features/pages/contract_verify_page.ex | 1 + .../block_scout_web/features/pages/token_page.ex | 1 + .../features/pages/transaction_list_page.ex | 1 + .../features/pages/transaction_logs_page.ex | 1 + .../features/pages/transaction_page.ex | 1 + .../features/viewing_addresses_test.exs | 1 + .../block_scout_web/features/viewing_app_test.exs | 1 + .../block_scout_web/features/viewing_blocks_test.exs | 1 + .../block_scout_web/features/viewing_chain_test.exs | 1 + .../block_scout_web/features/viewing_tokens_test.exs | 1 + .../graphql/schema/query/address_test.exs | 1 + .../graphql/schema/query/addresses_test.exs | 1 + .../graphql/schema/query/block_test.exs | 1 + .../graphql/schema/query/introspection_test.exs | 1 + .../graphql/schema/query/node_test.exs | 1 + .../graphql/schema/query/token_transfers_test.exs | 1 + .../graphql/schema/query/transaction_test.exs | 1 + .../schema/subscription/token_transfers_test.exs | 1 + .../plug/admin/check_owner_registered_test.exs | 1 + .../plug/admin/require_admin_role_test.exs | 1 + .../plug/fetch_user_from_session_test.exs | 1 + .../test/block_scout_web/plug/rate_limit_test.exs | 1 + .../test/block_scout_web/rate_limit_test.exs | 1 + .../routers/chain_type_scope_test.exs | 1 + .../test/block_scout_web/social_media_test.exs | 1 + .../block_scout_web/specs/public_legacy_tag_test.exs | 1 + .../utility/rate_limit_config_helper_test.exs | 1 + .../views/abi_encoded_value_view_test.exs | 1 + .../views/address_coin_balance_view_test.exs | 1 + .../views/address_contract_view_test.exs | 1 + .../views/address_token_balance_view_test.exs | 1 + .../views/address_transaction_view_test.exs | 1 + .../test/block_scout_web/views/address_view_test.exs | 1 + .../views/api/v2/address_view_test.exs | 1 + .../block_scout_web/views/api/v2/api_view_test.exs | 1 + .../block_scout_web/views/api/v2/block_view_test.exs | 1 + .../views/api/v2/config_view_test.exs | 1 + .../views/api/v2/internal_transaction_view_test.exs | 1 + .../views/api/v2/search_view_test.exs | 1 + .../block_scout_web/views/api/v2/stats_view_test.exs | 1 + .../views/api/v2/token_transfer_view_test.exs | 1 + .../block_scout_web/views/api/v2/token_view_test.exs | 1 + .../views/api/v2/transaction_view_test.exs | 1 + .../views/api/v2/withdrawal_view_test.exs | 1 + .../block_scout_web/views/api_docs_view_test.exs | 1 + .../test/block_scout_web/views/block_view_test.exs | 1 + .../block_scout_web/views/currency_helper_test.exs | 1 + .../test/block_scout_web/views/error_helper_test.exs | 1 + .../test/block_scout_web/views/error_view_test.exs | 1 + .../views/internal_transaction_view_test.exs | 1 + .../test/block_scout_web/views/layout_view_test.exs | 1 + .../test/block_scout_web/views/nft_helper_test.exs | 1 + .../block_scout_web/views/render_helper_test.exs | 1 + .../test/block_scout_web/views/search_view_test.exs | 1 + .../views/smart_contract_view_test.exs | 1 + .../test/block_scout_web/views/tab_helper_test.exs | 1 + .../block_scout_web/views/tokens/helper_test.exs | 1 + .../views/tokens/holder_view_test.exs | 1 + .../views/tokens/instance/overview_view_test.exs | 1 + .../views/tokens/overview_view_test.exs | 1 + .../views/tokens/read_contract_view_test.exs | 1 + .../views/tokens/smart_contract_view_test.exs | 1 + .../views/tokens/transfer_view_test.exs | 1 + .../block_scout_web/views/transaction_view_test.exs | 1 + .../test/block_scout_web/views/wei_helper_test.exs | 1 + .../test/phoenix/param/explorer/chain/block_test.exs | 1 + .../test/support/api_schema_assertions.ex | 1 + apps/block_scout_web/test/support/channel_case.ex | 1 + apps/block_scout_web/test/support/conn_case.ex | 1 + apps/block_scout_web/test/support/feature_case.ex | 1 + .../test/support/subscription_case.ex | 1 + apps/block_scout_web/test/support/test_helper.ex | 1 + apps/block_scout_web/test/test_helper.exs | 1 + apps/ethereum_jsonrpc/config/config.exs | 1 + apps/ethereum_jsonrpc/config/dev.exs | 1 + apps/ethereum_jsonrpc/config/prod.exs | 1 + apps/ethereum_jsonrpc/config/runtime/test.exs | 1 + apps/ethereum_jsonrpc/config/test.exs | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/anvil.ex | 1 + .../lib/ethereum_jsonrpc/application.ex | 1 + .../lib/ethereum_jsonrpc/arbitrum.ex | 1 + .../ethereum_jsonrpc/arbitrum/constants/contracts.ex | 1 + .../ethereum_jsonrpc/arbitrum/constants/events.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu.ex | 1 + .../lib/ethereum_jsonrpc/besu/trace.ex | 1 + .../lib/ethereum_jsonrpc/besu/traces.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block.ex | 1 + .../lib/ethereum_jsonrpc/block/by_hash.ex | 1 + .../lib/ethereum_jsonrpc/block/by_nephew.ex | 1 + .../lib/ethereum_jsonrpc/block/by_number.ex | 1 + .../lib/ethereum_jsonrpc/block/by_tag.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/blocks.ex | 1 + .../lib/ethereum_jsonrpc/contract.ex | 1 + .../lib/ethereum_jsonrpc/decode_error.ex | 1 + .../ethereum_jsonrpc/lib/ethereum_jsonrpc/encoder.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/erc20.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/erigon.ex | 1 + .../lib/ethereum_jsonrpc/fetched_balance.ex | 1 + .../lib/ethereum_jsonrpc/fetched_balances.ex | 1 + .../lib/ethereum_jsonrpc/fetched_beneficiaries.ex | 1 + .../lib/ethereum_jsonrpc/fetched_beneficiary.ex | 1 + .../lib/ethereum_jsonrpc/fetched_code.ex | 1 + .../lib/ethereum_jsonrpc/fetched_codes.ex | 1 + .../lib/ethereum_jsonrpc/filecoin.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth.ex | 1 + .../lib/ethereum_jsonrpc/geth/call.ex | 1 + .../lib/ethereum_jsonrpc/geth/calls.ex | 1 + .../lib/ethereum_jsonrpc/geth/polygon_tracer.ex | 1 + .../lib/ethereum_jsonrpc/geth/tracer.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http.ex | 1 + .../lib/ethereum_jsonrpc/http/helper.ex | 1 + .../lib/ethereum_jsonrpc/http/httpoison.ex | 1 + .../lib/ethereum_jsonrpc/http/tesla.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/ipc.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/log.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/logs.ex | 1 + .../lib/ethereum_jsonrpc/nethermind.ex | 1 + .../lib/ethereum_jsonrpc/nethermind/trace.ex | 1 + .../lib/ethereum_jsonrpc/nethermind/trace/action.ex | 1 + .../lib/ethereum_jsonrpc/nethermind/trace/result.ex | 1 + .../lib/ethereum_jsonrpc/nethermind/traces.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nft.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nonce.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nonces.ex | 1 + .../lib/ethereum_jsonrpc/pending_transaction.ex | 1 + .../lib/ethereum_jsonrpc/prometheus/instrumenter.ex | 1 + .../ethereum_jsonrpc/lib/ethereum_jsonrpc/receipt.ex | 1 + .../lib/ethereum_jsonrpc/receipts.ex | 1 + .../lib/ethereum_jsonrpc/receipts/by_block_number.ex | 1 + .../ethereum_jsonrpc/receipts/by_transaction_hash.ex | 1 + .../lib/ethereum_jsonrpc/request_coordinator.ex | 1 + .../lib/ethereum_jsonrpc/rolling_window.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rsk.ex | 1 + .../lib/ethereum_jsonrpc/rsk/trace.ex | 1 + .../lib/ethereum_jsonrpc/rsk/traces.ex | 1 + .../lib/ethereum_jsonrpc/signed_authorization.ex | 1 + .../lib/ethereum_jsonrpc/subscription.ex | 1 + .../lib/ethereum_jsonrpc/trace_block.ex | 1 + .../trace_replay_block_transactions.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/tracer.ex | 1 + .../lib/ethereum_jsonrpc/transaction.ex | 1 + .../lib/ethereum_jsonrpc/transactions.ex | 1 + .../lib/ethereum_jsonrpc/transport.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/uncle.ex | 1 + apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/uncles.ex | 1 + .../lib/ethereum_jsonrpc/utility/common_helper.ex | 1 + .../utility/endpoint_availability_checker.ex | 1 + .../utility/endpoint_availability_observer.ex | 1 + .../lib/ethereum_jsonrpc/utility/ranges_helper.ex | 1 + .../ethereum_jsonrpc/lib/ethereum_jsonrpc/variant.ex | 1 + .../lib/ethereum_jsonrpc/web_socket.ex | 1 + .../lib/ethereum_jsonrpc/web_socket/registration.ex | 1 + .../lib/ethereum_jsonrpc/web_socket/retry_worker.ex | 1 + .../lib/ethereum_jsonrpc/web_socket/supervisor.ex | 1 + .../ethereum_jsonrpc/web_socket/web_socket_client.ex | 1 + .../web_socket/web_socket_client/options.ex | 1 + .../lib/ethereum_jsonrpc/withdrawal.ex | 1 + .../lib/ethereum_jsonrpc/withdrawals.ex | 1 + .../ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa.ex | 1 + .../zilliqa/aggregate_quorum_certificate.ex | 1 + .../lib/ethereum_jsonrpc/zilliqa/helper.ex | 1 + .../zilliqa/nested_quorum_certificates.ex | 1 + .../ethereum_jsonrpc/zilliqa/quorum_certificate.ex | 1 + .../ethereum_jsonrpc/zksync/constants/contracts.ex | 1 + apps/ethereum_jsonrpc/mix.exs | 1 + .../test/ethereum_jsonrpc/block_test.exs | 1 + .../test/ethereum_jsonrpc/blocks_test.exs | 1 + .../test/ethereum_jsonrpc/contract_test.exs | 1 + .../test/ethereum_jsonrpc/encoder_test.exs | 1 + .../ethereum_jsonrpc/fetched_beneficiaries_test.exs | 1 + .../test/ethereum_jsonrpc/filecoin_test.exs | 1 + .../test/ethereum_jsonrpc/geth/call_test.exs | 1 + .../test/ethereum_jsonrpc/geth/calls_tests.exs | 1 + .../test/ethereum_jsonrpc/geth/tracer_test.exs | 1 + .../test/ethereum_jsonrpc/geth_test.exs | 1 + .../test/ethereum_jsonrpc/http/mox_test.exs | 1 + .../test/ethereum_jsonrpc/log_test.exs | 1 + .../test/ethereum_jsonrpc/mox_test.exs | 1 + .../nethermind/trace/action_test.exs | 1 + .../nethermind/trace/result_test.exs | 1 + .../test/ethereum_jsonrpc/nethermind/trace_test.exs | 1 + .../test/ethereum_jsonrpc/nethermind_test.exs | 1 + .../test/ethereum_jsonrpc/receipt_test.exs | 1 + .../test/ethereum_jsonrpc/receipts_test.exs | 1 + .../ethereum_jsonrpc/request_coordinator_test.exs | 1 + .../test/ethereum_jsonrpc/rolling_window_test.exs | 1 + .../test/ethereum_jsonrpc/transaction_test.exs | 1 + .../test/ethereum_jsonrpc/transactions_test.exs | 1 + .../test/ethereum_jsonrpc/uncle_test.exs | 1 + .../test/ethereum_jsonrpc/uncles_test.exs | 1 + .../ethereum_jsonrpc/utility/common_helper_test.exs | 1 + .../ethereum_jsonrpc/utility/ranges_helper_test.exs | 1 + .../web_socket/web_socket_client_test.exs | 1 + .../test/ethereum_jsonrpc/web_socket_test.exs | 1 + .../test/ethereum_jsonrpc/withdrawal_test.exs | 1 + .../test/ethereum_jsonrpc/withdrawals_test.exs | 1 + .../test/ethereum_jsonrpc/zilliqa_test.exs | 1 + apps/ethereum_jsonrpc/test/ethereum_jsonrpc_test.exs | 1 + .../test/support/ethereum_jsonrpc/case.ex | 1 + .../support/ethereum_jsonrpc/case/filecoin/mox.ex | 1 + .../ethereum_jsonrpc/case/geth/http_websocket.ex | 1 + .../test/support/ethereum_jsonrpc/case/geth/mox.ex | 1 + .../case/nethermind/http_websocket.ex | 1 + .../support/ethereum_jsonrpc/case/nethermind/mox.ex | 1 + .../test/support/ethereum_jsonrpc/http/case.ex | 1 + .../test/support/ethereum_jsonrpc/web_socket/case.ex | 1 + .../support/ethereum_jsonrpc/web_socket/case/geth.ex | 1 + .../support/ethereum_jsonrpc/web_socket/case/mox.ex | 1 + .../ethereum_jsonrpc/web_socket/case/nethermind.ex | 1 + .../web_socket/cowboy/websocket_handler.ex | 1 + apps/ethereum_jsonrpc/test/test_helper.exs | 1 + apps/explorer/benchmarks/explorer/chain/tokens.exs | 1 + .../transaction/recent_collated_transactions.exs | 1 + apps/explorer/config/config.exs | 1 + apps/explorer/config/dev.exs | 1 + apps/explorer/config/dev/anvil.exs | 1 + apps/explorer/config/dev/besu.exs | 1 + apps/explorer/config/dev/erigon.exs | 1 + apps/explorer/config/dev/filecoin.exs | 1 + apps/explorer/config/dev/geth.exs | 1 + apps/explorer/config/dev/nethermind.exs | 1 + apps/explorer/config/dev/rsk.exs | 1 + apps/explorer/config/prod.exs | 1 + apps/explorer/config/prod/anvil.exs | 1 + apps/explorer/config/prod/besu.exs | 1 + apps/explorer/config/prod/erigon.exs | 1 + apps/explorer/config/prod/filecoin.exs | 1 + apps/explorer/config/prod/geth.exs | 1 + apps/explorer/config/prod/nethermind.exs | 1 + apps/explorer/config/prod/rsk.exs | 1 + apps/explorer/config/runtime/test.exs | 1 + apps/explorer/config/test.exs | 1 + apps/explorer/config/test/anvil.exs | 1 + apps/explorer/config/test/besu.exs | 1 + apps/explorer/config/test/erigon.exs | 1 + apps/explorer/config/test/filecoin.exs | 1 + apps/explorer/config/test/geth.exs | 1 + apps/explorer/config/test/nethermind.exs | 1 + apps/explorer/config/test/rsk.exs | 1 + apps/explorer/lib/explorer.ex | 1 + apps/explorer/lib/explorer/access_helper.ex | 1 + apps/explorer/lib/explorer/account.ex | 1 + apps/explorer/lib/explorer/account/api/key.ex | 1 + apps/explorer/lib/explorer/account/api/plan.ex | 1 + .../explorer/account/auth0_to_keycloak_migration.ex | 1 + apps/explorer/lib/explorer/account/authentication.ex | 1 + apps/explorer/lib/explorer/account/custom_abi.ex | 1 + apps/explorer/lib/explorer/account/identity.ex | 1 + apps/explorer/lib/explorer/account/notifier/email.ex | 1 + .../explorer/account/notifier/forbidden_address.ex | 1 + .../explorer/lib/explorer/account/notifier/notify.ex | 1 + .../lib/explorer/account/notifier/summary.ex | 1 + apps/explorer/lib/explorer/account/notify.ex | 1 + apps/explorer/lib/explorer/account/tag_address.ex | 1 + .../explorer/lib/explorer/account/tag_transaction.ex | 1 + apps/explorer/lib/explorer/account/watchlist.ex | 1 + .../lib/explorer/account/watchlist_address.ex | 1 + .../lib/explorer/account/watchlist_notification.ex | 1 + apps/explorer/lib/explorer/accounts/accounts.ex | 1 + apps/explorer/lib/explorer/accounts/user.ex | 1 + .../lib/explorer/accounts/user/authenticate.ex | 1 + .../lib/explorer/accounts/user/registration.ex | 1 + apps/explorer/lib/explorer/accounts/user_contact.ex | 1 + apps/explorer/lib/explorer/admin.ex | 1 + apps/explorer/lib/explorer/admin/administrator.ex | 1 + apps/explorer/lib/explorer/admin/recovery.ex | 1 + apps/explorer/lib/explorer/admin/role.ex | 1 + apps/explorer/lib/explorer/application.ex | 1 + apps/explorer/lib/explorer/application/constants.ex | 1 + .../lib/explorer/arbitrum/claim_rollup_message.ex | 1 + apps/explorer/lib/explorer/arbitrum/withdraw.ex | 1 + apps/explorer/lib/explorer/bloom_filter.ex | 1 + apps/explorer/lib/explorer/bound_queue.ex | 1 + apps/explorer/lib/explorer/chain.ex | 1 + apps/explorer/lib/explorer/chain/address.ex | 1 + .../lib/explorer/chain/address/coin_balance.ex | 1 + .../lib/explorer/chain/address/coin_balance_daily.ex | 1 + apps/explorer/lib/explorer/chain/address/counters.ex | 1 + .../explorer/chain/address/current_token_balance.ex | 1 + .../lib/explorer/chain/address/metadata_preloader.ex | 1 + apps/explorer/lib/explorer/chain/address/name.ex | 1 + .../lib/explorer/chain/address/reputation.ex | 1 + .../explorer/chain/address/scam_badge_to_address.ex | 1 + apps/explorer/lib/explorer/chain/address/token.ex | 1 + .../lib/explorer/chain/address/token_balance.ex | 1 + apps/explorer/lib/explorer/chain/advanced_filter.ex | 1 + .../lib/explorer/chain/arbitrum/batch_block.ex | 1 + .../lib/explorer/chain/arbitrum/batch_to_da_blob.ex | 1 + .../lib/explorer/chain/arbitrum/batch_transaction.ex | 1 + .../chain/arbitrum/da_multi_purpose_record.ex | 1 + .../explorer/lib/explorer/chain/arbitrum/l1_batch.ex | 1 + .../lib/explorer/chain/arbitrum/l1_execution.ex | 1 + .../explorer/chain/arbitrum/lifecycle_transaction.ex | 1 + apps/explorer/lib/explorer/chain/arbitrum/message.ex | 1 + .../explorer/chain/arbitrum/reader/api/general.ex | 1 + .../explorer/chain/arbitrum/reader/api/messages.ex | 1 + .../explorer/chain/arbitrum/reader/api/settlement.ex | 1 + .../lib/explorer/chain/arbitrum/reader/common.ex | 1 + .../chain/arbitrum/reader/indexer/general.ex | 1 + .../chain/arbitrum/reader/indexer/messages.ex | 1 + .../reader/indexer/parent_chain_transactions.ex | 1 + .../chain/arbitrum/reader/indexer/settlement.ex | 1 + apps/explorer/lib/explorer/chain/beacon/blob.ex | 1 + .../lib/explorer/chain/beacon/blob_transaction.ex | 1 + apps/explorer/lib/explorer/chain/beacon/deposit.ex | 1 + .../lib/explorer/chain/beacon/deposit/pending.ex | 1 + apps/explorer/lib/explorer/chain/beacon/reader.ex | 1 + .../lib/explorer/chain/blackfort/validator.ex | 1 + apps/explorer/lib/explorer/chain/block.ex | 1 + .../lib/explorer/chain/block/emission_reward.ex | 1 + apps/explorer/lib/explorer/chain/block/range.ex | 1 + .../lib/explorer/chain/block/reader/general.ex | 1 + apps/explorer/lib/explorer/chain/block/reward.ex | 1 + .../lib/explorer/chain/block/reward/address_type.ex | 1 + .../explorer/chain/block/second_degree_relation.ex | 1 + .../lib/explorer/chain/block_number_helper.ex | 1 + apps/explorer/lib/explorer/chain/bridged_token.ex | 1 + apps/explorer/lib/explorer/chain/cache/accounts.ex | 1 + .../explorer/chain/cache/background_migrations.ex | 1 + .../lib/explorer/chain/cache/block_number.ex | 1 + apps/explorer/lib/explorer/chain/cache/blocks.ex | 1 + .../lib/explorer/chain/cache/celo_core_contracts.ex | 1 + .../explorer/lib/explorer/chain/cache/celo_epochs.ex | 1 + apps/explorer/lib/explorer/chain/cache/chain_id.ex | 1 + .../cache/counters/address_tabs_elements_count.ex | 1 + .../cache/counters/address_token_transfers_count.ex | 1 + .../chain/cache/counters/address_tokens_usd_sum.ex | 1 + .../cache/counters/address_transactions_count.ex | 1 + .../counters/address_transactions_gas_usage_sum.ex | 1 + .../cache/counters/addresses_coin_balance_sum.ex | 1 + .../addresses_coin_balance_sum_minus_burnt.ex | 1 + .../explorer/chain/cache/counters/addresses_count.ex | 1 + .../chain/cache/counters/average_block_time.ex | 1 + .../cache/counters/blackfort/validators_count.ex | 1 + .../chain/cache/counters/block_burnt_fee_count.ex | 1 + .../chain/cache/counters/block_priority_fee_count.ex | 1 + .../explorer/chain/cache/counters/blocks_count.ex | 1 + .../explorer/chain/cache/counters/contracts_count.ex | 1 + .../explorer/chain/cache/counters/gas_usage_sum.ex | 1 + .../lib/explorer/chain/cache/counters/helper.ex | 1 + .../helper/average_block_time_duration_format.ex | 1 + .../chain/cache/counters/last_fetched_counter.ex | 1 + .../chain/cache/counters/new_contracts_count.ex | 1 + .../cache/counters/new_pending_transactions_count.ex | 1 + .../cache/counters/new_verified_contracts_count.ex | 1 + .../optimism/last_output_root_size_counter.ex | 1 + .../cache/counters/pending_block_operation_count.ex | 1 + .../counters/pending_transaction_operation_count.ex | 1 + .../cache/counters/rootstock/locked_btc_count.ex | 1 + .../shibarium/deposits_and_withdrawals_count.ex | 1 + .../cache/counters/stability/validators_count.ex | 1 + .../chain/cache/counters/token_holders_count.ex | 1 + .../chain/cache/counters/token_transfers_count.ex | 1 + .../chain/cache/counters/transactions_24h_count.ex | 1 + .../chain/cache/counters/transactions_count.ex | 1 + .../chain/cache/counters/verified_contracts_count.ex | 1 + .../explorer/chain/cache/counters/withdrawals_sum.ex | 1 + .../lib/explorer/chain/cache/gas_price_oracle.ex | 1 + .../explorer/chain/cache/latest_l1_block_number.ex | 1 + .../lib/explorer/chain/cache/min_missing_block.ex | 1 + .../chain/cache/optimism_finalization_period.ex | 1 + .../lib/explorer/chain/cache/state_changes.ex | 1 + .../lib/explorer/chain/cache/transactions.ex | 1 + apps/explorer/lib/explorer/chain/cache/uncles.ex | 1 + apps/explorer/lib/explorer/chain/celo/account.ex | 1 + .../chain/celo/aggregated_election_reward.ex | 1 + .../lib/explorer/chain/celo/election_reward.ex | 1 + apps/explorer/lib/explorer/chain/celo/epoch.ex | 1 + .../explorer/lib/explorer/chain/celo/epoch_reward.ex | 1 + apps/explorer/lib/explorer/chain/celo/helper.ex | 1 + .../lib/explorer/chain/celo/legacy/accounts.ex | 1 + .../lib/explorer/chain/celo/legacy/events.ex | 1 + .../explorer/chain/celo/pending_account_operation.ex | 1 + .../lib/explorer/chain/celo/reader/epoch_manager.ex | 1 + .../lib/explorer/chain/celo/validator_group_vote.ex | 1 + apps/explorer/lib/explorer/chain/contract_method.ex | 1 + .../lib/explorer/chain/csv_export/address/logs.ex | 1 + .../chain/csv_export/address/token_transfers.ex | 1 + .../chain/csv_export/address/transactions.ex | 1 + .../lib/explorer/chain/csv_export/advanced_filter.ex | 1 + .../lib/explorer/chain/csv_export/async_helper.ex | 1 + .../chain/csv_export/celo/election_rewards.ex | 1 + .../explorer/lib/explorer/chain/csv_export/helper.ex | 1 + .../lib/explorer/chain/csv_export/request.ex | 1 + .../explorer/chain/csv_export/requests_sanitizer.ex | 1 + .../lib/explorer/chain/csv_export/token/holders.ex | 1 + .../explorer/lib/explorer/chain/csv_export/worker.ex | 1 + apps/explorer/lib/explorer/chain/currency_helper.ex | 1 + apps/explorer/lib/explorer/chain/data.ex | 1 + apps/explorer/lib/explorer/chain/decoding_helper.ex | 1 + .../lib/explorer/chain/denormalization_helper.ex | 1 + apps/explorer/lib/explorer/chain/events/db_sender.ex | 1 + apps/explorer/lib/explorer/chain/events/listener.ex | 1 + apps/explorer/lib/explorer/chain/events/publisher.ex | 1 + .../lib/explorer/chain/events/simple_sender.ex | 1 + .../explorer/lib/explorer/chain/events/subscriber.ex | 1 + .../explorer/chain/fetcher/addresses_blacklist.ex | 1 + .../chain/fetcher/addresses_blacklist/blockaid.ex | 1 + .../fetcher/check_bytecode_matching_on_demand.ex | 1 + .../chain/fetcher/fetch_validator_info_on_demand.ex | 1 + .../look_up_smart_contract_sources_on_demand.ex | 1 + .../lib/explorer/chain/fhe/fhe_contract_checker.ex | 1 + .../explorer/lib/explorer/chain/fhe/fhe_operation.ex | 1 + .../lib/explorer/chain/fhe/fhe_operator_prices.ex | 1 + apps/explorer/lib/explorer/chain/fhe/parser.ex | 1 + apps/explorer/lib/explorer/chain/filecoin/id.ex | 1 + .../lib/explorer/chain/filecoin/native_address.ex | 1 + .../chain/filecoin/pending_address_operation.ex | 1 + apps/explorer/lib/explorer/chain/gas.ex | 1 + apps/explorer/lib/explorer/chain/hash.ex | 1 + apps/explorer/lib/explorer/chain/hash/address.ex | 1 + apps/explorer/lib/explorer/chain/hash/full.ex | 1 + apps/explorer/lib/explorer/chain/hash/nonce.ex | 1 + apps/explorer/lib/explorer/chain/health/helper.ex | 1 + apps/explorer/lib/explorer/chain/health/monitor.ex | 1 + apps/explorer/lib/explorer/chain/import.ex | 1 + apps/explorer/lib/explorer/chain/import/runner.ex | 1 + .../chain/import/runner/address/coin_balances.ex | 1 + .../import/runner/address/coin_balances_daily.ex | 1 + .../import/runner/address/current_token_balances.ex | 1 + .../chain/import/runner/address/token_balances.ex | 1 + .../lib/explorer/chain/import/runner/addresses.ex | 1 + .../chain/import/runner/arbitrum/batch_blocks.ex | 1 + .../import/runner/arbitrum/batch_to_da_blobs.ex | 1 + .../import/runner/arbitrum/batch_transactions.ex | 1 + .../runner/arbitrum/da_multi_purpose_records.ex | 1 + .../chain/import/runner/arbitrum/l1_batches.ex | 1 + .../chain/import/runner/arbitrum/l1_executions.ex | 1 + .../import/runner/arbitrum/lifecycle_transactions.ex | 1 + .../chain/import/runner/arbitrum/messages.ex | 1 + .../chain/import/runner/beacon/blob_transactions.ex | 1 + .../explorer/chain/import/runner/block/rewards.ex | 1 + .../import/runner/block/second_degree_relations.ex | 1 + .../lib/explorer/chain/import/runner/blocks.ex | 1 + .../explorer/chain/import/runner/celo/accounts.ex | 1 + .../runner/celo/aggregated_election_rewards.ex | 1 + .../chain/import/runner/celo/election_rewards.ex | 1 + .../chain/import/runner/celo/epoch_rewards.ex | 1 + .../lib/explorer/chain/import/runner/celo/epochs.ex | 1 + .../import/runner/celo/pending_account_operations.ex | 1 + .../import/runner/celo/validator_group_votes.ex | 1 + .../explorer/chain/import/runner/fhe_operations.ex | 1 + .../lib/explorer/chain/import/runner/helper.ex | 1 + .../chain/import/runner/internal_transactions.ex | 1 + .../lib/explorer/chain/import/runner/logs.ex | 1 + .../chain/import/runner/optimism/deposits.ex | 1 + .../chain/import/runner/optimism/dispute_games.ex | 1 + .../import/runner/optimism/eip1559_config_updates.ex | 1 + .../import/runner/optimism/frame_sequence_blobs.ex | 1 + .../chain/import/runner/optimism/frame_sequences.ex | 1 + .../chain/import/runner/optimism/interop_messages.ex | 1 + .../chain/import/runner/optimism/output_roots.ex | 1 + .../import/runner/optimism/transaction_batches.ex | 1 + .../import/runner/optimism/withdrawal_events.ex | 1 + .../chain/import/runner/optimism/withdrawals.ex | 1 + .../chain/import/runner/scroll/batch_bundles.ex | 1 + .../explorer/chain/import/runner/scroll/batches.ex | 1 + .../chain/import/runner/scroll/bridge_operations.ex | 1 + .../chain/import/runner/scroll/l1_fee_params.ex | 1 + .../import/runner/shibarium/bridge_operations.ex | 1 + .../chain/import/runner/signed_authorizations.ex | 1 + .../chain/import/runner/stability/validators.ex | 1 + .../chain/import/runner/stats/hot_smart_contracts.ex | 1 + .../explorer/chain/import/runner/token_instances.ex | 1 + .../explorer/chain/import/runner/token_transfers.ex | 1 + .../lib/explorer/chain/import/runner/tokens.ex | 1 + .../chain/import/runner/transaction/forks.ex | 1 + .../lib/explorer/chain/import/runner/transactions.ex | 1 + .../lib/explorer/chain/import/runner/withdrawals.ex | 1 + .../runner/zilliqa/aggregate_quorum_certificates.ex | 1 + .../runner/zilliqa/nested_quorum_certificates.ex | 1 + .../import/runner/zilliqa/quorum_certificates.ex | 1 + .../import/runner/zilliqa/zrc2/token_adapters.ex | 1 + .../import/runner/zilliqa/zrc2/token_transfers.ex | 1 + .../chain/import/runner/zksync/batch_blocks.ex | 1 + .../chain/import/runner/zksync/batch_transactions.ex | 1 + .../import/runner/zksync/lifecycle_transactions.ex | 1 + .../import/runner/zksync/transaction_batches.ex | 1 + apps/explorer/lib/explorer/chain/import/stage.ex | 1 + .../lib/explorer/chain/import/stage/addresses.ex | 1 + .../import/stage/block_transaction_referencing.ex | 1 + .../lib/explorer/chain/import/stage/blocks.ex | 1 + .../chain/import/stage/chain_type_specific.ex | 1 + .../chain/import/stage/internal_transactions.ex | 1 + .../explorer/lib/explorer/chain/import/stage/logs.ex | 1 + .../explorer/lib/explorer/chain/import/stage/main.ex | 1 + .../lib/explorer/chain/import/stage/stats.ex | 1 + .../explorer/chain/import/stage/token_instances.ex | 1 + .../explorer/chain/import/stage/token_referencing.ex | 1 + .../lib/explorer/chain/internal_transaction.ex | 1 + .../explorer/chain/internal_transaction/action.ex | 1 + .../explorer/chain/internal_transaction/call_type.ex | 1 + .../chain/internal_transaction/delete_queue.ex | 1 + .../explorer/chain/internal_transaction/result.ex | 1 + .../lib/explorer/chain/internal_transaction/type.ex | 1 + apps/explorer/lib/explorer/chain/log.ex | 1 + apps/explorer/lib/explorer/chain/map_cache.ex | 1 + .../explorer/lib/explorer/chain/method_identifier.ex | 1 + .../lib/explorer/chain/metrics/public_metrics.ex | 1 + .../chain/metrics/queries/indexer_metrics.ex | 1 + .../chain/metrics/queries/public_chain_metrics.ex | 1 + apps/explorer/lib/explorer/chain/mud.ex | 1 + apps/explorer/lib/explorer/chain/mud/schema.ex | 1 + apps/explorer/lib/explorer/chain/mud/table.ex | 1 + .../multichain_search_db/balances_export_queue.ex | 1 + .../multichain_search_db/counters_export_queue.ex | 1 + .../chain/multichain_search_db/main_export_queue.ex | 1 + .../multichain_search_db/token_info_export_queue.ex | 1 + .../chain/neon/linked_solana_transactions.ex | 1 + .../explorer/lib/explorer/chain/null_round_height.ex | 1 + apps/explorer/lib/explorer/chain/optimism/deposit.ex | 1 + .../lib/explorer/chain/optimism/dispute_game.ex | 1 + .../explorer/chain/optimism/eip1559_config_update.ex | 1 + .../lib/explorer/chain/optimism/frame_sequence.ex | 1 + .../explorer/chain/optimism/frame_sequence_blob.ex | 1 + .../lib/explorer/chain/optimism/interop_message.ex | 1 + .../lib/explorer/chain/optimism/output_root.ex | 1 + apps/explorer/lib/explorer/chain/optimism/reader.ex | 1 + .../lib/explorer/chain/optimism/transaction_batch.ex | 1 + .../lib/explorer/chain/optimism/withdrawal.ex | 1 + .../lib/explorer/chain/optimism/withdrawal_event.ex | 1 + apps/explorer/lib/explorer/chain/ordered_cache.ex | 1 + .../lib/explorer/chain/pending_block_operation.ex | 1 + .../lib/explorer/chain/pending_operations_helper.ex | 1 + .../explorer/chain/pending_transaction_operation.ex | 1 + apps/explorer/lib/explorer/chain/scroll/batch.ex | 1 + .../lib/explorer/chain/scroll/batch_bundle.ex | 1 + apps/explorer/lib/explorer/chain/scroll/bridge.ex | 1 + .../lib/explorer/chain/scroll/l1_fee_param.ex | 1 + apps/explorer/lib/explorer/chain/scroll/reader.ex | 1 + apps/explorer/lib/explorer/chain/search.ex | 1 + apps/explorer/lib/explorer/chain/shibarium/bridge.ex | 1 + apps/explorer/lib/explorer/chain/shibarium/reader.ex | 1 + .../lib/explorer/chain/signed_authorization.ex | 1 + .../explorer/chain/signed_authorization/reader.ex | 1 + apps/explorer/lib/explorer/chain/smart_contract.ex | 1 + .../explorer/chain/smart_contract/audit_report.ex | 1 + .../chain/smart_contract/external_library.ex | 1 + .../lib/explorer/chain/smart_contract/proxy.ex | 1 + .../proxy/basic_implementation_getter.ex | 1 + .../proxy/clone_with_immutable_arguments.ex | 1 + .../explorer/chain/smart_contract/proxy/eip_1167.ex | 1 + .../explorer/chain/smart_contract/proxy/eip_1822.ex | 1 + .../explorer/chain/smart_contract/proxy/eip_1967.ex | 1 + .../explorer/chain/smart_contract/proxy/eip_2535.ex | 1 + .../explorer/chain/smart_contract/proxy/eip_7702.ex | 1 + .../explorer/chain/smart_contract/proxy/erc_7760.ex | 1 + .../chain/smart_contract/proxy/master_copy.ex | 1 + .../smart_contract/proxy/models/implementation.ex | 1 + .../smart_contract/proxy/resolved_delegate_proxy.ex | 1 + .../chain/smart_contract/proxy/resolver_behaviour.ex | 1 + .../smart_contract/proxy/verification_status.ex | 1 + .../chain/smart_contract/verification_status.ex | 1 + .../verified_contract_addresses_query.ex | 1 + .../chain/smart_contract_additional_source.ex | 1 + .../lib/explorer/chain/stability/validator.ex | 1 + apps/explorer/lib/explorer/chain/supply.ex | 1 + .../lib/explorer/chain/supply/exchange_rate.ex | 1 + .../lib/explorer/chain/supply/proof_of_authority.ex | 1 + apps/explorer/lib/explorer/chain/supply/rsk.ex | 1 + apps/explorer/lib/explorer/chain/token.ex | 1 + apps/explorer/lib/explorer/chain/token/fiat_value.ex | 1 + apps/explorer/lib/explorer/chain/token/instance.ex | 1 + .../lib/explorer/chain/token/instance/media_urls.ex | 1 + apps/explorer/lib/explorer/chain/token_transfer.ex | 1 + apps/explorer/lib/explorer/chain/transaction.ex | 1 + apps/explorer/lib/explorer/chain/transaction/fork.ex | 1 + .../explorer/chain/transaction/history/historian.ex | 1 + .../chain/transaction/history/transaction_stats.ex | 1 + .../lib/explorer/chain/transaction/reader.ex | 1 + .../lib/explorer/chain/transaction/state_change.ex | 1 + .../lib/explorer/chain/transaction/status.ex | 1 + .../explorer/lib/explorer/chain/transaction_error.ex | 1 + apps/explorer/lib/explorer/chain/user_operation.ex | 1 + apps/explorer/lib/explorer/chain/validator.ex | 1 + apps/explorer/lib/explorer/chain/wei.ex | 1 + apps/explorer/lib/explorer/chain/withdrawal.ex | 1 + .../chain/zilliqa/aggregate_quorum_certificate.ex | 1 + .../explorer/chain/zilliqa/hash/bls_public_key.ex | 1 + .../lib/explorer/chain/zilliqa/hash/peer_id.ex | 1 + .../lib/explorer/chain/zilliqa/hash/signature.ex | 1 + apps/explorer/lib/explorer/chain/zilliqa/helper.ex | 1 + .../chain/zilliqa/nested_quorum_certificate.ex | 1 + .../lib/explorer/chain/zilliqa/quorum_certificate.ex | 1 + apps/explorer/lib/explorer/chain/zilliqa/reader.ex | 1 + apps/explorer/lib/explorer/chain/zilliqa/staker.ex | 1 + .../lib/explorer/chain/zilliqa/zrc2/token_adapter.ex | 1 + .../explorer/chain/zilliqa/zrc2/token_transfer.ex | 1 + .../lib/explorer/chain/zksync/batch_block.ex | 1 + .../lib/explorer/chain/zksync/batch_transaction.ex | 1 + .../explorer/chain/zksync/lifecycle_transaction.ex | 1 + apps/explorer/lib/explorer/chain/zksync/reader.ex | 1 + .../lib/explorer/chain/zksync/transaction_batch.ex | 1 + .../explorer/lib/explorer/chain_spec/genesis_data.ex | 1 + .../lib/explorer/chain_spec/geth/importer.ex | 1 + .../lib/explorer/chain_spec/parity/importer.ex | 1 + .../explorer/lib/explorer/chain_spec/poa/importer.ex | 1 + .../explorer/lib/explorer/custom_contracts_helper.ex | 1 + apps/explorer/lib/explorer/encrypted/address_hash.ex | 1 + apps/explorer/lib/explorer/encrypted/binary.ex | 1 + .../lib/explorer/encrypted/transaction_hash.ex | 1 + .../lib/explorer/encrypted/types/address_hash.ex | 1 + .../lib/explorer/encrypted/types/transaction_hash.ex | 1 + apps/explorer/lib/explorer/env_var_translator.ex | 1 + apps/explorer/lib/explorer/eth_rpc.ex | 1 + apps/explorer/lib/explorer/eth_rpc_helper.ex | 1 + apps/explorer/lib/explorer/etherscan.ex | 1 + apps/explorer/lib/explorer/etherscan/addresses.ex | 1 + apps/explorer/lib/explorer/etherscan/blocks.ex | 1 + apps/explorer/lib/explorer/etherscan/contracts.ex | 1 + apps/explorer/lib/explorer/etherscan/logs.ex | 1 + apps/explorer/lib/explorer/graphql.ex | 1 + apps/explorer/lib/explorer/graphql/celo.ex | 1 + apps/explorer/lib/explorer/helper.ex | 1 + apps/explorer/lib/explorer/history/historian.ex | 1 + apps/explorer/lib/explorer/history/process.ex | 1 + apps/explorer/lib/explorer/http_client.ex | 1 + apps/explorer/lib/explorer/http_client/httpoison.ex | 1 + apps/explorer/lib/explorer/http_client/tesla.ex | 1 + apps/explorer/lib/explorer/logger.ex | 1 + apps/explorer/lib/explorer/mailer.ex | 1 + apps/explorer/lib/explorer/market/fetcher/coin.ex | 1 + apps/explorer/lib/explorer/market/fetcher/history.ex | 1 + apps/explorer/lib/explorer/market/fetcher/token.ex | 1 + .../lib/explorer/market/fetcher/token_list.ex | 1 + apps/explorer/lib/explorer/market/market.ex | 1 + apps/explorer/lib/explorer/market/market_history.ex | 1 + .../lib/explorer/market/market_history_cache.ex | 1 + apps/explorer/lib/explorer/market/source.ex | 1 + .../lib/explorer/market/source/coin_gecko.ex | 1 + .../lib/explorer/market/source/coin_market_cap.ex | 1 + .../lib/explorer/market/source/crypto_compare.ex | 1 + .../lib/explorer/market/source/crypto_rank.ex | 1 + .../explorer/lib/explorer/market/source/defillama.ex | 1 + apps/explorer/lib/explorer/market/source/dia.ex | 1 + apps/explorer/lib/explorer/market/source/mobula.ex | 1 + apps/explorer/lib/explorer/market/token.ex | 1 + apps/explorer/lib/explorer/metadata_uri_validator.ex | 1 + .../microservice_interfaces/account_abstraction.ex | 1 + .../lib/explorer/microservice_interfaces/bens.ex | 1 + .../lib/explorer/microservice_interfaces/metadata.ex | 1 + .../microservice_interfaces/multichain_search.ex | 1 + .../tac_operation_lifecycle.ex | 1 + .../address_current_token_balance_token_type.ex | 1 + .../migrator/address_token_balance_token_type.ex | 1 + .../migrator/arbitrum_da_records_normalization.ex | 1 + .../lib/explorer/migrator/backfill_metadata_url.ex | 1 + .../migrator/backfill_multichain_search_db.ex | 1 + apps/explorer/lib/explorer/migrator/celo_accounts.ex | 1 + .../migrator/celo_aggregated_election_rewards.ex | 1 + .../explorer/lib/explorer/migrator/celo_l2_epochs.ex | 1 + .../delete_zero_value_internal_transactions.ex | 1 + ...ty_bytecode_for_selfdestructed_smart_contracts.ex | 1 + .../migrator/empty_internal_transactions_data.ex | 1 + .../migrator/filecoin_pending_address_operations.ex | 1 + .../fill_internal_transactions_address_ids.ex | 1 + .../lib/explorer/migrator/filling_migration.ex | 1 + .../explorer/migrator/heavy_db_index_operation.ex | 1 + ...te_addresses_hash_contract_code_not_null_index.ex | 1 + ...tions_count_asc_coin_balance_desc_hash_partial.ex | 1 + ...ddresses_transactions_count_desc_partial_index.ex | 1 + ..._verified_fetched_coin_balance_desc_hash_index.ex | 1 + .../create_addresses_verified_hash_index.ex | 1 + .../create_addresses_verified_index.ex | 1 + ...es_verified_transactions_count_desc_hash_index.ex | 1 + ...itrum_batch_l2_blocks_unconfirmed_blocks_index.ex | 1 + ...mber_created_contract_address_id_partial_index.ex | 1 + ...tions_block_number_desc_block_index_desc_index.ex | 1 + ...ck_number_transaction_index_index_unique_index.ex | 1 + ...transactions_created_contract_address_id_index.ex | 1 + ...nal_transactions_from_address_id_partial_index.ex | 1 + ...ernal_transactions_to_address_id_partial_index.ex | 1 + ...ddress_hash_block_number_desc_index_desc_index.ex | 1 + ...ress_hash_first_topic_block_number_index_index.ex | 1 + .../create_logs_block_hash_index.ex | 1 + .../create_logs_deposits_withdrawals_index.ex | 1 + ...smart_contract_additional_sources_unique_index.ex | 1 + .../create_smart_contracts_language_index.ex | 1 + .../create_tokens_name_partial_fts_index.ex | 1 + .../create_tokens_ord_fiat_holder_name_index.ex | 1 + .../create_tokens_ord_holder_name_index.ex | 1 + .../create_tokens_ord_mcap_fiat_holder_name_index.ex | 1 + ..._created_contract_address_hash_w_pending_index.ex | 1 + .../drop_addresses_verified_index.ex | 1 + ...tions_block_hash_transaction_index_index_index.ex | 1 + ...ock_number_created_contract_address_hash_index.ex | 1 + ...ansactions_created_contract_address_hash_index.ex | 1 + ...ns_created_contract_address_hash_partial_index.ex | 1 + ..._internal_transactions_from_address_hash_index.ex | 1 + ...l_transactions_from_address_hash_partial_index.ex | 1 + ...nal_transactions_to_address_hash_partial_index.ex | 1 + .../drop_logs_address_hash_index.ex | 1 + .../drop_logs_address_hash_transaction_hash_index.ex | 1 + .../drop_logs_block_number_asc_index_asc_index.ex | 1 + .../drop_logs_index_index.ex | 1 + .../drop_token_instances_token_id_index.ex | 1 + ...transfers_block_number_asc_log_index_asc_index.ex | 1 + .../drop_token_transfers_block_number_index.ex | 1 + ...sfers_from_address_hash_transaction_hash_index.ex | 1 + ...ansfers_to_address_hash_transaction_hash_index.ex | 1 + ...n_contract_address_hash_transaction_hash_index.ex | 1 + ...eated_contract_address_hash_with_pending_index.ex | 1 + ...ted_contract_address_hash_with_pending_index_a.ex | 1 + ...nsactions_from_address_hash_with_pending_index.ex | 1 + .../drop_transactions_operator_fee_constant_index.ex | 1 + ...ransactions_to_address_hash_with_pending_index.ex | 1 + .../migrator/heavy_db_index_operation/helper.ex | 1 + ..._block_hash_transaction_hash_block_index_error.ex | 1 + .../update_internal_transactions_primary_key.ex | 1 + ...ctions_block_number_transaction_index_not_null.ex | 1 + .../migrator/merge_adjacent_missing_block_ranges.ex | 1 + .../lib/explorer/migrator/migration_status.ex | 1 + .../lib/explorer/migrator/refetch_contract_codes.ex | 1 + .../reindex_blocks_with_missing_transactions.ex | 1 + ...internal_transactions_with_incompatible_status.ex | 1 + .../migrator/restore_omitted_weth_transfers.ex | 1 + ...ze_duplicate_smart_contract_additional_sources.ex | 1 + .../migrator/sanitize_duplicated_log_index_logs.ex | 1 + .../sanitize_empty_contract_code_addresses.ex | 1 + ...tize_erc_1155_token_balances_without_token_ids.ex | 1 + .../sanitize_incorrect_nft_token_transfers.ex | 1 + .../sanitize_incorrect_weth_token_transfers.ex | 1 + .../migrator/sanitize_missing_block_ranges.ex | 1 + .../migrator/sanitize_missing_token_balances.ex | 1 + .../migrator/sanitize_replaced_transactions.ex | 1 + .../explorer/migrator/sanitize_verified_addresses.ex | 1 + .../migrator/shrink_internal_transactions.ex | 1 + .../explorer/migrator/switch_pending_operations.ex | 1 + .../migrator/token_transfer_block_consensus.ex | 1 + .../explorer/migrator/token_transfer_token_type.ex | 1 + .../explorer/migrator/transaction_block_consensus.ex | 1 + .../migrator/transactions_denormalization.ex | 1 + .../migrator/unescape_ampersands_in_tokens.ex | 1 + .../explorer/migrator/unescape_quotes_in_tokens.ex | 1 + apps/explorer/lib/explorer/module_queue_registry.ex | 1 + apps/explorer/lib/explorer/paging_options.ex | 1 + .../prometheus/collector/active_db_connections.ex | 1 + .../explorer/lib/explorer/prometheus/instrumenter.ex | 1 + apps/explorer/lib/explorer/promo/autoscout.ex | 1 + apps/explorer/lib/explorer/query_helper.ex | 1 + apps/explorer/lib/explorer/repo.ex | 1 + apps/explorer/lib/explorer/repo/config_helper.ex | 1 + apps/explorer/lib/explorer/repo/prometheus_logger.ex | 1 + apps/explorer/lib/explorer/schema.ex | 1 + .../certified_smart_contract_cataloger.ex | 1 + .../lib/explorer/smart_contract/compiler_version.ex | 1 + .../smart_contract/eth_bytecode_db_interface.ex | 1 + .../lib/explorer/smart_contract/geas/publisher.ex | 1 + apps/explorer/lib/explorer/smart_contract/helper.ex | 1 + apps/explorer/lib/explorer/smart_contract/reader.ex | 1 + .../smart_contract/rust_verifier_interface.ex | 1 + .../rust_verifier_interface_behaviour.ex | 1 + .../smart_contract/sig_provider_interface.ex | 1 + .../lib/explorer/smart_contract/solc_downloader.ex | 1 + .../smart_contract/solidity/code_compiler.ex | 1 + .../smart_contract/solidity/publish_helper.ex | 1 + .../explorer/smart_contract/solidity/publisher.ex | 1 + .../smart_contract/solidity/publisher_worker.ex | 1 + .../lib/explorer/smart_contract/solidity/verifier.ex | 1 + .../lib/explorer/smart_contract/stylus/publisher.ex | 1 + .../smart_contract/stylus/publisher_worker.ex | 1 + .../lib/explorer/smart_contract/stylus/verifier.ex | 1 + .../smart_contract/stylus_verifier_interface.ex | 1 + .../explorer/smart_contract/vyper/code_compiler.ex | 1 + .../lib/explorer/smart_contract/vyper/publisher.ex | 1 + .../smart_contract/vyper/publisher_worker.ex | 1 + .../lib/explorer/smart_contract/vyper/verifier.ex | 1 + .../lib/explorer/smart_contract/vyper_downloader.ex | 1 + apps/explorer/lib/explorer/smart_contract/writer.ex | 1 + apps/explorer/lib/explorer/sorting_helper.ex | 1 + .../lib/explorer/stats/hot_smart_contracts.ex | 1 + apps/explorer/lib/explorer/tags/address_tag.ex | 1 + .../lib/explorer/tags/address_tag_cataloger.ex | 1 + apps/explorer/lib/explorer/tags/address_to_tag.ex | 1 + .../airtable_audit_report.ex | 1 + .../lib/explorer/third_party_integrations/auth0.ex | 1 + .../third_party_integrations/auth0/internal.ex | 1 + .../third_party_integrations/auth0/legacy.ex | 1 + .../third_party_integrations/auth0/migrated.ex | 1 + .../lib/explorer/third_party_integrations/dynamic.ex | 1 + .../third_party_integrations/dynamic/strategy.ex | 1 + .../third_party_integrations/dynamic/token.ex | 1 + .../explorer/third_party_integrations/keycloak.ex | 1 + .../explorer/third_party_integrations/noves_fi.ex | 1 + .../third_party_integrations/solidityscan.ex | 1 + .../explorer/third_party_integrations/sourcify.ex | 1 + .../third_party_integrations/universal_proxy.ex | 1 + .../universal_proxy/socket_handler.ex | 1 + .../universal_proxy/target_client.ex | 1 + .../lib/explorer/third_party_integrations/xname.ex | 1 + apps/explorer/lib/explorer/token/balance_reader.ex | 1 + .../lib/explorer/token/metadata_retriever.ex | 1 + .../token_instance_owner_address_migration/helper.ex | 1 + .../supervisor.ex | 1 + .../token_instance_owner_address_migration/worker.ex | 1 + apps/explorer/lib/explorer/tracer.ex | 1 + apps/explorer/lib/explorer/tuple_encoder.ex | 1 + .../utility/address_contract_code_fetch_attempt.ex | 1 + .../explorer/utility/address_id_to_address_hash.ex | 1 + .../lib/explorer/utility/event_notification.ex | 1 + apps/explorer/lib/explorer/utility/hammer.ex | 1 + .../explorer/utility/internal_transaction_helper.ex | 1 + .../internal_transactions_address_placeholder.ex | 1 + apps/explorer/lib/explorer/utility/massive_block.ex | 1 + apps/explorer/lib/explorer/utility/microservice.ex | 1 + .../lib/explorer/utility/missing_balance_of_token.ex | 1 + .../lib/explorer/utility/missing_block_range.ex | 1 + apps/explorer/lib/explorer/utility/rate_limiter.ex | 1 + .../utility/replica_accessibility_manager.ex | 1 + .../token_instance_metadata_refetch_attempt.ex | 1 + .../explorer/utility/version_constants_updater.ex | 1 + .../explorer/lib/explorer/utility/version_upgrade.ex | 1 + .../lib/explorer/validator/metadata_importer.ex | 1 + .../lib/explorer/validator/metadata_processor.ex | 1 + .../lib/explorer/validator/metadata_retriever.ex | 1 + apps/explorer/lib/explorer/vault.ex | 1 + apps/explorer/lib/explorer/visualize/sol2uml.ex | 1 + apps/explorer/lib/fetch_celo_core_contracts.ex | 1 + .../lib/mix/tasks/auth0_to_keycloak_migrate.ex | 1 + apps/explorer/lib/release_tasks.ex | 1 + apps/explorer/lib/test_helper.ex | 1 + apps/explorer/mix.exs | 1 + .../20211031164954_create_account_identities.exs | 1 + .../20211105114502_create_account_watchlists.exs | 1 + ...1105130907_create_account_watchlist_addresses.exs | 1 + ...212336_create_account_watchlist_notifications.exs | 1 + ...220414_add_email_and_name_to_account_identity.exs | 1 + .../20220212222222_create_account_tag_addresses.exs | 1 + ...0220313133333_create_account_tag_transactions.exs | 1 + ...213333_add_subject_to_watchlist_notifications.exs | 1 + .../20220407134152_add_api_keys_and_plans_tables.exs | 1 + .../20220510094118_add_custom_abis_table.exs | 1 + ...220606194836_add_account_public_tags_requests.exs | 1 + .../20220620182600_add_account_identity_fields.exs | 1 + .../20220624142547_add_unique_constraints.exs | 1 + ...195240_migrate_public_tags_addresses_to_array.exs | 1 + .../20220706114430_encrypt_account_data.exs | 1 + .../20220706153506_remove_unencrypted_fields.exs | 1 + .../migrations/20220706211444_set_new_indexes.exs | 1 + .../20220905195203_remove_guardian_tokens.exs | 1 + ...ate_token_transfer_token_id_migrator_progress.exs | 1 + ...20230502083519_add_verification_email_sent_at.exs | 1 + .../20231207201701_add_watchlist_id_column.exs | 1 + ...dd_account_watchlist_addresses_erc_404_fields.exs | 1 + .../account/migrations/20240913194307_account_v2.exs | 1 + .../20241015091450_rename_tx_hash_field.exs | 1 + .../20241121140138_remove_abused_api_keys.exs | 1 + .../20241128100836_remove_abused_custom_abis.exs | 1 + ...41204093817_remove_abused_public_tags_request.exs | 1 + ...50815115250_drop_account_public_tags_requests.exs | 1 + ...251029115930_account_watchlist_zrc2_addresses.exs | 1 + .../20240201125730_create_arbitrum_tables.exs | 1 + ...510184858_extend_transaction_and_block_tables.exs | 1 + .../migrations/20240527212653_add_da_info.exs | 1 + .../20240628210148_add_index_for_messages.exs | 1 + .../20241015093220_rename_tx_hash_field_arbitrum.exs | 1 + .../migrations/20241111195112_add_stylus_fields.exs | 1 + ...0241217155103_add_data_blobs_to_batches_table.exs | 1 + .../20250731001757_add_eigenda_batches.exs | 1 + .../20240109102458_create_blobs_tables.exs | 1 + ...20240318154323_create_blob_transactions_index.exs | 1 + .../migrations/20250813001523_create_deposits.exs | 1 + .../20251029090030_deposits_remove_foreign_keys.exs | 1 + .../20240910112251_add_blackfort_validators.exs | 1 + .../migrations/20230919080116_add_bridged_tokens.exs | 1 + .../migrations/20240323152023_add_custom_fields.exs | 1 + ...0424121856_add_pending_epoch_block_operations.exs | 1 + ...ove_transaction_hash_from_primary_key_in_logs.exs | 1 + ...tion_hash_from_primary_key_in_token_transfers.exs | 1 + .../migrations/20240607185817_add_epoch_rewards.exs | 1 + .../20240612135216_add_validator_group_votes.exs | 1 + .../20240614125614_add_election_rewards.exs | 1 + ...move_unused_fields_from_validator_group_votes.exs | 1 + ...ount_address_and_group_address_to_primary_key.exs | 1 + ...29131554_modify_collated_gas_price_constraint.exs | 1 + .../celo/migrations/20250416085705_create_epoch.exs | 1 + ...8141539_remove_pending_epoch_block_operations.exs | 1 + ..._rewards_replace_block_hash_with_epoch_number.exs | 1 + ..._rewards_replace_block_hash_with_epoch_number.exs | 1 + .../migrations/20250731143827_create_account.exs | 1 + ...50801112346_create_pending_account_operations.exs | 1 + ...111445_add_log_index_to_validator_group_votes.exs | 1 + ...95435_create_celo_aggregated_election_rewards.exs | 1 + .../20220804114005_create_event_notifications.exs | 1 + ...04124014_add_timestamp_to_event_notifications.exs | 1 + ...31130103_modify_collated_gas_price_constraint.exs | 1 + .../20231109104957_create_null_round_heights.exs | 1 + ...9140124_change_null_round_heights_height_type.exs | 1 + ...40801134142_create_pending_address_operations.exs | 1 + ...240807134138_add_chain_type_fields_to_address.exs | 1 + ...dd_refetch_after_to_pending_address_operation.exs | 1 + ...0220085529_replace_filecoin_addresses_indexes.exs | 1 + ...0241203161152_create_neon_solana_transactions.exs | 1 + ...20204060243_transaction_columns_to_support_l2.exs | 1 + .../20230131115105_add_op_output_roots_table.exs | 1 + .../20230206123308_add_op_withdrawals_table.exs | 1 + ...20230212162845_add_op_withdrawal_events_table.exs | 1 + ...230216135703_add_op_transaction_batches_table.exs | 1 + .../migrations/20230220202107_create_op_deposits.exs | 1 + .../migrations/20230301105051_rename_fields.exs | 1 + .../migrations/20230303125841_add_op_indexes.exs | 1 + .../20230307090655_add_op_frame_sequences_table.exs | 1 + ...31130103_modify_collated_gas_price_constraint.exs | 1 + .../20231025102325_add_op_withdrawal_index.exs | 1 + .../20240124124644_remove_op_epoch_number_field.exs | 1 + .../20240328125102_fault_proofs_support.exs | 1 + .../20240503113124_add_celestia_blob_metadata.exs | 1 + .../20240612120541_add_view_ready_field.exs | 1 + ...240613065020_add_frame_sequence_id_prev_field.exs | 1 + ...241015140121_rename_tx_related_field_optimism.exs | 1 + .../migrations/20241203113159_holocene_support.exs | 1 + .../20241209101134_op_withdrawal_events_key.exs | 1 + .../migrations/20250121131928_holocene_clear.exs | 1 + .../20250204050501_op_interop_messages.exs | 1 + .../migrations/20250221121840_reindex_batches.exs | 1 + .../20250317111838_rename_interop_addresses.exs | 1 + ...50428080401_game_address_field_in_withdrawals.exs | 1 + .../20250501120524_op_interop_transfer_fields.exs | 1 + .../20250610100740_add_op_interop_indices.exs | 1 + ...20250619093450_op_sent_to_multichain_nullable.exs | 1 + .../migrations/20250901063610_op_operator_fee.exs | 1 + .../migrations/20250908073612_add_alt_da_blobs.exs | 1 + .../20250919073011_op_withdrawal_claim_button.exs | 1 + .../migrations/20251104063632_jovian_support.exs | 1 + .../migrations/20251205112616_op_eigen_da_blobs.exs | 1 + .../20260304115554_op_drop_operator_fee_index.exs | 1 + ...8132249_create_polygon_edge_withdrawal_tables.exs | 1 + ...0707113550_create_polygon_edge_deposit_tables.exs | 1 + ...31130103_modify_collated_gas_price_constraint.exs | 1 + .../migrations/20180117221921_create_address.exs | 1 + .../repo/migrations/20180117221922_create_blocks.exs | 1 + .../20180117221923_create_transactions.exs | 1 + .../repo/migrations/20180212222309_create_logs.exs | 1 + .../20180221001948_create_internal_transactions.exs | 1 + .../20180424203101_create_market_history.exs | 1 + .../repo/migrations/20180508183700_create_users.exs | 1 + .../20180508191045_create_user_contacts.exs | 1 + ...20180518221256_create_smart_contract_verified.exs | 1 + .../20180522154252_create_btree_gist_extension.exs | 1 + .../20180522154253_create_block_rewards.exs | 1 + .../repo/migrations/20180606135149_create_tokens.exs | 1 + .../20180606135150_create_token_transfers.exs | 1 + ...0180626143840_add_inserted_at_index_to_blocks.exs | 1 + .../20180717204948_create_address_coin_balances.exs | 1 + .../20180817021704_create_address_token_balances.exs | 1 + .../20180821142139_create_address_names.exs | 1 + ...17182319_create_block_second_degree_relations.exs | 1 + .../20180918200001_create_transaction_fork.exs | 1 + ...20180919175123_alter_token_decimals_to_bigint.exs | 1 + .../20181008195723_create_administrators.exs | 1 + ...011193212_add_fields_to_internal_transactions.exs | 1 + ...20181015173318_add_case_insensitive_extension.exs | 1 + .../20181015173319_modify_users_username.exs | 1 + .../20181016163236_modify_user_contacts_email.exs | 1 + ...41409_add_index_to_internal_transaction_table.exs | 1 + ...3_internal_transactions_composite_primary_key.exs | 1 + .../20181024164623_logs_composite_primary_key.exs | 1 + ...4172010_token_transfers_composite_primary_key.exs | 1 + ...6180921_create_address_current_token_balances.exs | 1 + ..._tokens_table_decimals_from_bigint_to_numeric.exs | 1 + .../20181106152300_add_nonce_to_addresses.exs | 1 + .../priv/repo/migrations/20181107164103_eip6.exs | 1 + ...0_additional_internal_transaction_constraints.exs | 1 + ...121170616_add_block_number_to_token_transfers.exs | 1 + .../20181126203826_add_index_to_addresses.exs | 1 + ...0140_rename_block_rewards_to_emission_rewards.exs | 1 + .../20181206200312_create_new_block_rewards.exs | 1 + ...20181212115448_add_indexes_to_token_transfers.exs | 1 + ...213111656_add_metadata_field_to_address_names.exs | 1 + ...20181221143000_create_blocks_miner_hash_index.exs | 1 + .../20181221145054_add_contract_methods.exs | 1 + .../20190102141900_index_current_token_holders.exs | 1 + .../20190114204640_add_tokens_holder_count.exs | 1 + ...d_created_contract_indexed_at_to_transactions.exs | 1 + .../20190118040301_create_tokens_primary_key.exs | 1 + ...second_degree_relations_composite_primary_key.exs | 1 + ...122125815_change_transaction_error_constraint.exs | 1 + ...ex_on_transaction_nonce_and_from_address_hash.exs | 1 + .../20190208113202_add_unique_index_to_rewards.exs | 1 + ...ntract_address_hash_for_current_token_balance.exs | 1 + ...add_earliest_processing_start_to_transactions.exs | 1 + ...dex_on_block_number_to_address_token_balances.exs | 1 + ...dd_index_on_fetched_coin_balance_to_addresses.exs | 1 + ...358_add_compound_index_address_token_balances.exs | 1 + ..._add_constructor_arguments_to_smart_contracts.exs | 1 + ...0219082636_add_indexes_for_block_reward_query.exs | 1 + ...02650_add_index_created_contract_address_hash.exs | 1 + ...28152333_change_constructor_arguments_to_text.exs | 1 + ...dd_internal_transactions_indexed_at_to_blocks.exs | 1 + .../20190301095620_remove_duplicated_indexes.exs | 1 + .../20190301120328_add_index_to_consensus.exs | 1 + .../20190305095926_add_index_to_value_fetched_at.exs | 1 + .../20190313085740_add_index_symobl_in_tokens.exs | 1 + ...90313103912_change_transactions_v_column_type.exs | 1 + .../20190314084907_add_index_to_to_address_hash.exs | 1 + ...90318151809_add_inserted_at_index_to_accounts.exs | 1 + ...90319081821_create_decompiled_smart_contracts.exs | 1 + ...5644_add_old_value_for_current_token_balances.exs | 1 + ...move_unique_address_hash_decompiled_contracts.exs | 1 + .../20190403080447_add_full_text_search_tokens.exs | 1 + .../migrations/20190421143300_add_index_to_bsdr.exs | 1 + .../20190424170833_change_block_size_to_nullable.exs | 1 + ...508152922_add_old_block_hash_for_transactions.exs | 1 + .../20190513134025_add_refetch_needed_to_block.exs | 1 + ...ress_hash_index_to_decompiled_smart_contracts.exs | 1 + ...add_decompiled_and_verified_flag_to_addresses.exs | 1 + .../20190521104412_create_staking_pools.exs | 1 + ...0190523112839_create_staking_pools_delegators.exs | 1 + ...065856_add_transaction_hash_inserted_at_index.exs | 1 + ...19154943_reduce_transaction_status_constraint.exs | 1 + ...20190625085852_add_additional_contract_fields.exs | 1 + .../20190709043832_create_transaction_stats.exs | 1 + ...104_add_external_libraries_to_smart_contracts.exs | 1 + .../20190807111216_remove_duplicate_indexes.exs | 1 + .../20190807113117_create_suggested_indexes.exs | 1 + ...27120224_add_index_on_token_transfer_token_id.exs | 1 + .../20190905083522_create_token_instances.exs | 1 + ...ck_number_in_token_transfers_and_transactions.exs | 1 + ...7082500_add_indexes_for_token_instances_query.exs | 1 + ...1009121635_add_token_transfer_sorting_indexes.exs | 1 + .../20191010075740_add_error_to_token_instances.exs | 1 + ...0191018120546_create_pending_block_operations.exs | 1 + ...4_add_pending_internal_transactions_operation.exs | 1 + ...064805_add_block_hash_and_block_index_to_logs.exs | 1 + ...91122062035_add_block_hash_to_token_transfers.exs | 1 + ...24415_remove_duplicate_indexes_token_entities.exs | 1 + ...ternal_transactions_add_to_address_hash_index.exs | 1 + ...135613_block_rewards_block_hash_partial_index.exs | 1 + .../20191218120138_logs_block_number_index_index.exs | 1 + ...ing_block_operations_block_hash_partial_index.exs | 1 + ...20200214152058_add_token_id_to_token_balances.exs | 1 + ...en_balances_token_contract_address_hash_value.exs | 1 + ...fers_token_contract_address_hash_block_number.exs | 1 + .../20200421102450_pending_transactions.exs | 1 + ...ds_address_hash_address_type_block_hash_index.exs | 1 + ...8_create_index_blocks_miner_hash_number_index.exs | 1 + .../20200521090250_recreate_staking_tables.exs | 1 + ...ract_address_hash_token_id_block_number_index.exs | 1 + .../20200525115811_address_coin_balances_daily.exs | 1 + .../migrations/20200527144742_add_counters_table.exs | 1 + ...608075122_alter_transactions_add_error_reason.exs | 1 + .../20200806125649_token_add_bridged_column.exs | 1 + .../20200807064700_bridged_tokens_table.exs | 1 + ...00812143050_add_addresses_contract_code_index.exs | 1 + ...00904075501_add_bridged_token_custom_metadata.exs | 1 + .../20200929075625_add_bridged_token_type.exs | 1 + ...093652_transactions_stat_add_gas_usage_column.exs | 1 + .../migrations/20201214203532_support_sourcify.exs | 1 + .../priv/repo/migrations/20210219080523_add_tags.exs | 1 + ...32_add_exchange_rate_column_to_bridged_tokens.exs | 1 + .../20210309104122_add_bridged_token_custom_cap.exs | 1 + .../20210331074008_add_pool_name_description.exs | 1 + ...115740_add_token_id_to_current_token_balances.exs | 1 + ...t_token_balances_add_token_id_to_unique_index.exs | 1 + ...s_token_balances_add_token_id_to_unique_index.exs | 1 + ..._change_unfetched_token_balances_unique_index.exs | 1 + ...0423115108_extend_token_transfers_for_erc1155.exs | 1 + .../20210524165427_min_missing_block_number.exs | 1 + ...093756_transaction_stats_add_total_fee_column.exs | 1 + ...10616120552_smart_contracts_add_is_vyper_flag.exs | 1 + .../20210701084814_support_partial_match.exs | 1 + .../migrations/20210811140837_add_1559_support.exs | 1 + ...20210823144531_tokens_add_metadata_fetch_flag.exs | 1 + ...16194004_add_file_path_for_sourcify_contracts.exs | 1 + .../20211006121008_add_block_is_empty_flag.exs | 1 + ...6_remove_duplicates_of_current_token_balances.exs | 1 + ...11017135545_migrate_optimization_runs_to_int8.exs | 1 + .../migrations/20211018072347_add_is_empty_index.exs | 1 + ...dd_token_balances_contract_address_hash_index.exs | 1 + ...0211018164843_transactions_block_number_index.exs | 1 + ...oken_contract_address_hash_block_number_index.exs | 1 + ..._add_logs_address_hash_transaction_hash_index.exs | 1 + ...7_drop_block_rewards_block_hash_partial_index.exs | 1 + ...211115164817_add_check_for_bytecode_actuality.exs | 1 + ...115010_add_contract_verification_status_table.exs | 1 + .../20211204184037_address_add_gas_used.exs | 1 + ...20211206071033_modify_address_gas_used_bigint.exs | 1 + ...0211210184136_add_display_name_to_address_tag.exs | 1 + ...as_error_in_internal_txs_field_to_transaction.exs | 1 + .../20220111085751_address_add_counters.exs | 1 + ...20303083252_smart_contracts_contract_code_md5.exs | 1 + .../20220306091504_add_implementation_name.exs | 1 + .../20220527131249_add_implementation_fields.exs | 1 + .../20220622114402_remove_staking_tables.exs | 1 + .../20220622140604_remove_bridged_tokens.exs | 1 + ...3_address_coin_balances_daily_add_primary_key.exs | 1 + ...6102257_address_coin_balances_add_primary_key.exs | 1 + ...0706102504_transactions_forks_add_primary_key.exs | 1 + .../20220706102746_block_rewards_add_primary_key.exs | 1 + ...220706105925_emission_rewards_add_primary_key.exs | 1 + .../20220706111510_address_names_add_primary_key.exs | 1 + .../20220804114005_create_event_notifications.exs | 1 + .../20220902083436_extend_token_name_type.exs | 1 + ...103213_create_index_token_transfers_token_ids.exs | 1 + ...nstances_token_contract_address_hash_token_id.exs | 1 + .../20220919105140_add_method_id_index.exs | 1 + .../20220926122620_extend_token_symbol_type.exs | 1 + .../20221104091552_add_transaction_actions_table.exs | 1 + ...ate_token_transfer_token_id_migrator_progress.exs | 1 + ...114113853_remove_not_null_constraint_from_abi.exs | 1 + ...121811_drop_internal_transactions_order_index.exs | 1 + ...7075456_modify_address_token_balances_indexes.exs | 1 + ...modify_address_current_token_balances_indexes.exs | 1 + .../20221120184715_add_json_compiler_settings.exs | 1 + ...0221125074820_drop_required_output_constraint.exs | 1 + .../20221126103223_add_transactions_indexes.exs | 1 + ...209123459_drop_unfetched_token_balances_index.exs | 1 + ...406_change_index_for_pending_block_operations.exs | 1 + .../20221219151744_create_missing_block_ranges.exs | 1 + ..._add_block_number_to_pending_block_operations.exs | 1 + .../migrations/20221223214711_create_withdrawals.exs | 1 + ...t_value_and_circulating_market_cap_for_tokens.exs | 1 + ...214104917_add_validators_and_constants_tables.exs | 1 + ...30217095226_add_total_supply_updated_at_block.exs | 1 + .../20230328100414_add_transaction_action_types.exs | 1 + ...0230417093914_allow_nil_transaction_gas_price.exs | 1 + .../migrations/20230425185941_add_token_icon_url.exs | 1 + ...2130735_withdrawals_gwei_amount_to_wei_amount.exs | 1 + .../20230530074105_market_history_add_market_cap.exs | 1 + ...230605080138_add_verified_via_eth_bytecode_db.exs | 1 + ...0606091935_fix_contract_creation_transactions.exs | 1 + ...1244_address_coin_balances_block_number_index.exs | 1 + .../20230615130940_add_blocks_date_index.exs | 1 + ...60318_delete_erc_1155_tt_with_empty_token_ids.exs | 1 + ...0230809134253_add_is_verified_via_admin_panel.exs | 1 + ...0815131151_drop_logs_address_hash_foreign_key.exs | 1 + ...ransfers_and_transactions_address_foreign_key.exs | 1 + .../20230817061317_drop_address_foreign_keys.exs | 1 + ...94455_add_token_ids_to_address_token_balances.exs | 1 + ...20230821120625_drop_rest_address_foreign_keys.exs | 1 + ...rop_current_token_balances_tokens_foreign_key.exs | 1 + ...085809_drop_token_balances_tokens_foreign_key.exs | 1 + ...0231003093553_add_tvl_to_market_history_table.exs | 1 + ...block_timestamp_and_consensus_to_transactions.exs | 1 + .../20231212102127_create_migrations_status.exs | 1 + .../20231213085254_add_btree_gin_extension.exs | 1 + ...nsfers_token_contract_address_token_ids_index.exs | 1 + ...13101235_drop_token_transfers_token_ids_index.exs | 1 + .../20231213152332_alter_log_topic_columns_type.exs | 1 + ...15094615_drop_token_transfers_token_id_column.exs | 1 + .../20231215104320_drop_unused_actb_indexes.exs | 1 + .../20231215115638_drop_unused_logs_type_index.exs | 1 + ...0231215132609_add_index_blocks_refetch_needed.exs | 1 + .../20231225113850_transactions_asc_indices.exs | 1 + .../migrations/20231225115026_logs_asc_index.exs | 1 + .../20231225115100_token_transfers_asc_index.exs | 1 + .../20231227170848_add_proxy_verification_status.exs | 1 + ...120232_add_smart_contract_audit_reports_table.exs | 1 + ...0103094720_constrain_null_date_market_history.exs | 1 + ...81404_enhanced_unfetched_token_balances_index.exs | 1 + ...40122102141_add_token_type_to_token_transfers.exs | 1 + .../20240123102336_add_tokens_cataloged_index.exs | 1 + ...0240129112623_add_smart_contract_license_type.exs | 1 + .../20240219143204_add_volume_24h_to_tokens.exs | 1 + ...152810_add_block_consensus_to_token_transfers.exs | 1 + ...e_index_pending_block_operations_block_number.exs | 1 + .../20240226074456_create_massive_blocks.exs | 1 + ...40226151331_add_secondary_coin_market_history.exs | 1 + ...227115149_add_smart_contracts_name_text_index.exs | 1 + ...fers_add_from_address_hash_block_number_index.exs | 1 + ...nsfers_add_to_address_hash_block_number_index.exs | 1 + ...te_address_contract_code_fetch_attempts_table.exs | 1 + ...0325195446_add_verified_via_verifier_alliance.exs | 1 + ...151125_enhance_index_for_token_transfers_list.exs | 1 + ..._drop_outdated_index_for_token_transfers_list.exs | 1 + ...04102510_enhance_index_for_token_holders_list.exs | 1 + ...11_drop_outdated_index_for_token_holders_list.exs | 1 + ...0417141515_smart_contracts_add_certified_flag.exs | 1 + ...135458_fix_index_for_unfetched_token_balances.exs | 1 + ...p_outdated_index_for_unfetched_token_balances.exs | 1 + ...0240419095711_add_proxy_implementations_table.exs | 1 + .../20240419101821_migrate_proxy_implementations.exs | 1 + ...plementation_fields_from_smart_contract_table.exs | 1 + .../20240425091614_add_proxy_type_column.exs | 1 + .../migrations/20240425185705_alter_proxy_type.exs | 1 + ...ew_proxy_type_clones_with_immutable_arguments.exs | 1 + ...240502064431_create_missing_balance_of_tokens.exs | 1 + ...503091708_add_nft_instance_fetcher_aux_fields.exs | 1 + ...9014500_smart_contracts_add_is_blueprint_flag.exs | 1 + ...oken_instance_metadata_refetch_attempts_table.exs | 1 + ...ntly_implemented_to_missing_balance_of_tokens.exs | 1 + .../migrations/20240708152519_add_nft_media_urls.exs | 1 + ..._add_no_overlap_index_to_missing_block_ranges.exs | 1 + ...162644_add_contract_methods_inserted_at_index.exs | 1 + ...20240828140638_add_token_balance_retry_fields.exs | 1 + .../20240830142652_add_meta_to_migrations_status.exs | 1 + .../20240904161254_create_signed_authorizations.exs | 1 + .../20240910095635_add_address_badges_tables.exs | 1 + .../20240918104231_new_proxy_type_eip7702.exs | 1 + ...itize_missing_token_balances_migration_status.exs | 1 + .../20240923173516_address_tags_add_primary_key.exs | 1 + ...241002125432_add_is_banned_to_token_instances.exs | 1 + .../20241015140214_rename_tx_related_field.exs | 1 + ...types_for_duplicated_log_index_logs_migration.exs | 1 + ...1110127_create_pending_transaction_operations.exs | 1 + .../migrations/20241111200520_add_language_field.exs | 1 + ...12656_create_types_for_composite_primary_keys.exs | 1 + .../20241219102223_remove_large_decimals.exs | 1 + .../20250119145532_add_metadata_tags_aux_type.exs | 1 + ...1142849_add_tokens_metadata_updated_at_column.exs | 1 + ...185347_new_proxy_type_resolved_delegate_proxy.exs | 1 + .../20250128081221_add_token_instance_type.exs | 1 + ...50212182049_update_last_fetched_counters_keys.exs | 1 + .../20250214102221_remove_composite_id_types.exs | 1 + .../20250217221717_change_tokens_icon_url_type.exs | 1 + ...80958_remove_decompiled_smart_contracts_table.exs | 1 + .../20250311090608_add_erc_7760_to_proxy_type.exs | 1 + .../migrations/20250318091828_add_metadata_url.exs | 1 + ...50319163945_missing_block_ranges_add_priority.exs | 1 + ...d_authorizations_nonce_change_type_to_numeric.exs | 1 + ...multichain_search_db_export_retry_queue_table.exs | 1 + .../20250512083932_add_authorization_status.exs | 1 + ...multichain_search_db_export_retry_queue_table.exs | 1 + ...er_to_multichain_search_db_export_queue_table.exs | 1 + ...ex_to_multichain_search_db_export_queue_table.exs | 1 + ...tichain_search_db_balances_export_queue_table.exs | 1 + ..._address_coin_balances_value_fetched_at_index.exs | 1 + ...04124014_add_timestamp_to_event_notifications.exs | 1 + ...chain_search_db_token_info_export_queue_table.exs | 1 + ...20250718092418_refactor_proxy_implementations.exs | 1 + .../20250725162308_reset_tokens_skip_metadata.exs | 1 + ...ternal_transactions_drop_not_null_constraints.exs | 1 + ...tichain_search_db_counters_export_queue_table.exs | 1 + ..._change_chain_id_type_in_signed_authorization.exs | 1 + ...4042_create_internal_transaction_delete_queue.exs | 1 + ...9_add_call_type_enum_to_internal_transactions.exs | 1 + .../20250915135943_create_transaction_errors.exs | 1 + .../20251020144203_add_hot_smart_contracts_daily.exs | 1 + ...04134603_create_address_ids_to_address_hashes.exs | 1 + ...te_internal_transactions_address_placeholders.exs | 1 + ...5348_reset_sanitize_duplicated_logs_migration.exs | 1 + ...02635_drop_tokens_contract_address_hash_index.exs | 1 + ...internal_transactions_zero_value_delete_queue.exs | 1 + ...02092200_update_contract_methods_unique_index.exs | 1 + .../20251214200315_create_fhe_operations.exs | 1 + ...0004_alter_contract_verification_status_table.exs | 1 + ...43222_re_run_sanitize_incorrect_nft_migration.exs | 1 + ...121084059_reset_tokens_extended_skip_metadata.exs | 1 + ...internal_transactions_zero_value_delete_queue.exs | 1 + ...160608_add_current_token_balance_retry_fields.exs | 1 + .../20260209173317_add_csv_export_requests.exs | 1 + ..._internal_transactions_pk_not_null_constraint.exs | 1 + ...eset_token_transfer_block_consensus_migration.exs | 1 + ...m_full_multichain_search_db_main_export_queue.exs | 1 + ..._search_db_export_balances_queue_id_to_bigint.exs | 1 + ...ll_multichain_search_db_export_counters_queue.exs | 1 + ..._multichain_search_db_export_token_info_queue.exs | 1 + .../20260226120000_drop_is_vyper_contract_column.exs | 1 + ...260305162638_change_address_names_primary_key.exs | 1 + ...ternal_transactions_transaction_hash_not_null.exs | 1 + ...1858_add_address_ids_to_internal_transactions.exs | 1 + .../migrations/20260402093149_remove-tx-actions.exs | 1 + .../repo/migrations/20260406100324_add_oban_v13.exs | 1 + ...260407120000_add_circulating_supply_to_tokens.exs | 1 + ...0506124737_add_priority_to_pending_operations.exs | 1 + .../migrations/20260511114944_update_oban_to_v14.exs | 1 + apps/explorer/priv/repo/seeds.exs | 1 + ...20230724094744_add_rootstock_fields_to_blocks.exs | 1 + ...pulate_pending_block_ops_with_historic_blocks.exs | 1 + .../migrations/20240710101931_add_fee_fields.exs | 1 + .../20240807114346_add_queue_index_field.exs | 1 + .../migrations/20240815102318_add_bridge_table.exs | 1 + .../migrations/20240913114630_add_batches_tables.exs | 1 + .../migrations/20241016105249_rename_fields.exs | 1 + .../migrations/20231024091228_add_bridge_table.exs | 1 + ...0512_remove_internal_transactions_constraints.exs | 1 + ...3_drop_call_has_error_id_or_result_constraint.exs | 1 + ...remove_call_has_error_id_or_result_constraint.exs | 1 + .../20240203091010_add_stability_validators.exs | 1 + ...163043_add_validator_blocks_validated_counter.exs | 1 + .../20230921120210_add_suave_transaction_fields.exs | 1 + .../20240927123039_create_quorum_certificate.exs | 1 + ...927123101_create_aggregate_quorum_certificate.exs | 1 + ...240927123113_create_nested_quorum_certificate.exs | 1 + .../migrations/20241015095021_add_view_to_block.exs | 1 + .../20241027171945_modify_smart_contracts.exs | 1 + .../20250106185108_create_zilliqa_stakers.exs | 1 + ...3201406_decrease_scilla_language_index_by_one.exs | 1 + .../20251003112047_create_zrc2_token_tables.exs | 1 + ...20211202082101_make_tranaction_r_s_v_optional.exs | 1 + .../20231213171043_create_zksync_tables.exs | 1 + ...0611091814_rename_field_in_batch_transactions.exs | 1 + ...37_add_zk_compiler_version_to_smart_contracts.exs | 1 + .../20241015093336_rename_tx_hash_field_zksync.exs | 1 + .../20241028102407_rename_tx_count_fields_zksync.exs | 1 + .../20241028102853_add_contract_code_refetched.exs | 1 + .../explorer/test/explorer/account/identity_test.exs | 1 + .../test/explorer/account/notifier/email_test.exs | 1 + .../test/explorer/account/notifier/notify_test.exs | 1 + .../test/explorer/account/notifier/summary_test.exs | 1 + .../test/explorer/accounts/accounts_test.exs | 1 + .../test/explorer/accounts/user_contact_test.exs | 1 + apps/explorer/test/explorer/accounts/user_test.exs | 1 + .../test/explorer/admin/administrator/role_test.exs | 1 + apps/explorer/test/explorer/admin/recovery_test.exs | 1 + apps/explorer/test/explorer/admin_test.exs | 1 + apps/explorer/test/explorer/bloom_filter_test.exs | 1 + .../explorer/chain/address/coin_balance_test.exs | 1 + .../chain/address/current_token_balance_test.exs | 1 + .../explorer/chain/address/token_balance_test.exs | 1 + .../test/explorer/chain/address/token_test.exs | 1 + apps/explorer/test/explorer/chain/address_test.exs | 1 + .../test/explorer/chain/beacon/deposit_test.exs | 1 + .../test/explorer/chain/beacon/reader_test.exs | 1 + .../test/explorer/chain/block/range_test.exs | 1 + .../explorer/chain/block/reader/general_test.exs | 1 + .../chain/block/second_degree_relation_test.exs | 1 + apps/explorer/test/explorer/chain/block_test.exs | 1 + .../test/explorer/chain/cache/accounts_test.exs | 1 + .../test/explorer/chain/cache/block_number_test.exs | 1 + .../test/explorer/chain/cache/blocks_test.exs | 1 + .../chain/cache/celo_core_contracts_test.exs | 1 + .../chain/cache/counters/addresses_count_test.exs | 1 + .../cache/counters/addresses_sum_minus_burnt.exs | 1 + .../chain/cache/counters/addresses_sum_test.exs | 1 + .../addresses_tokens_usd_sum_counter_test.exs | 1 + .../chain/cache/counters/average_block_time_test.exs | 1 + .../explorer/chain/cache/counters/blocks_test.exs | 1 + .../explorer/chain/cache/counters/contracts_test.exs | 1 + .../cache/counters/new_contracts_count_test.exs | 1 + .../counters/new_pending_transactions_count_test.exs | 1 + .../counters/new_verified_contracts_count_test.exs | 1 + .../optimism/last_output_root_size_count_test.exs | 1 + .../rootstock/rootstock_locked_btc_count_test.exs | 1 + .../cache/counters/transactions_24h_count_test.exs | 1 + .../chain/cache/counters/transactions_test.exs | 1 + .../chain/cache/counters/verified_contracts_test.exs | 1 + .../explorer/chain/cache/gas_price_oracle_test.exs | 1 + .../test/explorer/chain/cache/transactions_test.exs | 1 + .../test/explorer/chain/cache/uncles_test.exs | 1 + .../test/explorer/chain/celo/helper_test.exs | 1 + .../explorer/chain/csv_export/address/logs_test.exs | 1 + .../csv_export/address/token_transfers_test.exs | 1 + .../chain/csv_export/address/transactions_test.exs | 1 + .../explorer/chain/csv_export/async_helper_test.exs | 1 + .../test/explorer/chain/csv_export/helper_test.exs | 1 + .../test/explorer/chain/csv_export/request_test.exs | 1 + .../chain/csv_export/requests_sanitizer_test.exs | 1 + .../explorer/chain/csv_export/token/holders_test.exs | 1 + .../test/explorer/chain/csv_export/worker_test.exs | 1 + .../test/explorer/chain/currency_helper_text.exs | 1 + apps/explorer/test/explorer/chain/data_test.exs | 1 + .../test/explorer/chain/events/publisher_test.exs | 1 + .../test/explorer/chain/events/subscriber_test.exs | 1 + .../explorer/chain/fhe/fhe_contract_checker_test.exs | 1 + .../test/explorer/chain/fhe/fhe_operation_test.exs | 1 + .../explorer/chain/fhe/fhe_operator_prices_test.exs | 1 + .../explorer/test/explorer/chain/fhe/parser_test.exs | 1 + .../explorer/chain/filecoin/native_address_test.exs | 1 + .../test/explorer/chain/hash/address_test.exs | 1 + apps/explorer/test/explorer/chain/hash/full_test.exs | 1 + .../explorer/test/explorer/chain/hash/nonce_test.exs | 1 + apps/explorer/test/explorer/chain/hash_test.exs | 1 + .../test/explorer/chain/health/helper_test.exs | 1 + .../runner/address/current_token_balances_test.exs | 1 + .../import/runner/address/token_balances_test.exs | 1 + .../explorer/chain/import/runner/addresses_test.exs | 1 + .../explorer/chain/import/runner/blocks_test.exs | 1 + .../chain/import/runner/fhe_operations_test.exs | 1 + .../import/runner/internal_transactions_test.exs | 1 + .../import/runner/stability/validators_test.exs | 1 + .../explorer/chain/import/runner/tokens_test.exs | 1 + .../chain/import/runner/transactions_test.exs | 1 + apps/explorer/test/explorer/chain/import_test.exs | 1 + .../chain/internal_transaction/call_type_test.exs | 1 + .../chain/internal_transaction/type_test.exs | 1 + .../explorer/chain/internal_transaction_test.exs | 1 + apps/explorer/test/explorer/chain/log_test.exs | 1 + .../explorer/chain/metrics/indexer_metrics_test.exs | 1 + .../proxy/clone_with_immutable_arguments_test.exs | 1 + .../chain/smart_contract/proxy/erc_7760_test.exs | 1 + .../proxy/models/implementation_test.exs | 1 + .../explorer/chain/smart_contract/proxy_test.exs | 1 + .../verified_contract_addresses_query_test.exs | 1 + .../test/explorer/chain/smart_contract_test.exs | 1 + .../chain/supply/proof_of_authority_test.exs | 1 + .../explorer/test/explorer/chain/supply/rsk_test.exs | 1 + .../test/explorer/chain/token/instance_test.exs | 1 + apps/explorer/test/explorer/chain/token_test.exs | 1 + .../test/explorer/chain/token_transfer_test.exs | 1 + .../test/explorer/chain/transaction/fork_test.exs | 1 + .../chain/transaction/history/historian_test.exs | 1 + .../transaction/history/transaction_stats_test.exs | 1 + .../test/explorer/chain/transaction/status_test.exs | 1 + .../test/explorer/chain/transaction_test.exs | 1 + apps/explorer/test/explorer/chain/wei_test.exs | 1 + .../explorer/test/explorer/chain/withdrawal_test.exs | 1 + .../test/explorer/chain_spec/genesis_data_test.exs | 1 + .../test/explorer/chain_spec/geth/importer_test.exs | 1 + .../explorer/chain_spec/parity/importer_test.exs | 1 + apps/explorer/test/explorer/chain_test.exs | 1 + apps/explorer/test/explorer/config_helper_test.exs | 1 + apps/explorer/test/explorer/etherscan/logs_test.exs | 1 + apps/explorer/test/explorer/etherscan_test.exs | 1 + apps/explorer/test/explorer/graphql_test.exs | 1 + apps/explorer/test/explorer/helper_test.exs | 1 + apps/explorer/test/explorer/history/process_test.exs | 1 + .../test/explorer/market/fetcher/coin_test.exs | 1 + .../test/explorer/market/fetcher/history_test.exs | 1 + .../test/explorer/market/fetcher/token_list_test.exs | 1 + .../test/explorer/market/fetcher/token_test.exs | 1 + .../explorer/market/market_history_cache_test.exs | 1 + .../test/explorer/market/market_history_test.exs | 1 + apps/explorer/test/explorer/market/market_test.exs | 1 + .../test/explorer/market/source/coin_gecko_test.exs | 1 + .../explorer/market/source/coin_market_cap_test.exs | 1 + .../explorer/market/source/crypto_compare_test.exs | 1 + .../test/explorer/market/source/crypto_rank_test.exs | 1 + .../test/explorer/market/source/defillama_test.exs | 1 + .../test/explorer/market/source/dia_test.exs | 1 + .../test/explorer/market/source/mobula_test.exs | 1 + apps/explorer/test/explorer/market/source_test.exs | 1 + apps/explorer/test/explorer/market/token_test.exs | 1 + .../explorer/microservice_interfaces/bens_test.exs | 1 + .../multichain_search_test.exs | 1 + ...address_current_token_balance_token_type_test.exs | 1 + .../address_token_balance_token_type_test.exs | 1 + .../explorer/migrator/backfill_metadata_url_test.exs | 1 + .../test/explorer/migrator/celo_accounts_test.exs | 1 + .../celo_aggregated_election_rewards_test.exs | 1 + .../test/explorer/migrator/celo_l2_epochs_test.exs | 1 + .../delete_zero_value_internal_transactions_test.exs | 1 + ...ecode_for_selfdestructed_smart_contracts_test.exs | 1 + .../fill_internal_transactions_address_ids_test.exs | 1 + ..._hash_block_number_desc_index_desc_index_test.exs | 1 + ...ed_contract_address_hash_w_pending_index_test.exs | 1 + ...op_logs_block_number_asc_index_asc_index_test.exs | 1 + ...ntract_address_hash_with_pending_index_a_test.exs | 1 + .../merge_adjacent_missing_block_ranges_test.exs | 1 + ...reindex_blocks_with_missing_transactions_test.exs | 1 + ...al_transactions_with_incompatible_status_test.exs | 1 + ...licate_smart_contract_additional_sources_test.exs | 1 + .../sanitize_duplicated_log_index_logs_test.exs | 1 + .../sanitize_empty_contract_code_addresses_test.exs | 1 + .../sanitize_incorrect_nft_token_transfers_test.exs | 1 + .../sanitize_incorrect_weth_token_transfers_test.exs | 1 + .../sanitize_missing_token_balances_test.exs | 1 + .../migrator/switch_pending_operations_test.exs | 1 + .../migrator/token_transfer_token_type_test.exs | 1 + .../transactions_denormalization_migrator_test.exs | 1 + .../migrator/unescape_ampersands_in_tokens_test.exs | 1 + .../migrator/unescape_quotes_in_tokens_test.exs | 1 + .../test/explorer/module_queue_registry_test.exs | 1 + apps/explorer/test/explorer/promo/autoscout_test.exs | 1 + .../test/explorer/repo/config_helper_test.exs | 1 + apps/explorer/test/explorer/repo_test.exs | 1 + .../certified_smart_contract_cataloger_test.exs | 1 + .../smart_contract/compiler_version_test.exs | 1 + .../explorer/smart_contract/geas/publisher_test.exs | 1 + .../test/explorer/smart_contract/helper_test.exs | 1 + .../test/explorer/smart_contract/reader_test.exs | 1 + .../smart_contract/solidity/code_compiler_test.exs | 1 + .../smart_contract/solidity/publisher_test.exs | 1 + .../smart_contract/solidity/verifier_test.exs | 1 + .../explorer/smart_contract/vyper/publisher_test.exs | 1 + .../test/explorer/smart_contract/writer_test.exs | 1 + .../test/explorer/tags/address_to_tag_test.exs | 1 + .../universal_proxy_test.exs | 1 + .../test/explorer/token/balance_reader_test.exs | 1 + .../test/explorer/token/metadata_retriever_test.exs | 1 + .../helper_test.exs | 1 + .../explorer/utility/missing_block_range_test.exs | 1 + .../test/explorer/utility/rate_limiter_test.exs | 1 + .../explorer/validator/metadata_importer_test.exs | 1 + .../explorer/validator/metadata_retriever_test.exs | 1 + .../string/chars/explorer/chain/address_test.exs | 1 + .../test/string/chars/explorer/chain/data_test.exs | 1 + apps/explorer/test/support/benchmark_case.ex | 1 + .../test/support/chain/import/runner_case.ex | 1 + apps/explorer/test/support/data_case.ex | 1 + apps/explorer/test/support/factory.ex | 1 + apps/explorer/test/support/fakes/one_coin_source.ex | 1 + apps/explorer/test/test_helper.exs | 1 + apps/indexer/config/config.exs | 1 + apps/indexer/config/dev.exs | 1 + apps/indexer/config/dev/anvil.exs | 1 + apps/indexer/config/dev/besu.exs | 1 + apps/indexer/config/dev/erigon.exs | 1 + apps/indexer/config/dev/filecoin.exs | 1 + apps/indexer/config/dev/geth.exs | 1 + apps/indexer/config/dev/nethermind.exs | 1 + apps/indexer/config/dev/rsk.exs | 1 + apps/indexer/config/prod.exs | 1 + apps/indexer/config/prod/anvil.exs | 1 + apps/indexer/config/prod/besu.exs | 1 + apps/indexer/config/prod/erigon.exs | 1 + apps/indexer/config/prod/filecoin.exs | 1 + apps/indexer/config/prod/geth.exs | 1 + apps/indexer/config/prod/nethermind.exs | 1 + apps/indexer/config/prod/rsk.exs | 1 + apps/indexer/config/runtime/test.exs | 1 + apps/indexer/config/test.exs | 1 + apps/indexer/config/test/anvil.exs | 1 + apps/indexer/config/test/besu.exs | 1 + apps/indexer/config/test/erigon.exs | 1 + apps/indexer/config/test/filecoin.exs | 1 + apps/indexer/config/test/geth.exs | 1 + apps/indexer/config/test/nethermind.exs | 1 + apps/indexer/config/test/rsk.exs | 1 + apps/indexer/lib/indexer.ex | 1 + apps/indexer/lib/indexer/application.ex | 1 + .../block/catchup/bound_interval_supervisor.ex | 1 + apps/indexer/lib/indexer/block/catchup/fetcher.ex | 1 + .../indexer/block/catchup/massive_blocks_fetcher.ex | 1 + .../block/catchup/missing_ranges_collector.ex | 1 + apps/indexer/lib/indexer/block/catchup/supervisor.ex | 1 + apps/indexer/lib/indexer/block/fetcher.ex | 1 + apps/indexer/lib/indexer/block/fetcher/receipts.ex | 1 + apps/indexer/lib/indexer/block/realtime/fetcher.ex | 1 + .../indexer/lib/indexer/block/realtime/supervisor.ex | 1 + apps/indexer/lib/indexer/bound_interval.ex | 1 + .../bridged_tokens/calc_lp_tokens_total_liquidity.ex | 1 + .../set_amb_bridged_metadata_for_tokens.ex | 1 + .../set_omni_bridged_metadata_for_tokens.ex | 1 + apps/indexer/lib/indexer/buffered_task.ex | 1 + apps/indexer/lib/indexer/fetcher.ex | 1 + .../lib/indexer/fetcher/address_nonce_updater.ex | 1 + .../lib/indexer/fetcher/arbitrum/da/anytrust.ex | 1 + .../lib/indexer/fetcher/arbitrum/da/celestia.ex | 1 + .../lib/indexer/fetcher/arbitrum/da/common.ex | 1 + .../lib/indexer/fetcher/arbitrum/da/eigenda.ex | 1 + .../lib/indexer/fetcher/arbitrum/data_backfill.ex | 1 + .../fetcher/arbitrum/messages_to_l2_matcher.ex | 1 + .../lib/indexer/fetcher/arbitrum/messaging.ex | 1 + .../fetcher/arbitrum/rollup_messages_catchup.ex | 1 + .../fetcher/arbitrum/tracking_batches_statuses.ex | 1 + .../fetcher/arbitrum/tracking_messages_on_l1.ex | 1 + .../lib/indexer/fetcher/arbitrum/utils/db/common.ex | 1 + .../indexer/fetcher/arbitrum/utils/db/messages.ex | 1 + .../arbitrum/utils/db/parent_chain_transactions.ex | 1 + .../indexer/fetcher/arbitrum/utils/db/settlement.ex | 1 + .../lib/indexer/fetcher/arbitrum/utils/db/tools.ex | 1 + .../lib/indexer/fetcher/arbitrum/utils/helper.ex | 1 + .../lib/indexer/fetcher/arbitrum/utils/logging.ex | 1 + .../lib/indexer/fetcher/arbitrum/utils/rpc.ex | 1 + .../lib/indexer/fetcher/arbitrum/workers/backfill.ex | 1 + .../fetcher/arbitrum/workers/batches/discovery.ex | 1 + .../arbitrum/workers/batches/discovery_utils.ex | 1 + .../fetcher/arbitrum/workers/batches/events.ex | 1 + .../arbitrum/workers/batches/rollup_entities.ex | 1 + .../fetcher/arbitrum/workers/batches/tasks.ex | 1 + .../arbitrum/workers/confirmations/discovery.ex | 1 + .../fetcher/arbitrum/workers/confirmations/events.ex | 1 + .../arbitrum/workers/confirmations/rollup_blocks.ex | 1 + .../fetcher/arbitrum/workers/confirmations/tasks.ex | 1 + .../arbitrum/workers/historical_messages_on_l2.ex | 1 + .../fetcher/arbitrum/workers/l1_finalization.ex | 1 + .../fetcher/arbitrum/workers/new_l1_executions.ex | 1 + .../fetcher/arbitrum/workers/new_messages_to_l2.ex | 1 + apps/indexer/lib/indexer/fetcher/beacon/blob.ex | 1 + apps/indexer/lib/indexer/fetcher/beacon/client.ex | 1 + apps/indexer/lib/indexer/fetcher/beacon/deposit.ex | 1 + .../lib/indexer/fetcher/beacon/deposit/status.ex | 1 + .../lib/indexer/fetcher/blackfort/validator.ex | 1 + apps/indexer/lib/indexer/fetcher/block_reward.ex | 1 + .../indexer/fetcher/celo/epoch_block_operations.ex | 1 + .../epoch_block_operations/core_contract_version.ex | 1 + .../delegated_payments_prior_l2_migration.ex | 1 + .../celo/epoch_block_operations/distributions.ex | 1 + ...validator_and_group_payments_post_l2_migration.ex | 1 + ...alidator_and_group_payments_prior_l2_migration.ex | 1 + .../celo/epoch_block_operations/voter_payments.ex | 1 + apps/indexer/lib/indexer/fetcher/celo/epoch_logs.ex | 1 + .../lib/indexer/fetcher/celo/legacy/account.ex | 1 + .../indexer/fetcher/celo/legacy/account/reader.ex | 1 + .../indexer/fetcher/celo/validator_group_votes.ex | 1 + .../lib/indexer/fetcher/coin_balance/catchup.ex | 1 + .../lib/indexer/fetcher/coin_balance/helper.ex | 1 + .../lib/indexer/fetcher/coin_balance/realtime.ex | 1 + apps/indexer/lib/indexer/fetcher/contract_code.ex | 1 + .../lib/indexer/fetcher/empty_blocks_sanitizer.ex | 1 + .../lib/indexer/fetcher/filecoin/address_info.ex | 1 + .../lib/indexer/fetcher/filecoin/beryx_api.ex | 1 + .../lib/indexer/fetcher/filecoin/filfox_api.ex | 1 + .../lib/indexer/fetcher/internal_transaction.ex | 1 + .../fetcher/internal_transaction/delete_queue.ex | 1 + .../multichain_search_db/balances_export_queue.ex | 1 + .../multichain_search_db/counters_export_queue.ex | 1 + .../fetcher/multichain_search_db/counters_fetcher.ex | 1 + .../multichain_search_db/main_export_queue.ex | 1 + .../multichain_search_db/token_info_export_queue.ex | 1 + .../lib/indexer/fetcher/on_demand/coin_balance.ex | 1 + .../lib/indexer/fetcher/on_demand/contract_code.ex | 1 + .../indexer/fetcher/on_demand/contract_creator.ex | 1 + .../lib/indexer/fetcher/on_demand/first_trace.ex | 1 + .../fetcher/on_demand/internal_transaction.ex | 1 + .../fetcher/on_demand/neon_solana_transactions.ex | 1 + .../on_demand/nft_collection_metadata_refetch.ex | 1 + .../lib/indexer/fetcher/on_demand/token_balance.ex | 1 + .../on_demand/token_instance_metadata_refetch.ex | 1 + .../indexer/fetcher/on_demand/token_total_supply.ex | 1 + apps/indexer/lib/indexer/fetcher/optimism.ex | 1 + apps/indexer/lib/indexer/fetcher/optimism/deposit.ex | 1 + .../lib/indexer/fetcher/optimism/dispute_game.ex | 1 + .../fetcher/optimism/eip1559_config_update.ex | 1 + .../lib/indexer/fetcher/optimism/interop/helper.ex | 1 + .../lib/indexer/fetcher/optimism/interop/message.ex | 1 + .../fetcher/optimism/interop/message_failed.ex | 1 + .../fetcher/optimism/interop/message_queue.ex | 1 + .../fetcher/optimism/interop/multichain_export.ex | 1 + .../lib/indexer/fetcher/optimism/operator_fee.ex | 1 + .../lib/indexer/fetcher/optimism/output_root.ex | 1 + .../indexer/fetcher/optimism/transaction_batch.ex | 1 + .../lib/indexer/fetcher/optimism/withdrawal.ex | 1 + .../lib/indexer/fetcher/optimism/withdrawal_event.ex | 1 + .../fetcher/pending_block_operations_sanitizer.ex | 1 + .../lib/indexer/fetcher/pending_transaction.ex | 1 + .../lib/indexer/fetcher/replaced_transaction.ex | 1 + .../lib/indexer/fetcher/rollup_l1_reorg_monitor.ex | 1 + apps/indexer/lib/indexer/fetcher/rootstock_data.ex | 1 + apps/indexer/lib/indexer/fetcher/scroll/batch.ex | 1 + apps/indexer/lib/indexer/fetcher/scroll/bridge.ex | 1 + apps/indexer/lib/indexer/fetcher/scroll/bridge_l1.ex | 1 + apps/indexer/lib/indexer/fetcher/scroll/bridge_l2.ex | 1 + apps/indexer/lib/indexer/fetcher/scroll/helper.ex | 1 + .../lib/indexer/fetcher/scroll/l1_fee_param.ex | 1 + apps/indexer/lib/indexer/fetcher/shibarium/helper.ex | 1 + apps/indexer/lib/indexer/fetcher/shibarium/l1.ex | 1 + apps/indexer/lib/indexer/fetcher/shibarium/l2.ex | 1 + .../indexer/fetcher/signed_authorization_status.ex | 1 + .../lib/indexer/fetcher/stability/validator.ex | 1 + .../lib/indexer/fetcher/stats/hot_smart_contracts.ex | 1 + apps/indexer/lib/indexer/fetcher/token.ex | 1 + .../lib/indexer/fetcher/token_balance/current.ex | 1 + .../lib/indexer/fetcher/token_balance/helper.ex | 1 + .../lib/indexer/fetcher/token_balance/historical.ex | 1 + .../lib/indexer/fetcher/token_counters_updater.ex | 1 + .../lib/indexer/fetcher/token_instance/helper.ex | 1 + .../lib/indexer/fetcher/token_instance/realtime.ex | 1 + .../lib/indexer/fetcher/token_instance/refetch.ex | 1 + .../lib/indexer/fetcher/token_instance/retry.ex | 1 + .../lib/indexer/fetcher/token_instance/sanitize.ex | 1 + .../fetcher/token_instance/sanitize_erc1155.ex | 1 + .../fetcher/token_instance/sanitize_erc721.ex | 1 + .../indexer/fetcher/token_total_supply_updater.ex | 1 + apps/indexer/lib/indexer/fetcher/token_updater.ex | 1 + apps/indexer/lib/indexer/fetcher/uncle_block.ex | 1 + apps/indexer/lib/indexer/fetcher/withdrawal.ex | 1 + .../fetcher/zilliqa/scilla_smart_contracts.ex | 1 + .../lib/indexer/fetcher/zilliqa/zrc2_tokens.ex | 1 + .../indexer/fetcher/zksync/batches_status_tracker.ex | 1 + .../indexer/fetcher/zksync/discovery/batches_data.ex | 1 + .../lib/indexer/fetcher/zksync/discovery/workers.ex | 1 + .../fetcher/zksync/status_tracking/committed.ex | 1 + .../indexer/fetcher/zksync/status_tracking/common.ex | 1 + .../fetcher/zksync/status_tracking/executed.ex | 1 + .../indexer/fetcher/zksync/status_tracking/proven.ex | 1 + .../lib/indexer/fetcher/zksync/transaction_batch.ex | 1 + apps/indexer/lib/indexer/fetcher/zksync/utils/db.ex | 1 + .../lib/indexer/fetcher/zksync/utils/logging.ex | 1 + apps/indexer/lib/indexer/fetcher/zksync/utils/rpc.ex | 1 + apps/indexer/lib/indexer/helper.ex | 1 + apps/indexer/lib/indexer/logger.ex | 1 + apps/indexer/lib/indexer/memory/monitor.ex | 1 + apps/indexer/lib/indexer/memory/shrinkable.ex | 1 + .../migrator/recovery_weth_token_transfers.ex | 1 + .../lib/indexer/nft_media_handler/backfiller.ex | 1 + apps/indexer/lib/indexer/nft_media_handler/queue.ex | 1 + apps/indexer/lib/indexer/pending_ops_cleaner.ex | 1 + .../lib/indexer/pending_transactions_sanitizer.ex | 1 + .../filecoin_pending_address_operations_collector.ex | 1 + .../collector/pending_block_operations_collector.ex | 1 + .../pending_transaction_operations_collector.ex | 1 + apps/indexer/lib/indexer/prometheus/instrumenter.ex | 1 + apps/indexer/lib/indexer/prometheus/metrics.ex | 1 + .../lib/indexer/rollup_reorg_monitor_queue.ex | 1 + apps/indexer/lib/indexer/supervisor.ex | 1 + .../indexer/temporary/uncataloged_token_transfers.ex | 1 + .../lib/indexer/temporary/uncles_without_index.ex | 1 + apps/indexer/lib/indexer/token_balances.ex | 1 + .../token_transfer_block_consensus_sanitizer.ex | 1 + apps/indexer/lib/indexer/tracer.ex | 1 + .../lib/indexer/transform/address_coin_balances.ex | 1 + .../indexer/transform/address_coin_balances_daily.ex | 1 + .../lib/indexer/transform/address_token_balances.ex | 1 + apps/indexer/lib/indexer/transform/addresses.ex | 1 + .../lib/indexer/transform/arbitrum/messaging.ex | 1 + apps/indexer/lib/indexer/transform/blocks.ex | 1 + apps/indexer/lib/indexer/transform/blocks/base.ex | 1 + apps/indexer/lib/indexer/transform/blocks/clique.ex | 1 + apps/indexer/lib/indexer/transform/celo/l1_epochs.ex | 1 + apps/indexer/lib/indexer/transform/celo/l2_epochs.ex | 1 + .../indexer/transform/celo/transaction_gas_tokens.ex | 1 + .../transform/celo/transaction_token_transfers.ex | 1 + .../celo/validator_epoch_payment_distributions.ex | 1 + apps/indexer/lib/indexer/transform/fhe_operations.ex | 1 + apps/indexer/lib/indexer/transform/mint_transfers.ex | 1 + .../lib/indexer/transform/optimism/withdrawals.ex | 1 + .../lib/indexer/transform/scroll/l1_fee_params.ex | 1 + .../lib/indexer/transform/shibarium/bridge.ex | 1 + .../lib/indexer/transform/signed_authorizations.ex | 1 + .../lib/indexer/transform/stability/validators.ex | 1 + .../indexer/lib/indexer/transform/token_instances.ex | 1 + .../indexer/lib/indexer/transform/token_transfers.ex | 1 + .../lib/indexer/utils/event_notifications_cleaner.ex | 1 + apps/indexer/mix.exs | 1 + .../block/catchup/bound_interval_supervisor_test.exs | 1 + .../test/indexer/block/catchup/fetcher_test.exs | 1 + .../block/catchup/massive_blocks_fetcher_test.exs | 1 + .../block/catchup/missing_ranges_collector_test.exs | 1 + .../test/indexer/block/fetcher/receipts_test.exs | 1 + apps/indexer/test/indexer/block/fetcher_test.exs | 1 + .../test/indexer/block/realtime/fetcher_test.exs | 1 + apps/indexer/test/indexer/buffered_task_test.exs | 1 + .../test/indexer/fetcher/beacon/blob_test.exs | 1 + .../indexer/fetcher/beacon/deposit/status_test.exs | 1 + .../test/indexer/fetcher/beacon/deposit_test.exs | 1 + .../test/indexer/fetcher/block_reward_test.exs | 1 + .../indexer/fetcher/coin_balance/catchup_test.exs | 1 + .../test/indexer/fetcher/contract_code_test.exs | 1 + .../indexer/fetcher/empty_blocks_sanitizer_test.exs | 1 + .../internal_transaction/delete_queue_test.exs | 1 + .../indexer/fetcher/internal_transaction_test.exs | 1 + .../balances_export_queue_test.exs | 1 + .../counters_export_queue_test.exs | 1 + .../multichain_search_db/counters_fetcher_test.exs | 1 + .../multichain_search_db/main_export_queue_test.exs | 1 + .../token_info_export_queue_test.exs | 1 + .../indexer/fetcher/on_demand/coin_balance_test.exs | 1 + .../indexer/fetcher/on_demand/contract_code_test.exs | 1 + .../fetcher/on_demand/contract_creator_test.exs | 1 + .../fetcher/on_demand/internal_transaction_test.exs | 1 + .../indexer/fetcher/on_demand/token_balance_test.exs | 1 + .../token_instance_metadata_refetch_test.exs | 1 + .../indexer/fetcher/optimism/dispute_game_test.exs | 1 + .../fetcher/optimism/interop/message_queue_test.exs | 1 + .../fetcher/optimism/transaction_batch_test.exs | 1 + .../pending_block_operations_sanitizer_test.exs | 1 + .../indexer/fetcher/pending_transaction_test.exs | 1 + .../indexer/fetcher/replaced_transaction_test.exs | 1 + .../test/indexer/fetcher/rootstock_data_test.exs | 1 + .../fetcher/signed_authorization_status_test.exs | 1 + .../indexer/fetcher/stability/validator_test.exs | 1 + .../fetcher/stats/hot_smart_contracts_test.exs | 1 + .../fetcher/token_balance/historical_test.exs | 1 + .../indexer/fetcher/token_instance/helper_test.exs | 1 + .../indexer/fetcher/token_instance/realtime_test.exs | 1 + .../indexer/fetcher/token_instance/refetch_test.exs | 1 + .../fetcher/token_instance/sanitize_erc1155_test.exs | 1 + .../fetcher/token_instance/sanitize_erc721_test.exs | 1 + apps/indexer/test/indexer/fetcher/token_test.exs | 1 + .../test/indexer/fetcher/token_updater_test.exs | 1 + .../test/indexer/fetcher/uncle_block_test.exs | 1 + .../indexer/test/indexer/fetcher/withdrawal_test.exs | 1 + .../test/indexer/fetcher/zksync/utils/rpc_test.exs | 1 + apps/indexer/test/indexer/helper_test.exs | 1 + .../migrator/recovery_weth_token_transfers_test.exs | 1 + .../test/indexer/pending_ops_cleaner_test.exs | 1 + .../indexer/pending_transactions_sanitizer_test.exs | 1 + .../temporary/uncataloged_token_transfers_test.exs | 1 + apps/indexer/test/indexer/token_balances_test.exs | 1 + .../indexer/transform/address_coin_balances_test.exs | 1 + .../transform/address_token_balances_test.exs | 1 + apps/indexer/test/indexer/transform/addresses.exs | 1 + .../test/indexer/transform/blocks/base_test.exs | 1 + .../test/indexer/transform/blocks/clique_test.exs | 1 + apps/indexer/test/indexer/transform/blocks_test.exs | 1 + .../validator_epoch_payment_distributions_test.exs | 1 + .../test/indexer/transform/mint_transfers_test.exs | 1 + .../indexer/transform/stability/validators_test.exs | 1 + .../test/indexer/transform/token_transfers_test.exs | 1 + .../utils/event_notifications_cleaner_test.exs | 1 + apps/indexer/test/indexer_test.exs | 1 + .../support/indexer/block/catchup_supervisor_case.ex | 1 + .../indexer/fetcher/beacon_blob_supervisor_case.ex | 1 + .../fetcher/beacon_deposit_status_supervisor_test.ex | 1 + .../fetcher/beacon_deposit_supervisor_case.ex | 1 + .../indexer/fetcher/block_reward_supervisor_case.ex | 1 + .../fetcher/celo_epoch_rewards_supervisor_case.ex | 1 + .../fetcher/coin_balance_catchup_supervisor_case.ex | 1 + .../fetcher/coin_balance_realtime_supervisor_case.ex | 1 + .../indexer/fetcher/contract_code_supervisor_case.ex | 1 + .../empty_blocks_sanitizer_supervisor_case.ex | 1 + .../filecoin_native_address_supervisor_case.ex | 1 + ...ernal_transaction_delete_queue_supervisor_case.ex | 1 + .../fetcher/internal_transaction_supervisor_case.ex | 1 + .../on_demand/coin_balance_supervisor_case.ex | 1 + .../on_demand/token_balance_supervisor_case.ex | 1 + .../fetcher/pending_transaction_supervisor_case.ex | 1 + .../fetcher/replaced_transaction_supervisor_case.ex | 1 + .../fetcher/rootstock_data_supervisor_case.ex | 1 + .../signed_authorization_status_supervisor_case.ex | 1 + .../fetcher/token_balance_current_supervisor_case.ex | 1 + .../token_balance_historical_supervisor_case.ex | 1 + .../support/indexer/fetcher/token_supervisor_case.ex | 1 + .../indexer/fetcher/token_updater_supervisor_case.ex | 1 + .../indexer/fetcher/uncle_block_supervisor_case.ex | 1 + .../indexer/fetcher/withdrawal_supervisor_case.ex | 1 + apps/indexer/test/test_helper.exs | 1 + apps/nft_media_handler/lib/nft_media_handler.ex | 1 + .../lib/nft_media_handler/application.ex | 1 + .../lib/nft_media_handler/dispatcher.ex | 1 + .../lib/nft_media_handler/dispatcher_interface.ex | 1 + .../lib/nft_media_handler/image/resizer.ex | 1 + .../lib/nft_media_handler/media/fetcher.ex | 1 + .../lib/nft_media_handler/r2/uploader.ex | 1 + apps/nft_media_handler/mix.exs | 1 + apps/utils/lib/credo/checks/compile_env_usage.ex | 1 + apps/utils/lib/utils/compile_time_env_helper.ex | 1 + apps/utils/lib/utils/config_helper.ex | 1 + apps/utils/lib/utils/helper.ex | 1 + apps/utils/lib/utils/http_client/httpoison_helper.ex | 1 + apps/utils/lib/utils/http_client/tesla_helper.ex | 1 + apps/utils/lib/utils/runtime_env_helper.ex | 1 + apps/utils/lib/utils/token_instance_helper.ex | 1 + apps/utils/mix.exs | 1 + apps/utils/test/checks/compile_env_usage_test.exs | 1 + apps/utils/test/test_helper.exs | 1 + config/config.exs | 1 + config/config_helper.exs | 1 + config/dev.exs | 1 + config/prod.exs | 1 + config/runtime.exs | 1 + config/runtime/dev.exs | 1 + config/runtime/prod.exs | 1 + config/runtime/test.exs | 1 + config/test.exs | 1 + mix.exs | 1 + rel/config.exs | 1 + 2425 files changed, 2430 insertions(+), 6 deletions(-) diff --git a/.dialyzer_ignore.exs b/.dialyzer_ignore.exs index a7bbcb4ee44d..170fe3dbb0f2 100644 --- a/.dialyzer_ignore.exs +++ b/.dialyzer_ignore.exs @@ -1,13 +1,13 @@ [ {"lib/ethereum_jsonrpc/rolling_window.ex", :improper_list_constr}, {"lib/explorer/smart_contract/solidity/publisher_worker.ex", :pattern_match, 1}, - {"lib/explorer/smart_contract/solidity/publisher_worker.ex", :exact_eq, 8}, - {"lib/explorer/smart_contract/solidity/publisher_worker.ex", :pattern_match, 8}, + {"lib/explorer/smart_contract/solidity/publisher_worker.ex", :exact_eq, 9}, + {"lib/explorer/smart_contract/solidity/publisher_worker.ex", :pattern_match, 9}, {"lib/explorer/smart_contract/vyper/publisher_worker.ex", :pattern_match, 1}, - {"lib/explorer/smart_contract/vyper/publisher_worker.ex", :exact_eq, 8}, - {"lib/explorer/smart_contract/vyper/publisher_worker.ex", :pattern_match, 8}, + {"lib/explorer/smart_contract/vyper/publisher_worker.ex", :exact_eq, 9}, + {"lib/explorer/smart_contract/vyper/publisher_worker.ex", :pattern_match, 9}, {"lib/explorer/smart_contract/stylus/publisher_worker.ex", :pattern_match, 1}, - {"lib/explorer/smart_contract/stylus/publisher_worker.ex", :exact_eq, 14}, - {"lib/explorer/smart_contract/stylus/publisher_worker.ex", :pattern_match, 14}, + {"lib/explorer/smart_contract/stylus/publisher_worker.ex", :exact_eq, 15}, + {"lib/explorer/smart_contract/stylus/publisher_worker.ex", :pattern_match, 15}, ~r/lib\/phoenix\/router.ex/ ] diff --git a/apps/block_scout_web/benchmarks/block_scout_web/controllers/api/v2/block_controller_benchmark.exs b/apps/block_scout_web/benchmarks/block_scout_web/controllers/api/v2/block_controller_benchmark.exs index 91a189ae1fc5..40a22190afeb 100644 --- a/apps/block_scout_web/benchmarks/block_scout_web/controllers/api/v2/block_controller_benchmark.exs +++ b/apps/block_scout_web/benchmarks/block_scout_web/controllers/api/v2/block_controller_benchmark.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.BlockControllerBenchmark do @moduledoc """ Benchmark for the Block API V2 controller. diff --git a/apps/block_scout_web/benchmarks/support/benchmark_case.ex b/apps/block_scout_web/benchmarks/support/benchmark_case.ex index 4539220b907d..f610cdeae705 100644 --- a/apps/block_scout_web/benchmarks/support/benchmark_case.ex +++ b/apps/block_scout_web/benchmarks/support/benchmark_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.BenchmarkCase do @moduledoc """ This module defines the benchmark case to be used by benchmarks. diff --git a/apps/block_scout_web/config/config.exs b/apps/block_scout_web/config/config.exs index 83b4b2468f06..d662fadf63a8 100644 --- a/apps/block_scout_web/config/config.exs +++ b/apps/block_scout_web/config/config.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # This file is responsible for configuring your application # and its dependencies with the aid of the Config module. # diff --git a/apps/block_scout_web/config/dev.exs b/apps/block_scout_web/config/dev.exs index 5c1e216afaa1..bf3d30f81bbc 100644 --- a/apps/block_scout_web/config/dev.exs +++ b/apps/block_scout_web/config/dev.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config # For development, we disable any cache and enable diff --git a/apps/block_scout_web/config/prod.exs b/apps/block_scout_web/config/prod.exs index 916e45932d79..efd73abdcc30 100644 --- a/apps/block_scout_web/config/prod.exs +++ b/apps/block_scout_web/config/prod.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config # For production, we often load configuration from external diff --git a/apps/block_scout_web/config/runtime/test.exs b/apps/block_scout_web/config/runtime/test.exs index 9a9309ffdac3..f2ce1772a64f 100644 --- a/apps/block_scout_web/config/runtime/test.exs +++ b/apps/block_scout_web/config/runtime/test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config alias EthereumJSONRPC.Variant diff --git a/apps/block_scout_web/config/test.exs b/apps/block_scout_web/config/test.exs index 4ee026c86e3c..afd6ec9e20cb 100644 --- a/apps/block_scout_web/config/test.exs +++ b/apps/block_scout_web/config/test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :block_scout_web, :sql_sandbox, true diff --git a/apps/block_scout_web/lib/block_scout_web.ex b/apps/block_scout_web/lib/block_scout_web.ex index 379ff8b5eacc..b0cd5dd09127 100644 --- a/apps/block_scout_web/lib/block_scout_web.ex +++ b/apps/block_scout_web/lib/block_scout_web.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb do @moduledoc """ The entrypoint for defining your web interface, such diff --git a/apps/block_scout_web/lib/block_scout_web/api_v2.ex b/apps/block_scout_web/lib/block_scout_web/api_v2.ex index 6bd12a410332..dfdac1f3c00f 100644 --- a/apps/block_scout_web/lib/block_scout_web/api_v2.ex +++ b/apps/block_scout_web/lib/block_scout_web/api_v2.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2 do @moduledoc """ API V2 context diff --git a/apps/block_scout_web/lib/block_scout_web/application.ex b/apps/block_scout_web/lib/block_scout_web/application.ex index 2b8d56646090..9b13b631159f 100644 --- a/apps/block_scout_web/lib/block_scout_web/application.ex +++ b/apps/block_scout_web/lib/block_scout_web/application.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Application do @moduledoc """ Supervises `BlockScoutWeb.Endpoint` in order to serve Web UI. diff --git a/apps/block_scout_web/lib/block_scout_web/authentication_helper.ex b/apps/block_scout_web/lib/block_scout_web/authentication_helper.ex index 25a669c5fd62..44a02f6758db 100644 --- a/apps/block_scout_web/lib/block_scout_web/authentication_helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/authentication_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AuthenticationHelper do @moduledoc """ Helper module for authentication. diff --git a/apps/block_scout_web/lib/block_scout_web/captcha_helper.ex b/apps/block_scout_web/lib/block_scout_web/captcha_helper.ex index 54c9169734a6..31ec94a7380b 100644 --- a/apps/block_scout_web/lib/block_scout_web/captcha_helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/captcha_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.CaptchaHelper do @moduledoc """ A helper for CAPTCHA diff --git a/apps/block_scout_web/lib/block_scout_web/chain.ex b/apps/block_scout_web/lib/block_scout_web/chain.ex index 336504693f2d..752edf0d79e8 100644 --- a/apps/block_scout_web/lib/block_scout_web/chain.ex +++ b/apps/block_scout_web/lib/block_scout_web/chain.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Chain do @moduledoc """ Converts the `param` to the corresponding resource that uses that format of param. diff --git a/apps/block_scout_web/lib/block_scout_web/channels/address_channel.ex b/apps/block_scout_web/lib/block_scout_web/channels/address_channel.ex index e09626a5ec8b..0a155c27fda3 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/address_channel.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/address_channel.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressChannel do @moduledoc """ Establishes pub/sub channel for address page live updates. diff --git a/apps/block_scout_web/lib/block_scout_web/channels/arbitrum_channel.ex b/apps/block_scout_web/lib/block_scout_web/channels/arbitrum_channel.ex index 27bc00e8b2ea..a4ec6c448601 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/arbitrum_channel.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/arbitrum_channel.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ArbitrumChannel do @moduledoc """ Establishes pub/sub channel for live updates of Arbitrum related events. diff --git a/apps/block_scout_web/lib/block_scout_web/channels/block_channel.ex b/apps/block_scout_web/lib/block_scout_web/channels/block_channel.ex index ba2ea3fd571c..fd3d7fdf2d7d 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/block_channel.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/block_channel.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.BlockChannel do @moduledoc """ Establishes pub/sub channel for live updates of block events. diff --git a/apps/block_scout_web/lib/block_scout_web/channels/exchange_rate_channel.ex b/apps/block_scout_web/lib/block_scout_web/channels/exchange_rate_channel.ex index 1654d951be40..80d34a269802 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/exchange_rate_channel.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/exchange_rate_channel.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ExchangeRateChannel do @moduledoc """ Establishes pub/sub channel for exchange rate live updates. diff --git a/apps/block_scout_web/lib/block_scout_web/channels/optimism_channel.ex b/apps/block_scout_web/lib/block_scout_web/channels/optimism_channel.ex index 64fcb7e64bdb..6aff323d077e 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/optimism_channel.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/optimism_channel.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.OptimismChannel do @moduledoc """ Establishes pub/sub channel for live updates of OP related events. diff --git a/apps/block_scout_web/lib/block_scout_web/channels/reward_channel.ex b/apps/block_scout_web/lib/block_scout_web/channels/reward_channel.ex index 1ab1c5ff0437..665ba86a89cd 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/reward_channel.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/reward_channel.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.RewardChannel do @moduledoc """ Establishes pub/sub channel for live updates of block reward events. diff --git a/apps/block_scout_web/lib/block_scout_web/channels/token_channel.ex b/apps/block_scout_web/lib/block_scout_web/channels/token_channel.ex index 13b4db343a08..89e08a00ec31 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/token_channel.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/token_channel.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TokenChannel do @moduledoc """ Establishes pub/sub channel for live updates of token transfer events. diff --git a/apps/block_scout_web/lib/block_scout_web/channels/token_instance_channel.ex b/apps/block_scout_web/lib/block_scout_web/channels/token_instance_channel.ex index 4b2be335caca..660f1c20d0c8 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/token_instance_channel.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/token_instance_channel.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TokenInstanceChannel do @moduledoc """ Establishes pub/sub channel for live updates of token instances events. diff --git a/apps/block_scout_web/lib/block_scout_web/channels/transaction_channel.ex b/apps/block_scout_web/lib/block_scout_web/channels/transaction_channel.ex index 75a0130a782f..28af859f6b83 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/transaction_channel.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/transaction_channel.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionChannel do @moduledoc """ Establishes pub/sub channel for live updates of transaction events. diff --git a/apps/block_scout_web/lib/block_scout_web/channels/user_socket.ex b/apps/block_scout_web/lib/block_scout_web/channels/user_socket.ex index 213e5d447a47..bb1350850fdc 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/user_socket.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/user_socket.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.UserSocket do use Phoenix.Socket use Absinthe.Phoenix.Socket, schema: BlockScoutWeb.GraphQL.Schema diff --git a/apps/block_scout_web/lib/block_scout_web/channels/v2/address_channel.ex b/apps/block_scout_web/lib/block_scout_web/channels/v2/address_channel.ex index 44616a930b1d..c3417676d249 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/v2/address_channel.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/v2/address_channel.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.V2.AddressChannel do @moduledoc """ Establishes pub/sub channel for address page live updates for API V2. diff --git a/apps/block_scout_web/lib/block_scout_web/channels/v2/block_channel.ex b/apps/block_scout_web/lib/block_scout_web/channels/v2/block_channel.ex index 8e5202ecd4a6..cba13f191d22 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/v2/block_channel.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/v2/block_channel.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.V2.BlockChannel do @moduledoc """ Establishes pub/sub channel for live updates of block events for API V2. diff --git a/apps/block_scout_web/lib/block_scout_web/channels/v2/exchange_rate_channel.ex b/apps/block_scout_web/lib/block_scout_web/channels/v2/exchange_rate_channel.ex index 0f4a814f30c2..d416bf4a5cf5 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/v2/exchange_rate_channel.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/v2/exchange_rate_channel.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.V2.ExchangeRateChannel do @moduledoc """ Establishes pub/sub channel for exchange rate live updates for API V2. diff --git a/apps/block_scout_web/lib/block_scout_web/channels/v2/reward_channel.ex b/apps/block_scout_web/lib/block_scout_web/channels/v2/reward_channel.ex index 616db07348aa..8127f7f04df4 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/v2/reward_channel.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/v2/reward_channel.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.V2.RewardChannel do @moduledoc """ Establishes pub/sub channel for live updates of block reward events for API V2. diff --git a/apps/block_scout_web/lib/block_scout_web/channels/v2/token_channel.ex b/apps/block_scout_web/lib/block_scout_web/channels/v2/token_channel.ex index 0e5d36e14459..f044bd6f0a28 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/v2/token_channel.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/v2/token_channel.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.V2.TokenChannel do @moduledoc """ Establishes pub/sub channel for live updates of token transfer events for API V2. diff --git a/apps/block_scout_web/lib/block_scout_web/channels/v2/transaction_channel.ex b/apps/block_scout_web/lib/block_scout_web/channels/v2/transaction_channel.ex index 255416743af2..f5d83a91a627 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/v2/transaction_channel.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/v2/transaction_channel.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.V2.TransactionChannel do @moduledoc """ Establishes pub/sub channel for live updates of transaction events for API V2. diff --git a/apps/block_scout_web/lib/block_scout_web/channels/v2/user_socket.ex b/apps/block_scout_web/lib/block_scout_web/channels/v2/user_socket.ex index 49b32e981f10..34764a7595d6 100644 --- a/apps/block_scout_web/lib/block_scout_web/channels/v2/user_socket.ex +++ b/apps/block_scout_web/lib/block_scout_web/channels/v2/user_socket.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.V2.UserSocket do @moduledoc """ Module to distinct new and old UI websocket connections diff --git a/apps/block_scout_web/lib/block_scout_web/checksum_address.ex b/apps/block_scout_web/lib/block_scout_web/checksum_address.ex index ca6b53236ee1..158c46fc4646 100644 --- a/apps/block_scout_web/lib/block_scout_web/checksum_address.ex +++ b/apps/block_scout_web/lib/block_scout_web/checksum_address.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ChecksumAddress do @moduledoc """ Adds checksummed version of address hashes. diff --git a/apps/block_scout_web/lib/block_scout_web/cldr.ex b/apps/block_scout_web/lib/block_scout_web/cldr.ex index 722dbe64856a..2e784e1aa7dd 100644 --- a/apps/block_scout_web/lib/block_scout_web/cldr.ex +++ b/apps/block_scout_web/lib/block_scout_web/cldr.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Cldr do @moduledoc """ Cldr global configuration. diff --git a/apps/block_scout_web/lib/block_scout_web/controller.ex b/apps/block_scout_web/lib/block_scout_web/controller.ex index 3031f234cc8f..f156dd3bbee2 100644 --- a/apps/block_scout_web/lib/block_scout_web/controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Controller do @moduledoc """ Common controller error responses diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/address_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/address_controller.ex index a7ab550c543e..dcb5a0f2f56a 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/address_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/address_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.API.V2.AddressController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/authenticate_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/authenticate_controller.ex index 5de82b17f93d..938e3e474876 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/authenticate_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/authenticate_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.API.V2.AuthenticateController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/email_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/email_controller.ex index a4e724a2b4fd..64c982106173 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/email_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/email_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.API.V2.EmailController do use BlockScoutWeb, :controller use Utils.CompileTimeEnvHelper, invalid_session_key: [:block_scout_web, :invalid_session_key] diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/fallback_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/fallback_controller.ex index 1026c17d8770..dc80010d7dc7 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/fallback_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/fallback_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.API.V2.FallbackController do use Phoenix.Controller, namespace: BlockScoutWeb diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/tags_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/tags_controller.ex index 47b967192ab0..3ad6137d4800 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/tags_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/tags_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.API.V2.TagsController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/user_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/user_controller.ex index b6fbe259b8e7..6e99d13a4dbe 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/user_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/account/api/v2/user_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.API.V2.UserController do alias Explorer.ThirdPartyIntegrations.Auth0 use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/account/api_key_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/account/api_key_controller.ex index 55c0b05283b6..819f9858453c 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/account/api_key_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/account/api_key_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.ApiKeyController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/account/auth_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/account/auth_controller.ex index 2c4bbc066d6c..20dedd6b652c 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/account/auth_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/account/auth_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.AuthController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/account/custom_abi_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/account/custom_abi_controller.ex index dcd8fca985e4..a927ad7e65dc 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/account/custom_abi_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/account/custom_abi_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.CustomABIController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/account/tag_address_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/account/tag_address_controller.ex index 8ca30a959b69..315c5f792c1c 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/account/tag_address_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/account/tag_address_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.TagAddressController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/account/tag_transaction_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/account/tag_transaction_controller.ex index 4a4c8fca3773..d9f15f7be0e2 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/account/tag_transaction_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/account/tag_transaction_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.TagTransactionController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/account/watchlist_address_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/account/watchlist_address_controller.ex index 6cd44551d2d2..e7cc602e5bc6 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/account/watchlist_address_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/account/watchlist_address_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.WatchlistAddressController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/account/watchlist_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/account/watchlist_controller.ex index f8c548322f44..46fbb1964d45 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/account/watchlist_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/account/watchlist_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.WatchlistController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_coin_balance_by_day_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_coin_balance_by_day_controller.ex index 10833909ced1..2ae6e2dda24a 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_coin_balance_by_day_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_coin_balance_by_day_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressCoinBalanceByDayController do @moduledoc """ Manages the grouping by day of the coin balance history of an address diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_coin_balance_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_coin_balance_controller.ex index 8c44303247a2..b5a2997df70f 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_coin_balance_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_coin_balance_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressCoinBalanceController do @moduledoc """ Manages the displaying of information about the coin balance history of an address 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 2b5b7c3c1301..e6d9ce02cb10 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 @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # credo:disable-for-this-file defmodule BlockScoutWeb.AddressContractController do use BlockScoutWeb, :controller 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 60f4720aef37..40881e89b4b2 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 @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractVerificationController do use BlockScoutWeb, :controller 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 72cd3aeb3bca..c714a5b7c589 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 @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractVerificationViaFlattenedCodeController do use BlockScoutWeb, :controller 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 b41ae1517fdc..0663b65c3209 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 @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractVerificationViaJsonController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_via_multi_part_files_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_via_multi_part_files_controller.ex index 78f6ea6b99c4..0b146b3461ad 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_via_multi_part_files_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_via_multi_part_files_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractVerificationViaMultiPartFilesController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_via_standard_json_input_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_via_standard_json_input_controller.ex index 37447acd8195..2e1ad775239d 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_via_standard_json_input_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_via_standard_json_input_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractVerificationViaStandardJsonInputController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_vyper_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_vyper_controller.ex index 6c978901cd0a..4eee5f306f25 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_vyper_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_contract_verification_vyper_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractVerificationVyperController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_controller.ex index eced37610628..5dfe1c8920a2 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressController do use BlockScoutWeb, :controller use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_internal_transaction_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_internal_transaction_controller.ex index f4392c9c257c..3b4237fe9d52 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_internal_transaction_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_internal_transaction_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressInternalTransactionController do @moduledoc """ Manages the displaying of information about internal transactions as they relate to addresses diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_logs_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_logs_controller.ex index 3e5a9a666ef3..f0bdb668281c 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_logs_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_logs_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressLogsController do @moduledoc """ Manages events logs tab. diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_read_contract_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_read_contract_controller.ex index cea736458559..b00a13a613ec 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_read_contract_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_read_contract_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # credo:disable-for-this-file # # When moving the calls to ajax, this controller became very similar to the diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_read_proxy_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_read_proxy_controller.ex index 8a7388986053..491fa672edc1 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_read_proxy_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_read_proxy_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # credo:disable-for-this-file defmodule BlockScoutWeb.AddressReadProxyController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_token_balance_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_token_balance_controller.ex index 34a8a9f2dea2..08d608948d97 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_token_balance_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_token_balance_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressTokenBalanceController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_token_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_token_controller.ex index b250c9e58a7a..e42d71318935 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_token_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_token_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressTokenController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_token_transfer_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_token_transfer_controller.ex index ae54aedc92f3..bd00d9f1812e 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_token_transfer_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_token_transfer_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressTokenTransferController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex index c8046c1ba30c..ac40c01d20fe 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressTransactionController do @moduledoc """ Display all the Transactions that terminate at this Address. diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_validation_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_validation_controller.ex index f3fc4ed8f580..a104540f8c99 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_validation_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_validation_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressValidationController do @moduledoc """ Display all the blocks that this address validates. diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_withdrawal_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_withdrawal_controller.ex index ce3c05c37466..a10d0c614f18 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_withdrawal_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_withdrawal_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressWithdrawalController do @moduledoc """ Display all the withdrawals that terminate at this Address. diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_write_contract_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_write_contract_controller.ex index eceeb79fd46a..d6371741e005 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_write_contract_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_write_contract_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # credo:disable-for-this-file # # When moving the calls to ajax, this controller became very similar to the diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_write_proxy_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_write_proxy_controller.ex index 81eac19671a8..c84aa791b881 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_write_proxy_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_write_proxy_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # credo:disable-for-this-file defmodule BlockScoutWeb.AddressWriteProxyController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/admin/dashboard_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/admin/dashboard_controller.ex index 4455e0f8de31..af173c51a9ac 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/admin/dashboard_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/admin/dashboard_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Admin.DashboardController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/admin/session_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/admin/session_controller.ex index 6c200e3304d9..f92569d44bba 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/admin/session_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/admin/session_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Admin.SessionController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/admin/setup_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/admin/setup_controller.ex index 1d0f82f4d696..d6ddc9d5db65 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/admin/setup_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/admin/setup_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Admin.SetupController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/admin/tasks_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/admin/tasks_controller.ex index 1e94fc50c445..9dffd228804c 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/admin/tasks_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/admin/tasks_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Admin.TaskController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/api_logger.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/api_logger.ex index 8a86aee8432e..01c32032c7cd 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/api_logger.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/api_logger.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.APILogger do @moduledoc """ Logger for API endpoints usage diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/eth_rpc/eth_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/eth_rpc/eth_controller.ex index a42116389d0f..d3f9d4886271 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/eth_rpc/eth_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/eth_rpc/eth_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.EthRPC.EthController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/health_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/health_controller.ex index 8bd6184064a6..fbcbb1ba7138 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/health_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/health_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.HealthController do use Phoenix.Controller, namespace: BlockScoutWeb diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/legacy/block_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/legacy/block_controller.ex index a2f84c6c0296..a7a922b999f8 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/legacy/block_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/legacy/block_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.Legacy.BlockController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/legacy/logs_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/legacy/logs_controller.ex index 559710a472c6..32ad67567a47 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/legacy/logs_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/legacy/logs_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.Legacy.LogsController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/address_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/address_controller.ex index 8ba6b34091fb..56d1e9d4e3e5 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/address_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/address_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.AddressController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/block_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/block_controller.ex index c5782b644d3f..b43e6c472f62 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/block_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/block_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.BlockController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/celo_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/celo_controller.ex index 3c348419ffb6..d59acc0f8a78 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/celo_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/celo_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.CeloController do use BlockScoutWeb, :controller 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 2cd8c463d949..b95751e19849 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 @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.ContractController do use BlockScoutWeb, :controller use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/helper.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/helper.ex index a533ff8b57df..b72c6f840a6a 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.Helper do @moduledoc """ Small helpers for RPC api controllers. diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/logs_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/logs_controller.ex index 50c9906164e9..b6425cad65e2 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/logs_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/logs_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.LogsController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/rpc_translator.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/rpc_translator.ex index 9000fde8650f..f4357e51309e 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/rpc_translator.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/rpc_translator.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.RPCTranslator do @moduledoc """ Converts an RPC-style request into a controller action. diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/stats_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/stats_controller.ex index a544429c77cf..800670b4e619 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/stats_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/stats_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.StatsController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/token_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/token_controller.ex index 5d2bce55601d..3f80d4fe8cad 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/token_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/token_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.TokenController do use BlockScoutWeb, :controller use Utils.CompileTimeEnvHelper, bridged_tokens_enabled: [:explorer, [Explorer.Chain.BridgedToken, :enabled]] diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/transaction_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/transaction_controller.ex index 6313a23aa959..30baabf032d0 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/transaction_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/transaction_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.TransactionController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v1/gas_price_oracle_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v1/gas_price_oracle_controller.ex index 0d6cb8e3eca3..e9c2dc4fbb9d 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v1/gas_price_oracle_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v1/gas_price_oracle_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V1.GasPriceOracleController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v1/supply_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v1/supply_controller.ex index 6b3cf3edd6a2..02153e0a1618 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v1/supply_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v1/supply_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V1.SupplyController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v1/verified_smart_contract_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v1/verified_smart_contract_controller.ex index 10c445febda3..a4b23d2f6896 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v1/verified_smart_contract_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v1/verified_smart_contract_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V1.VerifiedSmartContractController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/address_badge_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/address_badge_controller.ex index 825ea61c11e9..46322431d6a6 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/address_badge_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/address_badge_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.AddressBadgeController do require Logger use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/address_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/address_controller.ex index 69050405f8b6..0e71cd846e43 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/address_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/address_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.AddressController do use BlockScoutWeb, :controller use Utils.CompileTimeEnvHelper, chain_identity: [:explorer, :chain_identity], chain_type: [:explorer, :chain_type] diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/advanced_filter_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/advanced_filter_controller.ex index bdc2485f7ab5..1b5c0eb68ba7 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/advanced_filter_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/advanced_filter_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.AdvancedFilterController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/api_key_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/api_key_controller.ex index 77f3f6f88bb4..fff2b7d38a0f 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/api_key_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/api_key_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.APIKeyController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/arbitrum_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/arbitrum_controller.ex index 1913d0184c4b..a32ee1e701c4 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/arbitrum_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/arbitrum_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ArbitrumController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/blob_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/blob_controller.ex index f66c8c45107a..2d88fc7fb3b2 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/blob_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/blob_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.BlobController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/block_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/block_controller.ex index a1134b01687c..8feb71955d14 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/block_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/block_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.BlockController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/celo_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/celo_controller.ex index d8728b91501e..175f4046c04e 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/celo_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/celo_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.CeloController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/config_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/config_controller.ex index 6cfd3e2baa92..fc2fdf3fdfd7 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/config_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/config_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ConfigController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/csv_export_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/csv_export_controller.ex index 5b6f6e87515c..e43d6750e9a2 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/csv_export_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/csv_export_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.CsvExportController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/ethereum/deposit_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/ethereum/deposit_controller.ex index e6681a08f06b..827e23ae7ab5 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/ethereum/deposit_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/ethereum/deposit_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.Ethereum.DepositController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/fallback_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/fallback_controller.ex index 4d812f7f907f..290df68714ad 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/fallback_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/fallback_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.FallbackController do use Phoenix.Controller, namespace: BlockScoutWeb diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/import_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/import_controller.ex index 9f6eaa6b378d..f63da1af801f 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/import_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/import_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ImportController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/internal_transaction_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/internal_transaction_controller.ex index f571f821b67e..8ff0b142bb42 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/internal_transaction_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/internal_transaction_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.InternalTransactionController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/main_page_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/main_page_controller.ex index f09761cd09d8..cae0bcf2fd2d 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/main_page_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/main_page_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.MainPageController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/mud_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/mud_controller.ex index 36da2d506287..60a4886dbc29 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/mud_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/mud_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.MudController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/optimism_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/optimism_controller.ex index db862e677778..bc3afc6dc1fd 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/optimism_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/optimism_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.OptimismController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/account_abstraction_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/account_abstraction_controller.ex index 748a9c377659..38e7293642e2 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/account_abstraction_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/account_abstraction_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.Proxy.AccountAbstractionController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/metadata_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/metadata_controller.ex index b8b68939110c..04506ad613a3 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/metadata_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/metadata_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.Proxy.MetadataController do @moduledoc """ Controller for the metadata service diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/noves_fi_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/noves_fi_controller.ex index 39a0cf3fc4fd..3d762a3775e7 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/noves_fi_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/noves_fi_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.Proxy.NovesFiController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/solidity_scan_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/solidity_scan_controller.ex index 5b63eff82f9b..f005dd0427c9 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/solidity_scan_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/solidity_scan_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.Proxy.SolidityScanController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/universal_proxy_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/universal_proxy_controller.ex index 7f239684bb06..9ef8aa72e624 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/universal_proxy_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/universal_proxy_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.Proxy.UniversalProxyController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/xname_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/xname_controller.ex index c308b63a7d86..49ad5cfc7a0a 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/xname_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/proxy/xname_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.Proxy.XnameController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/scroll_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/scroll_controller.ex index d634ec5764f4..ceaeb173fce3 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/scroll_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/scroll_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ScrollController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/search_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/search_controller.ex index 5f0512be2bfe..f25a0f42e0fe 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/search_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/search_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.SearchController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/shibarium_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/shibarium_controller.ex index a1e7532e54a3..4b2c9e47464d 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/shibarium_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/shibarium_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ShibariumController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/smart_contract_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/smart_contract_controller.ex index 7e21803f421c..16ec784641ad 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/smart_contract_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/smart_contract_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.SmartContractController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/stats_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/stats_controller.ex index e649592cc4bc..553e4e0908e9 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/stats_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/stats_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.StatsController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/token_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/token_controller.ex index 447cc0725f02..f9e5924bbcdb 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/token_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/token_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.TokenController do use BlockScoutWeb, :controller use Utils.CompileTimeEnvHelper, bridged_tokens_enabled: [:explorer, [Explorer.Chain.BridgedToken, :enabled]] diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/token_transfer_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/token_transfer_controller.ex index 639d6c84a7a2..71dff53a1954 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/token_transfer_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/token_transfer_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.TokenTransferController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/transaction_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/transaction_controller.ex index e5906576a0b9..4014ea636f1c 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/transaction_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/transaction_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.TransactionController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/utils_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/utils_controller.ex index 233066aaff43..ee00f0e5b139 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/utils_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/utils_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.UtilsController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/validator_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/validator_controller.ex index 86b26d12d7a1..f35153699bf5 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/validator_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/validator_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ValidatorController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/verification_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/verification_controller.ex index a97e145d0ea6..111d72467406 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/verification_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/verification_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.VerificationController do use BlockScoutWeb, :controller use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/withdrawal_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/withdrawal_controller.ex index 6d20c907de29..3b32c056a806 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/withdrawal_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/withdrawal_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.WithdrawalController do use BlockScoutWeb, :controller use OpenApiSpex.ControllerSpecs diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/zksync_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/zksync_controller.ex index 877f1ef9fcf1..25a21adf4646 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/zksync_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api/v2/zksync_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ZkSyncController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/api_docs_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/api_docs_controller.ex index 4a658c409e98..4f6995cf57bf 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/api_docs_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/api_docs_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.APIDocsController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/block_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/block_controller.ex index ed117efab66b..03c48359f007 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/block_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/block_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.BlockController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/block_transaction_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/block_transaction_controller.ex index 4a92e7c5ca52..83786797fbef 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/block_transaction_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/block_transaction_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.BlockTransactionController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/block_withdrawal_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/block_withdrawal_controller.ex index 8ea4f731a28a..95fc7d5f3c68 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/block_withdrawal_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/block_withdrawal_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.BlockWithdrawalController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/chain/market_history_chart_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/chain/market_history_chart_controller.ex index 51cb05fb3e10..9b4d9f3d301d 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/chain/market_history_chart_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/chain/market_history_chart_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Chain.MarketHistoryChartController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/chain/transaction_history_chart_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/chain/transaction_history_chart_controller.ex index 4f564ad12a76..af267e5bc043 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/chain/transaction_history_chart_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/chain/transaction_history_chart_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Chain.TransactionHistoryChartController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/chain_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/chain_controller.ex index bb274bbb3f3e..5b2579ce8d62 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/chain_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/chain_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ChainController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/common_components_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/common_components_controller.ex index 379bd15ed500..22a37e18887b 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/common_components_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/common_components_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.CommonComponentsController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/csv_export_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/csv_export_controller.ex index aa04ec19dad2..313623547ec3 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/csv_export_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/csv_export_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.CsvExportController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/page_not_found_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/page_not_found_controller.ex index fabcb3b733fb..560900b7d338 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/page_not_found_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/page_not_found_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.PageNotFoundController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/pending_transaction_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/pending_transaction_controller.ex index 4704d652528c..be42444a8202 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/pending_transaction_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/pending_transaction_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.PendingTransactionController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/recent_transactions_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/recent_transactions_controller.ex index 44a8db384387..150e4e976631 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/recent_transactions_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/recent_transactions_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.RecentTransactionsController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/robots_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/robots_controller.ex index a482fb1a73c7..5e546ceef338 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/robots_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/robots_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.RobotsController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/search_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/search_controller.ex index c8292be760f6..bf21bc1a7de2 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/search_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/search_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.SearchController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/smart_contract_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/smart_contract_controller.ex index 93123c38420c..2355aa96a192 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/smart_contract_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/smart_contract_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.SmartContractController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/contract_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/contract_controller.ex index 1e9828a4735d..b2348f8c11c0 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/contract_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/contract_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.ContractController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/holder_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/holder_controller.ex index 27ef2589abaa..b4e590157e78 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/holder_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/holder_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.HolderController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance/helper.ex b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance/helper.ex index eb1c542679a1..45fb26b2ed20 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance/helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.Instance.Helper do @moduledoc """ Token instance controllers common helper diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance/holder_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance/holder_controller.ex index c0f8eda41f2d..3b831717e5f4 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance/holder_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance/holder_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.Instance.HolderController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance/metadata_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance/metadata_controller.ex index 5d66eb18d349..68c32afd3414 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance/metadata_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance/metadata_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.Instance.MetadataController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance/transfer_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance/transfer_controller.ex index 2c437333b4d9..cf5004946611 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance/transfer_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance/transfer_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.Instance.TransferController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance_controller.ex index 601bc0a0d629..e1ba1ef2735c 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/instance_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.InstanceController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/inventory_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/inventory_controller.ex index 787c25ce1bd4..bce53330861b 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/inventory_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/inventory_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.InventoryController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/token_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/token_controller.ex index 363cf137cf1d..c7661debd323 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/token_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/token_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.TokenController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/tokens_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/tokens_controller.ex index 17ee2823fcd5..b14faa7a68bf 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/tokens_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/tokens_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TokensController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/transfer_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/transfer_controller.ex index 544f10e00c53..a7aa73ec6e33 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/tokens/transfer_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/tokens/transfer_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.TransferController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/transaction_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/transaction_controller.ex index 70e7807e998f..feaae15b198d 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/transaction_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/transaction_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/transaction_internal_transaction_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/transaction_internal_transaction_controller.ex index 385ec683e1c4..a3bef06d6b4a 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/transaction_internal_transaction_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/transaction_internal_transaction_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionInternalTransactionController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/transaction_log_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/transaction_log_controller.ex index 69379162c157..05f6fd9743d3 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/transaction_log_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/transaction_log_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionLogController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/transaction_raw_trace_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/transaction_raw_trace_controller.ex index 3b79623bbe40..c79a1a4e24a1 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/transaction_raw_trace_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/transaction_raw_trace_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionRawTraceController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/transaction_state_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/transaction_state_controller.ex index 437b33af2769..42a1b318bb7e 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/transaction_state_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/transaction_state_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionStateController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/transaction_token_transfer_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/transaction_token_transfer_controller.ex index c1011b6e73b9..f973c0bf43e2 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/transaction_token_transfer_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/transaction_token_transfer_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionTokenTransferController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/verified_contracts_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/verified_contracts_controller.ex index dbec2a6abab6..10c07a33c1da 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/verified_contracts_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/verified_contracts_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.VerifiedContractsController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/visualize_sol2uml_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/visualize_sol2uml_controller.ex index 157ae4f758e0..aa71d42aefec 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/visualize_sol2uml_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/visualize_sol2uml_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.VisualizeSol2umlController do use BlockScoutWeb, :controller alias BlockScoutWeb.AccessHelper diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/withdrawal_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/withdrawal_controller.ex index 8d5c56fc0270..96a662f0f62f 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/withdrawal_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/withdrawal_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.WithdrawalController do use BlockScoutWeb, :controller diff --git a/apps/block_scout_web/lib/block_scout_web/counters/blocks_indexed_counter.ex b/apps/block_scout_web/lib/block_scout_web/counters/blocks_indexed_counter.ex index 19be491d1ed4..9da0f0113859 100644 --- a/apps/block_scout_web/lib/block_scout_web/counters/blocks_indexed_counter.ex +++ b/apps/block_scout_web/lib/block_scout_web/counters/blocks_indexed_counter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Counters.BlocksIndexedCounter do @moduledoc """ Module responsible for fetching and consolidating the number blocks indexed. diff --git a/apps/block_scout_web/lib/block_scout_web/counters/internal_transactions_indexed_counter.ex b/apps/block_scout_web/lib/block_scout_web/counters/internal_transactions_indexed_counter.ex index 54aaa5c029b9..0f562a88167b 100644 --- a/apps/block_scout_web/lib/block_scout_web/counters/internal_transactions_indexed_counter.ex +++ b/apps/block_scout_web/lib/block_scout_web/counters/internal_transactions_indexed_counter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Counters.InternalTransactionsIndexedCounter do @moduledoc """ Module responsible for fetching and consolidating the number pending block operations (internal transactions) indexed. diff --git a/apps/block_scout_web/lib/block_scout_web/csp_header.ex b/apps/block_scout_web/lib/block_scout_web/csp_header.ex index 10e01eec7c7a..062d317de28a 100644 --- a/apps/block_scout_web/lib/block_scout_web/csp_header.ex +++ b/apps/block_scout_web/lib/block_scout_web/csp_header.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.CSPHeader do @moduledoc """ Plug to set content-security-policy with websocket endpoints diff --git a/apps/block_scout_web/lib/block_scout_web/csv_export/address/internal_transactions.ex b/apps/block_scout_web/lib/block_scout_web/csv_export/address/internal_transactions.ex index 880fb800e529..62af25e51215 100644 --- a/apps/block_scout_web/lib/block_scout_web/csv_export/address/internal_transactions.ex +++ b/apps/block_scout_web/lib/block_scout_web/csv_export/address/internal_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.CsvExport.Address.InternalTransactions do @moduledoc """ Exports internal transactions to a csv file. diff --git a/apps/block_scout_web/lib/block_scout_web/endpoint.ex b/apps/block_scout_web/lib/block_scout_web/endpoint.ex index d418f4334a7b..67428fcd5d5c 100644 --- a/apps/block_scout_web/lib/block_scout_web/endpoint.ex +++ b/apps/block_scout_web/lib/block_scout_web/endpoint.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Endpoint do use Phoenix.Endpoint, otp_app: :block_scout_web use Absinthe.Phoenix.Endpoint diff --git a/apps/block_scout_web/lib/block_scout_web/etherscan.ex b/apps/block_scout_web/lib/block_scout_web/etherscan.ex index bb8ff20b47cd..3f570417c8b7 100644 --- a/apps/block_scout_web/lib/block_scout_web/etherscan.ex +++ b/apps/block_scout_web/lib/block_scout_web/etherscan.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Etherscan do @moduledoc """ Documentation data for Etherscan-compatible API. diff --git a/apps/block_scout_web/lib/block_scout_web/gettext.ex b/apps/block_scout_web/lib/block_scout_web/gettext.ex index bb3588f5f64e..8e6cff13d859 100644 --- a/apps/block_scout_web/lib/block_scout_web/gettext.ex +++ b/apps/block_scout_web/lib/block_scout_web/gettext.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Gettext do @moduledoc """ A module providing Internationalization with a gettext-based API. diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/body_reader.ex b/apps/block_scout_web/lib/block_scout_web/graphql/body_reader.ex index fe12ebfb1ca1..1c52b8f75bf8 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/body_reader.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/body_reader.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.BodyReader do @moduledoc """ This module is responsible for reading the body of a graphql request and counting the number of queries in the body. diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/celo/resolvers/token_transfer.ex b/apps/block_scout_web/lib/block_scout_web/graphql/celo/resolvers/token_transfer.ex index 0eb2a5a32375..2cf0742128b8 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/celo/resolvers/token_transfer.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/celo/resolvers/token_transfer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Celo.Resolvers.TokenTransfer do @moduledoc """ Resolvers for token transfers, used in the CELO schema. diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/celo/resolvers/token_transfer_transaction.ex b/apps/block_scout_web/lib/block_scout_web/graphql/celo/resolvers/token_transfer_transaction.ex index 4b39ec0c4bd2..217453d8f5d8 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/celo/resolvers/token_transfer_transaction.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/celo/resolvers/token_transfer_transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Celo.Resolvers.TokenTransferTransaction do @moduledoc false diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/celo/schema/query_fields.ex b/apps/block_scout_web/lib/block_scout_web/graphql/celo/schema/query_fields.ex index 8e2d277accc7..9c5e7107fdc1 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/celo/schema/query_fields.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/celo/schema/query_fields.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Celo.QueryFields do @moduledoc """ Query fields for the CELO schema. diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/celo/schema/types.ex b/apps/block_scout_web/lib/block_scout_web/graphql/celo/schema/types.ex index 61419d03e998..c821bceea5cd 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/celo/schema/types.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/celo/schema/types.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Celo.Schema.Types do @moduledoc false diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/middleware/api_enabled.ex b/apps/block_scout_web/lib/block_scout_web/graphql/middleware/api_enabled.ex index dfe2bdb57564..1efe690a778f 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/middleware/api_enabled.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/middleware/api_enabled.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Middleware.ApiEnabled do @moduledoc """ Middleware to check if the GraphQL API is enabled. diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/address.ex b/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/address.ex index 1cbc324a1076..8020b3a233d3 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/address.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/address.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Resolvers.Address do @moduledoc false diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/block.ex b/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/block.ex index 1b03f48dfc88..b0addd19de36 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/block.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/block.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Resolvers.Block do @moduledoc false diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/internal_transaction.ex b/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/internal_transaction.ex index 33971212e21f..be0e4ab25bc2 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/internal_transaction.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/internal_transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Resolvers.InternalTransaction do @moduledoc false diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/token.ex b/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/token.ex index 55092ec02e75..6b1a9a636ff9 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/token.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/token.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Resolvers.Token do @moduledoc false diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/token_transfer.ex b/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/token_transfer.ex index bf155c1748fa..6e3a6ba3f88a 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/token_transfer.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/token_transfer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Resolvers.TokenTransfer do @moduledoc false diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/transaction.ex b/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/transaction.ex index e297a13a3d0f..b2c8631ee4fe 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/transaction.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/resolvers/transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Resolvers.Transaction do @moduledoc false diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/schema.ex b/apps/block_scout_web/lib/block_scout_web/graphql/schema.ex index 727aea396e35..9db86a1e7e38 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/schema.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/schema.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Schema do @moduledoc false diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/schema/scalars.ex b/apps/block_scout_web/lib/block_scout_web/graphql/schema/scalars.ex index e74af83ba582..1522106a3b32 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/schema/scalars.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/schema/scalars.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Schema.Scalars do @moduledoc false diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/schema/scalars/JSON.ex b/apps/block_scout_web/lib/block_scout_web/graphql/schema/scalars/JSON.ex index 530e2a01baa0..cd9a0889d09a 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/schema/scalars/JSON.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/schema/scalars/JSON.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Schema.Scalars.JSON do @moduledoc """ The JSON scalar type allows arbitrary JSON values to be passed in and out. diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/schema/types.ex b/apps/block_scout_web/lib/block_scout_web/graphql/schema/types.ex index 74fbd1b664d2..b23da37c5107 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/schema/types.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/schema/types.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Schema.Transaction do @moduledoc false use Utils.CompileTimeEnvHelper, chain_identity: [:explorer, :chain_identity] diff --git a/apps/block_scout_web/lib/block_scout_web/graphql/schema_controller.ex b/apps/block_scout_web/lib/block_scout_web/graphql/schema_controller.ex index 02701360818b..1dfd3da8b9dc 100644 --- a/apps/block_scout_web/lib/block_scout_web/graphql/schema_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/graphql/schema_controller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.SchemaController do @moduledoc """ Controller for serving the GraphQL schema in SDL format. diff --git a/apps/block_scout_web/lib/block_scout_web/health_endpoint.ex b/apps/block_scout_web/lib/block_scout_web/health_endpoint.ex index d821ad689c85..216af7cd480c 100644 --- a/apps/block_scout_web/lib/block_scout_web/health_endpoint.ex +++ b/apps/block_scout_web/lib/block_scout_web/health_endpoint.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.HealthEndpoint do @moduledoc """ Health endpoint for health checks in case of indexer-only/standalone_media_worker setup diff --git a/apps/block_scout_web/lib/block_scout_web/health_router.ex b/apps/block_scout_web/lib/block_scout_web/health_router.ex index 9450539ca43c..a52b8f4c09b8 100644 --- a/apps/block_scout_web/lib/block_scout_web/health_router.ex +++ b/apps/block_scout_web/lib/block_scout_web/health_router.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.HealthRouter do @moduledoc """ Router for health checks in case of indexer-only setup diff --git a/apps/block_scout_web/lib/block_scout_web/microservice_interfaces/transaction_interpretation.ex b/apps/block_scout_web/lib/block_scout_web/microservice_interfaces/transaction_interpretation.ex index 70fe9a9ea8c4..8e31ee31932a 100644 --- a/apps/block_scout_web/lib/block_scout_web/microservice_interfaces/transaction_interpretation.ex +++ b/apps/block_scout_web/lib/block_scout_web/microservice_interfaces/transaction_interpretation.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.MicroserviceInterfaces.TransactionInterpretation do @moduledoc """ Module to interact with Transaction Interpretation Service diff --git a/apps/block_scout_web/lib/block_scout_web/models/get_address_tags.ex b/apps/block_scout_web/lib/block_scout_web/models/get_address_tags.ex index 468526130e38..e8dde140d33e 100644 --- a/apps/block_scout_web/lib/block_scout_web/models/get_address_tags.ex +++ b/apps/block_scout_web/lib/block_scout_web/models/get_address_tags.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Models.GetAddressTags do @moduledoc """ Get various types of tags associated with the address diff --git a/apps/block_scout_web/lib/block_scout_web/models/get_transaction_tags.ex b/apps/block_scout_web/lib/block_scout_web/models/get_transaction_tags.ex index 1aeed2d04391..d318188751db 100644 --- a/apps/block_scout_web/lib/block_scout_web/models/get_transaction_tags.ex +++ b/apps/block_scout_web/lib/block_scout_web/models/get_transaction_tags.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Models.GetTransactionTags do @moduledoc """ Get various types of tags associated with the transaction diff --git a/apps/block_scout_web/lib/block_scout_web/models/transaction_state_helper.ex b/apps/block_scout_web/lib/block_scout_web/models/transaction_state_helper.ex index 3d69917cb575..137c7707534b 100644 --- a/apps/block_scout_web/lib/block_scout_web/models/transaction_state_helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/models/transaction_state_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Models.TransactionStateHelper do @moduledoc """ Transaction state changes related functions diff --git a/apps/block_scout_web/lib/block_scout_web/notifier.ex b/apps/block_scout_web/lib/block_scout_web/notifier.ex index fd64bb3d8825..20f14a4fc706 100644 --- a/apps/block_scout_web/lib/block_scout_web/notifier.ex +++ b/apps/block_scout_web/lib/block_scout_web/notifier.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Notifier do @moduledoc """ Responds to events by sending appropriate channel updates to front-end. diff --git a/apps/block_scout_web/lib/block_scout_web/notifiers/arbitrum.ex b/apps/block_scout_web/lib/block_scout_web/notifiers/arbitrum.ex index 2b7589dc0f3b..b6bf0149aa1d 100644 --- a/apps/block_scout_web/lib/block_scout_web/notifiers/arbitrum.ex +++ b/apps/block_scout_web/lib/block_scout_web/notifiers/arbitrum.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Notifiers.Arbitrum do @moduledoc """ Module to handle and broadcast Arbitrum related events. diff --git a/apps/block_scout_web/lib/block_scout_web/notifiers/optimism.ex b/apps/block_scout_web/lib/block_scout_web/notifiers/optimism.ex index 0d7576640b20..0e9648bff511 100644 --- a/apps/block_scout_web/lib/block_scout_web/notifiers/optimism.ex +++ b/apps/block_scout_web/lib/block_scout_web/notifiers/optimism.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Notifiers.Optimism do @moduledoc """ Module to handle and broadcast OP related events. diff --git a/apps/block_scout_web/lib/block_scout_web/paging_helper.ex b/apps/block_scout_web/lib/block_scout_web/paging_helper.ex index aec1c3ac967e..84d39f99f6ec 100644 --- a/apps/block_scout_web/lib/block_scout_web/paging_helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/paging_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.PagingHelper do @moduledoc """ Helper for fetching filters and other url query parameters diff --git a/apps/block_scout_web/lib/block_scout_web/plug/admin/check_owner_registered.ex b/apps/block_scout_web/lib/block_scout_web/plug/admin/check_owner_registered.ex index b1ff8053269b..155a595ea5d7 100644 --- a/apps/block_scout_web/lib/block_scout_web/plug/admin/check_owner_registered.ex +++ b/apps/block_scout_web/lib/block_scout_web/plug/admin/check_owner_registered.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.Admin.CheckOwnerRegistered do @moduledoc """ Checks that an admin owner has registered. diff --git a/apps/block_scout_web/lib/block_scout_web/plug/admin/require_admin_role.ex b/apps/block_scout_web/lib/block_scout_web/plug/admin/require_admin_role.ex index 2a70d8a0e0bf..6a06f575f84e 100644 --- a/apps/block_scout_web/lib/block_scout_web/plug/admin/require_admin_role.ex +++ b/apps/block_scout_web/lib/block_scout_web/plug/admin/require_admin_role.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.Admin.RequireAdminRole do @moduledoc """ Authorization plug requiring a user to be authenticated and have an admin role. diff --git a/apps/block_scout_web/lib/block_scout_web/plug/allow_iframe.ex b/apps/block_scout_web/lib/block_scout_web/plug/allow_iframe.ex index ee20311efc6d..2f03745d9ba0 100644 --- a/apps/block_scout_web/lib/block_scout_web/plug/allow_iframe.ex +++ b/apps/block_scout_web/lib/block_scout_web/plug/allow_iframe.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.AllowIframe do @moduledoc """ Allows for iframes by deleting the diff --git a/apps/block_scout_web/lib/block_scout_web/plug/check_account_api.ex b/apps/block_scout_web/lib/block_scout_web/plug/check_account_api.ex index 80c5301bce15..a25d443d3a8e 100644 --- a/apps/block_scout_web/lib/block_scout_web/plug/check_account_api.ex +++ b/apps/block_scout_web/lib/block_scout_web/plug/check_account_api.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.CheckAccountAPI do @moduledoc """ Checks if the Account functionality enabled for API level. diff --git a/apps/block_scout_web/lib/block_scout_web/plug/check_account_web.ex b/apps/block_scout_web/lib/block_scout_web/plug/check_account_web.ex index 00a3af4e002e..d3e6f9749a87 100644 --- a/apps/block_scout_web/lib/block_scout_web/plug/check_account_web.ex +++ b/apps/block_scout_web/lib/block_scout_web/plug/check_account_web.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.CheckAccountWeb do @moduledoc """ Checks if the Account functionality enabled for web interface. diff --git a/apps/block_scout_web/lib/block_scout_web/plug/check_api_v2.ex b/apps/block_scout_web/lib/block_scout_web/plug/check_api_v2.ex index 95269a203932..9b320d6d5057 100644 --- a/apps/block_scout_web/lib/block_scout_web/plug/check_api_v2.ex +++ b/apps/block_scout_web/lib/block_scout_web/plug/check_api_v2.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.CheckApiV2 do @moduledoc """ Checks if the API V2 enabled. diff --git a/apps/block_scout_web/lib/block_scout_web/plug/check_chain_type.ex b/apps/block_scout_web/lib/block_scout_web/plug/check_chain_type.ex index dc15b3d9ab24..bb0af044013a 100644 --- a/apps/block_scout_web/lib/block_scout_web/plug/check_chain_type.ex +++ b/apps/block_scout_web/lib/block_scout_web/plug/check_chain_type.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.CheckChainType do @moduledoc """ A plug that restricts access to routes based on the current chain type. diff --git a/apps/block_scout_web/lib/block_scout_web/plug/check_feature.ex b/apps/block_scout_web/lib/block_scout_web/plug/check_feature.ex index 5fdda1a5c8fd..7f4b182c0708 100644 --- a/apps/block_scout_web/lib/block_scout_web/plug/check_feature.ex +++ b/apps/block_scout_web/lib/block_scout_web/plug/check_feature.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.CheckFeature do @moduledoc """ A configurable plug that conditionally allows access to an endpoint based on diff --git a/apps/block_scout_web/lib/block_scout_web/plug/fetch_user_from_session.ex b/apps/block_scout_web/lib/block_scout_web/plug/fetch_user_from_session.ex index 963beac40c93..1dd95c78fb40 100644 --- a/apps/block_scout_web/lib/block_scout_web/plug/fetch_user_from_session.ex +++ b/apps/block_scout_web/lib/block_scout_web/plug/fetch_user_from_session.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.FetchUserFromSession do @moduledoc """ Fetches a `t:Explorer.Accounts.User.t/0` record if a user id is found in the session. diff --git a/apps/block_scout_web/lib/block_scout_web/plug/graphql.ex b/apps/block_scout_web/lib/block_scout_web/plug/graphql.ex index 6e2a0c5bea22..6bc01ea0d1ce 100644 --- a/apps/block_scout_web/lib/block_scout_web/plug/graphql.ex +++ b/apps/block_scout_web/lib/block_scout_web/plug/graphql.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.GraphQL do @moduledoc """ Default query for GraphiQL interface. diff --git a/apps/block_scout_web/lib/block_scout_web/plug/graphql_schema_introspection.ex b/apps/block_scout_web/lib/block_scout_web/plug/graphql_schema_introspection.ex index be9f8dec0e53..249b03637b8f 100644 --- a/apps/block_scout_web/lib/block_scout_web/plug/graphql_schema_introspection.ex +++ b/apps/block_scout_web/lib/block_scout_web/plug/graphql_schema_introspection.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.GraphQLSchemaIntrospection do @moduledoc """ A plug that handles GraphQL introspection queries by returning a pre-computed diff --git a/apps/block_scout_web/lib/block_scout_web/plug/logger.ex b/apps/block_scout_web/lib/block_scout_web/plug/logger.ex index f7b56d6f2b99..8249d939c449 100644 --- a/apps/block_scout_web/lib/block_scout_web/plug/logger.ex +++ b/apps/block_scout_web/lib/block_scout_web/plug/logger.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.Logger do @moduledoc """ Extended version of Plug.Logger from https://github.com/elixir-plug/plug/blob/v1.14.0/lib/plug/logger.ex diff --git a/apps/block_scout_web/lib/block_scout_web/plug/rate_limit.ex b/apps/block_scout_web/lib/block_scout_web/plug/rate_limit.ex index 6d01b08d90ff..9e21593dc7aa 100644 --- a/apps/block_scout_web/lib/block_scout_web/plug/rate_limit.ex +++ b/apps/block_scout_web/lib/block_scout_web/plug/rate_limit.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.RateLimit do @moduledoc """ Rate limiting diff --git a/apps/block_scout_web/lib/block_scout_web/plug/redis_cookie.ex b/apps/block_scout_web/lib/block_scout_web/plug/redis_cookie.ex index 6131e250cab7..c93f2915a6d7 100644 --- a/apps/block_scout_web/lib/block_scout_web/plug/redis_cookie.ex +++ b/apps/block_scout_web/lib/block_scout_web/plug/redis_cookie.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.RedisCookie do @moduledoc """ Extended version of Plug.Session.COOKIE from https://github.com/elixir-plug/plug/blob/main/lib/plug/session/cookie.ex diff --git a/apps/block_scout_web/lib/block_scout_web/prometheus/exporter.ex b/apps/block_scout_web/lib/block_scout_web/prometheus/exporter.ex index c5febc5173a4..25c17e5d88d3 100644 --- a/apps/block_scout_web/lib/block_scout_web/prometheus/exporter.ex +++ b/apps/block_scout_web/lib/block_scout_web/prometheus/exporter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Prometheus.Exporter do @moduledoc """ Exports `Prometheus` metrics at `/metrics` diff --git a/apps/block_scout_web/lib/block_scout_web/prometheus/instrumenter.ex b/apps/block_scout_web/lib/block_scout_web/prometheus/instrumenter.ex index d329c2751a28..c3626f37a5a5 100644 --- a/apps/block_scout_web/lib/block_scout_web/prometheus/instrumenter.ex +++ b/apps/block_scout_web/lib/block_scout_web/prometheus/instrumenter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Prometheus.Instrumenter do @moduledoc """ BlockScoutWeb metrics for `Prometheus`. diff --git a/apps/block_scout_web/lib/block_scout_web/prometheus/public_exporter.ex b/apps/block_scout_web/lib/block_scout_web/prometheus/public_exporter.ex index 620af0e0f0ff..e9b9c0cec734 100644 --- a/apps/block_scout_web/lib/block_scout_web/prometheus/public_exporter.ex +++ b/apps/block_scout_web/lib/block_scout_web/prometheus/public_exporter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Prometheus.PublicExporter do @moduledoc """ Exports `Prometheus` metrics at `/public-metrics` diff --git a/apps/block_scout_web/lib/block_scout_web/rate_limit.ex b/apps/block_scout_web/lib/block_scout_web/rate_limit.ex index c60e90b3b232..821cd253da63 100644 --- a/apps/block_scout_web/lib/block_scout_web/rate_limit.ex +++ b/apps/block_scout_web/lib/block_scout_web/rate_limit.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.RateLimit do @moduledoc """ Rate limiting diff --git a/apps/block_scout_web/lib/block_scout_web/rate_limit/hammer.ex b/apps/block_scout_web/lib/block_scout_web/rate_limit/hammer.ex index 033726c0b262..dc5a902415fd 100644 --- a/apps/block_scout_web/lib/block_scout_web/rate_limit/hammer.ex +++ b/apps/block_scout_web/lib/block_scout_web/rate_limit/hammer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.RateLimit.Hammer.ETS do @moduledoc false use Hammer, backend: Hammer.ETS diff --git a/apps/block_scout_web/lib/block_scout_web/realtime_event_handlers/main.ex b/apps/block_scout_web/lib/block_scout_web/realtime_event_handlers/main.ex index 1001259edb85..a21ac9cc705c 100644 --- a/apps/block_scout_web/lib/block_scout_web/realtime_event_handlers/main.ex +++ b/apps/block_scout_web/lib/block_scout_web/realtime_event_handlers/main.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.RealtimeEventHandlers.Main do @moduledoc """ Subscribing process for broadcast events from realtime. diff --git a/apps/block_scout_web/lib/block_scout_web/realtime_event_handlers/main_page.ex b/apps/block_scout_web/lib/block_scout_web/realtime_event_handlers/main_page.ex index 5f7ac0598297..5f1c23395510 100644 --- a/apps/block_scout_web/lib/block_scout_web/realtime_event_handlers/main_page.ex +++ b/apps/block_scout_web/lib/block_scout_web/realtime_event_handlers/main_page.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.RealtimeEventHandlers.MainPage do @moduledoc """ Subscribing process for main page broadcast events from realtime. diff --git a/apps/block_scout_web/lib/block_scout_web/realtime_event_handlers/smart_contract.ex b/apps/block_scout_web/lib/block_scout_web/realtime_event_handlers/smart_contract.ex index 8e9acde0e207..748ac34ae585 100644 --- a/apps/block_scout_web/lib/block_scout_web/realtime_event_handlers/smart_contract.ex +++ b/apps/block_scout_web/lib/block_scout_web/realtime_event_handlers/smart_contract.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.RealtimeEventHandlers.SmartContract do @moduledoc """ Subscribing process for smart contract verification related broadcast events from realtime. diff --git a/apps/block_scout_web/lib/block_scout_web/realtime_event_handlers/token_transfer.ex b/apps/block_scout_web/lib/block_scout_web/realtime_event_handlers/token_transfer.ex index f1937d9a73f0..9baa74a04499 100644 --- a/apps/block_scout_web/lib/block_scout_web/realtime_event_handlers/token_transfer.ex +++ b/apps/block_scout_web/lib/block_scout_web/realtime_event_handlers/token_transfer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.RealtimeEventHandlers.TokenTransfer do @moduledoc """ Subscribing process for token transfer broadcast events from realtime. diff --git a/apps/block_scout_web/lib/block_scout_web/router.ex b/apps/block_scout_web/lib/block_scout_web/router.ex index 2882274689ab..709df8da2c4b 100644 --- a/apps/block_scout_web/lib/block_scout_web/router.ex +++ b/apps/block_scout_web/lib/block_scout_web/router.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Router do use BlockScoutWeb, :router diff --git a/apps/block_scout_web/lib/block_scout_web/routers/account_router.ex b/apps/block_scout_web/lib/block_scout_web/routers/account_router.ex index dbcf907de095..00e09441ad52 100644 --- a/apps/block_scout_web/lib/block_scout_web/routers/account_router.ex +++ b/apps/block_scout_web/lib/block_scout_web/routers/account_router.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Routers.AccountRouter do @moduledoc """ Router for account-related requests diff --git a/apps/block_scout_web/lib/block_scout_web/routers/address_badges_v2_router.ex b/apps/block_scout_web/lib/block_scout_web/routers/address_badges_v2_router.ex index 71b7571ac704..72e5bec1d4be 100644 --- a/apps/block_scout_web/lib/block_scout_web/routers/address_badges_v2_router.ex +++ b/apps/block_scout_web/lib/block_scout_web/routers/address_badges_v2_router.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # This file in ignore list of `sobelow`, be careful while adding new endpoints here defmodule BlockScoutWeb.Routers.AddressBadgesApiV2Router do @moduledoc """ diff --git a/apps/block_scout_web/lib/block_scout_web/routers/admin_router.ex b/apps/block_scout_web/lib/block_scout_web/routers/admin_router.ex index e0f0c5f4a727..b9e3d72e3444 100644 --- a/apps/block_scout_web/lib/block_scout_web/routers/admin_router.ex +++ b/apps/block_scout_web/lib/block_scout_web/routers/admin_router.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Routers.AdminRouter do @moduledoc """ Router for admin pages. diff --git a/apps/block_scout_web/lib/block_scout_web/routers/api_key_v2_router.ex b/apps/block_scout_web/lib/block_scout_web/routers/api_key_v2_router.ex index 8c656e6cedab..b06f13a4c57b 100644 --- a/apps/block_scout_web/lib/block_scout_web/routers/api_key_v2_router.ex +++ b/apps/block_scout_web/lib/block_scout_web/routers/api_key_v2_router.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Routers.APIKeyV2Router do @moduledoc """ Router for /api/v2/key. This route has separate router in order to avoid rate limiting diff --git a/apps/block_scout_web/lib/block_scout_web/routers/api_router.ex b/apps/block_scout_web/lib/block_scout_web/routers/api_router.ex index d7f2576d2bd8..a94af802da9c 100644 --- a/apps/block_scout_web/lib/block_scout_web/routers/api_router.ex +++ b/apps/block_scout_web/lib/block_scout_web/routers/api_router.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule RPCTranslatorForwarder do @moduledoc """ Phoenix router limits forwarding, diff --git a/apps/block_scout_web/lib/block_scout_web/routers/chain_type_scope.ex b/apps/block_scout_web/lib/block_scout_web/routers/chain_type_scope.ex index c74b5648875a..5285954d528d 100644 --- a/apps/block_scout_web/lib/block_scout_web/routers/chain_type_scope.ex +++ b/apps/block_scout_web/lib/block_scout_web/routers/chain_type_scope.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Routers.ChainTypeScope do @moduledoc """ Provides macros for defining chain-specific routes that are checked at diff --git a/apps/block_scout_web/lib/block_scout_web/routers/smart_contracts_api_v2_router.ex b/apps/block_scout_web/lib/block_scout_web/routers/smart_contracts_api_v2_router.ex index adfadae622e2..6de2a9d0e8ee 100644 --- a/apps/block_scout_web/lib/block_scout_web/routers/smart_contracts_api_v2_router.ex +++ b/apps/block_scout_web/lib/block_scout_web/routers/smart_contracts_api_v2_router.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # This file in ignore list of `sobelow`, be careful while adding new endpoints here defmodule BlockScoutWeb.Routers.SmartContractsApiV2Router do @moduledoc """ diff --git a/apps/block_scout_web/lib/block_scout_web/routers/tokens_api_v2_router.ex b/apps/block_scout_web/lib/block_scout_web/routers/tokens_api_v2_router.ex index faf4f5e8c16a..fcdaaa391e67 100644 --- a/apps/block_scout_web/lib/block_scout_web/routers/tokens_api_v2_router.ex +++ b/apps/block_scout_web/lib/block_scout_web/routers/tokens_api_v2_router.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # This file in ignore list of `sobelow`, be careful while adding new endpoints here defmodule BlockScoutWeb.Routers.TokensApiV2Router do @moduledoc """ diff --git a/apps/block_scout_web/lib/block_scout_web/routers/utils_api_v2_router.ex b/apps/block_scout_web/lib/block_scout_web/routers/utils_api_v2_router.ex index 04eeae92f2a3..5f7adcf645a1 100644 --- a/apps/block_scout_web/lib/block_scout_web/routers/utils_api_v2_router.ex +++ b/apps/block_scout_web/lib/block_scout_web/routers/utils_api_v2_router.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # This file in ignore list of `sobelow`, be careful while adding new endpoints here defmodule BlockScoutWeb.Routers.UtilsApiV2Router do @moduledoc """ diff --git a/apps/block_scout_web/lib/block_scout_web/routers/web_router.ex b/apps/block_scout_web/lib/block_scout_web/routers/web_router.ex index 67339e758ced..95158d98af01 100644 --- a/apps/block_scout_web/lib/block_scout_web/routers/web_router.ex +++ b/apps/block_scout_web/lib/block_scout_web/routers/web_router.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Routers.WebRouter do @moduledoc """ Router for web app diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/legacy/envelope.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/legacy/envelope.ex index 78240c4c9bba..e482025dbd30 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/legacy/envelope.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/legacy/envelope.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.Legacy.Envelope do @moduledoc false diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/legacy/eth_block_number_result.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/legacy/eth_block_number_result.ex index 08c5c6e8fe9a..32e7ee60d8ba 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/legacy/eth_block_number_result.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/legacy/eth_block_number_result.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.Legacy.EthBlockNumberResult do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/legacy/get_block_number_by_time_result.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/legacy/get_block_number_by_time_result.ex index a42fac5dcc76..41115903a959 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/legacy/get_block_number_by_time_result.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/legacy/get_block_number_by_time_result.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.Legacy.GetBlockNumberByTimeResult do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/legacy/log_item.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/legacy/log_item.ex index 14cca99b632f..ac578083497b 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/legacy/log_item.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/legacy/log_item.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.Legacy.LogItem do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/account.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/account.ex index 586b08b13ae2..cbd6f0271a61 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/account.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/account.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Account do @moduledoc """ Provides OpenAPI specification schemas for account-related API V2 endpoints. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/account/session.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/account/session.ex index bfc0872b6357..974bb81a1fb2 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/account/session.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/account/session.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Account.Session do @moduledoc """ This module defines the schema for the account session. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/account/user.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/account/user.ex index c7a914c0fa1d..edc2e0b02c3a 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/account/user.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/account/user.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Account.User do @moduledoc """ This module defines the schema for the user. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address.ex index 5056915b265b..81d8c6c3ed88 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Address.ChainTypeCustomizations do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address/counters.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address/counters.ex index 5c795ef3ba66..30d3eb1be57c 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address/counters.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address/counters.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Address.Counters do @moduledoc """ This module defines the schema for address counters. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address/response.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address/response.ex index fd3a147d0dc4..61179c58b5a9 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address/response.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address/response.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Address.Response.ChainTypeCustomizations do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address/tabs_counters.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address/tabs_counters.ex index d265c4e6f831..aef8224b8026 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address/tabs_counters.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address/tabs_counters.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Address.TabsCounters do @moduledoc """ This module defines the schema for the Address.TabsCounters struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address/token_balance.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address/token_balance.ex index 4aacf99ac4bc..f36d3b1fc13b 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address/token_balance.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address/token_balance.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Address.TokenBalance do @moduledoc """ This module defines the schema for the TokenBalance struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address_nullable.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address_nullable.ex index 46cefeb0f93f..406a70686008 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address_nullable.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/address_nullable.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.AddressNullable do @moduledoc """ This module defines the schema for nullable address struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/advanced_filter.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/advanced_filter.ex index 9fbc66e47021..b8955084f447 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/advanced_filter.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/advanced_filter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.AdvancedFilter do @moduledoc """ Schema for a single item returned by the `/api/v2/advanced-filters` endpoint. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/advanced_filter/method.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/advanced_filter/method.ex index 3711608d2a68..54cca53a200a 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/advanced_filter/method.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/advanced_filter/method.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.AdvancedFilter.Method do @moduledoc "Schema for a contract method (id + name pair) returned by the advanced filters methods endpoint." diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch.ex index f52d9213a742..473af454e340 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.Batch do @moduledoc """ Schema for a detailed Arbitrum batch response. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_anytrust.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_anytrust.ex index c490e0937202..08fa523e5b57 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_anytrust.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_anytrust.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.BatchByAnytrust do @moduledoc """ Arbitrum batch schema narrowed to AnyTrust data availability. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_celestia.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_celestia.ex index d9d67083085d..f0ecb2bda19a 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_celestia.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_celestia.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.BatchByCelestia do @moduledoc """ Arbitrum batch schema narrowed to Celestia data availability. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_eigenda.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_eigenda.ex index 5864fb6cfa7b..4210d096ff1e 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_eigenda.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_by_eigenda.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.BatchByEigenda do @moduledoc """ Arbitrum batch schema narrowed to EigenDA data availability. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_data_container.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_data_container.ex index dfbcafdd1ca6..a974c74082b3 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_data_container.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_data_container.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.BatchDataContainer do @moduledoc """ Data availability container type for Arbitrum batches. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_for_list.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_for_list.ex index 61677ec9c677..85be537b7ad4 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_for_list.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/batch_for_list.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.BatchForList do @moduledoc """ Schema for an Arbitrum batch item in list responses. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/claim_message.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/claim_message.ex index 167eb94a096a..a6b9cd3894ab 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/claim_message.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/claim_message.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.ClaimMessage do @moduledoc "Schema for Arbitrum claim message response." diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/commitment_transaction.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/commitment_transaction.ex index 22dfddcf2468..89f56b258394 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/commitment_transaction.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/commitment_transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.CommitmentTransaction do @moduledoc """ Parent chain transaction that committed a batch. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/anytrust.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/anytrust.ex index 26e96dae98d2..bba2c7f29495 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/anytrust.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/anytrust.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.DataAvailability.Anytrust do @moduledoc """ Data availability information for batches stored via AnyTrust committee. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/base.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/base.ex index b79ccf53f604..d13a70df6e90 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/base.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/base.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.DataAvailability.Base do @moduledoc """ Data availability information for batches using base container types diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/celestia.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/celestia.ex index 564235dd6aae..3098fd10953c 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/celestia.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/celestia.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.DataAvailability.Celestia do @moduledoc """ Data availability information for batches stored on Celestia. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/eigenda.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/eigenda.ex index ea27a9665e59..0d55d63ea2ed 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/eigenda.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/data_availability/eigenda.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.DataAvailability.Eigenda do @moduledoc """ Data availability information for batches stored via EigenDA. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/message.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/message.ex index 9cab44575a1f..362ad5106aa5 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/message.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/message.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.Message do @moduledoc """ Full Arbitrum cross-chain message schema. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/minimal_message.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/minimal_message.ex index 25bbd5a90688..ba6c469d4a72 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/minimal_message.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/minimal_message.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.MinimalMessage do @moduledoc """ Minimal Arbitrum cross-chain message schema with origination and completion fields only. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/withdrawal.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/withdrawal.ex index 3b929930211b..815da48af1d4 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/withdrawal.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/arbitrum/withdrawal.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Arbitrum.Withdrawal do @moduledoc "Schema for an Arbitrum Rollup withdrawal message (L2ToL1Tx event)." diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/beacon/deposit.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/beacon/deposit.ex index 74cf3cabf4f6..f43bcc2b266e 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/beacon/deposit.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/beacon/deposit.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Beacon.Deposit do @moduledoc """ This module defines the schema for the Beacon.Deposit struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/beacon/deposit/response.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/beacon/deposit/response.ex index 7a995f852f75..79329bf0a4c3 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/beacon/deposit/response.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/beacon/deposit/response.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Beacon.Deposit.Response do @moduledoc """ This module defines the schema for beacon deposit response from /api/v2/transactions/:transaction_hash_param/beacon/deposits. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/beacon/deposit/status.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/beacon/deposit/status.ex index 6e8b041d508a..fb291d10e028 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/beacon/deposit/status.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/beacon/deposit/status.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Beacon.Deposit.Status do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/blob.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/blob.ex index 438386e8878e..c38f4173def4 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/blob.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/blob.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Blob do @moduledoc "OpenAPI schema for Blob responses." diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/blob/response.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/blob/response.ex index 11401c582afb..669dcfde0277 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/blob/response.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/blob/response.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Blob.Response do @moduledoc """ This module defines the schema for blob response from /api/v2/transactions/:transaction_hash_param/blobs. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block.ex index 45e5de43a5d5..cc82b7b2790c 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Block.ChainTypeCustomizations do @moduledoc false alias BlockScoutWeb.API.V2.ZkSyncView diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block/countdown.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block/countdown.ex index 83639c6797a1..1a3b9478a186 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block/countdown.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block/countdown.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Block.Countdown do @moduledoc """ This module defines the schema for block countdown response from /api/v2/blocks/:block_number/countdown. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block/response.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block/response.ex index 1fc311afaf70..f4e6417aeb43 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block/response.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/block/response.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Block.Response do @moduledoc """ This module defines the schema for block response from /api/v2/blocks/:hash_or_number. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/celo/election_reward.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/celo/election_reward.ex index ea3b37e5c64c..e703d11efc4c 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/celo/election_reward.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/celo/election_reward.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Celo.ElectionReward do @moduledoc """ This module defines the schema for the CeloElectionReward struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/celo/election_reward/type.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/celo/election_reward/type.ex index 69b19cb5508d..dab4765ddbba 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/celo/election_reward/type.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/celo/election_reward/type.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Celo.ElectionReward.Type do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/celo/epoch.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/celo/epoch.ex index ec5e4dffb1a5..07722b1836d6 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/celo/epoch.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/celo/epoch.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Celo.Epoch do @moduledoc """ This module defines the schema for a Celo epoch list item. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/celo/epoch/detailed.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/celo/epoch/detailed.ex index a400678d80ab..35d89f1034f2 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/celo/epoch/detailed.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/celo/epoch/detailed.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Celo.Epoch.Detailed do @moduledoc """ This module defines the schema for detailed Celo epoch response. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/coin_balance.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/coin_balance.ex index 13e84f478b8e..d41bad309267 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/coin_balance.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/coin_balance.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.CoinBalance do @moduledoc """ This module defines the schema for the CoinBalance struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/coin_balance_by_day.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/coin_balance_by_day.ex index 867fa471af90..0b5eb8b7e946 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/coin_balance_by_day.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/coin_balance_by_day.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.CoinBalanceByDay do @moduledoc """ This module defines the schema for the CoinBalanceByDay struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/csv_export/response.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/csv_export/response.ex index d5c4d8cc0701..0750fbbeb84c 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/csv_export/response.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/csv_export/response.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.CSVExport.Response do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/error_responses.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/error_responses.ex index e11591f79f96..9e95a8fb7f50 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/error_responses.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/error_responses.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.ErrorResponses do @moduledoc """ This module contains the schemas for the error responses. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/fhe_operation.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/fhe_operation.ex index 8dbee7d3d500..d148cdd2b92d 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/fhe_operation.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/fhe_operation.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.FheOperation do @moduledoc """ This module defines the schema for the FHE Operation struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general.ex index 3e77fe783d59..a03b887c29e9 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General do @moduledoc """ This module defines the schema for general types used in the API. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/address_hash.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/address_hash.ex index 0d6a233da2b3..9121049f708d 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/address_hash.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/address_hash.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.AddressHash do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/address_hash_nullable.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/address_hash_nullable.ex index 341bae3a07a8..8d499f9d5cb6 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/address_hash_nullable.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/address_hash_nullable.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.AddressHashNullable do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/decoded_input.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/decoded_input.ex index 909740995500..f08fcc89b8b7 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/decoded_input.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/decoded_input.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.DecodedInput do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/decoded_log_input.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/decoded_log_input.ex index bdf3d9bb7f4b..3d80320d0abf 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/decoded_log_input.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/decoded_log_input.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.DecodedLogInput do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/empty_string.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/empty_string.ex index 9bdcd984748c..f6b10c12740d 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/empty_string.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/empty_string.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.EmptyString do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/float_string.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/float_string.ex index b4f934048422..2a9780f7e05e 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/float_string.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/float_string.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.FloatString do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/float_string_nullable.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/float_string_nullable.ex index 0d06eb26302a..1ffeddb8babc 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/float_string_nullable.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/float_string_nullable.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.FloatStringNullable do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/full_hash.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/full_hash.ex index b736f70110c3..8f0b7d13a045 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/full_hash.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/full_hash.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.FullHash do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/full_hash_nullable.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/full_hash_nullable.ex index d56dfa767e70..3e7f05ff19d9 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/full_hash_nullable.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/full_hash_nullable.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.FullHashNullable do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/hex_string.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/hex_string.ex index f9c5f92c7cfb..589f1e057b40 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/hex_string.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/hex_string.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.HexString do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/hex_string_nullable.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/hex_string_nullable.ex index 00f014c3fa7e..3cb6b0a0f21b 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/hex_string_nullable.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/hex_string_nullable.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.HexStringNullable do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/implementation.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/implementation.ex index 3283a3be9d6c..709dd6c7d7c8 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/implementation.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/implementation.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.Implementation do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/implementation/chain_type_customizations.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/implementation/chain_type_customizations.ex index 0d81dbda73af..27142ae3215e 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/implementation/chain_type_customizations.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/implementation/chain_type_customizations.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.Implementation.ChainTypeCustomizations do @moduledoc false import BlockScoutWeb.Schemas.API.V2.Address.ChainTypeCustomizations, only: [filecoin_robust_address_schema: 0] diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/integer_string.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/integer_string.ex index 7fc745512610..47afd2dce40e 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/integer_string.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/integer_string.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.IntegerString do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/integer_string_nullable.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/integer_string_nullable.ex index de6fdb30495f..4880c707af0c 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/integer_string_nullable.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/integer_string_nullable.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.IntegerStringNullable do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/integer_string_or_empty_or_null_literal.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/integer_string_or_empty_or_null_literal.ex index 7b535b11d077..0bc03b67b373 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/integer_string_or_empty_or_null_literal.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/integer_string_or_empty_or_null_literal.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.IntegerStringOrEmptyOrNullLiteral do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/method_name_nullable.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/method_name_nullable.ex index 9acecdd713f5..c40f32fba4fe 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/method_name_nullable.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/method_name_nullable.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.MethodNameNullable do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/null_string.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/null_string.ex index e55211bb033b..824a2a9bbcbf 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/null_string.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/null_string.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.NullString do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/proxy_type.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/proxy_type.ex index 4345a11bda74..7fa9c8f7f7fa 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/proxy_type.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/proxy_type.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.ProxyType do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/tag.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/tag.ex index 2e692d12ac86..44c27af13ec5 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/tag.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/tag.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.Tag do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/timestamp.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/timestamp.ex index 478218553352..5ca99bf91857 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/timestamp.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/timestamp.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.Timestamp do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/timestamp_nullable.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/timestamp_nullable.ex index 2d5969c3b852..789b381dcbff 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/timestamp_nullable.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/timestamp_nullable.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.TimestampNullable do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/url_nullable.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/url_nullable.ex index ab1a8ca2f645..148f6c5d0fde 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/url_nullable.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/url_nullable.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.URLNullable do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/watchlist_name.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/watchlist_name.ex index 53821e8dfca8..1488dc358969 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/watchlist_name.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/general/watchlist_name.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.General.WatchlistName do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/internal_transaction.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/internal_transaction.ex index 8b6e5f16cc36..d330b36c77fd 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/internal_transaction.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/internal_transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.InternalTransaction do @moduledoc """ This module defines the schema for the InternalTransaction struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/log.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/log.ex index 53e0ca1af5fb..a51d5a8c478b 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/log.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/log.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Log do @moduledoc """ This module defines the schema for the Log struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/record.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/record.ex index 7e3903f16282..99aec57da86d 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/record.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/record.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.MUD.Record do @moduledoc """ This module defines the schema for the MUD Record struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/system.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/system.ex index fab315e276e1..4f25d6311796 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/system.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/system.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.MUD.System do @moduledoc """ This module defines the schema for the MUD System struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/system_details.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/system_details.ex index c1fbb72a5ad5..877e5df31ba5 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/system_details.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/system_details.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.MUD.SystemDetails do @moduledoc """ This module defines the schema for the MUD SystemDetails struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/table.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/table.ex index df7451c47495..ba7195ffc6b3 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/table.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/table.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.MUD.Table do @moduledoc """ This module defines the schema for the MUD Table struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/table_schema.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/table_schema.ex index 3f4e3e864452..4761fb42743e 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/table_schema.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/table_schema.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.MUD.TableSchema do @moduledoc """ This module defines the schema for the MUD TableSchema struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/table_with_schema.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/table_with_schema.ex index 4148de82240f..701e3703377d 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/table_with_schema.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/table_with_schema.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.MUD.TableWithSchema do @moduledoc """ This module defines the schema for the MUD Table with TableSchema struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/world.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/world.ex index 88ce529c057c..9be1ce3c5970 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/world.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/mud/world.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.MUD.World do @moduledoc """ This module defines the schema for the MUD World struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/nft_collection.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/nft_collection.ex index fcf6848ce713..ae808fd06999 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/nft_collection.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/nft_collection.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.NFTCollection do @moduledoc """ This module defines the schema for the NFTCollection struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/batch.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/batch.ex index eb7bf386accf..a535a05338f7 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/batch.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/batch.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Optimism.Batch do @moduledoc """ This module defines the schema for the Optimism Batch struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/batch/detailed.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/batch/detailed.ex index d3baccaad696..fb63d718f8be 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/batch/detailed.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/batch/detailed.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Optimism.Batch.Detailed do @moduledoc """ This module defines the schema for batch response from /api/v2/optimism/batches/:number and diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/deposit.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/deposit.ex index 456adb4a2c5e..f93befbee16f 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/deposit.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/deposit.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Optimism.Deposit do @moduledoc """ This module defines the schema for the Optimism Deposit struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/deposit/main_page.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/deposit/main_page.ex index 6ee66aeed4bb..504592a56528 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/deposit/main_page.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/deposit/main_page.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Optimism.Deposit.MainPage do @moduledoc """ This module defines the schema for the Optimism Deposit struct for the main page. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/game.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/game.ex index 13aa84639ebf..2aa97fc3adf7 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/game.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/game.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Optimism.Game do @moduledoc """ This module defines the schema for the Optimism Dispute Game struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/output_root.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/output_root.ex index 7cd6d2087875..63d8b5f19c00 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/output_root.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/output_root.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Optimism.OutputRoot do @moduledoc """ This module defines the schema for the Optimism Output Root struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/withdrawal.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/withdrawal.ex index 73f6283dece5..6ba9cf2dbbbd 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/withdrawal.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/optimism/withdrawal.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Optimism.Withdrawal do @moduledoc """ This module defines the schema for the Optimism Withdrawal struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/account.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/account.ex index a5aa5ad400e9..8d06d1d96fc0 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/account.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/account.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Proxy.AccountAbstraction.Account do @moduledoc """ This module defines the schema for the Account struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/bundle.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/bundle.ex index c9f850bd7ef6..e7703f5b67d1 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/bundle.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/bundle.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Proxy.AccountAbstraction.Bundle do @moduledoc """ This module defines the schema for the Bundle struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/bundler.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/bundler.ex index 9963275a52ae..fbb782dcf2e3 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/bundler.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/bundler.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Proxy.AccountAbstraction.Bundler do @moduledoc """ This module defines the schema for the Bundler struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/factory.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/factory.ex index 4d81b927109f..3f0391f7033c 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/factory.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/factory.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Proxy.AccountAbstraction.Factory do @moduledoc """ This module defines the schema for the Factory struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/paymaster.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/paymaster.ex index 73db7994c9bc..92bfdf9d137a 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/paymaster.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/paymaster.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Proxy.AccountAbstraction.Paymaster do @moduledoc """ This module defines the schema for the Paymaster struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/status.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/status.ex index 63cb0e86e4e2..d8c3031532dc 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/status.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/status.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Proxy.AccountAbstraction.Status do @moduledoc """ This module defines the schema for the Status struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/user_operation.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/user_operation.ex index cea749a046b6..13847ecc7b0e 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/user_operation.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/user_operation.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Proxy.AccountAbstraction.UserOperation do @moduledoc """ This module defines the schema for the UserOperation struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/user_operation_in_list.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/user_operation_in_list.ex index 95a389541f6d..640ba8e3a4c5 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/user_operation_in_list.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/account_abstraction/user_operation_in_list.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Proxy.AccountAbstraction.UserOperationInList do @moduledoc """ This module defines the schema for the UserOperationInList struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/metadata.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/metadata.ex index f39e3c14e354..c7bc0f148901 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/metadata.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/metadata.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Proxy.Metadata do @moduledoc """ This module defines the schema for the Metadata struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/metadata_tag.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/metadata_tag.ex index 5b54df3359b2..172861074fcd 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/metadata_tag.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/proxy/metadata_tag.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Proxy.MetadataTag do @moduledoc """ This module defines the schema for the MetadataTag struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/scroll/batch.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/scroll/batch.ex index d24281499188..1593fe3f759b 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/scroll/batch.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/scroll/batch.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Scroll.Batch do @moduledoc """ This module defines the schema for the Scroll Batch struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/scroll/bridge.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/scroll/bridge.ex index 7a4b5cccb069..a2df8336ae5f 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/scroll/bridge.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/scroll/bridge.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Scroll.Bridge do @moduledoc """ This module defines the schema for the Scroll Bridge item struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/search/results.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/search/results.ex index ac6dd9dd93df..d3f93033cb6a 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/search/results.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/search/results.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Search.Results do @moduledoc """ This module defines the schema for search results response. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/signed_authorization.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/signed_authorization.ex index 2887be4d2f85..e690c4ee5b89 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/signed_authorization.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/signed_authorization.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.SignedAuthorization do @moduledoc """ This module defines the schema for the SignedAuthorization struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/smart_contract.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/smart_contract.ex index 8b4fd059fc1a..84d5da806d1f 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/smart_contract.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/smart_contract.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.SmartContract.ChainTypeCustomizations do @moduledoc false import BlockScoutWeb.Schemas.API.V2.Address.ChainTypeCustomizations, only: [filecoin_robust_address_schema: 0] diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/smart_contract/audit_report.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/smart_contract/audit_report.ex index 37872d6f9fb6..3e921f1daac9 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/smart_contract/audit_report.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/smart_contract/audit_report.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.SmartContract.AuditReport do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/smart_contract/counters.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/smart_contract/counters.ex index dc6fb493d69d..1efe6233dc70 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/smart_contract/counters.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/smart_contract/counters.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.SmartContract.Counters do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/smart_contract/language.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/smart_contract/language.ex index 1facce6274ac..697cd37b2df8 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/smart_contract/language.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/smart_contract/language.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.SmartContract.Language do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/stats/hot_smart_contract.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/stats/hot_smart_contract.ex index 499b0849efc8..c5b6df98a317 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/stats/hot_smart_contract.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/stats/hot_smart_contract.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Stats.HotContract do @moduledoc """ This module defines the schema for the HotContract struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/stats/response.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/stats/response.ex index d63201ad197f..be2bd076a4a5 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/stats/response.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/stats/response.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Stats.Response.ChainTypeCustomizations do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token.ex index cc9ee0d55c87..a3e990d8d785 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Token.ChainTypeCustomizations do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token/counters.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token/counters.ex index bd4a5328b485..beb1c8cae0f7 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token/counters.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token/counters.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Token.Counters do @moduledoc """ This module defines the schema for the response from /api/v2/tokens/:address_hash_param/counters. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token/holder.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token/holder.ex index 6bc961c7afda..f57320e1393b 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token/holder.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token/holder.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Token.Holder do @moduledoc """ This module defines the schema for a token holder response. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token/response.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token/response.ex index 8986acb28969..f300c4a5f240 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token/response.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token/response.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Token.Response do @moduledoc """ This module defines the schema for token response from /api/v2/tokens/:token_address_param. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token_instance.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token_instance.ex index 071d2f38b67c..d0ff860b03d3 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token_instance.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token_instance.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.TokenInstance do @moduledoc """ This module defines the schema for the TokenInstance struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token_instance_in_list.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token_instance_in_list.ex index ba78a22f1ce9..f03d436b7b74 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token_instance_in_list.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token_instance_in_list.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.TokenInstanceInList do @moduledoc """ This module defines the schema for the TokenInstanceInList struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token_transfer.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token_transfer.ex index 118f8c8578e9..b150575f2be7 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token_transfer.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/token_transfer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.TokenTransfer.TransactionHashCustomization do @moduledoc false use Utils.RuntimeEnvHelper, diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction.ex index a0fe80410926..dd1cbe1ff5e7 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Transaction.ChainTypeCustomizations do @moduledoc false alias BlockScoutWeb.API.V2.ZkSyncView diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/fee.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/fee.ex index 61b8b0f74f4d..a8ed5a8b02b9 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/fee.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/fee.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Transaction.Fee do @moduledoc """ This module defines the schema for the Transaction fee. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/raw_trace.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/raw_trace.ex index ec6f91626a09..d56725b4187a 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/raw_trace.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/raw_trace.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Transaction.RawTrace do @moduledoc """ This module defines the schema for a transaction raw trace API response. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/response.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/response.ex index a270b64b7132..7fcf4f0b8a49 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/response.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/response.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Transaction.Response.ChainTypeCustomizations do @moduledoc false require OpenApiSpex diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/state_change.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/state_change.ex index 294286713e03..e3385bb71b0f 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/state_change.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/state_change.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Transaction.StateChange do @moduledoc """ This module defines the schema for a transaction state change API response. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/summary.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/summary.ex index 29cc3d47303d..22c50e68a844 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/summary.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/summary.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Transaction.Summary do @moduledoc """ This module defines the schema for a transaction summary API response. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/summary_just_request_body.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/summary_just_request_body.ex index 61637071fe01..ccbf520583a2 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/summary_just_request_body.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/transaction/summary_just_request_body.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Transaction.SummaryJustRequestBody do @moduledoc """ OpenAPI schema for the transaction summary just request body response. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/withdrawal.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/withdrawal.ex index 2e9e4f4e0b6b..b2ef898500af 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/withdrawal.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/withdrawal.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Withdrawal do @moduledoc """ This module defines the schema for the Withdrawal struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/withdrawal/counter.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/withdrawal/counter.ex index a637e8be80c4..eca66a8109dc 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/withdrawal/counter.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/withdrawal/counter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Withdrawal.Counter do @moduledoc """ This module defines the schema for the Withdrawal counters struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/zilliqa/staker.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/zilliqa/staker.ex index fb853d770737..0f4ef2e2b8b2 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/zilliqa/staker.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/zilliqa/staker.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Zilliqa.Staker do @moduledoc """ This module defines the schema for the Zilliqa Staker struct. diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/zilliqa/staker/detailed.ex b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/zilliqa/staker/detailed.ex index 2875b5e6a6d5..02b88bda0423 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/zilliqa/staker/detailed.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/api/v2/zilliqa/staker/detailed.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.API.V2.Zilliqa.Staker.Detailed do @moduledoc """ This module defines the schema for Zilliqa validator info response from /api/v2/validators/zilliqa/:bls_public_key diff --git a/apps/block_scout_web/lib/block_scout_web/schemas/helper.ex b/apps/block_scout_web/lib/block_scout_web/schemas/helper.ex index 2c6082a2ac1d..37b26f08152c 100644 --- a/apps/block_scout_web/lib/block_scout_web/schemas/helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/schemas/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schemas.Helper do @moduledoc false diff --git a/apps/block_scout_web/lib/block_scout_web/social_media.ex b/apps/block_scout_web/lib/block_scout_web/social_media.ex index ba0f760f05aa..ac40f8b2a7b9 100644 --- a/apps/block_scout_web/lib/block_scout_web/social_media.ex +++ b/apps/block_scout_web/lib/block_scout_web/social_media.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.SocialMedia do @moduledoc """ This module provides social media links diff --git a/apps/block_scout_web/lib/block_scout_web/specs.ex b/apps/block_scout_web/lib/block_scout_web/specs.ex index af25c3a9c288..e7f09f567a2e 100644 --- a/apps/block_scout_web/lib/block_scout_web/specs.ex +++ b/apps/block_scout_web/lib/block_scout_web/specs.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Specs do @moduledoc """ Provides utility functions for working with Phoenix router routes in API specification modules. diff --git a/apps/block_scout_web/lib/block_scout_web/specs/private.ex b/apps/block_scout_web/lib/block_scout_web/specs/private.ex index 376ffb48fb01..d34e073e0e02 100644 --- a/apps/block_scout_web/lib/block_scout_web/specs/private.ex +++ b/apps/block_scout_web/lib/block_scout_web/specs/private.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Specs.Private do @moduledoc """ This module defines the private API specification for the BlockScoutWeb application. diff --git a/apps/block_scout_web/lib/block_scout_web/specs/public.ex b/apps/block_scout_web/lib/block_scout_web/specs/public.ex index 402dfb227cc1..e9941b2397c0 100644 --- a/apps/block_scout_web/lib/block_scout_web/specs/public.ex +++ b/apps/block_scout_web/lib/block_scout_web/specs/public.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Specs.Public do @moduledoc """ This module defines the public API specification for the BlockScoutWeb application. diff --git a/apps/block_scout_web/lib/block_scout_web/tracer.ex b/apps/block_scout_web/lib/block_scout_web/tracer.ex index 6bca34d5645a..f801b4442333 100644 --- a/apps/block_scout_web/lib/block_scout_web/tracer.ex +++ b/apps/block_scout_web/lib/block_scout_web/tracer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tracer do @moduledoc false diff --git a/apps/block_scout_web/lib/block_scout_web/utility/event_handlers_metrics.ex b/apps/block_scout_web/lib/block_scout_web/utility/event_handlers_metrics.ex index 12742727766c..318511481973 100644 --- a/apps/block_scout_web/lib/block_scout_web/utility/event_handlers_metrics.ex +++ b/apps/block_scout_web/lib/block_scout_web/utility/event_handlers_metrics.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Utility.EventHandlersMetrics do @moduledoc """ Module responsible for periodically setting current event handlers queue length metrics. diff --git a/apps/block_scout_web/lib/block_scout_web/utility/rate_limit_config_helper.ex b/apps/block_scout_web/lib/block_scout_web/utility/rate_limit_config_helper.ex index 32a77553ec3d..612346f8cb3e 100644 --- a/apps/block_scout_web/lib/block_scout_web/utility/rate_limit_config_helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/utility/rate_limit_config_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Utility.RateLimitConfigHelper do @moduledoc """ Fetches the rate limit config from the config url and parses it into a map. diff --git a/apps/block_scout_web/lib/block_scout_web/views/abi_encoded_value_view.ex b/apps/block_scout_web/lib/block_scout_web/views/abi_encoded_value_view.ex index 5cb142e1bd7f..2b152b789cc2 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/abi_encoded_value_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/abi_encoded_value_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ABIEncodedValueView do @moduledoc """ Renders a decoded value that is encoded according to an ABI. diff --git a/apps/block_scout_web/lib/block_scout_web/views/access_helper.ex b/apps/block_scout_web/lib/block_scout_web/views/access_helper.ex index 7485e294fbd9..aa1efd48cac4 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/access_helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/access_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AccessHelper do @moduledoc """ Helper to restrict access to some pages filtering by address diff --git a/apps/block_scout_web/lib/block_scout_web/views/account/api/v2/account_view.ex b/apps/block_scout_web/lib/block_scout_web/views/account/api/v2/account_view.ex index 3a41871dc0c2..abfa84194ff7 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/account/api/v2/account_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/account/api/v2/account_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.API.V2.AccountView do def render("message.json", %{message: message}) do %{ diff --git a/apps/block_scout_web/lib/block_scout_web/views/account/api/v2/tags_view.ex b/apps/block_scout_web/lib/block_scout_web/views/account/api/v2/tags_view.ex index 50403cf0f2f1..7bf19c534586 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/account/api/v2/tags_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/account/api/v2/tags_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.API.V2.TagsView do def render("address_tags.json", %{tags_map: tags_map}) do tags_map diff --git a/apps/block_scout_web/lib/block_scout_web/views/account/api/v2/user_view.ex b/apps/block_scout_web/lib/block_scout_web/views/account/api/v2/user_view.ex index 924090fc4466..0ef611e036df 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/account/api/v2/user_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/account/api/v2/user_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.API.V2.UserView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/account/api_key_view.ex b/apps/block_scout_web/lib/block_scout_web/views/account/api_key_view.ex index a0b21b79da2d..5f13c99ac1e6 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/account/api_key_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/account/api_key_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.ApiKeyView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/account/auth_view.ex b/apps/block_scout_web/lib/block_scout_web/views/account/auth_view.ex index cfbeb001e0fb..b73d0b8d9d55 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/account/auth_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/account/auth_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.AuthView do use BlockScoutWeb, :view end diff --git a/apps/block_scout_web/lib/block_scout_web/views/account/common_view.ex b/apps/block_scout_web/lib/block_scout_web/views/account/common_view.ex index e296ca90d696..1cf4237bf319 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/account/common_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/account/common_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.CommonView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/account/custom_abi_view.ex b/apps/block_scout_web/lib/block_scout_web/views/account/custom_abi_view.ex index 3b38effa417b..5388692e12b0 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/account/custom_abi_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/account/custom_abi_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.CustomABIView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/account/tag_address_view.ex b/apps/block_scout_web/lib/block_scout_web/views/account/tag_address_view.ex index 74886c33e9e5..499d134c0303 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/account/tag_address_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/account/tag_address_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.TagAddressView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/account/tag_transaction_view.ex b/apps/block_scout_web/lib/block_scout_web/views/account/tag_transaction_view.ex index 7edfa1e3403e..422b4ce913ae 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/account/tag_transaction_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/account/tag_transaction_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.TagTransactionView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/account/watchlist_address_view.ex b/apps/block_scout_web/lib/block_scout_web/views/account/watchlist_address_view.ex index 29246e3a1556..79b2ede1f4ab 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/account/watchlist_address_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/account/watchlist_address_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.WatchlistAddressView do use BlockScoutWeb, :view import BlockScoutWeb.AddressView, only: [trimmed_hash: 1] diff --git a/apps/block_scout_web/lib/block_scout_web/views/account/watchlist_view.ex b/apps/block_scout_web/lib/block_scout_web/views/account/watchlist_view.ex index b30802d118dc..6ce08801e55f 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/account/watchlist_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/account/watchlist_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.WatchlistView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_coin_balance_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_coin_balance_view.ex index 6e0363dab30c..d607d764fa1e 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_coin_balance_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_coin_balance_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressCoinBalanceView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_common_fields_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_common_fields_view.ex index 933980752dfb..0066790cce2e 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_common_fields_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_common_fields_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractVerificationCommonFieldsView do use BlockScoutWeb, :view end diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_via_flattened_code_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_via_flattened_code_view.ex index e5adf9b9d4ae..ad9d63227f89 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_via_flattened_code_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_via_flattened_code_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractVerificationViaFlattenedCodeView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_via_json_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_via_json_view.ex index 79f8681233d3..69d788ea2c48 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_via_json_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_via_json_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractVerificationViaJsonView do use BlockScoutWeb, :view end diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_via_multi_part_files_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_via_multi_part_files_view.ex index 76f88f059ac0..d6f21da31d40 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_via_multi_part_files_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_via_multi_part_files_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractVerificationViaMultiPartFilesView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_via_standard_json_input_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_via_standard_json_input_view.ex index 9a4298a01c4b..7f4fd7f0cfa2 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_via_standard_json_input_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_via_standard_json_input_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractVerificationViaStandardJsonInputView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_view.ex index 385d76c1c12e..2ca8889b2014 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractVerificationView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_vyper_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_vyper_view.ex index 47da5eab9093..b37b9a47101d 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_vyper_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_contract_verification_vyper_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractVerificationVyperView do use BlockScoutWeb, :view 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 d3bb724bf960..eb1a095d5d2f 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 @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractView do use BlockScoutWeb, :view use Phoenix.LiveView diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_internal_transaction_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_internal_transaction_view.ex index 81cb6ca558b1..4b0f198404b9 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_internal_transaction_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_internal_transaction_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressInternalTransactionView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_logs_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_logs_view.ex index e1a4862fe21a..4ace8db298b9 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_logs_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_logs_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressLogsView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_read_contract_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_read_contract_view.ex index e13b14768e9b..a55776dcf062 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_read_contract_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_read_contract_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressReadContractView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_read_proxy_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_read_proxy_view.ex index 447f362c3c5e..a9e535a164d7 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_read_proxy_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_read_proxy_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressReadProxyView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_token_balance_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_token_balance_view.ex index 46f0e6a6c759..bfd5038dd2d1 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_token_balance_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_token_balance_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressTokenBalanceView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_token_transfer_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_token_transfer_view.ex index c053e54af567..8a743bacf35b 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_token_transfer_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_token_transfer_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressTokenTransferView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_token_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_token_view.ex index 941cfe292497..2552d3899606 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_token_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_token_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressTokenView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_transaction_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_transaction_view.ex index b6539a49a2db..3f35d2c43fc9 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_transaction_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_transaction_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressTransactionView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_validation_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_validation_view.ex index 1625fb33cdfd..94d3cc851199 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_validation_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_validation_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressValidationView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_view.ex index 247d339e07e8..8f1e916ef707 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_withdrawal_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_withdrawal_view.ex index 80572ba12789..bf9e08dba961 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_withdrawal_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_withdrawal_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressWithdrawalView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_write_contract_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_write_contract_view.ex index dc8d88ce5cc3..40c8d2479002 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_write_contract_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_write_contract_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressWriteContractView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/address_write_proxy_view.ex b/apps/block_scout_web/lib/block_scout_web/views/address_write_proxy_view.ex index b27e5df50319..2971a6f38fa8 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/address_write_proxy_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/address_write_proxy_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressWriteProxyView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/admin/dashboard_view.ex b/apps/block_scout_web/lib/block_scout_web/views/admin/dashboard_view.ex index 536ef373a23c..f7f59afbf795 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/admin/dashboard_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/admin/dashboard_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Admin.DashboardView do use BlockScoutWeb, :view end diff --git a/apps/block_scout_web/lib/block_scout_web/views/admin/session_view.ex b/apps/block_scout_web/lib/block_scout_web/views/admin/session_view.ex index 0c0080118f68..d3176aa79016 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/admin/session_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/admin/session_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Admin.SessionView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/admin/setup_view.ex b/apps/block_scout_web/lib/block_scout_web/views/admin/setup_view.ex index ab2df94f5f54..3b737fb05eda 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/admin/setup_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/admin/setup_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Admin.SetupView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/advertisement/banners_ad_view.ex b/apps/block_scout_web/lib/block_scout_web/views/advertisement/banners_ad_view.ex index 47f461ff0eaa..41df4c9c80d4 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/advertisement/banners_ad_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/advertisement/banners_ad_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Advertisement.BannersAdView do use BlockScoutWeb, :view end diff --git a/apps/block_scout_web/lib/block_scout_web/views/advertisement/text_ad_view.ex b/apps/block_scout_web/lib/block_scout_web/views/advertisement/text_ad_view.ex index 8d73eb3d291e..0bc4e48c0757 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/advertisement/text_ad_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/advertisement/text_ad_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Advertisement.TextAdView do use BlockScoutWeb, :view end diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/eth_rpc/view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/eth_rpc/view.ex index 0e22ee5ba630..ca8757f2b924 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/eth_rpc/view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/eth_rpc/view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.EthRPC.View do @moduledoc """ Views for /eth-rpc API endpoints diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/legacy/block_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/legacy/block_view.ex index 91b6820fee3d..4be78d8953fb 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/legacy/block_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/legacy/block_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.Legacy.BlockView do @moduledoc false diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/legacy/logs_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/legacy/logs_view.ex index caa59cbd50d1..bd0141a642bc 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/legacy/logs_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/legacy/logs_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.Legacy.LogsView do @moduledoc false defdelegate render(template, assigns), to: BlockScoutWeb.API.RPC.LogsView diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/address_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/address_view.ex index d37152012971..bf97405552ec 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/address_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/address_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.AddressView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/block_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/block_view.ex index b8c40b2359cb..82be719bb9fb 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/block_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/block_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.BlockView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/celo_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/celo_view.ex index 9b3bc9cebcd3..98811d3b8772 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/celo_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/celo_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.CeloView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/contract_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/contract_view.ex index 57326a58972a..9fb8db287f2d 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/contract_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/contract_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.ContractView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/logs_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/logs_view.ex index e5bbe190efee..98d13f9c3c65 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/logs_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/logs_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.LogsView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/rpc_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/rpc_view.ex index fc5a7ac2caeb..30cfc693f4d4 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/rpc_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/rpc_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.RPCView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/stats_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/stats_view.ex index 75d98063a79c..41851279c023 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/stats_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/stats_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.StatsView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/token_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/token_view.ex index f2c8de82dd6b..4e10cc43812f 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/token_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/token_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.TokenView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/transaction_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/transaction_view.ex index 3ddaed62b8b6..b2b99387cdad 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/rpc/transaction_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/rpc/transaction_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.TransactionView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v1/supply_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v1/supply_view.ex index df76632e2776..4600f8a21e44 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v1/supply_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v1/supply_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V1.SupplyView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/address_badge_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/address_badge_view.ex index 0d98e0e8c275..5858894a33c9 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/address_badge_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/address_badge_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.AddressBadgeView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/address_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/address_view.ex index aa92a47938dc..8f62977ef208 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/address_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/address_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.AddressView do use BlockScoutWeb, :view use Utils.CompileTimeEnvHelper, chain_identity: [:explorer, :chain_identity] diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/advanced_filter_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/advanced_filter_view.ex index 9040a3ce6c86..35ef4658c8b5 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/advanced_filter_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/advanced_filter_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.AdvancedFilterView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/api_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/api_view.ex index aed711a8beef..288890e4ab75 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/api_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/api_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ApiView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/arbitrum_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/arbitrum_view.ex index c49d5c39b6d4..2eeafce33d70 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/arbitrum_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/arbitrum_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ArbitrumView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/blob_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/blob_view.ex index fcb792ac095e..ddea3a0b4934 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/blob_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/blob_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.BlobView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/block_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/block_view.ex index b2e79ecead19..8d5b13d8edcf 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/block_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/block_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.BlockView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/celo_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/celo_view.ex index 893f8ffc98c8..bdebdb5d968f 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/celo_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/celo_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.CeloView do @moduledoc """ View functions for rendering Celo-related data in JSON format. diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/config_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/config_view.ex index 3e744ccd4ddd..8bcac1e4534d 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/config_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/config_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ConfigView do def render("backend_version.json", %{version: version}) do %{ diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/csv_export_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/csv_export_view.ex index 069a7f07a627..43643d65e0b6 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/csv_export_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/csv_export_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.CsvExportView do @moduledoc """ View for CSV export API endpoints. diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/ethereum/deposit_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/ethereum/deposit_view.ex index 92495c340f7d..267a99343a62 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/ethereum/deposit_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/ethereum/deposit_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.Ethereum.DepositView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/ethereum_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/ethereum_view.ex index 5ed6506cdcd5..23aa47a6320b 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/ethereum_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/ethereum_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.EthereumView do alias Explorer.Chain.{Block, Transaction} diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/filecoin_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/filecoin_view.ex index 7af8f8d25ad5..2481545b3b35 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/filecoin_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/filecoin_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.FilecoinView do @moduledoc """ View functions for rendering Filecoin-related data in JSON format. diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/helper.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/helper.ex index 8db225233e38..767fe06a4ee4 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.Helper do @moduledoc """ API V2 helper diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/internal_transaction_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/internal_transaction_view.ex index b882d96dcf31..676fcb2a5490 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/internal_transaction_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/internal_transaction_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.InternalTransactionView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/mud_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/mud_view.ex index b92f1f063fe0..0c4dbd7dd934 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/mud_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/mud_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.MudView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/optimism_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/optimism_view.ex index a6a3d2cce268..6faebc9b2798 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/optimism_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/optimism_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.OptimismView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/proxy/metadata_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/proxy/metadata_view.ex index b8de924ade76..df442722ecb5 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/proxy/metadata_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/proxy/metadata_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.Proxy.MetadataView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/rootstock_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/rootstock_view.ex index 06d4d8e68f21..bf5e8e108a4f 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/rootstock_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/rootstock_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.RootstockView do alias Explorer.Chain.Block diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/scroll_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/scroll_view.ex index ed3c1fa99f35..0941bdc4b17f 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/scroll_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/scroll_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ScrollView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/search_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/search_view.ex index 826450e73551..5d1d09a2549a 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/search_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/search_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.SearchView do use BlockScoutWeb, :view use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/shibarium_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/shibarium_view.ex index de9101961f8a..cbbfe81408b6 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/shibarium_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/shibarium_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ShibariumView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/smart_contract_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/smart_contract_view.ex index 9c821c69024b..b77459a2af3d 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/smart_contract_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/smart_contract_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.SmartContractView do use BlockScoutWeb, :view use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/stability_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/stability_view.ex index c5f2589f8279..386f0853c835 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/stability_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/stability_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.StabilityView do alias BlockScoutWeb.API.V2.{Helper, TokenView} alias Explorer.Chain.{Address.Reputation, Log, Token, Transaction} diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/stats_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/stats_view.ex index 8ae98389b2e8..1b6d8c9013d3 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/stats_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/stats_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.StatsView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/suave_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/suave_view.ex index 88b55ea2d440..0db167583cf4 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/suave_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/suave_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.SuaveView do alias BlockScoutWeb.API.V2.Helper, as: APIHelper alias BlockScoutWeb.API.V2.TransactionView diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/token_transfer_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/token_transfer_view.ex index 50b439f595d2..250d08f6be8b 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/token_transfer_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/token_transfer_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.TokenTransferView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/token_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/token_view.ex index 0af766511a29..2b093d72ffac 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/token_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/token_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.TokenView do use BlockScoutWeb, :view use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/transaction_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/transaction_view.ex index 5f23271f6f2b..1fca46ba67d8 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/transaction_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/transaction_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.TransactionView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/validator_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/validator_view.ex index 10813623399c..24d4b532864e 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/validator_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/validator_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ValidatorView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/withdrawal_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/withdrawal_view.ex index 252a36f784e8..1c014d062239 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/withdrawal_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/withdrawal_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.WithdrawalView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/zilliqa_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/zilliqa_view.ex index 69c54925594e..061a6cf3de4c 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/zilliqa_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/zilliqa_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ZilliqaView do @moduledoc """ View functions for rendering Zilliqa-related data in JSON format. diff --git a/apps/block_scout_web/lib/block_scout_web/views/api/v2/zksync_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api/v2/zksync_view.ex index ff76194930d5..d161fd844091 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api/v2/zksync_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api/v2/zksync_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ZkSyncView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/api_docs_view.ex b/apps/block_scout_web/lib/block_scout_web/views/api_docs_view.ex index 77a1b36824aa..540ef5deff77 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/api_docs_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/api_docs_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.APIDocsView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/block_transaction_view.ex b/apps/block_scout_web/lib/block_scout_web/views/block_transaction_view.ex index 28747a57aad3..c4e0e4643fcf 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/block_transaction_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/block_transaction_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.BlockTransactionView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/block_view.ex b/apps/block_scout_web/lib/block_scout_web/views/block_view.ex index e2ca31b82dd3..5d3c3f85e74f 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/block_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/block_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.BlockView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/block_withdrawal_view.ex b/apps/block_scout_web/lib/block_scout_web/views/block_withdrawal_view.ex index f6b22b30f7a7..177f0aa1180f 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/block_withdrawal_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/block_withdrawal_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.BlockWithdrawalView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/bridged_tokens_view.ex b/apps/block_scout_web/lib/block_scout_web/views/bridged_tokens_view.ex index 3cf7e32512c7..05baabbfb7f2 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/bridged_tokens_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/bridged_tokens_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.BridgedTokensView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/chain_view.ex b/apps/block_scout_web/lib/block_scout_web/views/chain_view.ex index bbbcdebe866e..5ab8f85788a7 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/chain_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/chain_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ChainView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/cldr_helper/number.ex b/apps/block_scout_web/lib/block_scout_web/views/cldr_helper/number.ex index 0d1c0e1e139f..65efefaf9b55 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/cldr_helper/number.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/cldr_helper/number.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.CldrHelper.Number do @moduledoc """ Work-arounds for `Cldr.Number` bugs diff --git a/apps/block_scout_web/lib/block_scout_web/views/common_components_view.ex b/apps/block_scout_web/lib/block_scout_web/views/common_components_view.ex index f950e795a298..d1fc03328519 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/common_components_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/common_components_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.CommonComponentsView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/csv_export.ex b/apps/block_scout_web/lib/block_scout_web/views/csv_export.ex index 95515843f897..4eec86ec512a 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/csv_export.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/csv_export.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.CsvExportView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/currency_helper.ex b/apps/block_scout_web/lib/block_scout_web/views/currency_helper.ex index 7dc513fcdc83..7c070e1de3a1 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/currency_helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/currency_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.CurrencyHelper do @moduledoc """ Helper functions for interacting with `t:BlockScoutWeb.ExchangeRates.USD.t/0` values. diff --git a/apps/block_scout_web/lib/block_scout_web/views/error_422.ex b/apps/block_scout_web/lib/block_scout_web/views/error_422.ex index b813dc9383ae..cb3af4a19cfb 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/error_422.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/error_422.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Error422View do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/error_helper.ex b/apps/block_scout_web/lib/block_scout_web/views/error_helper.ex index da4f3a455502..dfcb631d7ff0 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/error_helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/error_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ErrorHelper do @moduledoc """ Conveniences for translating and building error messages. diff --git a/apps/block_scout_web/lib/block_scout_web/views/error_view.ex b/apps/block_scout_web/lib/block_scout_web/views/error_view.ex index d800b719b3b2..7d77cb5de535 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/error_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/error_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ErrorView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/form_view.ex b/apps/block_scout_web/lib/block_scout_web/views/form_view.ex index 369fc47b48d1..13d8a7203748 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/form_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/form_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.FormView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/icons_view.ex b/apps/block_scout_web/lib/block_scout_web/views/icons_view.ex index 40c5ee3a1d98..f84c862a27b9 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/icons_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/icons_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.IconsView do use BlockScoutWeb, :view end diff --git a/apps/block_scout_web/lib/block_scout_web/views/internal_server_error_view.ex b/apps/block_scout_web/lib/block_scout_web/views/internal_server_error_view.ex index 837ecb3367e0..b00f0a049492 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/internal_server_error_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/internal_server_error_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.InternalServerErrorView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/internal_transaction_view.ex b/apps/block_scout_web/lib/block_scout_web/views/internal_transaction_view.ex index 024f6f2a60cb..03b148ac125e 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/internal_transaction_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/internal_transaction_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.InternalTransactionView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/layout_view.ex b/apps/block_scout_web/lib/block_scout_web/views/layout_view.ex index 46977c4e1f51..c9470ae5d4f4 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/layout_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/layout_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.LayoutView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/log_view.ex b/apps/block_scout_web/lib/block_scout_web/views/log_view.ex index fe12ba9cce04..b5e1827a9735 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/log_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/log_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.LogView do use BlockScoutWeb, :view end diff --git a/apps/block_scout_web/lib/block_scout_web/views/nft_helper.ex b/apps/block_scout_web/lib/block_scout_web/views/nft_helper.ex index 0af607d38c6a..d19df7d939b9 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/nft_helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/nft_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.NFTHelper do @moduledoc """ Module with functions for NFT view diff --git a/apps/block_scout_web/lib/block_scout_web/views/page_not_found.ex b/apps/block_scout_web/lib/block_scout_web/views/page_not_found.ex index b5a18f0434d7..aae83b2804ca 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/page_not_found.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/page_not_found.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.PageNotFoundView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/pending_transaction_view.ex b/apps/block_scout_web/lib/block_scout_web/views/pending_transaction_view.ex index 12ba2fe742ee..a69579127829 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/pending_transaction_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/pending_transaction_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.PendingTransactionView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/render_helper.ex b/apps/block_scout_web/lib/block_scout_web/views/render_helper.ex index b367dc7d6538..cdca3600c19d 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/render_helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/render_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.RenderHelper do @moduledoc """ Helper functions to render partials from view modules diff --git a/apps/block_scout_web/lib/block_scout_web/views/robots_view.ex b/apps/block_scout_web/lib/block_scout_web/views/robots_view.ex index 628ed672e019..415691f1d2dd 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/robots_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/robots_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.RobotsView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/script_helper.ex b/apps/block_scout_web/lib/block_scout_web/views/script_helper.ex index 4293338abb9c..3a792dfda753 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/script_helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/script_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Views.ScriptHelper do @moduledoc """ Helper for rendering view specific script tags. diff --git a/apps/block_scout_web/lib/block_scout_web/views/search_view.ex b/apps/block_scout_web/lib/block_scout_web/views/search_view.ex index 51bf1b856dea..24739005d98e 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/search_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/search_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.SearchView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/smart_contract_view.ex b/apps/block_scout_web/lib/block_scout_web/views/smart_contract_view.ex index 0c099c86766d..c2f4d4318724 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/smart_contract_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/smart_contract_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.SmartContractView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/tab_helper.ex b/apps/block_scout_web/lib/block_scout_web/views/tab_helper.ex index 8e2ec70997b2..bab7481e9676 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/tab_helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/tab_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TabHelper do @moduledoc """ Helper functions for dealing with tabs, which are very common between pages. diff --git a/apps/block_scout_web/lib/block_scout_web/views/tokens/contract_view.ex b/apps/block_scout_web/lib/block_scout_web/views/tokens/contract_view.ex index 0b90df1ba981..cbca931001af 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/tokens/contract_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/tokens/contract_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.ContractView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/tokens/helper.ex b/apps/block_scout_web/lib/block_scout_web/views/tokens/helper.ex index 2e0663a3ea54..58d5d260b472 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/tokens/helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/tokens/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.Helper do @moduledoc """ Helper functions for interacting with `t:BlockScoutWeb.Chain.Token` attributes. diff --git a/apps/block_scout_web/lib/block_scout_web/views/tokens/holder_view.ex b/apps/block_scout_web/lib/block_scout_web/views/tokens/holder_view.ex index 791d2fd2a43c..cd49ff8c9ae9 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/tokens/holder_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/tokens/holder_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.HolderView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/tokens/instance/holder_view.ex b/apps/block_scout_web/lib/block_scout_web/views/tokens/instance/holder_view.ex index 38cf207bc435..6833c3a463ff 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/tokens/instance/holder_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/tokens/instance/holder_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.Instance.HolderView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/tokens/instance/metadata_view.ex b/apps/block_scout_web/lib/block_scout_web/views/tokens/instance/metadata_view.ex index 758e6a3bd276..142e1ececca3 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/tokens/instance/metadata_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/tokens/instance/metadata_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.Instance.MetadataView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/tokens/instance/overview_view.ex b/apps/block_scout_web/lib/block_scout_web/views/tokens/instance/overview_view.ex index 717353e05c68..2bea7a3dfe94 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/tokens/instance/overview_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/tokens/instance/overview_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.Instance.OverviewView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/tokens/instance/transfer_view.ex b/apps/block_scout_web/lib/block_scout_web/views/tokens/instance/transfer_view.ex index 2cf314efa170..b60c45bd46e4 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/tokens/instance/transfer_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/tokens/instance/transfer_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.Instance.TransferView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/tokens/instance_view.ex b/apps/block_scout_web/lib/block_scout_web/views/tokens/instance_view.ex index c18c5b5e1f5e..05c7c4fc9949 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/tokens/instance_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/tokens/instance_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.InstanceView do use BlockScoutWeb, :view end diff --git a/apps/block_scout_web/lib/block_scout_web/views/tokens/inventory_view.ex b/apps/block_scout_web/lib/block_scout_web/views/tokens/inventory_view.ex index 547d6dd33a31..eb68ea82b466 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/tokens/inventory_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/tokens/inventory_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.InventoryView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/tokens/overview_view.ex b/apps/block_scout_web/lib/block_scout_web/views/tokens/overview_view.ex index d9dbe6e265de..104797f47992 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/tokens/overview_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/tokens/overview_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.OverviewView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/tokens/transfer_view.ex b/apps/block_scout_web/lib/block_scout_web/views/tokens/transfer_view.ex index 3ea5d8484010..e8e177df86d9 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/tokens/transfer_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/tokens/transfer_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.TransferView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/tokens_view.ex b/apps/block_scout_web/lib/block_scout_web/views/tokens_view.ex index 704d7a94f731..d529ea918029 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/tokens_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/tokens_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TokensView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/transaction_internal_transaction_view.ex b/apps/block_scout_web/lib/block_scout_web/views/transaction_internal_transaction_view.ex index 74ff6042cce7..64e67c1e0e30 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/transaction_internal_transaction_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/transaction_internal_transaction_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionInternalTransactionView do use BlockScoutWeb, :view @dialyzer :no_match diff --git a/apps/block_scout_web/lib/block_scout_web/views/transaction_log_view.ex b/apps/block_scout_web/lib/block_scout_web/views/transaction_log_view.ex index 1a7357a82e9a..59b977d2f8fb 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/transaction_log_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/transaction_log_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionLogView do use BlockScoutWeb, :view @dialyzer :no_match diff --git a/apps/block_scout_web/lib/block_scout_web/views/transaction_raw_trace_view.ex b/apps/block_scout_web/lib/block_scout_web/views/transaction_raw_trace_view.ex index 09fd46168b29..46944d75304b 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/transaction_raw_trace_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/transaction_raw_trace_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionRawTraceView do use BlockScoutWeb, :view @dialyzer :no_match diff --git a/apps/block_scout_web/lib/block_scout_web/views/transaction_state_view.ex b/apps/block_scout_web/lib/block_scout_web/views/transaction_state_view.ex index 88fc2098312b..2c6db6e6d91d 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/transaction_state_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/transaction_state_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionStateView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/transaction_token_transfer_view.ex b/apps/block_scout_web/lib/block_scout_web/views/transaction_token_transfer_view.ex index 3e31c0f2c351..b58cc38a99d0 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/transaction_token_transfer_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/transaction_token_transfer_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionTokenTransferView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/transaction_view.ex b/apps/block_scout_web/lib/block_scout_web/views/transaction_view.ex index dc4788cfa1d0..158186b8f003 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/transaction_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/transaction_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/verified_contracts_view.ex b/apps/block_scout_web/lib/block_scout_web/views/verified_contracts_view.ex index 50934a2afe05..b414fec4b910 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/verified_contracts_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/verified_contracts_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.VerifiedContractsView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/block_scout_web/views/visualize_sol2uml_view.ex b/apps/block_scout_web/lib/block_scout_web/views/visualize_sol2uml_view.ex index 827deeeecdec..c729a3dd10c2 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/visualize_sol2uml_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/visualize_sol2uml_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.VisualizeSol2umlView do use BlockScoutWeb, :view end diff --git a/apps/block_scout_web/lib/block_scout_web/views/wei_helper.ex b/apps/block_scout_web/lib/block_scout_web/views/wei_helper.ex index 188303e0c9eb..6a61cf53b40a 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/wei_helper.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/wei_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.WeiHelper do @moduledoc """ Helper functions for interacting with `t:Explorer.Chain.Wei.t/0` values. diff --git a/apps/block_scout_web/lib/block_scout_web/views/withdrawal_view.ex b/apps/block_scout_web/lib/block_scout_web/views/withdrawal_view.ex index 296304d622ab..63abf8c9dbe1 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/withdrawal_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/withdrawal_view.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.WithdrawalView do use BlockScoutWeb, :view diff --git a/apps/block_scout_web/lib/phoenix/html/safe.ex b/apps/block_scout_web/lib/phoenix/html/safe.ex index cddc3d5e1eca..cf26cc2004c8 100644 --- a/apps/block_scout_web/lib/phoenix/html/safe.ex +++ b/apps/block_scout_web/lib/phoenix/html/safe.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout alias Explorer.Chain alias Explorer.Chain.{Address, Block, Data, Hash, Transaction} diff --git a/apps/block_scout_web/lib/phoenix/param.ex b/apps/block_scout_web/lib/phoenix/param.ex index f9c138e4f9e1..82ee5c28193e 100644 --- a/apps/block_scout_web/lib/phoenix/param.ex +++ b/apps/block_scout_web/lib/phoenix/param.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout alias Explorer.Chain.{Address, Block, Hash, Transaction} defimpl Phoenix.Param, for: Transaction do diff --git a/apps/block_scout_web/mix.exs b/apps/block_scout_web/mix.exs index e68c6fba48b3..d25ad5ce9ca0 100644 --- a/apps/block_scout_web/mix.exs +++ b/apps/block_scout_web/mix.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Mixfile do use Mix.Project diff --git a/apps/block_scout_web/test/block_scout_web/chain_test.exs b/apps/block_scout_web/test/block_scout_web/chain_test.exs index 12dd4de7cbe1..6ba2fcacd50b 100644 --- a/apps/block_scout_web/test/block_scout_web/chain_test.exs +++ b/apps/block_scout_web/test/block_scout_web/chain_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ChainTest do use Explorer.DataCase diff --git a/apps/block_scout_web/test/block_scout_web/channels/address_channel_test.exs b/apps/block_scout_web/test/block_scout_web/channels/address_channel_test.exs index 8e2add3294b8..a5e18fb3dd0d 100644 --- a/apps/block_scout_web/test/block_scout_web/channels/address_channel_test.exs +++ b/apps/block_scout_web/test/block_scout_web/channels/address_channel_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressChannelTest do use BlockScoutWeb.ChannelCase, # ETS tables are shared in `Explorer.Chain.Cache.Counters.AddressesCount` diff --git a/apps/block_scout_web/test/block_scout_web/channels/block_channel_test.exs b/apps/block_scout_web/test/block_scout_web/channels/block_channel_test.exs index bde9e587fd48..467f9eeb7da5 100644 --- a/apps/block_scout_web/test/block_scout_web/channels/block_channel_test.exs +++ b/apps/block_scout_web/test/block_scout_web/channels/block_channel_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.BlockChannelTest do use BlockScoutWeb.ChannelCase diff --git a/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs b/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs index 52df60f1dd5a..546791d48862 100644 --- a/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs +++ b/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ExchangeRateChannelTest do use BlockScoutWeb.ChannelCase diff --git a/apps/block_scout_web/test/block_scout_web/channels/reward_channel_test.exs b/apps/block_scout_web/test/block_scout_web/channels/reward_channel_test.exs index 06d6241c9d88..84b2bf24cf51 100644 --- a/apps/block_scout_web/test/block_scout_web/channels/reward_channel_test.exs +++ b/apps/block_scout_web/test/block_scout_web/channels/reward_channel_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.RewardChannelTest do use BlockScoutWeb.ChannelCase, async: false diff --git a/apps/block_scout_web/test/block_scout_web/channels/transaction_channel_test.exs b/apps/block_scout_web/test/block_scout_web/channels/transaction_channel_test.exs index b41454e11071..c13128ecac4d 100644 --- a/apps/block_scout_web/test/block_scout_web/channels/transaction_channel_test.exs +++ b/apps/block_scout_web/test/block_scout_web/channels/transaction_channel_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionChannelTest do use BlockScoutWeb.ChannelCase diff --git a/apps/block_scout_web/test/block_scout_web/channels/v2/address_channel_test.exs b/apps/block_scout_web/test/block_scout_web/channels/v2/address_channel_test.exs index b7a245e2b7dd..17dd49c362e7 100644 --- a/apps/block_scout_web/test/block_scout_web/channels/v2/address_channel_test.exs +++ b/apps/block_scout_web/test/block_scout_web/channels/v2/address_channel_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.V2.AddressChannelTest do use BlockScoutWeb.ChannelCase, # ETS tables are shared in `Explorer.Chain.Cache.Counters.AddressesCount` diff --git a/apps/block_scout_web/test/block_scout_web/channels/v2/block_channel_test.exs b/apps/block_scout_web/test/block_scout_web/channels/v2/block_channel_test.exs index a071ea19c9af..0afa7f4b0b0a 100644 --- a/apps/block_scout_web/test/block_scout_web/channels/v2/block_channel_test.exs +++ b/apps/block_scout_web/test/block_scout_web/channels/v2/block_channel_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.V2.BlockChannelTest do use BlockScoutWeb.ChannelCase diff --git a/apps/block_scout_web/test/block_scout_web/channels/v2/exchange_rate_channel_test.exs b/apps/block_scout_web/test/block_scout_web/channels/v2/exchange_rate_channel_test.exs index 7d9e30769286..58e1806d3ec4 100644 --- a/apps/block_scout_web/test/block_scout_web/channels/v2/exchange_rate_channel_test.exs +++ b/apps/block_scout_web/test/block_scout_web/channels/v2/exchange_rate_channel_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.V2.ExchangeRateChannelTest do use BlockScoutWeb.ChannelCase diff --git a/apps/block_scout_web/test/block_scout_web/channels/v2/reward_channel_test.exs b/apps/block_scout_web/test/block_scout_web/channels/v2/reward_channel_test.exs index 41709a8c6af4..5c22fac40868 100644 --- a/apps/block_scout_web/test/block_scout_web/channels/v2/reward_channel_test.exs +++ b/apps/block_scout_web/test/block_scout_web/channels/v2/reward_channel_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.V2.RewardChannelTest do use BlockScoutWeb.ChannelCase, async: false diff --git a/apps/block_scout_web/test/block_scout_web/channels/v2/transaction_channel_test.exs b/apps/block_scout_web/test/block_scout_web/channels/v2/transaction_channel_test.exs index c1c7c428d6d8..45e7be81f1ea 100644 --- a/apps/block_scout_web/test/block_scout_web/channels/v2/transaction_channel_test.exs +++ b/apps/block_scout_web/test/block_scout_web/channels/v2/transaction_channel_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.V2.TransactionChannelTest do use BlockScoutWeb.ChannelCase diff --git a/apps/block_scout_web/test/block_scout_web/channels/v2/websocket_test.exs b/apps/block_scout_web/test/block_scout_web/channels/v2/websocket_test.exs index 6b974d7d994e..448a4f616f8a 100644 --- a/apps/block_scout_web/test/block_scout_web/channels/v2/websocket_test.exs +++ b/apps/block_scout_web/test/block_scout_web/channels/v2/websocket_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.V2.WebsocketTest do use BlockScoutWeb.ChannelCase, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/account/api/v2/authenticate_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/account/api/v2/authenticate_controller_test.exs index 79a2a25c1d93..d525d34bdb46 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/account/api/v2/authenticate_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/account/api/v2/authenticate_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.API.V2.AuthenticateControllerTest do use BlockScoutWeb.ConnCase, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/account/api/v2/user_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/account/api/v2/user_controller_test.exs index 24543b4447bc..ac673257400d 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/account/api/v2/user_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/account/api/v2/user_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.Api.V2.UserControllerTest do use BlockScoutWeb.ConnCase use Utils.RuntimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/block_scout_web/test/block_scout_web/controllers/account/custom_abi_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/account/custom_abi_controller_test.exs index 367448b98660..90041f9affb3 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/account/custom_abi_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/account/custom_abi_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Account.CustomABIControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_coin_balance_by_day_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_coin_balance_by_day_controller_test.exs index 8d94957b9c02..8a590764ef1d 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_coin_balance_by_day_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_coin_balance_by_day_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressCoinBalanceByDayControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_contract_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_contract_controller_test.exs index 503eb3ba8fa6..cf7fdba8912c 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_contract_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_contract_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractControllerTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_controller_test.exs index d15289cb531a..b26e75f5d890 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressControllerTest do use BlockScoutWeb.ConnCase, # ETS tables are shared in `Explorer.Counters.*` diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_internal_transaction_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_internal_transaction_controller_test.exs index 372bfdfefeee..229eba81563f 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_internal_transaction_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_internal_transaction_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressInternalTransactionControllerTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_read_contract_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_read_contract_controller_test.exs index f67e4f4ba8a2..ba33d4bcb9c1 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_read_contract_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_read_contract_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressReadContractControllerTest do use BlockScoutWeb.ConnCase, async: true use ExUnit.Case, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_read_proxy_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_read_proxy_controller_test.exs index f78c728f62eb..0e4973146447 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_read_proxy_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_read_proxy_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressReadProxyControllerTest do use BlockScoutWeb.ConnCase, async: true use ExUnit.Case, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_token_balance_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_token_balance_controller_test.exs index cdafe886d54f..8abbc676267c 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_token_balance_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_token_balance_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressTokenBalanceControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_token_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_token_controller_test.exs index bfbc172befea..8afa1128093e 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_token_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_token_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressTokenControllerTest do use BlockScoutWeb.ConnCase, async: true use ExUnit.Case, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_token_transfer_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_token_transfer_controller_test.exs index 32f45dab160d..02bf36eb1f37 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_token_transfer_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_token_transfer_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressTokenTransferControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs index 43393abd1ca8..47a51001525b 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressTransactionControllerTest do use BlockScoutWeb.ConnCase, async: true use ExUnit.Case, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_withdrawal_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_withdrawal_controller_test.exs index c4cb8310ffd9..8e13c89e3771 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_withdrawal_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_withdrawal_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressWithdrawalControllerTest do use BlockScoutWeb.ConnCase, async: true use ExUnit.Case, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_write_contract_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_write_contract_controller_test.exs index 75f6c3fdb1a8..53c91709fcb3 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_write_contract_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_write_contract_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressWriteContractControllerTest do use BlockScoutWeb.ConnCase, async: true use ExUnit.Case, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_write_proxy_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_write_proxy_controller_test.exs index 1a24ecda33fe..4e83840bd056 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_write_proxy_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_write_proxy_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressWriteProxyControllerTest do use BlockScoutWeb.ConnCase, async: true use ExUnit.Case, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/admin/dashboard_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/admin/dashboard_controller_test.exs index 03cc0a388bda..3dbb4108dbf6 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/admin/dashboard_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/admin/dashboard_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Admin.DashboardControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/admin/session_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/admin/session_controller_test.exs index ce6e4e5a821e..472834e9f428 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/admin/session_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/admin/session_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Admin.SessionControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/admin/setup_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/admin/setup_controller_test.exs index 55c4753983b6..dbe6b779c9be 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/admin/setup_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/admin/setup_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Admin.SetupControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/legacy/block_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/legacy/block_controller_test.exs index 28032d4b7474..4b904b5c411b 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/legacy/block_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/legacy/block_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.Legacy.BlockControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/legacy/logs_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/legacy/logs_controller_test.exs index f4260aea6d58..42a0f79c2770 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/legacy/logs_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/legacy/logs_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.Legacy.LogsControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/address_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/address_controller_test.exs index e494cb967359..fc85d15d00fe 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/address_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/address_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.AddressControllerTest do use BlockScoutWeb.ConnCase, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/block_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/block_controller_test.exs index ea4060ab75d8..324a2e763b2d 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/block_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/block_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.BlockControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/contract_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/contract_controller_test.exs index 46e19e8422f5..068bd436c99f 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/contract_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/contract_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.ContractControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/eth_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/eth_controller_test.exs index b54f8aa0772d..42e62fd6a5ac 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/eth_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/eth_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.EthControllerTest do use BlockScoutWeb.ConnCase, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/logs_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/logs_controller_test.exs index df82a98a6a1c..d532c7cba146 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/logs_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/logs_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.LogsControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/rpc_translator_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/rpc_translator_test.exs index bf410d62a14a..c3e646992db9 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/rpc_translator_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/rpc_translator_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.RPCTranslatorTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/stats_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/stats_controller_test.exs index 2fcee52572ed..e23a2732de8b 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/stats_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/stats_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.StatsControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/token_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/token_controller_test.exs index 2257fe1e96b2..2eaa2f444892 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/token_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/token_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.TokenControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/transaction_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/transaction_controller_test.exs index 5a2f324b8e8d..6a6793216f15 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/transaction_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/rpc/transaction_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.RPC.TransactionControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v1/health_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v1/health_controller_test.exs index d38f51303c64..9ba9c7d5fd73 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v1/health_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v1/health_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V1.HealthControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v1/supply_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v1/supply_controller_test.exs index b5218388b4de..0b4edee4d4ba 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v1/supply_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v1/supply_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V1.SupplyControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v1/verified_smart_contract_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v1/verified_smart_contract_controller_test.exs index 095a7e4d6518..a5a5b6fde679 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v1/verified_smart_contract_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v1/verified_smart_contract_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V1.VerifiedControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/address_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/address_controller_test.exs index 0aac4985037a..ef8279df7c98 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/address_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/address_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.AddressControllerTest do use BlockScoutWeb.ConnCase use EthereumJSONRPC.Case, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/advanced_filter_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/advanced_filter_controller_test.exs index aded80a60585..4fc62130dd8c 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/advanced_filter_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/advanced_filter_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.AdvancedFilterControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/arbitrum_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/arbitrum_controller_test.exs index 942861cb223f..2ce1cc99cd64 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/arbitrum_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/arbitrum_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ArbitrumControllerTest do use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/block_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/block_controller_test.exs index df20b8d5e9ab..12db427aa1b6 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/block_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/block_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.BlockControllerTest do use BlockScoutWeb.ConnCase use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/celo_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/celo_controller_test.exs index d1a16e20fade..9deb089cc840 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/celo_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/celo_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.CeloControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/config_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/config_controller_test.exs index c11f8f2a33cc..29b214a80fe6 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/config_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/config_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ConfigControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/csv_export_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/csv_export_controller_test.exs index 49d05f3f346b..f1bda4457449 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/csv_export_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/csv_export_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Api.V2.CsvExportControllerTest do use BlockScoutWeb.ConnCase, async: true use ExUnit.Case, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/ethereum/deposit_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/ethereum/deposit_controller_test.exs index b29935eea3bf..640f976259f0 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/ethereum/deposit_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/ethereum/deposit_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Api.V2.Ethereum.DepositControllerTest do use BlockScoutWeb.ConnCase use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/import_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/import_controller_test.exs index 1c4d6d72e5b7..ec56b20105d4 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/import_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/import_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ImportControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/internal_transaction_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/internal_transaction_controller_test.exs index e09652da7abd..6075d5afe952 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/internal_transaction_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/internal_transaction_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.InternalTransactionControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/main_page_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/main_page_controller_test.exs index e76eeed5c514..d4e596cced82 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/main_page_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/main_page_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.MainPageControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/optimism_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/optimism_controller_test.exs index b85f15aee63c..896242b3646b 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/optimism_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/optimism_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.OptimismControllerTest do use BlockScoutWeb.ConnCase use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/proxy/account_abstraction_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/proxy/account_abstraction_controller_test.exs index 7b5d39df1b71..1dd356d4ec42 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/proxy/account_abstraction_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/proxy/account_abstraction_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.Proxy.AccountAbstractionControllerTest do use BlockScoutWeb.ConnCase use EthereumJSONRPC.Case, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/scroll_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/scroll_controller_test.exs index 21eb7c5a0be1..b126a30d825b 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/scroll_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/scroll_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ScrollControllerTest do use BlockScoutWeb.ConnCase use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/search_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/search_controller_test.exs index 4680c2146791..553af9eb8464 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/search_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/search_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.SearchControllerTest do use BlockScoutWeb.ConnCase use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/smart_contract_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/smart_contract_controller_test.exs index 4970ac2f1c5f..729d40df3e0e 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/smart_contract_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/smart_contract_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.SmartContractControllerTest do use BlockScoutWeb.ConnCase, async: false use BlockScoutWeb.ChannelCase, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/stats_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/stats_controller_test.exs index dfad76535357..81787f051dd6 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/stats_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/stats_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.StatsControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/token_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/token_controller_test.exs index 8bc0a105c54a..ecb3a77c381a 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/token_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/token_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.TokenControllerTest do use EthereumJSONRPC.Case, async: false use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/token_transfer_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/token_transfer_controller_test.exs index 0c0ed7c29e90..2096cb84fb08 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/token_transfer_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/token_transfer_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.TokenTransferControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/transaction_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/transaction_controller_test.exs index 1063acffa2ec..89e5baeaed8d 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/transaction_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/transaction_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.TransactionControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/utils_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/utils_controller_test.exs index 3c28c50d7000..7315a6b3dfd9 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/utils_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/utils_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.UtilsControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/validator_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/validator_controller_test.exs index 4e21c0237a7d..38bc05fbc202 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/validator_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/validator_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ValidatorControllerTest do use BlockScoutWeb.ConnCase use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/verification_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/verification_controller_test.exs index 82adbdae3672..e24e001e7660 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/verification_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/verification_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.VerificationControllerTest do use BlockScoutWeb.ConnCase use BlockScoutWeb.ChannelCase, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/withdrawal_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/withdrawal_controller_test.exs index 539da68d0bc5..6d6f2fc843f1 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/withdrawal_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/withdrawal_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.WithdrawalControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api_docs_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api_docs_controller_test.exs index 3b2cb99ff032..a90f8c940ccb 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api_docs_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api_docs_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.APIDocsControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/block_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/block_controller_test.exs index 210c00687026..5dc44aafd5e6 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/block_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/block_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.BlockControllerTest do use BlockScoutWeb.ConnCase alias Explorer.Chain.Block diff --git a/apps/block_scout_web/test/block_scout_web/controllers/block_transaction_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/block_transaction_controller_test.exs index 0ffce8c69189..08c30b068dae 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/block_transaction_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/block_transaction_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.BlockTransactionControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/block_withdrawal_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/block_withdrawal_controller_test.exs index 28677283031f..63b6f87553f2 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/block_withdrawal_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/block_withdrawal_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.BlockWithdrawalControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/chain/market_history_chart_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/chain/market_history_chart_controller_test.exs index e2958800fe0c..648ec2cff105 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/chain/market_history_chart_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/chain/market_history_chart_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Chain.MarketHistoryChartControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/chain/transaction_history_chart_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/chain/transaction_history_chart_controller_test.exs index 7de397620ff7..0d608cd070bb 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/chain/transaction_history_chart_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/chain/transaction_history_chart_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Chain.TransactionHistoryChartControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/chain_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/chain_controller_test.exs index 5cf77df9f45b..32b0fe0c6b08 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/chain_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/chain_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ChainControllerTest do use BlockScoutWeb.ConnCase, # ETS table is shared in `Explorer.Chain.Cache.Counters.AddressesCount` diff --git a/apps/block_scout_web/test/block_scout_web/controllers/metrics_contoller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/metrics_contoller_test.exs index e9ea7e7e55b4..b4083daa0637 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/metrics_contoller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/metrics_contoller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.MetricsControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/page_not_found_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/page_not_found_controller_test.exs index 85403586eeeb..427683e363ca 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/page_not_found_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/page_not_found_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.PageNotFoundControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/pending_transaction_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/pending_transaction_controller_test.exs index c8e57ddb6453..3dcfdd48de6b 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/pending_transaction_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/pending_transaction_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.PendingTransactionControllerTest do use BlockScoutWeb.ConnCase alias Explorer.Chain.{Hash, Transaction} diff --git a/apps/block_scout_web/test/block_scout_web/controllers/recent_transactions_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/recent_transactions_controller_test.exs index e0d2e56f5bb5..bb02d701c494 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/recent_transactions_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/recent_transactions_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.RecentTransactionsControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/smart_contract_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/smart_contract_controller_test.exs index 73fbec3fd835..6f30ae0358a2 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/smart_contract_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/smart_contract_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.SmartContractControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/tokens/holder_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/tokens/holder_controller_test.exs index 45c23d6f09c7..d5352d3c756a 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/tokens/holder_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/tokens/holder_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.HolderControllerTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/controllers/tokens/instance/transfer_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/tokens/instance/transfer_controller_test.exs index d2a3f0e29f94..bc4e66732477 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/tokens/instance/transfer_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/tokens/instance/transfer_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.Instance.TransferControllerTest do use BlockScoutWeb.ConnCase, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/tokens/instance_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/tokens/instance_controller_test.exs index 65acc5bb9e2f..b0d8955bfc78 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/tokens/instance_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/tokens/instance_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.InstanceControllerTest do use BlockScoutWeb.ConnCase, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/tokens/inventory_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/tokens/inventory_controller_test.exs index e15f85569214..275a49aa2f31 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/tokens/inventory_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/tokens/inventory_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.InventoryControllerTest do use BlockScoutWeb.ConnCase, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/tokens/read_contract_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/tokens/read_contract_controller_test.exs index b7af01531e21..7a25385c4e58 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/tokens/read_contract_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/tokens/read_contract_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.ContractControllerTest do use BlockScoutWeb.ConnCase, async: false diff --git a/apps/block_scout_web/test/block_scout_web/controllers/tokens/token_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/tokens/token_controller_test.exs index ab5d93fb6378..dd309d7f77ed 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/tokens/token_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/tokens/token_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.TokenControllerTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/controllers/transaction_internal_transaction_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/transaction_internal_transaction_controller_test.exs index e2ecf1e3e752..3f9d78742a6d 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/transaction_internal_transaction_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/transaction_internal_transaction_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionInternalTransactionControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/transaction_log_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/transaction_log_controller_test.exs index da7d6324c24e..6ab0a63e3ab6 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/transaction_log_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/transaction_log_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionLogControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/transaction_state_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/transaction_state_controller_test.exs index 484cb288a928..844f9afd98fd 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/transaction_state_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/transaction_state_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionStateControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/transaction_token_transfer_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/transaction_token_transfer_controller_test.exs index 4d41f24a26ad..0a4d75d2f370 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/transaction_token_transfer_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/transaction_token_transfer_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionTokenTransferControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/verified_contracts_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/verified_contracts_controller_test.exs index 0db3233fdeab..5c1ecdc1c0b4 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/verified_contracts_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/verified_contracts_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.VerifiedContractsControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/controllers/withdrawal_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/withdrawal_controller_test.exs index c152318a1cc5..47dd685ab6c8 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/withdrawal_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/withdrawal_controller_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.WithdrawalControllerTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/csv_export/address/internal_transactions_test.exs b/apps/block_scout_web/test/block_scout_web/csv_export/address/internal_transactions_test.exs index e7abf32add25..788a381b691b 100644 --- a/apps/block_scout_web/test/block_scout_web/csv_export/address/internal_transactions_test.exs +++ b/apps/block_scout_web/test/block_scout_web/csv_export/address/internal_transactions_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.CsvExport.Address.InternalTransactionsTest do use Explorer.DataCase diff --git a/apps/block_scout_web/test/block_scout_web/features/address_contract_verification_test.exs b/apps/block_scout_web/test/block_scout_web/features/address_contract_verification_test.exs index 148b0014bcbc..4ebc182c60fa 100644 --- a/apps/block_scout_web/test/block_scout_web/features/address_contract_verification_test.exs +++ b/apps/block_scout_web/test/block_scout_web/features/address_contract_verification_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractVerificationTest do use BlockScoutWeb.FeatureCase, async: false diff --git a/apps/block_scout_web/test/block_scout_web/features/pages/address_contract_page.ex b/apps/block_scout_web/test/block_scout_web/features/pages/address_contract_page.ex index 2930e3525484..90d7b06f3b80 100644 --- a/apps/block_scout_web/test/block_scout_web/features/pages/address_contract_page.ex +++ b/apps/block_scout_web/test/block_scout_web/features/pages/address_contract_page.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractPage do @moduledoc false diff --git a/apps/block_scout_web/test/block_scout_web/features/pages/address_page.ex b/apps/block_scout_web/test/block_scout_web/features/pages/address_page.ex index e25f37b107d1..628407fc1ea3 100644 --- a/apps/block_scout_web/test/block_scout_web/features/pages/address_page.ex +++ b/apps/block_scout_web/test/block_scout_web/features/pages/address_page.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressPage do @moduledoc false diff --git a/apps/block_scout_web/test/block_scout_web/features/pages/app_page.ex b/apps/block_scout_web/test/block_scout_web/features/pages/app_page.ex index 98b934a16968..2141188a0abc 100644 --- a/apps/block_scout_web/test/block_scout_web/features/pages/app_page.ex +++ b/apps/block_scout_web/test/block_scout_web/features/pages/app_page.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AppPage do @moduledoc false diff --git a/apps/block_scout_web/test/block_scout_web/features/pages/block_list_page.ex b/apps/block_scout_web/test/block_scout_web/features/pages/block_list_page.ex index f59cf4243ac7..e20067197c80 100644 --- a/apps/block_scout_web/test/block_scout_web/features/pages/block_list_page.ex +++ b/apps/block_scout_web/test/block_scout_web/features/pages/block_list_page.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.BlockListPage do @moduledoc false diff --git a/apps/block_scout_web/test/block_scout_web/features/pages/block_page.ex b/apps/block_scout_web/test/block_scout_web/features/pages/block_page.ex index 18289e016196..4ee5d5b1d854 100644 --- a/apps/block_scout_web/test/block_scout_web/features/pages/block_page.ex +++ b/apps/block_scout_web/test/block_scout_web/features/pages/block_page.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.BlockPage do @moduledoc false diff --git a/apps/block_scout_web/test/block_scout_web/features/pages/chain_page.ex b/apps/block_scout_web/test/block_scout_web/features/pages/chain_page.ex index 7781210ba943..5f770bde84e9 100644 --- a/apps/block_scout_web/test/block_scout_web/features/pages/chain_page.ex +++ b/apps/block_scout_web/test/block_scout_web/features/pages/chain_page.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ChainPage do @moduledoc false diff --git a/apps/block_scout_web/test/block_scout_web/features/pages/contract_verify_page.ex b/apps/block_scout_web/test/block_scout_web/features/pages/contract_verify_page.ex index f57a72304888..c703c5cd19e0 100644 --- a/apps/block_scout_web/test/block_scout_web/features/pages/contract_verify_page.ex +++ b/apps/block_scout_web/test/block_scout_web/features/pages/contract_verify_page.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ContractVerifyPage do @moduledoc false diff --git a/apps/block_scout_web/test/block_scout_web/features/pages/token_page.ex b/apps/block_scout_web/test/block_scout_web/features/pages/token_page.ex index 23eb4186d71d..ff7fc1e56540 100644 --- a/apps/block_scout_web/test/block_scout_web/features/pages/token_page.ex +++ b/apps/block_scout_web/test/block_scout_web/features/pages/token_page.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TokenPage do @moduledoc false diff --git a/apps/block_scout_web/test/block_scout_web/features/pages/transaction_list_page.ex b/apps/block_scout_web/test/block_scout_web/features/pages/transaction_list_page.ex index 9b3c34fa9204..2515d3a98292 100644 --- a/apps/block_scout_web/test/block_scout_web/features/pages/transaction_list_page.ex +++ b/apps/block_scout_web/test/block_scout_web/features/pages/transaction_list_page.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionListPage do @moduledoc false diff --git a/apps/block_scout_web/test/block_scout_web/features/pages/transaction_logs_page.ex b/apps/block_scout_web/test/block_scout_web/features/pages/transaction_logs_page.ex index cd0dc88da8c7..700953cb40df 100644 --- a/apps/block_scout_web/test/block_scout_web/features/pages/transaction_logs_page.ex +++ b/apps/block_scout_web/test/block_scout_web/features/pages/transaction_logs_page.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionLogsPage do @moduledoc false diff --git a/apps/block_scout_web/test/block_scout_web/features/pages/transaction_page.ex b/apps/block_scout_web/test/block_scout_web/features/pages/transaction_page.ex index 19fe4997d6f8..92b2226b743e 100644 --- a/apps/block_scout_web/test/block_scout_web/features/pages/transaction_page.ex +++ b/apps/block_scout_web/test/block_scout_web/features/pages/transaction_page.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionPage do @moduledoc false diff --git a/apps/block_scout_web/test/block_scout_web/features/viewing_addresses_test.exs b/apps/block_scout_web/test/block_scout_web/features/viewing_addresses_test.exs index 82a8a2e6e2da..c7cfd7d806be 100644 --- a/apps/block_scout_web/test/block_scout_web/features/viewing_addresses_test.exs +++ b/apps/block_scout_web/test/block_scout_web/features/viewing_addresses_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ViewingAddressesTest do use BlockScoutWeb.FeatureCase, # Because ETS tables is shared for `Explorer.Counters.*` diff --git a/apps/block_scout_web/test/block_scout_web/features/viewing_app_test.exs b/apps/block_scout_web/test/block_scout_web/features/viewing_app_test.exs index fabb2a59a66c..a14f27b69c3d 100644 --- a/apps/block_scout_web/test/block_scout_web/features/viewing_app_test.exs +++ b/apps/block_scout_web/test/block_scout_web/features/viewing_app_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ViewingAppTest do @moduledoc false diff --git a/apps/block_scout_web/test/block_scout_web/features/viewing_blocks_test.exs b/apps/block_scout_web/test/block_scout_web/features/viewing_blocks_test.exs index f6ad57c36d83..74fa8514c75e 100644 --- a/apps/block_scout_web/test/block_scout_web/features/viewing_blocks_test.exs +++ b/apps/block_scout_web/test/block_scout_web/features/viewing_blocks_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ViewingBlocksTest do use BlockScoutWeb.FeatureCase, async: false diff --git a/apps/block_scout_web/test/block_scout_web/features/viewing_chain_test.exs b/apps/block_scout_web/test/block_scout_web/features/viewing_chain_test.exs index 0b12f012b9e8..46d7e8eefc29 100644 --- a/apps/block_scout_web/test/block_scout_web/features/viewing_chain_test.exs +++ b/apps/block_scout_web/test/block_scout_web/features/viewing_chain_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ViewingChainTest do @moduledoc false diff --git a/apps/block_scout_web/test/block_scout_web/features/viewing_tokens_test.exs b/apps/block_scout_web/test/block_scout_web/features/viewing_tokens_test.exs index d8962668480b..b08de54093d7 100644 --- a/apps/block_scout_web/test/block_scout_web/features/viewing_tokens_test.exs +++ b/apps/block_scout_web/test/block_scout_web/features/viewing_tokens_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ViewingTokensTest do use BlockScoutWeb.FeatureCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/graphql/schema/query/address_test.exs b/apps/block_scout_web/test/block_scout_web/graphql/schema/query/address_test.exs index dbec56c68204..ba66558b1148 100644 --- a/apps/block_scout_web/test/block_scout_web/graphql/schema/query/address_test.exs +++ b/apps/block_scout_web/test/block_scout_web/graphql/schema/query/address_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Schema.Query.AddressTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/graphql/schema/query/addresses_test.exs b/apps/block_scout_web/test/block_scout_web/graphql/schema/query/addresses_test.exs index 32bbc5fdd205..11248e4f327a 100644 --- a/apps/block_scout_web/test/block_scout_web/graphql/schema/query/addresses_test.exs +++ b/apps/block_scout_web/test/block_scout_web/graphql/schema/query/addresses_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Schema.Query.AddressesTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/graphql/schema/query/block_test.exs b/apps/block_scout_web/test/block_scout_web/graphql/schema/query/block_test.exs index 8f2f6badbbda..c5e731a26139 100644 --- a/apps/block_scout_web/test/block_scout_web/graphql/schema/query/block_test.exs +++ b/apps/block_scout_web/test/block_scout_web/graphql/schema/query/block_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Schema.Query.BlockTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/graphql/schema/query/introspection_test.exs b/apps/block_scout_web/test/block_scout_web/graphql/schema/query/introspection_test.exs index 792d4e7d8344..c8d4798fe471 100644 --- a/apps/block_scout_web/test/block_scout_web/graphql/schema/query/introspection_test.exs +++ b/apps/block_scout_web/test/block_scout_web/graphql/schema/query/introspection_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Schema.Query.IntrospectionTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/graphql/schema/query/node_test.exs b/apps/block_scout_web/test/block_scout_web/graphql/schema/query/node_test.exs index dfac138f88e4..d88f9ff68063 100644 --- a/apps/block_scout_web/test/block_scout_web/graphql/schema/query/node_test.exs +++ b/apps/block_scout_web/test/block_scout_web/graphql/schema/query/node_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Schema.Query.NodeTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/graphql/schema/query/token_transfers_test.exs b/apps/block_scout_web/test/block_scout_web/graphql/schema/query/token_transfers_test.exs index 4c0d1499b3e6..a8d1609e63ec 100644 --- a/apps/block_scout_web/test/block_scout_web/graphql/schema/query/token_transfers_test.exs +++ b/apps/block_scout_web/test/block_scout_web/graphql/schema/query/token_transfers_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Schema.Query.TokenTransfersTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/graphql/schema/query/transaction_test.exs b/apps/block_scout_web/test/block_scout_web/graphql/schema/query/transaction_test.exs index 73f7d2e9e8bd..0492a49ab4db 100644 --- a/apps/block_scout_web/test/block_scout_web/graphql/schema/query/transaction_test.exs +++ b/apps/block_scout_web/test/block_scout_web/graphql/schema/query/transaction_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Schema.Query.TransactionTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/graphql/schema/subscription/token_transfers_test.exs b/apps/block_scout_web/test/block_scout_web/graphql/schema/subscription/token_transfers_test.exs index 4ba16ec96ecd..3be1f3ba36c8 100644 --- a/apps/block_scout_web/test/block_scout_web/graphql/schema/subscription/token_transfers_test.exs +++ b/apps/block_scout_web/test/block_scout_web/graphql/schema/subscription/token_transfers_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.GraphQL.Schema.Subscription.TokenTransfersTest do use BlockScoutWeb.SubscriptionCase import Mox diff --git a/apps/block_scout_web/test/block_scout_web/plug/admin/check_owner_registered_test.exs b/apps/block_scout_web/test/block_scout_web/plug/admin/check_owner_registered_test.exs index 2eb7b98aea4d..cdf6f870de2b 100644 --- a/apps/block_scout_web/test/block_scout_web/plug/admin/check_owner_registered_test.exs +++ b/apps/block_scout_web/test/block_scout_web/plug/admin/check_owner_registered_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.Admin.CheckOwnerRegisteredTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/plug/admin/require_admin_role_test.exs b/apps/block_scout_web/test/block_scout_web/plug/admin/require_admin_role_test.exs index 45bcdc2beac6..8907aeed4aa8 100644 --- a/apps/block_scout_web/test/block_scout_web/plug/admin/require_admin_role_test.exs +++ b/apps/block_scout_web/test/block_scout_web/plug/admin/require_admin_role_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.Admin.RequireAdminRoleTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/plug/fetch_user_from_session_test.exs b/apps/block_scout_web/test/block_scout_web/plug/fetch_user_from_session_test.exs index ed00ce6de9d4..9336d2f48676 100644 --- a/apps/block_scout_web/test/block_scout_web/plug/fetch_user_from_session_test.exs +++ b/apps/block_scout_web/test/block_scout_web/plug/fetch_user_from_session_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.FetchUserFromSessionTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/plug/rate_limit_test.exs b/apps/block_scout_web/test/block_scout_web/plug/rate_limit_test.exs index 31ad79c7ccc6..096d80ea2ffb 100644 --- a/apps/block_scout_web/test/block_scout_web/plug/rate_limit_test.exs +++ b/apps/block_scout_web/test/block_scout_web/plug/rate_limit_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Plug.RateLimitTest do use BlockScoutWeb.ConnCase, async: false diff --git a/apps/block_scout_web/test/block_scout_web/rate_limit_test.exs b/apps/block_scout_web/test/block_scout_web/rate_limit_test.exs index c1d794cf18fb..edebaa73485d 100644 --- a/apps/block_scout_web/test/block_scout_web/rate_limit_test.exs +++ b/apps/block_scout_web/test/block_scout_web/rate_limit_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.RateLimitTest do use BlockScoutWeb.ConnCase, async: false alias BlockScoutWeb.RateLimit diff --git a/apps/block_scout_web/test/block_scout_web/routers/chain_type_scope_test.exs b/apps/block_scout_web/test/block_scout_web/routers/chain_type_scope_test.exs index 5c4574f00b7b..426962e6c952 100644 --- a/apps/block_scout_web/test/block_scout_web/routers/chain_type_scope_test.exs +++ b/apps/block_scout_web/test/block_scout_web/routers/chain_type_scope_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Routers.ChainTypeScopeTest do use BlockScoutWeb.ConnCase use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/block_scout_web/test/block_scout_web/social_media_test.exs b/apps/block_scout_web/test/block_scout_web/social_media_test.exs index 19243245b91d..5f552597b9b1 100644 --- a/apps/block_scout_web/test/block_scout_web/social_media_test.exs +++ b/apps/block_scout_web/test/block_scout_web/social_media_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.SocialMediaTest do use Explorer.DataCase diff --git a/apps/block_scout_web/test/block_scout_web/specs/public_legacy_tag_test.exs b/apps/block_scout_web/test/block_scout_web/specs/public_legacy_tag_test.exs index 70c666dcbf8e..f4cf42cff1f4 100644 --- a/apps/block_scout_web/test/block_scout_web/specs/public_legacy_tag_test.exs +++ b/apps/block_scout_web/test/block_scout_web/specs/public_legacy_tag_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Specs.PublicLegacyTagTest do use ExUnit.Case, async: true diff --git a/apps/block_scout_web/test/block_scout_web/utility/rate_limit_config_helper_test.exs b/apps/block_scout_web/test/block_scout_web/utility/rate_limit_config_helper_test.exs index 58c39d5f458d..296a0066a3fe 100644 --- a/apps/block_scout_web/test/block_scout_web/utility/rate_limit_config_helper_test.exs +++ b/apps/block_scout_web/test/block_scout_web/utility/rate_limit_config_helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Utility.RateLimitConfigHelperTest do use BlockScoutWeb.ConnCase, async: false alias BlockScoutWeb.Utility.RateLimitConfigHelper diff --git a/apps/block_scout_web/test/block_scout_web/views/abi_encoded_value_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/abi_encoded_value_view_test.exs index 9d29afe2449e..135ceae28c1b 100644 --- a/apps/block_scout_web/test/block_scout_web/views/abi_encoded_value_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/abi_encoded_value_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ABIEncodedValueViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/address_coin_balance_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/address_coin_balance_view_test.exs index bc07e1c4feeb..809df3f89088 100644 --- a/apps/block_scout_web/test/block_scout_web/views/address_coin_balance_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/address_coin_balance_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressCoinBalanceViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/address_contract_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/address_contract_view_test.exs index e483bfc7ea65..c39d540da3c3 100644 --- a/apps/block_scout_web/test/block_scout_web/views/address_contract_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/address_contract_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressContractViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/address_token_balance_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/address_token_balance_view_test.exs index 778c1eb0364b..49ed78c4b374 100644 --- a/apps/block_scout_web/test/block_scout_web/views/address_token_balance_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/address_token_balance_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressTokenBalanceViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/address_transaction_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/address_transaction_view_test.exs index 666f06bc86ac..f63ce78858c3 100644 --- a/apps/block_scout_web/test/block_scout_web/views/address_transaction_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/address_transaction_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressTransactionViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/address_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/address_view_test.exs index 05179625bbf0..703e281896ec 100644 --- a/apps/block_scout_web/test/block_scout_web/views/address_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/address_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.AddressViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/api/v2/address_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/api/v2/address_view_test.exs index 2e521b4fa8f6..58da6ddc8a44 100644 --- a/apps/block_scout_web/test/block_scout_web/views/api/v2/address_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/api/v2/address_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.AddressViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/api/v2/api_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/api/v2/api_view_test.exs index 65d7ac19c62f..decc754b29b5 100644 --- a/apps/block_scout_web/test/block_scout_web/views/api/v2/api_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/api/v2/api_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ApiViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/api/v2/block_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/api/v2/block_view_test.exs index ab080a8a9956..e1f4e9a6c19b 100644 --- a/apps/block_scout_web/test/block_scout_web/views/api/v2/block_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/api/v2/block_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.BlockViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/api/v2/config_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/api/v2/config_view_test.exs index 4e21f33fe683..552a16e20998 100644 --- a/apps/block_scout_web/test/block_scout_web/views/api/v2/config_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/api/v2/config_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.ConfigViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/api/v2/internal_transaction_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/api/v2/internal_transaction_view_test.exs index d902780437be..9ef030e0bc0a 100644 --- a/apps/block_scout_web/test/block_scout_web/views/api/v2/internal_transaction_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/api/v2/internal_transaction_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.InternalTransactionViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/api/v2/search_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/api/v2/search_view_test.exs index 30af48b0d365..24ab2c8e43d3 100644 --- a/apps/block_scout_web/test/block_scout_web/views/api/v2/search_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/api/v2/search_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.SearchViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/api/v2/stats_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/api/v2/stats_view_test.exs index 216bb75fe6a8..0acab2964a6f 100644 --- a/apps/block_scout_web/test/block_scout_web/views/api/v2/stats_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/api/v2/stats_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.StatsViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/api/v2/token_transfer_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/api/v2/token_transfer_view_test.exs index fecd85dae3e0..12171776864b 100644 --- a/apps/block_scout_web/test/block_scout_web/views/api/v2/token_transfer_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/api/v2/token_transfer_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.TokenTransferViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/api/v2/token_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/api/v2/token_view_test.exs index f59390014876..635f94516377 100644 --- a/apps/block_scout_web/test/block_scout_web/views/api/v2/token_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/api/v2/token_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.TokenViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/api/v2/transaction_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/api/v2/transaction_view_test.exs index c2f5ab8c2b6e..0fbb48af2fb7 100644 --- a/apps/block_scout_web/test/block_scout_web/views/api/v2/transaction_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/api/v2/transaction_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.TransactionViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/api/v2/withdrawal_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/api/v2/withdrawal_view_test.exs index 302834cd9edd..510ffbc35ac4 100644 --- a/apps/block_scout_web/test/block_scout_web/views/api/v2/withdrawal_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/api/v2/withdrawal_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.API.V2.WithdrawalViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/api_docs_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/api_docs_view_test.exs index 1a56d7ef6c31..382134ef0a3f 100644 --- a/apps/block_scout_web/test/block_scout_web/views/api_docs_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/api_docs_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ApiDocsViewTest do use BlockScoutWeb.ConnCase, async: false diff --git a/apps/block_scout_web/test/block_scout_web/views/block_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/block_view_test.exs index eea5baf28420..2d3235f2fbfb 100644 --- a/apps/block_scout_web/test/block_scout_web/views/block_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/block_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.BlockViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/currency_helper_test.exs b/apps/block_scout_web/test/block_scout_web/views/currency_helper_test.exs index 432d34eb02a1..1f62e5952b82 100644 --- a/apps/block_scout_web/test/block_scout_web/views/currency_helper_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/currency_helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.CurrencyHelperTest do use ExUnit.Case diff --git a/apps/block_scout_web/test/block_scout_web/views/error_helper_test.exs b/apps/block_scout_web/test/block_scout_web/views/error_helper_test.exs index 7b376b55d0f6..e59988f8891c 100644 --- a/apps/block_scout_web/test/block_scout_web/views/error_helper_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/error_helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ErrorHelperTest do use BlockScoutWeb.ConnCase, async: true import Phoenix.HTML diff --git a/apps/block_scout_web/test/block_scout_web/views/error_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/error_view_test.exs index 6babf7c0e26b..b8469baec089 100644 --- a/apps/block_scout_web/test/block_scout_web/views/error_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/error_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ErrorViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/internal_transaction_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/internal_transaction_view_test.exs index 987f89f76e55..818671bb4208 100644 --- a/apps/block_scout_web/test/block_scout_web/views/internal_transaction_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/internal_transaction_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.InternalTransactionViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/layout_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/layout_view_test.exs index b194934a5f09..b650f0c6f95a 100644 --- a/apps/block_scout_web/test/block_scout_web/views/layout_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/layout_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.LayoutViewTest do use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/block_scout_web/views/nft_helper_test.exs b/apps/block_scout_web/test/block_scout_web/views/nft_helper_test.exs index 867210d51367..71affd17f4e0 100644 --- a/apps/block_scout_web/test/block_scout_web/views/nft_helper_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/nft_helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.NFTHelperTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/render_helper_test.exs b/apps/block_scout_web/test/block_scout_web/views/render_helper_test.exs index 491d2fbcae22..33753a0726ae 100644 --- a/apps/block_scout_web/test/block_scout_web/views/render_helper_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/render_helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.RenderHelperTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/search_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/search_view_test.exs index 8bc64add9f30..f3b1a9d4b1ae 100644 --- a/apps/block_scout_web/test/block_scout_web/views/search_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/search_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.SearchViewTest do use ExUnit.Case alias BlockScoutWeb.SearchView diff --git a/apps/block_scout_web/test/block_scout_web/views/smart_contract_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/smart_contract_view_test.exs index cb63435730b2..a1d330dfdb38 100644 --- a/apps/block_scout_web/test/block_scout_web/views/smart_contract_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/smart_contract_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.SmartContractViewTest do use ExUnit.Case diff --git a/apps/block_scout_web/test/block_scout_web/views/tab_helper_test.exs b/apps/block_scout_web/test/block_scout_web/views/tab_helper_test.exs index 8cfe4e036e57..f4fea0d4a946 100644 --- a/apps/block_scout_web/test/block_scout_web/views/tab_helper_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/tab_helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TabHelperTest do use ExUnit.Case diff --git a/apps/block_scout_web/test/block_scout_web/views/tokens/helper_test.exs b/apps/block_scout_web/test/block_scout_web/views/tokens/helper_test.exs index 6450ad340435..c297a5d94634 100644 --- a/apps/block_scout_web/test/block_scout_web/views/tokens/helper_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/tokens/helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.HelperTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/tokens/holder_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/tokens/holder_view_test.exs index fc6746c13329..166dc3eafc9c 100644 --- a/apps/block_scout_web/test/block_scout_web/views/tokens/holder_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/tokens/holder_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.HolderViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/tokens/instance/overview_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/tokens/instance/overview_view_test.exs index ec01e6a2070b..54c8de8613ed 100644 --- a/apps/block_scout_web/test/block_scout_web/views/tokens/instance/overview_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/tokens/instance/overview_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.Instance.OverviewViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/tokens/overview_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/tokens/overview_view_test.exs index 45f691023677..2d6a81af8db7 100644 --- a/apps/block_scout_web/test/block_scout_web/views/tokens/overview_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/tokens/overview_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.OverviewViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/tokens/read_contract_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/tokens/read_contract_view_test.exs index 3f567cb6a0d6..6b1613acd727 100644 --- a/apps/block_scout_web/test/block_scout_web/views/tokens/read_contract_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/tokens/read_contract_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.ReadContractViewTest do use BlockScoutWeb.ConnCase, async: true end diff --git a/apps/block_scout_web/test/block_scout_web/views/tokens/smart_contract_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/tokens/smart_contract_view_test.exs index cefba8b98cdf..c67de5594593 100644 --- a/apps/block_scout_web/test/block_scout_web/views/tokens/smart_contract_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/tokens/smart_contract_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.SmartContractViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/tokens/transfer_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/tokens/transfer_view_test.exs index 6b320385453a..b668bd75a471 100644 --- a/apps/block_scout_web/test/block_scout_web/views/tokens/transfer_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/tokens/transfer_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.Tokens.TransferViewTest do use BlockScoutWeb.ConnCase, async: true end diff --git a/apps/block_scout_web/test/block_scout_web/views/transaction_view_test.exs b/apps/block_scout_web/test/block_scout_web/views/transaction_view_test.exs index ea53a2a970a7..e1b5a1a10e4c 100644 --- a/apps/block_scout_web/test/block_scout_web/views/transaction_view_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/transaction_view_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TransactionViewTest do use BlockScoutWeb.ConnCase, async: true diff --git a/apps/block_scout_web/test/block_scout_web/views/wei_helper_test.exs b/apps/block_scout_web/test/block_scout_web/views/wei_helper_test.exs index e2b0425add04..56f8ae8f4e7c 100644 --- a/apps/block_scout_web/test/block_scout_web/views/wei_helper_test.exs +++ b/apps/block_scout_web/test/block_scout_web/views/wei_helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.WeiHelperTest do use ExUnit.Case diff --git a/apps/block_scout_web/test/phoenix/param/explorer/chain/block_test.exs b/apps/block_scout_web/test/phoenix/param/explorer/chain/block_test.exs index 38ff7d5e5456..46f66139877c 100644 --- a/apps/block_scout_web/test/phoenix/param/explorer/chain/block_test.exs +++ b/apps/block_scout_web/test/phoenix/param/explorer/chain/block_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Phoenix.Param.Explorer.Chain.BlockTest do use ExUnit.Case diff --git a/apps/block_scout_web/test/support/api_schema_assertions.ex b/apps/block_scout_web/test/support/api_schema_assertions.ex index 6e38215b361c..0f2a42de5979 100644 --- a/apps/block_scout_web/test/support/api_schema_assertions.ex +++ b/apps/block_scout_web/test/support/api_schema_assertions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TestApiSchemaAssertions do @moduledoc """ Test helper that automatically validates JSON responses against the OpenAPI schema diff --git a/apps/block_scout_web/test/support/channel_case.ex b/apps/block_scout_web/test/support/channel_case.ex index 386ccdc6596d..27f9caeeaa52 100644 --- a/apps/block_scout_web/test/support/channel_case.ex +++ b/apps/block_scout_web/test/support/channel_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ChannelCase do @moduledoc """ This module defines the test case to be used by diff --git a/apps/block_scout_web/test/support/conn_case.ex b/apps/block_scout_web/test/support/conn_case.ex index 3692914d9e2f..fb77f53c4f23 100644 --- a/apps/block_scout_web/test/support/conn_case.ex +++ b/apps/block_scout_web/test/support/conn_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.ConnCase do @moduledoc """ This module defines the test case to be used by diff --git a/apps/block_scout_web/test/support/feature_case.ex b/apps/block_scout_web/test/support/feature_case.ex index b3954dc57445..b11e72069d6c 100644 --- a/apps/block_scout_web/test/support/feature_case.ex +++ b/apps/block_scout_web/test/support/feature_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.FeatureCase do use ExUnit.CaseTemplate use Wallaby.DSL diff --git a/apps/block_scout_web/test/support/subscription_case.ex b/apps/block_scout_web/test/support/subscription_case.ex index 3701e6e993a6..91bf803ce982 100644 --- a/apps/block_scout_web/test/support/subscription_case.ex +++ b/apps/block_scout_web/test/support/subscription_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.SubscriptionCase do @moduledoc """ This module defines the test case to be used by GraphQL subscription tests. diff --git a/apps/block_scout_web/test/support/test_helper.ex b/apps/block_scout_web/test/support/test_helper.ex index 3c649934f629..1854bc8cf87f 100644 --- a/apps/block_scout_web/test/support/test_helper.ex +++ b/apps/block_scout_web/test/support/test_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScoutWeb.TestHelper do @moduledoc false use BlockScoutWeb.ConnCase diff --git a/apps/block_scout_web/test/test_helper.exs b/apps/block_scout_web/test/test_helper.exs index 9f2154484c6a..40f35cfbb9b7 100644 --- a/apps/block_scout_web/test/test_helper.exs +++ b/apps/block_scout_web/test/test_helper.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # https://github.com/CircleCI-Public/circleci-demo-elixir-phoenix/blob/a89de33a01df67b6773ac90adc74c34367a4a2d6/test/test_helper.exs#L1-L3 junit_folder = Mix.Project.build_path() <> "/junit/#{Mix.Project.config()[:app]}" File.mkdir_p!(junit_folder) diff --git a/apps/ethereum_jsonrpc/config/config.exs b/apps/ethereum_jsonrpc/config/config.exs index 9f8334f12554..8a6e88f5fd39 100644 --- a/apps/ethereum_jsonrpc/config/config.exs +++ b/apps/ethereum_jsonrpc/config/config.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :ethereum_jsonrpc, EthereumJSONRPC.RequestCoordinator, diff --git a/apps/ethereum_jsonrpc/config/dev.exs b/apps/ethereum_jsonrpc/config/dev.exs index 2493947caaf7..d4c53cef6120 100644 --- a/apps/ethereum_jsonrpc/config/dev.exs +++ b/apps/ethereum_jsonrpc/config/dev.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :ethereum_jsonrpc, EthereumJSONRPC.Tracer, env: "dev", disabled?: true diff --git a/apps/ethereum_jsonrpc/config/prod.exs b/apps/ethereum_jsonrpc/config/prod.exs index fc811410212c..271262810cb1 100644 --- a/apps/ethereum_jsonrpc/config/prod.exs +++ b/apps/ethereum_jsonrpc/config/prod.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :ethereum_jsonrpc, EthereumJSONRPC.Tracer, env: "production", disabled?: true diff --git a/apps/ethereum_jsonrpc/config/runtime/test.exs b/apps/ethereum_jsonrpc/config/runtime/test.exs index 081c952dfc9d..3e984344df1c 100644 --- a/apps/ethereum_jsonrpc/config/runtime/test.exs +++ b/apps/ethereum_jsonrpc/config/runtime/test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config alias EthereumJSONRPC.Variant diff --git a/apps/ethereum_jsonrpc/config/test.exs b/apps/ethereum_jsonrpc/config/test.exs index 0f84d4698042..01cff3d7433c 100644 --- a/apps/ethereum_jsonrpc/config/test.exs +++ b/apps/ethereum_jsonrpc/config/test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :ethereum_jsonrpc, EthereumJSONRPC.RequestCoordinator, diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc.ex index 75db46fb9f8f..da4f978e09ba 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC do @moduledoc """ Ethereum JSONRPC client. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/anvil.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/anvil.ex index 55fc748ab659..546d9416c3de 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/anvil.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/anvil.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Anvil do @moduledoc """ Ethereum JSONRPC methods that are only supported by [Anvil](https://book.getfoundry.sh/anvil/). diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/application.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/application.ex index a03f80e27603..66bbda4175d6 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/application.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/application.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Application do @moduledoc """ Starts `:hackney_pool` `:ethereum_jsonrpc`. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/arbitrum.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/arbitrum.ex index 303c746b802c..5c71caaffcb0 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/arbitrum.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/arbitrum.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Arbitrum do @moduledoc """ Arbitrum specific routines used to fetch and process diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/arbitrum/constants/contracts.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/arbitrum/constants/contracts.ex index 32473ddd0c9a..68b6c8b43797 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/arbitrum/constants/contracts.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/arbitrum/constants/contracts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Arbitrum.Constants.Contracts do @moduledoc """ Provides constants and ABI definitions for Arbitrum-specific smart contracts. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/arbitrum/constants/events.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/arbitrum/constants/events.ex index 1a18f7548691..336d1f59b46d 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/arbitrum/constants/events.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/arbitrum/constants/events.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Arbitrum.Constants.Events do @moduledoc """ Provides constant values for Arbitrum-specific event signatures and their parameter types. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu.ex index 45b8d545e3ac..dfc46419d65a 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # credo:disable-for-this-file defmodule EthereumJSONRPC.Besu do @moduledoc """ diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu/trace.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu/trace.ex index e2b9f405fb6f..7235d942e427 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu/trace.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu/trace.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Besu.Trace do @moduledoc """ Trace returned by diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu/traces.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu/traces.ex index 780d3af22cab..3b09c616cf4f 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu/traces.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/besu/traces.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Besu.Traces do @moduledoc """ Trace returned by diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block.ex index dd166ef653c1..3e983f9effcb 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Block do @moduledoc """ Block format as returned by [`eth_getBlockByHash`](https://github.com/ethereum/wiki/wiki/JSON-RPC/e8e0771b9f3677693649d945956bc60e886ceb2b#eth_getblockbyhash) diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block/by_hash.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block/by_hash.ex index 83aa6fa4ad00..df87b76834e1 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block/by_hash.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block/by_hash.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Block.ByHash do @moduledoc """ Block format as returned by [`eth_getBlockByHash`](https://github.com/ethereum/wiki/wiki/JSON-RPC/e8e0771b9f3677693649d945956bc60e886ceb2b#eth_getblockbyhash) diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block/by_nephew.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block/by_nephew.ex index eba8c46ec826..c39caef403a1 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block/by_nephew.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block/by_nephew.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Block.ByNephew do @moduledoc """ Block format as returned by [`eth_getUncleByBlockHashAndIndex`](https://github.com/ethereum/wiki/wiki/JSON-RPC/e8e0771b9f3677693649d945956bc60e886ceb2b#eth_getunclebyblockhashandindex) diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block/by_number.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block/by_number.ex index b551c4f8e9e3..a7ae4120a637 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block/by_number.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block/by_number.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Block.ByNumber do @moduledoc """ Provides functionality to compose JSON-RPC requests for fetching Ethereum blocks by their number. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block/by_tag.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block/by_tag.ex index 7c48d80d19ec..244b526bbc6a 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block/by_tag.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/block/by_tag.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Block.ByTag do @moduledoc """ Block format returned by [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/blocks.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/blocks.ex index b1b46698f815..592194ea113a 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/blocks.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/blocks.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Blocks do @moduledoc """ Blocks format as returned by [`eth_getBlockByHash`](https://github.com/ethereum/wiki/wiki/JSON-RPC/e8e0771b9f3677693649d945956bc60e886ceb2b#eth_getblockbyhash) diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/contract.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/contract.ex index 8aa833daf795..d67809e9b109 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/contract.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/contract.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Contract do @moduledoc """ Smart contract functions executed by `eth_call`. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/decode_error.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/decode_error.ex index 57c62262dd48..ed223efd0414 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/decode_error.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/decode_error.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.DecodeError do @moduledoc """ An error has occurred decoding the response to an `EthereumJSONRPC.json_rpc` request. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/encoder.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/encoder.ex index 052765f9a9b7..082bb8ce557a 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/encoder.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/encoder.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Encoder do @moduledoc """ Deals with encoding and decoding data to be sent to, or that is diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/erc20.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/erc20.ex index fdcc8ac3eac7..680ff41471f7 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/erc20.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/erc20.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.ERC20 do @moduledoc """ Provides ability to interact with ERC20 token contracts directly. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/erigon.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/erigon.ex index 57f490162270..fd49df73d238 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/erigon.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/erigon.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # credo:disable-for-this-file defmodule EthereumJSONRPC.Erigon do @moduledoc """ diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_balance.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_balance.ex index 682614feec22..dab97c91eaae 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_balance.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_balance.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.FetchedBalance do @moduledoc """ A single balance fetched from `eth_getBalance`. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_balances.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_balances.ex index d87bdfb00e3c..56f281d6fb05 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_balances.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_balances.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.FetchedBalances do @moduledoc """ Balance params and errors from a batch request from `eth_getBalance`. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_beneficiaries.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_beneficiaries.ex index 60e65665d967..efe6ef1f6c2b 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_beneficiaries.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_beneficiaries.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.FetchedBeneficiaries do @moduledoc """ Beneficiaries and errors from batch requests to `trace_block`. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_beneficiary.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_beneficiary.ex index daf41053cd54..d1c06980724c 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_beneficiary.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_beneficiary.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.FetchedBeneficiary do @moduledoc """ A single balance request params for the beneficiary of a block. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_code.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_code.ex index 2b7211fe4d44..dfff4725e900 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_code.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_code.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.FetchedCode do @moduledoc """ A single code fetched from `eth_getCode`. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_codes.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_codes.ex index a15ce4f8ce02..363b7a345894 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_codes.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/fetched_codes.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.FetchedCodes do @moduledoc """ Code params and errors from a batch request from `eth_getCode`. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/filecoin.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/filecoin.ex index f9395a1321a4..087be00029cf 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/filecoin.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/filecoin.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Filecoin do @moduledoc """ Ethereum JSONRPC methods that are only supported by Filecoin. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth.ex index 7f6bb3a76b59..f0e6cbd06a8d 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Geth do @moduledoc """ Ethereum JSONRPC methods that are only supported by [Geth](https://github.com/ethereum/go-ethereum/wiki/geth). diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/call.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/call.ex index f0f1c6bb1712..baebfc889778 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/call.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/call.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Geth.Call do @moduledoc """ A single call returned from [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction) diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/calls.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/calls.ex index d11c0192da38..eb3ba743ff27 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/calls.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/calls.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Geth.Calls do @moduledoc """ Calls returned from [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction) diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/polygon_tracer.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/polygon_tracer.ex index edc16207c961..eb87a91cf73a 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/polygon_tracer.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/polygon_tracer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Geth.PolygonTracer do @moduledoc """ Elixir implementation of a custom tracer (`priv/js/ethereum_jsonrpc/geth/debug_traceTransaction/tracer.js`) diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/tracer.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/tracer.ex index cc17cc1cb00d..2ec55b8092d9 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/tracer.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth/tracer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Geth.Tracer do @moduledoc """ Elixir implementation of a custom tracer (`priv/js/ethereum_jsonrpc/geth/debug_traceTransaction/tracer.js`) diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http.ex index 12ec8e486fce..ac60ee0fce98 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.HTTP do @moduledoc """ JSONRPC over HTTP diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http/helper.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http/helper.ex index 7817b679ffa6..8c2d256443b7 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http/helper.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.HTTP.Helper do @moduledoc """ Helper functions for `EthereumJSONRPC.HTTP` implementations. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http/httpoison.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http/httpoison.ex index abc04c7bde7d..25a0c60429c8 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http/httpoison.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http/httpoison.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.HTTP.HTTPoison do @moduledoc """ Uses `HTTPoison` for `EthereumJSONRPC.HTTP` diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http/tesla.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http/tesla.ex index b3efbc208352..030c04cef753 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http/tesla.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/http/tesla.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.HTTP.Tesla do @moduledoc """ Uses `Tesla.Mint` for `EthereumJSONRPC.HTTP` diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/ipc.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/ipc.ex index b030a6abf35c..5cd19112669f 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/ipc.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/ipc.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.IPC do use GenServer @moduledoc false diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/log.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/log.ex index 7e7ace5b2a57..780418aab409 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/log.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/log.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Log do @moduledoc """ Log included in return from diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/logs.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/logs.ex index de6b81dbf367..4e957d8727f7 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/logs.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/logs.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Logs do @moduledoc """ Collection of logs included in return from diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind.ex index 5f9118670951..8045357c1fa9 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # credo:disable-for-this-file defmodule EthereumJSONRPC.Nethermind do @moduledoc """ diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace.ex index f7fe676de7e7..8dc947ef3d98 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Nethermind.Trace do @moduledoc """ Trace returned by diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace/action.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace/action.ex index 168b13efc7e0..f7d3a6d4e3e7 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace/action.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace/action.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Nethermind.Trace.Action do @moduledoc """ The action that was performed in a `t:EthereumJSONRPC.Nethermind.Trace.t/0` diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace/result.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace/result.ex index 8bab46b3072e..f9700b36b65d 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace/result.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/trace/result.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Nethermind.Trace.Result do @moduledoc """ The result of performing the `t:EthereumJSONRPC.Nethermind.Action.t/0` in a `t:EthereumJSONRPC.Nethermind.Trace.t/0`. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/traces.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/traces.ex index 1386eb5f84da..b3043798ef82 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/traces.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nethermind/traces.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Nethermind.Traces do @moduledoc """ Trace returned by diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nft.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nft.ex index 62b52ab9fb48..30ae4bedb391 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nft.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nft.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.NFT do @moduledoc """ Module responsible for requesting token_uri and uri methods which needed for NFT metadata fetching diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nonce.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nonce.ex index 46eccdac302e..286bf5c6f5d5 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nonce.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nonce.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Nonce do @moduledoc """ A single code fetched from `eth_getTransactionCount`. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nonces.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nonces.ex index 2a2bf6ba5997..df7d074192e9 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nonces.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/nonces.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Nonces do @moduledoc """ Nonce params and errors from a batch request from `eth_getTransactionCount`. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/pending_transaction.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/pending_transaction.ex index a18362abcf2c..ce2a86218a77 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/pending_transaction.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/pending_transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.PendingTransaction do @moduledoc """ Defines pending transactions fetching functions diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/prometheus/instrumenter.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/prometheus/instrumenter.ex index 81b536102902..95ad5f64d6f9 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/prometheus/instrumenter.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/prometheus/instrumenter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Prometheus.Instrumenter do @moduledoc """ JSON RPC metrics for `Prometheus`. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/receipt.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/receipt.ex index 0366cd0b9a5c..4e5f2215e0e0 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/receipt.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/receipt.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Receipt do @moduledoc """ Receipts format as returned by diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/receipts.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/receipts.ex index e8a9bf765d53..7ff22385111b 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/receipts.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/receipts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Receipts do @moduledoc """ Receipts format as returned by diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/receipts/by_block_number.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/receipts/by_block_number.ex index c44588ecf45c..794fa3c3c769 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/receipts/by_block_number.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/receipts/by_block_number.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Receipts.ByBlockNumber do @moduledoc """ Provides functionality to compose JSON-RPC requests for fetching Ethereum block receipts by the block number. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/receipts/by_transaction_hash.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/receipts/by_transaction_hash.ex index 1796607cf12a..b25466aac1f1 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/receipts/by_transaction_hash.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/receipts/by_transaction_hash.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Receipts.ByTransactionHash do @moduledoc """ Provides functionality to compose JSON-RPC requests for fetching Ethereum transaction receipt by the transaction hash. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/request_coordinator.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/request_coordinator.ex index 77ee7d3906bd..aac43018a75f 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/request_coordinator.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/request_coordinator.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.RequestCoordinator do @moduledoc """ Coordinates requests with a backoff strategy. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rolling_window.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rolling_window.ex index 3ec70dc966a5..a4ba29f4622c 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rolling_window.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rolling_window.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.RollingWindow do @moduledoc """ Tracker for counting an event that occurs within a moving time window. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rsk.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rsk.ex index d19975cb7d2a..960947b3d7a6 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rsk.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rsk.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.RSK do @moduledoc """ Ethereum JSONRPC methods that are/are not supported by [RSK](https://www.rsk.co/). diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rsk/trace.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rsk/trace.ex index 3a765132493e..790559950b9a 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rsk/trace.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rsk/trace.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.RSK.Trace do @moduledoc """ Trace returned by diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rsk/traces.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rsk/traces.ex index f74eef343c58..72f24a5936c0 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rsk/traces.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/rsk/traces.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.RSK.Traces do @moduledoc """ Traces returned by diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/signed_authorization.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/signed_authorization.ex index 47daee35a735..171456d530f0 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/signed_authorization.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/signed_authorization.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.SignedAuthorization do @moduledoc """ The format of authorization tuples returned for diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/subscription.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/subscription.ex index 428a9c30c852..db7522d91992 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/subscription.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/subscription.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Subscription do @moduledoc """ A subscription to an event diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/trace_block.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/trace_block.ex index 2192962c0ffb..c492cd594700 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/trace_block.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/trace_block.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.TraceBlock do @moduledoc """ Functions for processing the data from `trace_block` JSON RPC method. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/trace_replay_block_transactions.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/trace_replay_block_transactions.ex index 0b8f084fcc17..0138b46799b0 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/trace_replay_block_transactions.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/trace_replay_block_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.TraceReplayBlockTransactions do @moduledoc """ Methods for processing the data from `trace_replayTransaction` and `trace_replayBlockTransactions` JSON RPC methods diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/tracer.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/tracer.ex index 159ed37bbb25..a66a4cffa394 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/tracer.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/tracer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Tracer do @moduledoc false diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/transaction.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/transaction.ex index d11b02dd2fc7..568b2a979516 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/transaction.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Transaction do @moduledoc """ Transaction format included in the return of diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/transactions.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/transactions.ex index 702786bae824..5d4ed385a59b 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/transactions.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Transactions do @moduledoc """ List of transactions format as included in return from diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/transport.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/transport.ex index 829f5816d3f8..3f8e38b75d50 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/transport.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/transport.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Transport do @moduledoc """ The transport over which JSONRPC calls occur. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/uncle.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/uncle.ex index b9cd6e58d126..23a3357bc9d6 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/uncle.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/uncle.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Uncle do @moduledoc """ [Uncle](https://ethereum.org/en/glossary). diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/uncles.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/uncles.ex index fe36b7aa33c1..12506be06bcb 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/uncles.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/uncles.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Uncles do @moduledoc """ List of [uncles](https://ethereum.org/en/glossary). Uncles are blocks that didn't diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/utility/common_helper.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/utility/common_helper.ex index d6bca798daad..c1ab36c2c2a5 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/utility/common_helper.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/utility/common_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Utility.CommonHelper do @moduledoc """ Common helper functions diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/utility/endpoint_availability_checker.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/utility/endpoint_availability_checker.ex index 36e6632b8210..9cd09d0d47ea 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/utility/endpoint_availability_checker.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/utility/endpoint_availability_checker.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Utility.EndpointAvailabilityChecker do @moduledoc """ Monitors and verifies the availability of Ethereum JSON-RPC endpoints. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/utility/endpoint_availability_observer.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/utility/endpoint_availability_observer.ex index 9b10a5d0ea4b..e434525a9284 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/utility/endpoint_availability_observer.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/utility/endpoint_availability_observer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Utility.EndpointAvailabilityObserver do @moduledoc """ Monitors and manages the availability of JSON-RPC endpoints. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/utility/ranges_helper.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/utility/ranges_helper.ex index eda487cd1a2f..22a4d052e7ae 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/utility/ranges_helper.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/utility/ranges_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # credo:disable-for-this-file defmodule EthereumJSONRPC.Utility.RangesHelper do @moduledoc """ diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/variant.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/variant.ex index c4991fe97c92..6f2f198909ba 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/variant.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/variant.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Variant do @moduledoc """ A variant of the Ethereum JSONRPC API. Each Ethereum client supports slightly different versions of the non-standard diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket.ex index a6d7afccb4f0..887d92265797 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.WebSocket do @moduledoc """ JSONRPC over WebSocket. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/registration.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/registration.ex index af3e720a5e37..416d1b0b0a1c 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/registration.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/registration.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.WebSocket.Registration do @moduledoc """ When a caller registers for responses to asynchronous frame responses. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/retry_worker.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/retry_worker.ex index 4a6329edc036..d289b20f7b01 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/retry_worker.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/retry_worker.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.WebSocket.RetryWorker do @moduledoc """ Stores the unavailable websocket endpoint state and periodically checks if it is already available. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/supervisor.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/supervisor.ex index 974b249e18df..c7eeb7979248 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/supervisor.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/supervisor.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.WebSocket.Supervisor do @moduledoc """ Supervises the processes related to `EthereumJSONRPC.WebSocket`. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/web_socket_client.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/web_socket_client.ex index 56684ea575e1..c78f94133a66 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/web_socket_client.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/web_socket_client.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.WebSocket.WebSocketClient do @moduledoc """ `EthereumJSONRPC.WebSocket` that uses `WebSockex` diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/web_socket_client/options.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/web_socket_client/options.ex index 6d283ddfce30..bb9414512bf6 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/web_socket_client/options.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket/web_socket_client/options.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.WebSocket.WebSocketClient.Options do @moduledoc """ `t:EthereumJSONRPC.WebSocket.options/0` for `EthereumJSONRPC.WebSocket.WebSocketClient` `t:EthereumJSONRPC.Subscription.t/0` `transport_options`. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/withdrawal.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/withdrawal.ex index 98c72db232ff..5a9ea78d0334 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/withdrawal.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/withdrawal.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Withdrawal do @moduledoc """ Withdrawal format included in the return of diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/withdrawals.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/withdrawals.ex index 863857eee573..847ada27103a 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/withdrawals.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/withdrawals.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Withdrawals do @moduledoc """ List of withdrawals format included in the return of diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa.ex index 36815e47067d..88341620d89c 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Zilliqa do @moduledoc """ Zilliqa type definitions. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa/aggregate_quorum_certificate.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa/aggregate_quorum_certificate.ex index d114358938a7..be9bd91a2ae0 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa/aggregate_quorum_certificate.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa/aggregate_quorum_certificate.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Zilliqa.AggregateQuorumCertificate do @moduledoc """ Represents an aggregate quorum certificate associated with the block. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa/helper.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa/helper.ex index cbc800d47200..8eb381d03845 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa/helper.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Zilliqa.Helper do @moduledoc """ Helper functions for processing consensus data. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa/nested_quorum_certificates.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa/nested_quorum_certificates.ex index 5320d483fab1..bf429649f2f7 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa/nested_quorum_certificates.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa/nested_quorum_certificates.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Zilliqa.NestedQuorumCertificates do @moduledoc """ Represents a list of quorum certificates that were proposed by different diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa/quorum_certificate.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa/quorum_certificate.ex index ea2716fe9fd8..20ce7fd5ac0b 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa/quorum_certificate.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zilliqa/quorum_certificate.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Zilliqa.QuorumCertificate do @moduledoc """ Represents a quorum certificate associated with the block. diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zksync/constants/contracts.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zksync/constants/contracts.ex index f18a87b5c769..e51d9ace5927 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zksync/constants/contracts.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/zksync/constants/contracts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.ZkSync.Constants.Contracts do @moduledoc """ Provides constants and ABI definitions for zkSync-specific smart contracts. diff --git a/apps/ethereum_jsonrpc/mix.exs b/apps/ethereum_jsonrpc/mix.exs index d4e9c47548db..20dbdca78ccc 100644 --- a/apps/ethereum_jsonrpc/mix.exs +++ b/apps/ethereum_jsonrpc/mix.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.MixProject do use Mix.Project diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/block_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/block_test.exs index 47f01c803b24..834d7680baf1 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/block_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/block_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.BlockTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/blocks_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/blocks_test.exs index 37626d801d89..c158b3d2dae4 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/blocks_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/blocks_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.BlocksTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/contract_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/contract_test.exs index 798df71234b5..1fabb6e498f1 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/contract_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/contract_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.ContractTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/encoder_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/encoder_test.exs index 7539b8e582ba..79dbcc8dc0df 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/encoder_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/encoder_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.EncoderTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/fetched_beneficiaries_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/fetched_beneficiaries_test.exs index b2450f2d6d33..de213edabf13 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/fetched_beneficiaries_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/fetched_beneficiaries_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.FetchedBeneficiariesTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/filecoin_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/filecoin_test.exs index f51fe44ed82f..dbffa49bc79a 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/filecoin_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/filecoin_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.FilecoinTest do use EthereumJSONRPC.Case, async: false diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/geth/call_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/geth/call_test.exs index 0a99fa5ab252..4b5296a26213 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/geth/call_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/geth/call_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Geth.CallTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/geth/calls_tests.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/geth/calls_tests.exs index 6d64dabd6220..fd6ba2cedd3d 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/geth/calls_tests.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/geth/calls_tests.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Geth.CallsTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/geth/tracer_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/geth/tracer_test.exs index f2a8da987e2b..0d55feef46bf 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/geth/tracer_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/geth/tracer_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Geth.TracerTest do use EthereumJSONRPC.Case, async: false diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/geth_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/geth_test.exs index a1e46c1d5150..a3ac185aed22 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/geth_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/geth_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.GethTest do use EthereumJSONRPC.Case, async: false diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/http/mox_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/http/mox_test.exs index d72721d62ab8..51e988b744ab 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/http/mox_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/http/mox_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.HTTP.MoxTest do @moduledoc """ Tests differences in behavior of `EthereumJSONRPC` when `EthereumJSONRPC.HTTP` is used as the transport that are too diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/log_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/log_test.exs index 3237ea830374..ca1be781bb91 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/log_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/log_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.LogTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/mox_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/mox_test.exs index f0c4fbaf2d65..937c4a49cf5a 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/mox_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/mox_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.MoxTest do @moduledoc """ Tests that only work with `EthereumJSONRPC.Mox` because they need precise data back from the network that can't be diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/nethermind/trace/action_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/nethermind/trace/action_test.exs index 467a9938bbce..b73252cc6377 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/nethermind/trace/action_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/nethermind/trace/action_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Nethermind.Trace.ActionTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/nethermind/trace/result_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/nethermind/trace/result_test.exs index cbd19a3a54c1..b958067bf895 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/nethermind/trace/result_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/nethermind/trace/result_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Nethermind.Trace.ResultTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/nethermind/trace_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/nethermind/trace_test.exs index 5a75a6d2aef2..d1998929504c 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/nethermind/trace_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/nethermind/trace_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Nethermind.TraceTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/nethermind_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/nethermind_test.exs index b1bac210fa0f..74099b496d27 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/nethermind_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/nethermind_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.NethermindTest do use ExUnit.Case, async: true use EthereumJSONRPC.Case diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/receipt_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/receipt_test.exs index 763c4b62d1eb..033f2b4f71ab 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/receipt_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/receipt_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.ReceiptTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/receipts_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/receipts_test.exs index 112ba413deb0..c16a569b8bf3 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/receipts_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/receipts_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.ReceiptsTest do use ExUnit.Case, async: true use EthereumJSONRPC.Case diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/request_coordinator_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/request_coordinator_test.exs index 0eaa6c1f3159..f60abd2ce51c 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/request_coordinator_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/request_coordinator_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.RequestCoordinatorTest do use ExUnit.Case use EthereumJSONRPC.Case diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/rolling_window_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/rolling_window_test.exs index 3ea1954ae331..f74c2c815c84 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/rolling_window_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/rolling_window_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.RollingWindowTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/transaction_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/transaction_test.exs index fd2715aa7e3e..7c75fa187e36 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/transaction_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/transaction_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.TransactionTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/transactions_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/transactions_test.exs index 0ea88f015094..bfa363c28457 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/transactions_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/transactions_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.TransactionsTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/uncle_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/uncle_test.exs index 7cc8f18acb04..071c173f3ba7 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/uncle_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/uncle_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.UncleTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/uncles_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/uncles_test.exs index b38e3ad1cd89..aaad5b26f1ac 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/uncles_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/uncles_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.UnclesTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/utility/common_helper_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/utility/common_helper_test.exs index 12dd93c30923..02e7131b9199 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/utility/common_helper_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/utility/common_helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Utility.CommonHelperTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/utility/ranges_helper_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/utility/ranges_helper_test.exs index d7cb9f8a56f8..ca964c3d50ca 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/utility/ranges_helper_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/utility/ranges_helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Utility.RangesHelperTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/web_socket/web_socket_client_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/web_socket/web_socket_client_test.exs index 245bf124ee1a..cfc762a44c1b 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/web_socket/web_socket_client_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/web_socket/web_socket_client_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.WebSocket.WebSocketClientTest do use ExUnit.Case diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/web_socket_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/web_socket_test.exs index 0433d59a115b..f77e97771ee6 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/web_socket_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/web_socket_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.WebSocketTest do use EthereumJSONRPC.WebSocket.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/withdrawal_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/withdrawal_test.exs index 8f8214c62d25..83cd46dbf68b 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/withdrawal_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/withdrawal_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.WithdrawalTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/withdrawals_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/withdrawals_test.exs index a4d4b4845968..2d56affe145a 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/withdrawals_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/withdrawals_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.WithdrawalsTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/zilliqa_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/zilliqa_test.exs index 41e67123b9eb..6542aec22ea5 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/zilliqa_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc/zilliqa_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.ZilliqaTest do use ExUnit.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc_test.exs b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc_test.exs index f640a3b32e0f..27a09f53179e 100644 --- a/apps/ethereum_jsonrpc/test/ethereum_jsonrpc_test.exs +++ b/apps/ethereum_jsonrpc/test/ethereum_jsonrpc_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPCTest do use EthereumJSONRPC.Case, async: true diff --git a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case.ex b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case.ex index 194680321d09..4cefea71defb 100644 --- a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case.ex +++ b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Case do @moduledoc """ Adds `json_rpc_named_arguments` and `subscribe_named_arguments` to context. diff --git a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/filecoin/mox.ex b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/filecoin/mox.ex index 12510755ad9e..9e771898c521 100644 --- a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/filecoin/mox.ex +++ b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/filecoin/mox.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Case.Filecoin.Mox do @moduledoc """ `EthereumJSONRPC.Case` for mocking connecting to Filecoin using `Mox` diff --git a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/geth/http_websocket.ex b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/geth/http_websocket.ex index 5845518cf367..381dfced616b 100644 --- a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/geth/http_websocket.ex +++ b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/geth/http_websocket.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Case.Geth.HTTPWebSocket do @moduledoc """ `EthereumJSONRPC.Case` for connecting to Geth using `EthereumJSONRPC.HTTP` for `json_rpc_named_arguments` diff --git a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/geth/mox.ex b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/geth/mox.ex index 41a2593cb946..f49bc81f40c7 100644 --- a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/geth/mox.ex +++ b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/geth/mox.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Case.Geth.Mox do @moduledoc """ `EthereumJSONRPC.Case` for mocking connecting to Geth using `Mox` diff --git a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/nethermind/http_websocket.ex b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/nethermind/http_websocket.ex index ef087b5b11d8..4025592def0e 100644 --- a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/nethermind/http_websocket.ex +++ b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/nethermind/http_websocket.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Case.Nethermind.HTTPWebSocket do @moduledoc """ `EthereumJSONRPC.Case` for connecting to Nethermind using `EthereumJSONRPC.HTTP` for `json_rpc_named_arguments` diff --git a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/nethermind/mox.ex b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/nethermind/mox.ex index 18b25d4cca55..4369aebe8763 100644 --- a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/nethermind/mox.ex +++ b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/case/nethermind/mox.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.Case.Nethermind.Mox do @moduledoc """ `EthereumJSONRPC.Case` for mocking connecting to Nethermind using `Mox` diff --git a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/http/case.ex b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/http/case.ex index 7488dc96b8cc..453dd96348bb 100644 --- a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/http/case.ex +++ b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/http/case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.HTTP.Case do use ExUnit.CaseTemplate diff --git a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/case.ex b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/case.ex index 7e3eb6356245..050f98fbda34 100644 --- a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/case.ex +++ b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.WebSocket.Case do use ExUnit.CaseTemplate diff --git a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/case/geth.ex b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/case/geth.ex index 957d31e7a9b8..697ed3363e13 100644 --- a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/case/geth.ex +++ b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/case/geth.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.WebSocket.Case.Geth do @moduledoc """ `EthereumJSONRPC.WebSocket.Case` connecting to Geth. diff --git a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/case/mox.ex b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/case/mox.ex index 465bd1d2da2b..2445fd835b32 100644 --- a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/case/mox.ex +++ b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/case/mox.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.WebSocket.Case.Mox do @moduledoc """ `EthereumJSONRPC.WebSocket.Case` using `Mox` diff --git a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/case/nethermind.ex b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/case/nethermind.ex index 5d870bfa1e03..e702b1412002 100644 --- a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/case/nethermind.ex +++ b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/case/nethermind.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule EthereumJSONRPC.WebSocket.Case.Nethermind do @moduledoc """ `EthereumJSONRPC.WebSocket.Case` connecting to Nethermind. diff --git a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/cowboy/websocket_handler.ex b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/cowboy/websocket_handler.ex index bdb7989d149a..0862d0a28746 100644 --- a/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/cowboy/websocket_handler.ex +++ b/apps/ethereum_jsonrpc/test/support/ethereum_jsonrpc/web_socket/cowboy/websocket_handler.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # See https://github.com/ninenines/cowboy/blob/2.6.1/examples/websocket/src/ws_h.erl # See https://ninenines.eu/docs/en/cowboy/2.6/guide/ws_handlers/ defmodule EthereumJSONRPC.WebSocket.Cowboy.WebSocketHandler do diff --git a/apps/ethereum_jsonrpc/test/test_helper.exs b/apps/ethereum_jsonrpc/test/test_helper.exs index 4853c7ee08f8..decbd9685828 100644 --- a/apps/ethereum_jsonrpc/test/test_helper.exs +++ b/apps/ethereum_jsonrpc/test/test_helper.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # https://github.com/CircleCI-Public/circleci-demo-elixir-phoenix/blob/a89de33a01df67b6773ac90adc74c34367a4a2d6/test/test_helper.exs#L1-L3 junit_folder = Mix.Project.build_path() <> "/junit/#{Mix.Project.config()[:app]}" File.mkdir_p!(junit_folder) diff --git a/apps/explorer/benchmarks/explorer/chain/tokens.exs b/apps/explorer/benchmarks/explorer/chain/tokens.exs index 14244e17d7b4..6866f1bad433 100644 --- a/apps/explorer/benchmarks/explorer/chain/tokens.exs +++ b/apps/explorer/benchmarks/explorer/chain/tokens.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.FiatValueBenchmark do @moduledoc """ Benchmark for the performance of fetching fiat value type data from the database. diff --git a/apps/explorer/benchmarks/explorer/chain/transaction/recent_collated_transactions.exs b/apps/explorer/benchmarks/explorer/chain/transaction/recent_collated_transactions.exs index 573be65b2241..01bd51ab3969 100644 --- a/apps/explorer/benchmarks/explorer/chain/transaction/recent_collated_transactions.exs +++ b/apps/explorer/benchmarks/explorer/chain/transaction/recent_collated_transactions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout path = "benchmarks/explorer/chain/recent_collated_transactions.benchee" import Explorer.Factory diff --git a/apps/explorer/config/config.exs b/apps/explorer/config/config.exs index 71bf3a2e4074..267b1cd0abe2 100644 --- a/apps/explorer/config/config.exs +++ b/apps/explorer/config/config.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # This file is responsible for configuring your application # and its dependencies with the aid of the Config module. # diff --git a/apps/explorer/config/dev.exs b/apps/explorer/config/dev.exs index 233383067a38..0acd9f631553 100644 --- a/apps/explorer/config/dev.exs +++ b/apps/explorer/config/dev.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config # Configure your database diff --git a/apps/explorer/config/dev/anvil.exs b/apps/explorer/config/dev/anvil.exs index 0d51a3f47302..2c60115e39ed 100644 --- a/apps/explorer/config/dev/anvil.exs +++ b/apps/explorer/config/dev/anvil.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/explorer/config/dev/besu.exs b/apps/explorer/config/dev/besu.exs index bce0ddc56a6f..d0a434683641 100644 --- a/apps/explorer/config/dev/besu.exs +++ b/apps/explorer/config/dev/besu.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/explorer/config/dev/erigon.exs b/apps/explorer/config/dev/erigon.exs index f3e3fae33c99..e0f6dbe5bc08 100644 --- a/apps/explorer/config/dev/erigon.exs +++ b/apps/explorer/config/dev/erigon.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/explorer/config/dev/filecoin.exs b/apps/explorer/config/dev/filecoin.exs index 08d93a049ada..946b9d049020 100644 --- a/apps/explorer/config/dev/filecoin.exs +++ b/apps/explorer/config/dev/filecoin.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/explorer/config/dev/geth.exs b/apps/explorer/config/dev/geth.exs index 141bfd68bc34..48583ad4ed95 100644 --- a/apps/explorer/config/dev/geth.exs +++ b/apps/explorer/config/dev/geth.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/explorer/config/dev/nethermind.exs b/apps/explorer/config/dev/nethermind.exs index 343d2707cf9d..43d91848e7a1 100644 --- a/apps/explorer/config/dev/nethermind.exs +++ b/apps/explorer/config/dev/nethermind.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/explorer/config/dev/rsk.exs b/apps/explorer/config/dev/rsk.exs index 3948dc9cb3cb..ca2728bd18a2 100644 --- a/apps/explorer/config/dev/rsk.exs +++ b/apps/explorer/config/dev/rsk.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/explorer/config/prod.exs b/apps/explorer/config/prod.exs index 89c289570e71..fb1269d245f9 100644 --- a/apps/explorer/config/prod.exs +++ b/apps/explorer/config/prod.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config # Configures the database diff --git a/apps/explorer/config/prod/anvil.exs b/apps/explorer/config/prod/anvil.exs index 0d51a3f47302..2c60115e39ed 100644 --- a/apps/explorer/config/prod/anvil.exs +++ b/apps/explorer/config/prod/anvil.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/explorer/config/prod/besu.exs b/apps/explorer/config/prod/besu.exs index bce0ddc56a6f..d0a434683641 100644 --- a/apps/explorer/config/prod/besu.exs +++ b/apps/explorer/config/prod/besu.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/explorer/config/prod/erigon.exs b/apps/explorer/config/prod/erigon.exs index f3e3fae33c99..e0f6dbe5bc08 100644 --- a/apps/explorer/config/prod/erigon.exs +++ b/apps/explorer/config/prod/erigon.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/explorer/config/prod/filecoin.exs b/apps/explorer/config/prod/filecoin.exs index e8d01558045d..466f429bbce6 100644 --- a/apps/explorer/config/prod/filecoin.exs +++ b/apps/explorer/config/prod/filecoin.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/explorer/config/prod/geth.exs b/apps/explorer/config/prod/geth.exs index 141bfd68bc34..48583ad4ed95 100644 --- a/apps/explorer/config/prod/geth.exs +++ b/apps/explorer/config/prod/geth.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/explorer/config/prod/nethermind.exs b/apps/explorer/config/prod/nethermind.exs index 343d2707cf9d..43d91848e7a1 100644 --- a/apps/explorer/config/prod/nethermind.exs +++ b/apps/explorer/config/prod/nethermind.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/explorer/config/prod/rsk.exs b/apps/explorer/config/prod/rsk.exs index 3948dc9cb3cb..ca2728bd18a2 100644 --- a/apps/explorer/config/prod/rsk.exs +++ b/apps/explorer/config/prod/rsk.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/explorer/config/runtime/test.exs b/apps/explorer/config/runtime/test.exs index 055152ff6e28..c0f53d0ffa52 100644 --- a/apps/explorer/config/runtime/test.exs +++ b/apps/explorer/config/runtime/test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config alias EthereumJSONRPC.Variant diff --git a/apps/explorer/config/test.exs b/apps/explorer/config/test.exs index a59c5fef7824..5295d8ae9b3c 100644 --- a/apps/explorer/config/test.exs +++ b/apps/explorer/config/test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config # Lower hashing rounds for faster tests diff --git a/apps/explorer/config/test/anvil.exs b/apps/explorer/config/test/anvil.exs index cebd36b30a84..57169bdaeef8 100644 --- a/apps/explorer/config/test/anvil.exs +++ b/apps/explorer/config/test/anvil.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :explorer, diff --git a/apps/explorer/config/test/besu.exs b/apps/explorer/config/test/besu.exs index 25b35515b4f3..20644ec90e97 100644 --- a/apps/explorer/config/test/besu.exs +++ b/apps/explorer/config/test/besu.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :explorer, diff --git a/apps/explorer/config/test/erigon.exs b/apps/explorer/config/test/erigon.exs index 268b90cf609c..f3aec5e358af 100644 --- a/apps/explorer/config/test/erigon.exs +++ b/apps/explorer/config/test/erigon.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout use Mix.Config config :explorer, diff --git a/apps/explorer/config/test/filecoin.exs b/apps/explorer/config/test/filecoin.exs index e25ea90700c9..44c6110336b4 100644 --- a/apps/explorer/config/test/filecoin.exs +++ b/apps/explorer/config/test/filecoin.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :explorer, diff --git a/apps/explorer/config/test/geth.exs b/apps/explorer/config/test/geth.exs index ba6792324806..27315f6e7561 100644 --- a/apps/explorer/config/test/geth.exs +++ b/apps/explorer/config/test/geth.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :explorer, diff --git a/apps/explorer/config/test/nethermind.exs b/apps/explorer/config/test/nethermind.exs index e43ed5f3b415..98422e218d69 100644 --- a/apps/explorer/config/test/nethermind.exs +++ b/apps/explorer/config/test/nethermind.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :explorer, diff --git a/apps/explorer/config/test/rsk.exs b/apps/explorer/config/test/rsk.exs index 1799a52dc41c..101363d5eb3d 100644 --- a/apps/explorer/config/test/rsk.exs +++ b/apps/explorer/config/test/rsk.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :explorer, diff --git a/apps/explorer/lib/explorer.ex b/apps/explorer/lib/explorer.ex index e3c09512fbb1..9661f246ad84 100644 --- a/apps/explorer/lib/explorer.ex +++ b/apps/explorer/lib/explorer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer do @moduledoc """ Explorer keeps the contexts that define your domain diff --git a/apps/explorer/lib/explorer/access_helper.ex b/apps/explorer/lib/explorer/access_helper.ex index 5a0ae37001ce..7e4a05e1a788 100644 --- a/apps/explorer/lib/explorer/access_helper.ex +++ b/apps/explorer/lib/explorer/access_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.AccessHelper do @moduledoc """ Helper to restrict access to some pages filtering by address diff --git a/apps/explorer/lib/explorer/account.ex b/apps/explorer/lib/explorer/account.ex index aa9cd6e79ca7..8217fe51f280 100644 --- a/apps/explorer/lib/explorer/account.ex +++ b/apps/explorer/lib/explorer/account.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account do @moduledoc """ Context for Account module. diff --git a/apps/explorer/lib/explorer/account/api/key.ex b/apps/explorer/lib/explorer/account/api/key.ex index 8afd77756b9c..753bbcda6ea6 100644 --- a/apps/explorer/lib/explorer/account/api/key.ex +++ b/apps/explorer/lib/explorer/account/api/key.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.Api.Key do @moduledoc """ Module is responsible for schema for API keys, keys is used to track number of requests to the API endpoints diff --git a/apps/explorer/lib/explorer/account/api/plan.ex b/apps/explorer/lib/explorer/account/api/plan.ex index 599f133caa2f..66993e06e950 100644 --- a/apps/explorer/lib/explorer/account/api/plan.ex +++ b/apps/explorer/lib/explorer/account/api/plan.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.Api.Plan do @moduledoc """ Module is responsible for schema for API plans, each plan contains its name and maximum number of requests per second diff --git a/apps/explorer/lib/explorer/account/auth0_to_keycloak_migration.ex b/apps/explorer/lib/explorer/account/auth0_to_keycloak_migration.ex index 399b12ca6945..6228da8ba769 100644 --- a/apps/explorer/lib/explorer/account/auth0_to_keycloak_migration.ex +++ b/apps/explorer/lib/explorer/account/auth0_to_keycloak_migration.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.Auth0ToKeycloakMigration do @moduledoc """ Migrates users from Auth0 to Keycloak in bulk using batch APIs. diff --git a/apps/explorer/lib/explorer/account/authentication.ex b/apps/explorer/lib/explorer/account/authentication.ex index d5062001c510..6f4df7454aba 100644 --- a/apps/explorer/lib/explorer/account/authentication.ex +++ b/apps/explorer/lib/explorer/account/authentication.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.Authentication do @moduledoc """ Context module for user authentication and third-party identity management. diff --git a/apps/explorer/lib/explorer/account/custom_abi.ex b/apps/explorer/lib/explorer/account/custom_abi.ex index 66c69a2d16c9..a63c17ac1a56 100644 --- a/apps/explorer/lib/explorer/account/custom_abi.ex +++ b/apps/explorer/lib/explorer/account/custom_abi.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.CustomABI do @moduledoc """ Module is responsible for schema for API keys, keys is used to track number of requests to the API endpoints diff --git a/apps/explorer/lib/explorer/account/identity.ex b/apps/explorer/lib/explorer/account/identity.ex index 40e08cce9c1f..a50ffdf003c5 100644 --- a/apps/explorer/lib/explorer/account/identity.ex +++ b/apps/explorer/lib/explorer/account/identity.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.Identity do @moduledoc """ Identity of user fetched via Oauth diff --git a/apps/explorer/lib/explorer/account/notifier/email.ex b/apps/explorer/lib/explorer/account/notifier/email.ex index 3c9c443b0fcb..6eab3f9f0c5f 100644 --- a/apps/explorer/lib/explorer/account/notifier/email.ex +++ b/apps/explorer/lib/explorer/account/notifier/email.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.Notifier.Email do @moduledoc """ Composing an email to sendgrid diff --git a/apps/explorer/lib/explorer/account/notifier/forbidden_address.ex b/apps/explorer/lib/explorer/account/notifier/forbidden_address.ex index e2b19c26b519..5c324812b90a 100644 --- a/apps/explorer/lib/explorer/account/notifier/forbidden_address.ex +++ b/apps/explorer/lib/explorer/account/notifier/forbidden_address.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.Notifier.ForbiddenAddress do @moduledoc """ Check if address is forbidden to notify diff --git a/apps/explorer/lib/explorer/account/notifier/notify.ex b/apps/explorer/lib/explorer/account/notifier/notify.ex index cdaa60fe2592..7bbaf6a06965 100644 --- a/apps/explorer/lib/explorer/account/notifier/notify.ex +++ b/apps/explorer/lib/explorer/account/notifier/notify.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.Notifier.Notify do @moduledoc """ Composing notification, store and send it to email diff --git a/apps/explorer/lib/explorer/account/notifier/summary.ex b/apps/explorer/lib/explorer/account/notifier/summary.ex index 23de4df94752..827efeedd146 100644 --- a/apps/explorer/lib/explorer/account/notifier/summary.ex +++ b/apps/explorer/lib/explorer/account/notifier/summary.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.Notifier.Summary do @moduledoc """ Compose a summary from transactions diff --git a/apps/explorer/lib/explorer/account/notify.ex b/apps/explorer/lib/explorer/account/notify.ex index b731ea81a4a9..cacc8820e017 100644 --- a/apps/explorer/lib/explorer/account/notify.ex +++ b/apps/explorer/lib/explorer/account/notify.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.Notify do @moduledoc """ Interface for notifier, for import and call from other modules diff --git a/apps/explorer/lib/explorer/account/tag_address.ex b/apps/explorer/lib/explorer/account/tag_address.ex index caea1f365f13..be96f44ddaf0 100644 --- a/apps/explorer/lib/explorer/account/tag_address.ex +++ b/apps/explorer/lib/explorer/account/tag_address.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.TagAddress do @moduledoc """ User created custom address tags. diff --git a/apps/explorer/lib/explorer/account/tag_transaction.ex b/apps/explorer/lib/explorer/account/tag_transaction.ex index 893475894765..301e173ddafa 100644 --- a/apps/explorer/lib/explorer/account/tag_transaction.ex +++ b/apps/explorer/lib/explorer/account/tag_transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.TagTransaction do @moduledoc """ This is a personal tag for transaction diff --git a/apps/explorer/lib/explorer/account/watchlist.ex b/apps/explorer/lib/explorer/account/watchlist.ex index bb32b0244b82..af21a665a89c 100644 --- a/apps/explorer/lib/explorer/account/watchlist.ex +++ b/apps/explorer/lib/explorer/account/watchlist.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.Watchlist do @moduledoc """ Watchlist is root entity for WatchlistAddresses diff --git a/apps/explorer/lib/explorer/account/watchlist_address.ex b/apps/explorer/lib/explorer/account/watchlist_address.ex index 715213ce6bee..abb85d419565 100644 --- a/apps/explorer/lib/explorer/account/watchlist_address.ex +++ b/apps/explorer/lib/explorer/account/watchlist_address.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.WatchlistAddress.Schema do @moduledoc """ Models account's addresses watchlist. diff --git a/apps/explorer/lib/explorer/account/watchlist_notification.ex b/apps/explorer/lib/explorer/account/watchlist_notification.ex index e84c8fcb8e9c..ff12ccb866f2 100644 --- a/apps/explorer/lib/explorer/account/watchlist_notification.ex +++ b/apps/explorer/lib/explorer/account/watchlist_notification.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.WatchlistNotification do @moduledoc """ Stored notification about event diff --git a/apps/explorer/lib/explorer/accounts/accounts.ex b/apps/explorer/lib/explorer/accounts/accounts.ex index 079b8309cf35..614f2de7f7e7 100644 --- a/apps/explorer/lib/explorer/accounts/accounts.ex +++ b/apps/explorer/lib/explorer/accounts/accounts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Accounts do @moduledoc """ Entrypoint for modifying user account information. diff --git a/apps/explorer/lib/explorer/accounts/user.ex b/apps/explorer/lib/explorer/accounts/user.ex index 20291b95c651..677cfe9b98a1 100644 --- a/apps/explorer/lib/explorer/accounts/user.ex +++ b/apps/explorer/lib/explorer/accounts/user.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Accounts.User do @moduledoc """ An Explorer user. diff --git a/apps/explorer/lib/explorer/accounts/user/authenticate.ex b/apps/explorer/lib/explorer/accounts/user/authenticate.ex index ea127d1a05ab..17075ec06b5c 100644 --- a/apps/explorer/lib/explorer/accounts/user/authenticate.ex +++ b/apps/explorer/lib/explorer/accounts/user/authenticate.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Accounts.User.Authenticate do @moduledoc """ Represents the data required to authenticate a user. diff --git a/apps/explorer/lib/explorer/accounts/user/registration.ex b/apps/explorer/lib/explorer/accounts/user/registration.ex index b62dd1c25e40..5c63a910fc4a 100644 --- a/apps/explorer/lib/explorer/accounts/user/registration.ex +++ b/apps/explorer/lib/explorer/accounts/user/registration.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Accounts.User.Registration do @moduledoc """ Represents the data required to register a new account. diff --git a/apps/explorer/lib/explorer/accounts/user_contact.ex b/apps/explorer/lib/explorer/accounts/user_contact.ex index 5b53692f38e1..75ea999c4ae8 100644 --- a/apps/explorer/lib/explorer/accounts/user_contact.ex +++ b/apps/explorer/lib/explorer/accounts/user_contact.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Accounts.UserContact do @moduledoc """ A individual form of contacting the user. diff --git a/apps/explorer/lib/explorer/admin.ex b/apps/explorer/lib/explorer/admin.ex index 3fd30bafa666..285a5ae44fcc 100644 --- a/apps/explorer/lib/explorer/admin.ex +++ b/apps/explorer/lib/explorer/admin.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Admin do @moduledoc """ Context for performing administrative tasks. diff --git a/apps/explorer/lib/explorer/admin/administrator.ex b/apps/explorer/lib/explorer/admin/administrator.ex index 2f3109c10bc4..34bd52fd80ee 100644 --- a/apps/explorer/lib/explorer/admin/administrator.ex +++ b/apps/explorer/lib/explorer/admin/administrator.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Admin.Administrator do @moduledoc """ Represents a user with administrative privileges. diff --git a/apps/explorer/lib/explorer/admin/recovery.ex b/apps/explorer/lib/explorer/admin/recovery.ex index 0e12681d1997..f10f2200e2e3 100644 --- a/apps/explorer/lib/explorer/admin/recovery.ex +++ b/apps/explorer/lib/explorer/admin/recovery.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Admin.Recovery do @moduledoc """ Generates a recovery key to configure the application as an administrator. diff --git a/apps/explorer/lib/explorer/admin/role.ex b/apps/explorer/lib/explorer/admin/role.ex index ef31ed957c3f..f53f5c5cb0cb 100644 --- a/apps/explorer/lib/explorer/admin/role.ex +++ b/apps/explorer/lib/explorer/admin/role.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Admin.Administrator.Role do @moduledoc """ Supported roles for an administrator. diff --git a/apps/explorer/lib/explorer/application.ex b/apps/explorer/lib/explorer/application.ex index cac4ee138d50..149c0e0f1f5e 100644 --- a/apps/explorer/lib/explorer/application.ex +++ b/apps/explorer/lib/explorer/application.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Application do @moduledoc """ This is the Application module for Explorer. diff --git a/apps/explorer/lib/explorer/application/constants.ex b/apps/explorer/lib/explorer/application/constants.ex index 9f0acb1b3bbe..69beb1081db7 100644 --- a/apps/explorer/lib/explorer/application/constants.ex +++ b/apps/explorer/lib/explorer/application/constants.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Application.Constants do @moduledoc """ Tracks some kv info diff --git a/apps/explorer/lib/explorer/arbitrum/claim_rollup_message.ex b/apps/explorer/lib/explorer/arbitrum/claim_rollup_message.ex index 8e6705784fd8..8660d9356d78 100644 --- a/apps/explorer/lib/explorer/arbitrum/claim_rollup_message.ex +++ b/apps/explorer/lib/explorer/arbitrum/claim_rollup_message.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Arbitrum.ClaimRollupMessage do @moduledoc """ Provides functionality to read L2->L1 messages and prepare withdrawal claims in the Arbitrum protocol. diff --git a/apps/explorer/lib/explorer/arbitrum/withdraw.ex b/apps/explorer/lib/explorer/arbitrum/withdraw.ex index 37fea4dde130..f18a607c1a6d 100644 --- a/apps/explorer/lib/explorer/arbitrum/withdraw.ex +++ b/apps/explorer/lib/explorer/arbitrum/withdraw.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Arbitrum.Withdraw do @moduledoc """ Models an L2->L1 withdraw on Arbitrum. diff --git a/apps/explorer/lib/explorer/bloom_filter.ex b/apps/explorer/lib/explorer/bloom_filter.ex index a5b636207a9a..c869cc7d6963 100644 --- a/apps/explorer/lib/explorer/bloom_filter.ex +++ b/apps/explorer/lib/explorer/bloom_filter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.BloomFilter do @moduledoc """ Eth Bloom filter realization. Reference: https://github.com/NethermindEth/nethermind/blob/d61c78af6de2d0a89bd4efd6bfed62cb6b774f59/src/Nethermind/Nethermind.Core/Bloom.cs diff --git a/apps/explorer/lib/explorer/bound_queue.ex b/apps/explorer/lib/explorer/bound_queue.ex index daa44deb641d..6402a6546753 100644 --- a/apps/explorer/lib/explorer/bound_queue.ex +++ b/apps/explorer/lib/explorer/bound_queue.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.BoundQueue do @moduledoc """ A queue that tracks its size and can have its size bound to a maximum. diff --git a/apps/explorer/lib/explorer/chain.ex b/apps/explorer/lib/explorer/chain.ex index 5cb5ddf488ed..3068a32dcd17 100644 --- a/apps/explorer/lib/explorer/chain.ex +++ b/apps/explorer/lib/explorer/chain.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain do @moduledoc """ The chain context. diff --git a/apps/explorer/lib/explorer/chain/address.ex b/apps/explorer/lib/explorer/chain/address.ex index f9a64cf4027f..57bb153ec3a6 100644 --- a/apps/explorer/lib/explorer/chain/address.ex +++ b/apps/explorer/lib/explorer/chain/address.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.Schema do @moduledoc """ A stored representation of a web3 address. diff --git a/apps/explorer/lib/explorer/chain/address/coin_balance.ex b/apps/explorer/lib/explorer/chain/address/coin_balance.ex index b08bce8608c9..980991f4a6eb 100644 --- a/apps/explorer/lib/explorer/chain/address/coin_balance.ex +++ b/apps/explorer/lib/explorer/chain/address/coin_balance.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.CoinBalance do @moduledoc """ The `t:Explorer.Chain.Wei.t/0` `value` of `t:Explorer.Chain.Address.t/0` at the end of a `t:Explorer.Chain.Block.t/0` diff --git a/apps/explorer/lib/explorer/chain/address/coin_balance_daily.ex b/apps/explorer/lib/explorer/chain/address/coin_balance_daily.ex index 37edd6c2a19f..7b4191b47da5 100644 --- a/apps/explorer/lib/explorer/chain/address/coin_balance_daily.ex +++ b/apps/explorer/lib/explorer/chain/address/coin_balance_daily.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.CoinBalanceDaily do @moduledoc """ Maximum `t:Explorer.Chain.Wei.t/0` `value` of `t:Explorer.Chain.Address.t/0` at the day. diff --git a/apps/explorer/lib/explorer/chain/address/counters.ex b/apps/explorer/lib/explorer/chain/address/counters.ex index 2b4e6170000d..57e7565bf009 100644 --- a/apps/explorer/lib/explorer/chain/address/counters.ex +++ b/apps/explorer/lib/explorer/chain/address/counters.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.Counters do @moduledoc """ Functions related to Explorer.Chain.Address counters diff --git a/apps/explorer/lib/explorer/chain/address/current_token_balance.ex b/apps/explorer/lib/explorer/chain/address/current_token_balance.ex index 0271e69f9b0f..928854f0b2ac 100644 --- a/apps/explorer/lib/explorer/chain/address/current_token_balance.ex +++ b/apps/explorer/lib/explorer/chain/address/current_token_balance.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.CurrentTokenBalance do @moduledoc """ Represents the current token balance from addresses according to the last block. diff --git a/apps/explorer/lib/explorer/chain/address/metadata_preloader.ex b/apps/explorer/lib/explorer/chain/address/metadata_preloader.ex index 820dc05dfad9..ea8291cbba69 100644 --- a/apps/explorer/lib/explorer/chain/address/metadata_preloader.ex +++ b/apps/explorer/lib/explorer/chain/address/metadata_preloader.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.MetadataPreloader do @moduledoc """ Module responsible for preloading metadata (from BENS, Metadata microservices) to addresses. diff --git a/apps/explorer/lib/explorer/chain/address/name.ex b/apps/explorer/lib/explorer/chain/address/name.ex index 7918f1ceba76..335e0f3c8b41 100644 --- a/apps/explorer/lib/explorer/chain/address/name.ex +++ b/apps/explorer/lib/explorer/chain/address/name.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.Name do @moduledoc """ Represents a name for an Address. diff --git a/apps/explorer/lib/explorer/chain/address/reputation.ex b/apps/explorer/lib/explorer/chain/address/reputation.ex index 29328ecd6f17..1e74e5b14951 100644 --- a/apps/explorer/lib/explorer/chain/address/reputation.ex +++ b/apps/explorer/lib/explorer/chain/address/reputation.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.Reputation do @moduledoc """ This module defines the reputation enum values. diff --git a/apps/explorer/lib/explorer/chain/address/scam_badge_to_address.ex b/apps/explorer/lib/explorer/chain/address/scam_badge_to_address.ex index e911cfbc9286..41d86b36e0f4 100644 --- a/apps/explorer/lib/explorer/chain/address/scam_badge_to_address.ex +++ b/apps/explorer/lib/explorer/chain/address/scam_badge_to_address.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.ScamBadgeToAddress do @moduledoc """ Defines Address.ScamBadgeToAddress.t() mapping with Address.t() diff --git a/apps/explorer/lib/explorer/chain/address/token.ex b/apps/explorer/lib/explorer/chain/address/token.ex index a37c38ee7bca..ab3d36fba52e 100644 --- a/apps/explorer/lib/explorer/chain/address/token.ex +++ b/apps/explorer/lib/explorer/chain/address/token.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.Token do @moduledoc """ A projection that represents the relation between a Token and a specific Address. diff --git a/apps/explorer/lib/explorer/chain/address/token_balance.ex b/apps/explorer/lib/explorer/chain/address/token_balance.ex index e240c215501a..7b64fba20e58 100644 --- a/apps/explorer/lib/explorer/chain/address/token_balance.ex +++ b/apps/explorer/lib/explorer/chain/address/token_balance.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.TokenBalance do @moduledoc """ Represents a token balance from an address. diff --git a/apps/explorer/lib/explorer/chain/advanced_filter.ex b/apps/explorer/lib/explorer/chain/advanced_filter.ex index 7f4a4071f1a3..bb65a51ce462 100644 --- a/apps/explorer/lib/explorer/chain/advanced_filter.ex +++ b/apps/explorer/lib/explorer/chain/advanced_filter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.AdvancedFilter do @moduledoc """ Models an advanced filter. diff --git a/apps/explorer/lib/explorer/chain/arbitrum/batch_block.ex b/apps/explorer/lib/explorer/chain/arbitrum/batch_block.ex index 2efc578b824c..30b59ce87b49 100644 --- a/apps/explorer/lib/explorer/chain/arbitrum/batch_block.ex +++ b/apps/explorer/lib/explorer/chain/arbitrum/batch_block.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Arbitrum.BatchBlock do @moduledoc """ Models a list of blocks related to a batch for Arbitrum. diff --git a/apps/explorer/lib/explorer/chain/arbitrum/batch_to_da_blob.ex b/apps/explorer/lib/explorer/chain/arbitrum/batch_to_da_blob.ex index 06dde817ff32..7ee8311fda16 100644 --- a/apps/explorer/lib/explorer/chain/arbitrum/batch_to_da_blob.ex +++ b/apps/explorer/lib/explorer/chain/arbitrum/batch_to_da_blob.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Arbitrum.BatchToDaBlob do @moduledoc """ Models a link between an Arbitrum L1 batch and its corresponding data blob. diff --git a/apps/explorer/lib/explorer/chain/arbitrum/batch_transaction.ex b/apps/explorer/lib/explorer/chain/arbitrum/batch_transaction.ex index dca5ed99b716..288b9a7fc8c0 100644 --- a/apps/explorer/lib/explorer/chain/arbitrum/batch_transaction.ex +++ b/apps/explorer/lib/explorer/chain/arbitrum/batch_transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Arbitrum.BatchTransaction do @moduledoc """ Models a list of transactions related to a batch for Arbitrum. diff --git a/apps/explorer/lib/explorer/chain/arbitrum/da_multi_purpose_record.ex b/apps/explorer/lib/explorer/chain/arbitrum/da_multi_purpose_record.ex index de14ed251628..36144dae490c 100644 --- a/apps/explorer/lib/explorer/chain/arbitrum/da_multi_purpose_record.ex +++ b/apps/explorer/lib/explorer/chain/arbitrum/da_multi_purpose_record.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Arbitrum.DaMultiPurposeRecord do @moduledoc """ Models a multi purpose record related to Data Availability for Arbitrum. diff --git a/apps/explorer/lib/explorer/chain/arbitrum/l1_batch.ex b/apps/explorer/lib/explorer/chain/arbitrum/l1_batch.ex index 15f40bca81fc..bfb36ef8f6d9 100644 --- a/apps/explorer/lib/explorer/chain/arbitrum/l1_batch.ex +++ b/apps/explorer/lib/explorer/chain/arbitrum/l1_batch.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Arbitrum.L1Batch do @moduledoc """ Models an L1 batch for Arbitrum. diff --git a/apps/explorer/lib/explorer/chain/arbitrum/l1_execution.ex b/apps/explorer/lib/explorer/chain/arbitrum/l1_execution.ex index 623c36e231cd..a98d9a8d8e47 100644 --- a/apps/explorer/lib/explorer/chain/arbitrum/l1_execution.ex +++ b/apps/explorer/lib/explorer/chain/arbitrum/l1_execution.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Arbitrum.L1Execution do @moduledoc """ Models a list of execution transactions related to a L2 to L1 messages on Arbitrum. diff --git a/apps/explorer/lib/explorer/chain/arbitrum/lifecycle_transaction.ex b/apps/explorer/lib/explorer/chain/arbitrum/lifecycle_transaction.ex index a70f15e20c39..944c02200d88 100644 --- a/apps/explorer/lib/explorer/chain/arbitrum/lifecycle_transaction.ex +++ b/apps/explorer/lib/explorer/chain/arbitrum/lifecycle_transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Arbitrum.LifecycleTransaction do @moduledoc """ Models an L1 lifecycle transaction for Arbitrum. Lifecycle transactions are transactions that change the state of transactions and blocks on Arbitrum rollups. diff --git a/apps/explorer/lib/explorer/chain/arbitrum/message.ex b/apps/explorer/lib/explorer/chain/arbitrum/message.ex index 81d7a8b36339..0464a63c7a34 100644 --- a/apps/explorer/lib/explorer/chain/arbitrum/message.ex +++ b/apps/explorer/lib/explorer/chain/arbitrum/message.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Arbitrum.Message do @moduledoc """ Models an L1<->L2 messages on Arbitrum. diff --git a/apps/explorer/lib/explorer/chain/arbitrum/reader/api/general.ex b/apps/explorer/lib/explorer/chain/arbitrum/reader/api/general.ex index 3a555e720ab2..09539e97053b 100644 --- a/apps/explorer/lib/explorer/chain/arbitrum/reader/api/general.ex +++ b/apps/explorer/lib/explorer/chain/arbitrum/reader/api/general.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Arbitrum.Reader.API.General do @moduledoc """ Provides API-specific functions for querying general Arbitrum data from the database. diff --git a/apps/explorer/lib/explorer/chain/arbitrum/reader/api/messages.ex b/apps/explorer/lib/explorer/chain/arbitrum/reader/api/messages.ex index ca7c8f9c400e..20c08c42631e 100644 --- a/apps/explorer/lib/explorer/chain/arbitrum/reader/api/messages.ex +++ b/apps/explorer/lib/explorer/chain/arbitrum/reader/api/messages.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Arbitrum.Reader.API.Messages do @moduledoc """ Provides API-specific functions for querying Arbitrum cross-chain message data from the database. diff --git a/apps/explorer/lib/explorer/chain/arbitrum/reader/api/settlement.ex b/apps/explorer/lib/explorer/chain/arbitrum/reader/api/settlement.ex index 75f18b62d542..274a309324db 100644 --- a/apps/explorer/lib/explorer/chain/arbitrum/reader/api/settlement.ex +++ b/apps/explorer/lib/explorer/chain/arbitrum/reader/api/settlement.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Arbitrum.Reader.API.Settlement do @moduledoc """ Provides API-specific functions for querying Arbitrum settlement data from the database. diff --git a/apps/explorer/lib/explorer/chain/arbitrum/reader/common.ex b/apps/explorer/lib/explorer/chain/arbitrum/reader/common.ex index cf390a1da8e5..420727d7c02a 100644 --- a/apps/explorer/lib/explorer/chain/arbitrum/reader/common.ex +++ b/apps/explorer/lib/explorer/chain/arbitrum/reader/common.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Arbitrum.Reader.Common do @moduledoc """ Provides common database query functions for Arbitrum-specific data that are shared diff --git a/apps/explorer/lib/explorer/chain/arbitrum/reader/indexer/general.ex b/apps/explorer/lib/explorer/chain/arbitrum/reader/indexer/general.ex index f50fcd8247e3..9c4b4dd9efc1 100644 --- a/apps/explorer/lib/explorer/chain/arbitrum/reader/indexer/general.ex +++ b/apps/explorer/lib/explorer/chain/arbitrum/reader/indexer/general.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Arbitrum.Reader.Indexer.General do @moduledoc """ Provides general-purpose blockchain data reading functionality that is currently diff --git a/apps/explorer/lib/explorer/chain/arbitrum/reader/indexer/messages.ex b/apps/explorer/lib/explorer/chain/arbitrum/reader/indexer/messages.ex index 4a16c171402e..5d52bc38bfb2 100644 --- a/apps/explorer/lib/explorer/chain/arbitrum/reader/indexer/messages.ex +++ b/apps/explorer/lib/explorer/chain/arbitrum/reader/indexer/messages.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Arbitrum.Reader.Indexer.Messages do @moduledoc """ Provides functions for querying and managing Arbitrum cross-chain messages in the Blockscout indexer. diff --git a/apps/explorer/lib/explorer/chain/arbitrum/reader/indexer/parent_chain_transactions.ex b/apps/explorer/lib/explorer/chain/arbitrum/reader/indexer/parent_chain_transactions.ex index 42543965e8d2..e673b954eadf 100644 --- a/apps/explorer/lib/explorer/chain/arbitrum/reader/indexer/parent_chain_transactions.ex +++ b/apps/explorer/lib/explorer/chain/arbitrum/reader/indexer/parent_chain_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Arbitrum.Reader.Indexer.ParentChainTransactions do @moduledoc """ Provides functions for querying Arbitrum L1 (parent chain) lifecycle transactions. diff --git a/apps/explorer/lib/explorer/chain/arbitrum/reader/indexer/settlement.ex b/apps/explorer/lib/explorer/chain/arbitrum/reader/indexer/settlement.ex index ba9ee0762eda..1f450faa641a 100644 --- a/apps/explorer/lib/explorer/chain/arbitrum/reader/indexer/settlement.ex +++ b/apps/explorer/lib/explorer/chain/arbitrum/reader/indexer/settlement.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Arbitrum.Reader.Indexer.Settlement do @moduledoc """ Provides database query functions for retrieving information about Arbitrum rollup batches diff --git a/apps/explorer/lib/explorer/chain/beacon/blob.ex b/apps/explorer/lib/explorer/chain/beacon/blob.ex index d6cb28a27402..40478593d1a1 100644 --- a/apps/explorer/lib/explorer/chain/beacon/blob.ex +++ b/apps/explorer/lib/explorer/chain/beacon/blob.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Beacon.Blob do @moduledoc "Models a data blob broadcasted using eip4844 blob transactions." diff --git a/apps/explorer/lib/explorer/chain/beacon/blob_transaction.ex b/apps/explorer/lib/explorer/chain/beacon/blob_transaction.ex index 59e3d400fefb..121c8e5d6413 100644 --- a/apps/explorer/lib/explorer/chain/beacon/blob_transaction.ex +++ b/apps/explorer/lib/explorer/chain/beacon/blob_transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Beacon.BlobTransaction do @moduledoc "Models a transaction extension with extra fields from eip4844 blob transactions." diff --git a/apps/explorer/lib/explorer/chain/beacon/deposit.ex b/apps/explorer/lib/explorer/chain/beacon/deposit.ex index 353b38c54704..d96ed7fc6dac 100644 --- a/apps/explorer/lib/explorer/chain/beacon/deposit.ex +++ b/apps/explorer/lib/explorer/chain/beacon/deposit.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Beacon.Deposit do @moduledoc """ Models a deposit in the beacon chain. diff --git a/apps/explorer/lib/explorer/chain/beacon/deposit/pending.ex b/apps/explorer/lib/explorer/chain/beacon/deposit/pending.ex index 781241424381..d3e6b2ef61d9 100644 --- a/apps/explorer/lib/explorer/chain/beacon/deposit/pending.ex +++ b/apps/explorer/lib/explorer/chain/beacon/deposit/pending.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Beacon.Deposit.Pending do @moduledoc """ Models a pending deposit in the beacon chain. diff --git a/apps/explorer/lib/explorer/chain/beacon/reader.ex b/apps/explorer/lib/explorer/chain/beacon/reader.ex index 36172e6d8e0e..c57a850aa824 100644 --- a/apps/explorer/lib/explorer/chain/beacon/reader.ex +++ b/apps/explorer/lib/explorer/chain/beacon/reader.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Beacon.Reader do @moduledoc "Contains read functions for beacon chain related modules." diff --git a/apps/explorer/lib/explorer/chain/blackfort/validator.ex b/apps/explorer/lib/explorer/chain/blackfort/validator.ex index 0d9574d4aa22..79ed06cbf419 100644 --- a/apps/explorer/lib/explorer/chain/blackfort/validator.ex +++ b/apps/explorer/lib/explorer/chain/blackfort/validator.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Blackfort.Validator do @moduledoc """ Blackfort validators diff --git a/apps/explorer/lib/explorer/chain/block.ex b/apps/explorer/lib/explorer/chain/block.ex index 6d95a3d23229..f36c5569151b 100644 --- a/apps/explorer/lib/explorer/chain/block.ex +++ b/apps/explorer/lib/explorer/chain/block.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Block.Schema do @moduledoc """ Models blocks. diff --git a/apps/explorer/lib/explorer/chain/block/emission_reward.ex b/apps/explorer/lib/explorer/chain/block/emission_reward.ex index 8be68584b56e..32521faadfe4 100644 --- a/apps/explorer/lib/explorer/chain/block/emission_reward.ex +++ b/apps/explorer/lib/explorer/chain/block/emission_reward.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Block.EmissionReward do @moduledoc """ Represents the static reward given to the miner of a block in a range of block numbers. diff --git a/apps/explorer/lib/explorer/chain/block/range.ex b/apps/explorer/lib/explorer/chain/block/range.ex index 354ccd6d420a..468341c1fdb5 100644 --- a/apps/explorer/lib/explorer/chain/block/range.ex +++ b/apps/explorer/lib/explorer/chain/block/range.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Block.Range do @moduledoc """ Represents a range of block numbers. diff --git a/apps/explorer/lib/explorer/chain/block/reader/general.ex b/apps/explorer/lib/explorer/chain/block/reader/general.ex index 6886c8561824..7012ea30041e 100644 --- a/apps/explorer/lib/explorer/chain/block/reader/general.ex +++ b/apps/explorer/lib/explorer/chain/block/reader/general.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Block.Reader.General do @moduledoc """ Provides general methods for reading block data from the database. diff --git a/apps/explorer/lib/explorer/chain/block/reward.ex b/apps/explorer/lib/explorer/chain/block/reward.ex index 524cf65b8d5a..dfa6adc94162 100644 --- a/apps/explorer/lib/explorer/chain/block/reward.ex +++ b/apps/explorer/lib/explorer/chain/block/reward.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Block.Reward do @moduledoc """ Represents the total reward given to an address in a block. diff --git a/apps/explorer/lib/explorer/chain/block/reward/address_type.ex b/apps/explorer/lib/explorer/chain/block/reward/address_type.ex index 9e0fe2ac52e6..efc4d761e73a 100644 --- a/apps/explorer/lib/explorer/chain/block/reward/address_type.ex +++ b/apps/explorer/lib/explorer/chain/block/reward/address_type.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Block.Reward.AddressType do @moduledoc """ Block reward address types diff --git a/apps/explorer/lib/explorer/chain/block/second_degree_relation.ex b/apps/explorer/lib/explorer/chain/block/second_degree_relation.ex index 941dc51480e7..abbaf460e4b4 100644 --- a/apps/explorer/lib/explorer/chain/block/second_degree_relation.ex +++ b/apps/explorer/lib/explorer/chain/block/second_degree_relation.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Block.SecondDegreeRelation do @moduledoc """ A [second-degree relative](https://en.wikipedia.org/wiki/Second-degree_relative) is a relative where the share diff --git a/apps/explorer/lib/explorer/chain/block_number_helper.ex b/apps/explorer/lib/explorer/chain/block_number_helper.ex index 5701118e612e..ca97f7eebdb5 100644 --- a/apps/explorer/lib/explorer/chain/block_number_helper.ex +++ b/apps/explorer/lib/explorer/chain/block_number_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # credo:disable-for-this-file defmodule Explorer.Chain.BlockNumberHelper do @moduledoc """ diff --git a/apps/explorer/lib/explorer/chain/bridged_token.ex b/apps/explorer/lib/explorer/chain/bridged_token.ex index 1573f0fa5947..e6cea0c88572 100644 --- a/apps/explorer/lib/explorer/chain/bridged_token.ex +++ b/apps/explorer/lib/explorer/chain/bridged_token.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.BridgedToken do @moduledoc """ Represents a bridged token. diff --git a/apps/explorer/lib/explorer/chain/cache/accounts.ex b/apps/explorer/lib/explorer/chain/cache/accounts.ex index f24340548467..cfee59fbe243 100644 --- a/apps/explorer/lib/explorer/chain/cache/accounts.ex +++ b/apps/explorer/lib/explorer/chain/cache/accounts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Accounts do @moduledoc """ Caches the top Addresses diff --git a/apps/explorer/lib/explorer/chain/cache/background_migrations.ex b/apps/explorer/lib/explorer/chain/cache/background_migrations.ex index 89608d6082d5..e4aa0d7898f8 100644 --- a/apps/explorer/lib/explorer/chain/cache/background_migrations.ex +++ b/apps/explorer/lib/explorer/chain/cache/background_migrations.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.BackgroundMigrations do @moduledoc """ Caches the completion status of various background database operations in the Blockscout system. diff --git a/apps/explorer/lib/explorer/chain/cache/block_number.ex b/apps/explorer/lib/explorer/chain/cache/block_number.ex index e5cd81ef24ef..66968f503510 100644 --- a/apps/explorer/lib/explorer/chain/cache/block_number.ex +++ b/apps/explorer/lib/explorer/chain/cache/block_number.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.BlockNumber do @moduledoc """ Cache for max and min block numbers. diff --git a/apps/explorer/lib/explorer/chain/cache/blocks.ex b/apps/explorer/lib/explorer/chain/cache/blocks.ex index 5b992d391624..a35eef21f8b8 100644 --- a/apps/explorer/lib/explorer/chain/cache/blocks.ex +++ b/apps/explorer/lib/explorer/chain/cache/blocks.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Blocks do @moduledoc """ Caches the last imported blocks diff --git a/apps/explorer/lib/explorer/chain/cache/celo_core_contracts.ex b/apps/explorer/lib/explorer/chain/cache/celo_core_contracts.ex index d822a5fae709..9a20a5936007 100644 --- a/apps/explorer/lib/explorer/chain/cache/celo_core_contracts.ex +++ b/apps/explorer/lib/explorer/chain/cache/celo_core_contracts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.CeloCoreContracts do @moduledoc """ Cache for Celo core contract addresses. diff --git a/apps/explorer/lib/explorer/chain/cache/celo_epochs.ex b/apps/explorer/lib/explorer/chain/cache/celo_epochs.ex index 56145b0e37e6..cbfe207f99b8 100644 --- a/apps/explorer/lib/explorer/chain/cache/celo_epochs.ex +++ b/apps/explorer/lib/explorer/chain/cache/celo_epochs.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.CeloEpochs do @moduledoc """ Cache for efficiently mapping block numbers to epoch numbers in Celo blockchain. diff --git a/apps/explorer/lib/explorer/chain/cache/chain_id.ex b/apps/explorer/lib/explorer/chain/cache/chain_id.ex index 5e9410ca025c..67cbfecaad8e 100644 --- a/apps/explorer/lib/explorer/chain/cache/chain_id.ex +++ b/apps/explorer/lib/explorer/chain/cache/chain_id.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.ChainId do @moduledoc """ Caches the blockchain's chain ID to reduce repeated JSON-RPC calls. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/address_tabs_elements_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/address_tabs_elements_count.ex index 6c6e13de27d6..f6ee0c32bcb2 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/address_tabs_elements_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/address_tabs_elements_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.AddressTabsElementsCount do @moduledoc """ Cache for tabs counters on address diff --git a/apps/explorer/lib/explorer/chain/cache/counters/address_token_transfers_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/address_token_transfers_count.ex index 1a4cb51c033f..225b4922886a 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/address_token_transfers_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/address_token_transfers_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.AddressTokenTransfersCount do @moduledoc """ Caches Address token transfers count. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/address_tokens_usd_sum.ex b/apps/explorer/lib/explorer/chain/cache/counters/address_tokens_usd_sum.ex index 6138737e5048..b929b91938a9 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/address_tokens_usd_sum.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/address_tokens_usd_sum.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.AddressTokensUsdSum do @moduledoc """ Caches Address tokens USD value. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/address_transactions_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/address_transactions_count.ex index 2611d7840818..7ff8aece4e1d 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/address_transactions_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/address_transactions_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.AddressTransactionsCount do @moduledoc """ Caches Address transactions count. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/address_transactions_gas_usage_sum.ex b/apps/explorer/lib/explorer/chain/cache/counters/address_transactions_gas_usage_sum.ex index 295f949e69d9..fa9bda0ee3eb 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/address_transactions_gas_usage_sum.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/address_transactions_gas_usage_sum.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.AddressTransactionsGasUsageSum do @moduledoc """ Caches Address transactions gas usage count. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/addresses_coin_balance_sum.ex b/apps/explorer/lib/explorer/chain/cache/counters/addresses_coin_balance_sum.ex index 6bbf742342b9..3dc029b2b838 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/addresses_coin_balance_sum.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/addresses_coin_balance_sum.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.AddressesCoinBalanceSum do @moduledoc """ Cache for address sum. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/addresses_coin_balance_sum_minus_burnt.ex b/apps/explorer/lib/explorer/chain/cache/counters/addresses_coin_balance_sum_minus_burnt.ex index 418c41947abb..189922efc898 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/addresses_coin_balance_sum_minus_burnt.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/addresses_coin_balance_sum_minus_burnt.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.AddressesCoinBalanceSumMinusBurnt do @moduledoc """ Cache for address sum minus burnt number. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/addresses_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/addresses_count.ex index 6e58591b4c16..a731bb4192e1 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/addresses_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/addresses_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.AddressesCount do @moduledoc """ Caches the number of all addresses. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/average_block_time.ex b/apps/explorer/lib/explorer/chain/cache/counters/average_block_time.ex index 37bb42bb1933..a8acfb00ebad 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/average_block_time.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/average_block_time.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.AverageBlockTime do @moduledoc """ Caches the average block time in milliseconds. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/blackfort/validators_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/blackfort/validators_count.ex index 8c2ad1f76f39..d2f5e70bd0ec 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/blackfort/validators_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/blackfort/validators_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.Blackfort.ValidatorsCount do @moduledoc """ Counts and store counters of validators blackfort. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/block_burnt_fee_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/block_burnt_fee_count.ex index 4bf6ee239553..2e7be46ae4fb 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/block_burnt_fee_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/block_burnt_fee_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.BlockBurntFeeCount do @moduledoc """ Caches Block Burnt Fee counter. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/block_priority_fee_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/block_priority_fee_count.ex index 54c323f5ec2a..5872d6ab09ff 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/block_priority_fee_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/block_priority_fee_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.BlockPriorityFeeCount do @moduledoc """ Caches Block Priority Fee counter. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/blocks_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/blocks_count.ex index 73968157a01c..8967cfc26301 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/blocks_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/blocks_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.BlocksCount do @moduledoc """ Cache for total blocks count. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/contracts_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/contracts_count.ex index 311c3a6dcc7b..cc872cadf956 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/contracts_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/contracts_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.ContractsCount do @moduledoc """ Caches the number of contracts. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/gas_usage_sum.ex b/apps/explorer/lib/explorer/chain/cache/counters/gas_usage_sum.ex index bdb1f6d91a75..3c5d4e194d48 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/gas_usage_sum.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/gas_usage_sum.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.GasUsageSum do @moduledoc """ Cache for total gas usage. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/helper.ex b/apps/explorer/lib/explorer/chain/cache/counters/helper.ex index c910475b0987..9a74b74b78d6 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/helper.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.Helper do @moduledoc """ A helper for caching modules diff --git a/apps/explorer/lib/explorer/chain/cache/counters/helper/average_block_time_duration_format.ex b/apps/explorer/lib/explorer/chain/cache/counters/helper/average_block_time_duration_format.ex index 9ed023af4199..6b2f9a47ba81 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/helper/average_block_time_duration_format.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/helper/average_block_time_duration_format.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.Helper.AverageBlockTimeDurationFormat do @moduledoc """ A `Timex.Format.Duration.Formatter` that renders the most significant unit out to one decimal point. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/last_fetched_counter.ex b/apps/explorer/lib/explorer/chain/cache/counters/last_fetched_counter.ex index 64b0a857915d..53908a907be7 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/last_fetched_counter.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/last_fetched_counter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.LastFetchedCounter do @moduledoc """ Stores last fetched counters. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/new_contracts_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/new_contracts_count.ex index 335fc03a119e..760198d06857 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/new_contracts_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/new_contracts_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.NewContractsCount do @moduledoc """ Caches the number of new contracts (created in last 24 hours). diff --git a/apps/explorer/lib/explorer/chain/cache/counters/new_pending_transactions_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/new_pending_transactions_count.ex index a711c851d4fc..5d7073cf2db2 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/new_pending_transactions_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/new_pending_transactions_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.NewPendingTransactionsCount do @moduledoc """ Caches number of pending transactions for last 30 minutes. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/new_verified_contracts_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/new_verified_contracts_count.ex index 77525b6ff65a..47102bf02ae6 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/new_verified_contracts_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/new_verified_contracts_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.NewVerifiedContractsCount do @moduledoc """ Caches the number of new verified contracts (verified in last 24 hours). diff --git a/apps/explorer/lib/explorer/chain/cache/counters/optimism/last_output_root_size_counter.ex b/apps/explorer/lib/explorer/chain/cache/counters/optimism/last_output_root_size_counter.ex index 8017bc4f6b9d..6cc926b085a2 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/optimism/last_output_root_size_counter.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/optimism/last_output_root_size_counter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.Optimism.LastOutputRootSizeCount do @moduledoc """ Caches number of transactions in last output root. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/pending_block_operation_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/pending_block_operation_count.ex index 9a86c13ca6da..d180a545f01b 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/pending_block_operation_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/pending_block_operation_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.PendingBlockOperationCount do @moduledoc """ Cache for estimated `pending_block_operations` count. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/pending_transaction_operation_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/pending_transaction_operation_count.ex index 806eb8a19e1a..f0c8c15dad50 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/pending_transaction_operation_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/pending_transaction_operation_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.PendingTransactionOperationCount do @moduledoc """ Cache for estimated `pending_transaction_operations` count. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/rootstock/locked_btc_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/rootstock/locked_btc_count.ex index f6187dc0a1c3..6add07c1df0e 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/rootstock/locked_btc_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/rootstock/locked_btc_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.Rootstock.LockedBTCCount do @moduledoc """ Caches the number of BTC locked in 2WP on Rootstock chain. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/shibarium/deposits_and_withdrawals_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/shibarium/deposits_and_withdrawals_count.ex index 6bcb441e8a34..3a883b1f542e 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/shibarium/deposits_and_withdrawals_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/shibarium/deposits_and_withdrawals_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.Shibarium.DepositsAndWithdrawalsCount do @moduledoc """ Caches the number of deposits and withdrawals for Shibarium Bridge. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/stability/validators_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/stability/validators_count.ex index ea9b43a464e6..403d733dd306 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/stability/validators_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/stability/validators_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.Stability.ValidatorsCount do @moduledoc """ Counts and store counters of validators stability. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/token_holders_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/token_holders_count.ex index 68581f04d307..75860cef8d66 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/token_holders_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/token_holders_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.TokenHoldersCount do @moduledoc """ Caches Token holders count. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/token_transfers_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/token_transfers_count.ex index 736f09f9c56e..c70d6a38fa86 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/token_transfers_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/token_transfers_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.TokenTransfersCount do @moduledoc """ Caches Token transfers counter. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/transactions_24h_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/transactions_24h_count.ex index 3c137f7f9d68..ffedf8f03866 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/transactions_24h_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/transactions_24h_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.Transactions24hCount do @moduledoc """ Caches number of transactions for last 24 hours, sum of transaction fees for last 24 hours and average transaction fee for last 24 hours counters. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/transactions_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/transactions_count.ex index 4f1038d7c9e6..3553ce2c5e93 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/transactions_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/transactions_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.TransactionsCount do @moduledoc """ Cache for total transactions count. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/verified_contracts_count.ex b/apps/explorer/lib/explorer/chain/cache/counters/verified_contracts_count.ex index 5620e51988b6..ab93c5a47302 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/verified_contracts_count.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/verified_contracts_count.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.VerifiedContractsCount do @moduledoc """ Caches the number of verified contracts. diff --git a/apps/explorer/lib/explorer/chain/cache/counters/withdrawals_sum.ex b/apps/explorer/lib/explorer/chain/cache/counters/withdrawals_sum.ex index d8878e63e168..52168be712c6 100644 --- a/apps/explorer/lib/explorer/chain/cache/counters/withdrawals_sum.ex +++ b/apps/explorer/lib/explorer/chain/cache/counters/withdrawals_sum.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.WithdrawalsSum do @moduledoc """ Caches the sum of all withdrawals. diff --git a/apps/explorer/lib/explorer/chain/cache/gas_price_oracle.ex b/apps/explorer/lib/explorer/chain/cache/gas_price_oracle.ex index 9e2acc103f63..b25c0cacad79 100644 --- a/apps/explorer/lib/explorer/chain/cache/gas_price_oracle.ex +++ b/apps/explorer/lib/explorer/chain/cache/gas_price_oracle.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.GasPriceOracle do @moduledoc """ Cache for gas price oracle (safelow/average/fast gas prices). diff --git a/apps/explorer/lib/explorer/chain/cache/latest_l1_block_number.ex b/apps/explorer/lib/explorer/chain/cache/latest_l1_block_number.ex index 4c717f744891..1b9bbb102a8d 100644 --- a/apps/explorer/lib/explorer/chain/cache/latest_l1_block_number.ex +++ b/apps/explorer/lib/explorer/chain/cache/latest_l1_block_number.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.LatestL1BlockNumber do @moduledoc """ Caches latest L1 block number. diff --git a/apps/explorer/lib/explorer/chain/cache/min_missing_block.ex b/apps/explorer/lib/explorer/chain/cache/min_missing_block.ex index 362a13586190..fc031c9b3f58 100644 --- a/apps/explorer/lib/explorer/chain/cache/min_missing_block.ex +++ b/apps/explorer/lib/explorer/chain/cache/min_missing_block.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.MinMissingBlockNumber do @moduledoc """ Caches min missing block number (break in the chain). diff --git a/apps/explorer/lib/explorer/chain/cache/optimism_finalization_period.ex b/apps/explorer/lib/explorer/chain/cache/optimism_finalization_period.ex index ea2766309302..b1433382fa95 100644 --- a/apps/explorer/lib/explorer/chain/cache/optimism_finalization_period.ex +++ b/apps/explorer/lib/explorer/chain/cache/optimism_finalization_period.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.OptimismFinalizationPeriod do @moduledoc """ Caches Optimism Finalization period. diff --git a/apps/explorer/lib/explorer/chain/cache/state_changes.ex b/apps/explorer/lib/explorer/chain/cache/state_changes.ex index 5c9abc41f54e..7c00961420dd 100644 --- a/apps/explorer/lib/explorer/chain/cache/state_changes.ex +++ b/apps/explorer/lib/explorer/chain/cache/state_changes.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.StateChanges do @moduledoc """ Caches the transaction state changes for pagination diff --git a/apps/explorer/lib/explorer/chain/cache/transactions.ex b/apps/explorer/lib/explorer/chain/cache/transactions.ex index b79ed4cef7a9..f5778213e768 100644 --- a/apps/explorer/lib/explorer/chain/cache/transactions.ex +++ b/apps/explorer/lib/explorer/chain/cache/transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Transactions do @moduledoc """ Caches the latest imported transactions diff --git a/apps/explorer/lib/explorer/chain/cache/uncles.ex b/apps/explorer/lib/explorer/chain/cache/uncles.ex index 9afe0bf71b3d..ea96db8ee192 100644 --- a/apps/explorer/lib/explorer/chain/cache/uncles.ex +++ b/apps/explorer/lib/explorer/chain/cache/uncles.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Uncles do @moduledoc """ Caches the last known uncles diff --git a/apps/explorer/lib/explorer/chain/celo/account.ex b/apps/explorer/lib/explorer/chain/celo/account.ex index ff1ed918c603..bc35654509cc 100644 --- a/apps/explorer/lib/explorer/chain/celo/account.ex +++ b/apps/explorer/lib/explorer/chain/celo/account.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Celo.Account do @moduledoc """ Represents a Celo blockchain account with associated metadata, and locked gold diff --git a/apps/explorer/lib/explorer/chain/celo/aggregated_election_reward.ex b/apps/explorer/lib/explorer/chain/celo/aggregated_election_reward.ex index d358f00093f5..e887b55e520e 100644 --- a/apps/explorer/lib/explorer/chain/celo/aggregated_election_reward.ex +++ b/apps/explorer/lib/explorer/chain/celo/aggregated_election_reward.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Celo.AggregatedElectionReward do @moduledoc """ Schema for aggregated election rewards in the Celo blockchain. diff --git a/apps/explorer/lib/explorer/chain/celo/election_reward.ex b/apps/explorer/lib/explorer/chain/celo/election_reward.ex index a3f2df22c5b5..9ca5e89507c7 100644 --- a/apps/explorer/lib/explorer/chain/celo/election_reward.ex +++ b/apps/explorer/lib/explorer/chain/celo/election_reward.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Celo.ElectionReward do @moduledoc """ Represents the rewards distributed in an epoch election. Each reward has a diff --git a/apps/explorer/lib/explorer/chain/celo/epoch.ex b/apps/explorer/lib/explorer/chain/celo/epoch.ex index 473ba4dc1bdf..f4a20da66d41 100644 --- a/apps/explorer/lib/explorer/chain/celo/epoch.ex +++ b/apps/explorer/lib/explorer/chain/celo/epoch.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Celo.Epoch do @moduledoc """ Schema for Celo blockchain epochs. diff --git a/apps/explorer/lib/explorer/chain/celo/epoch_reward.ex b/apps/explorer/lib/explorer/chain/celo/epoch_reward.ex index ba0d4567d4f5..dff4de3e660d 100644 --- a/apps/explorer/lib/explorer/chain/celo/epoch_reward.ex +++ b/apps/explorer/lib/explorer/chain/celo/epoch_reward.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Celo.EpochReward do @moduledoc """ Represents the distributions in the Celo epoch. Each log index points to a diff --git a/apps/explorer/lib/explorer/chain/celo/helper.ex b/apps/explorer/lib/explorer/chain/celo/helper.ex index 67327ddff147..e75aa3835add 100644 --- a/apps/explorer/lib/explorer/chain/celo/helper.ex +++ b/apps/explorer/lib/explorer/chain/celo/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Celo.Helper do @moduledoc """ Common helper functions for Celo. diff --git a/apps/explorer/lib/explorer/chain/celo/legacy/accounts.ex b/apps/explorer/lib/explorer/chain/celo/legacy/accounts.ex index dcabe7cd6493..04fd64d744d1 100644 --- a/apps/explorer/lib/explorer/chain/celo/legacy/accounts.ex +++ b/apps/explorer/lib/explorer/chain/celo/legacy/accounts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Celo.Legacy.Accounts do @moduledoc """ Helper functions for transforming data for Celo accounts. diff --git a/apps/explorer/lib/explorer/chain/celo/legacy/events.ex b/apps/explorer/lib/explorer/chain/celo/legacy/events.ex index cbceff5409d0..9f54269c0490 100644 --- a/apps/explorer/lib/explorer/chain/celo/legacy/events.ex +++ b/apps/explorer/lib/explorer/chain/celo/legacy/events.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Celo.Legacy.Events do @moduledoc """ Helper methods and event groups which define Celo contract event topics diff --git a/apps/explorer/lib/explorer/chain/celo/pending_account_operation.ex b/apps/explorer/lib/explorer/chain/celo/pending_account_operation.ex index aca3bcaaa5b3..9f95b78e7547 100644 --- a/apps/explorer/lib/explorer/chain/celo/pending_account_operation.ex +++ b/apps/explorer/lib/explorer/chain/celo/pending_account_operation.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Celo.PendingAccountOperation do @moduledoc """ Tracks an address that is pending for fetching of celo account info. diff --git a/apps/explorer/lib/explorer/chain/celo/reader/epoch_manager.ex b/apps/explorer/lib/explorer/chain/celo/reader/epoch_manager.ex index f3635795af13..cdd1063aa54a 100644 --- a/apps/explorer/lib/explorer/chain/celo/reader/epoch_manager.ex +++ b/apps/explorer/lib/explorer/chain/celo/reader/epoch_manager.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Celo.Reader.EpochManager do @moduledoc """ Functions for interacting with the Celo Epoch Manager contract. diff --git a/apps/explorer/lib/explorer/chain/celo/validator_group_vote.ex b/apps/explorer/lib/explorer/chain/celo/validator_group_vote.ex index e61bf339874b..ba5c74f7293e 100644 --- a/apps/explorer/lib/explorer/chain/celo/validator_group_vote.ex +++ b/apps/explorer/lib/explorer/chain/celo/validator_group_vote.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Celo.ValidatorGroupVote do @moduledoc """ Represents the information about a vote for a validator group made by an diff --git a/apps/explorer/lib/explorer/chain/contract_method.ex b/apps/explorer/lib/explorer/chain/contract_method.ex index 993dcfc954cd..156d46cb1fc2 100644 --- a/apps/explorer/lib/explorer/chain/contract_method.ex +++ b/apps/explorer/lib/explorer/chain/contract_method.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.ContractMethod do @moduledoc """ The representation of an individual item from the ABI of a verified smart contract. diff --git a/apps/explorer/lib/explorer/chain/csv_export/address/logs.ex b/apps/explorer/lib/explorer/chain/csv_export/address/logs.ex index 6e5737be7ecb..2871fe4f999c 100644 --- a/apps/explorer/lib/explorer/chain/csv_export/address/logs.ex +++ b/apps/explorer/lib/explorer/chain/csv_export/address/logs.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.Address.Logs do @moduledoc """ Exports logs to a csv file. diff --git a/apps/explorer/lib/explorer/chain/csv_export/address/token_transfers.ex b/apps/explorer/lib/explorer/chain/csv_export/address/token_transfers.ex index d4d1c25e8bb0..bb647d74336b 100644 --- a/apps/explorer/lib/explorer/chain/csv_export/address/token_transfers.ex +++ b/apps/explorer/lib/explorer/chain/csv_export/address/token_transfers.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.Address.TokenTransfers do @moduledoc """ Exports token transfers to a csv file. diff --git a/apps/explorer/lib/explorer/chain/csv_export/address/transactions.ex b/apps/explorer/lib/explorer/chain/csv_export/address/transactions.ex index b8bec7e215d0..756b8032bb19 100644 --- a/apps/explorer/lib/explorer/chain/csv_export/address/transactions.ex +++ b/apps/explorer/lib/explorer/chain/csv_export/address/transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.Address.Transactions do @moduledoc """ Exports transactions to a csv file. diff --git a/apps/explorer/lib/explorer/chain/csv_export/advanced_filter.ex b/apps/explorer/lib/explorer/chain/csv_export/advanced_filter.ex index 85ba83d536ba..a882e70baca9 100644 --- a/apps/explorer/lib/explorer/chain/csv_export/advanced_filter.ex +++ b/apps/explorer/lib/explorer/chain/csv_export/advanced_filter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.AdvancedFilter do @moduledoc """ Module responsible for exporting advanced filters to CSV. diff --git a/apps/explorer/lib/explorer/chain/csv_export/async_helper.ex b/apps/explorer/lib/explorer/chain/csv_export/async_helper.ex index c929fe9abc1f..4c8b9ceba185 100644 --- a/apps/explorer/lib/explorer/chain/csv_export/async_helper.ex +++ b/apps/explorer/lib/explorer/chain/csv_export/async_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.AsyncHelper do @moduledoc """ Async CSV export helper functions. diff --git a/apps/explorer/lib/explorer/chain/csv_export/celo/election_rewards.ex b/apps/explorer/lib/explorer/chain/csv_export/celo/election_rewards.ex index 1ba4843c1009..65112563a7a9 100644 --- a/apps/explorer/lib/explorer/chain/csv_export/celo/election_rewards.ex +++ b/apps/explorer/lib/explorer/chain/csv_export/celo/election_rewards.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.Address.Celo.ElectionRewards do @moduledoc """ Exports Celo election rewards to a csv file. diff --git a/apps/explorer/lib/explorer/chain/csv_export/helper.ex b/apps/explorer/lib/explorer/chain/csv_export/helper.ex index 4c8c5d60e946..72a5183adad9 100644 --- a/apps/explorer/lib/explorer/chain/csv_export/helper.ex +++ b/apps/explorer/lib/explorer/chain/csv_export/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.Helper do @moduledoc """ CSV export helper functions. diff --git a/apps/explorer/lib/explorer/chain/csv_export/request.ex b/apps/explorer/lib/explorer/chain/csv_export/request.ex index d85b089f5c54..133d9312441c 100644 --- a/apps/explorer/lib/explorer/chain/csv_export/request.ex +++ b/apps/explorer/lib/explorer/chain/csv_export/request.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.Request do @moduledoc """ Represents an asynchronous CSV export request. diff --git a/apps/explorer/lib/explorer/chain/csv_export/requests_sanitizer.ex b/apps/explorer/lib/explorer/chain/csv_export/requests_sanitizer.ex index 09592383ce2d..118f7cff428c 100644 --- a/apps/explorer/lib/explorer/chain/csv_export/requests_sanitizer.ex +++ b/apps/explorer/lib/explorer/chain/csv_export/requests_sanitizer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.RequestsSanitizer do @moduledoc """ Oban cron worker that periodically deletes expired CSV export requests. diff --git a/apps/explorer/lib/explorer/chain/csv_export/token/holders.ex b/apps/explorer/lib/explorer/chain/csv_export/token/holders.ex index 3aac1fb5bf9a..98a7a8055ebf 100644 --- a/apps/explorer/lib/explorer/chain/csv_export/token/holders.ex +++ b/apps/explorer/lib/explorer/chain/csv_export/token/holders.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.Token.Holders do @moduledoc """ Exports token holders to a csv file. diff --git a/apps/explorer/lib/explorer/chain/csv_export/worker.ex b/apps/explorer/lib/explorer/chain/csv_export/worker.ex index 0c92631024e1..60508311d261 100644 --- a/apps/explorer/lib/explorer/chain/csv_export/worker.ex +++ b/apps/explorer/lib/explorer/chain/csv_export/worker.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.Worker do @moduledoc """ Oban worker for asynchronous CSV export jobs. diff --git a/apps/explorer/lib/explorer/chain/currency_helper.ex b/apps/explorer/lib/explorer/chain/currency_helper.ex index e09485925174..094baaaa2473 100644 --- a/apps/explorer/lib/explorer/chain/currency_helper.ex +++ b/apps/explorer/lib/explorer/chain/currency_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CurrencyHelper do @moduledoc """ Helper functions for interacting with `t:BlockScoutWeb.ExchangeRates.USD.t/0` values. diff --git a/apps/explorer/lib/explorer/chain/data.ex b/apps/explorer/lib/explorer/chain/data.ex index a1019b416c32..c04939351ecd 100644 --- a/apps/explorer/lib/explorer/chain/data.ex +++ b/apps/explorer/lib/explorer/chain/data.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Data do @moduledoc """ The Elixir-native representation of `t:EthereumJSONRPC.data/0`. diff --git a/apps/explorer/lib/explorer/chain/decoding_helper.ex b/apps/explorer/lib/explorer/chain/decoding_helper.ex index c7b9d16ab0b2..5c83aedc97cb 100644 --- a/apps/explorer/lib/explorer/chain/decoding_helper.ex +++ b/apps/explorer/lib/explorer/chain/decoding_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.DecodingHelper do @moduledoc """ Data decoding functions diff --git a/apps/explorer/lib/explorer/chain/denormalization_helper.ex b/apps/explorer/lib/explorer/chain/denormalization_helper.ex index 5ccd37ab7680..91f36c70940c 100644 --- a/apps/explorer/lib/explorer/chain/denormalization_helper.ex +++ b/apps/explorer/lib/explorer/chain/denormalization_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.DenormalizationHelper do @moduledoc """ Helper functions for dynamic logic based on denormalization migration completeness diff --git a/apps/explorer/lib/explorer/chain/events/db_sender.ex b/apps/explorer/lib/explorer/chain/events/db_sender.ex index 3a341f8b7fea..b0170e1bde43 100644 --- a/apps/explorer/lib/explorer/chain/events/db_sender.ex +++ b/apps/explorer/lib/explorer/chain/events/db_sender.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Events.DBSender do @moduledoc """ Sends events to Postgres. diff --git a/apps/explorer/lib/explorer/chain/events/listener.ex b/apps/explorer/lib/explorer/chain/events/listener.ex index a3a6244bd6d4..3519d5d08887 100644 --- a/apps/explorer/lib/explorer/chain/events/listener.ex +++ b/apps/explorer/lib/explorer/chain/events/listener.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Events.Listener do @moduledoc """ Listens and publishes events from PG diff --git a/apps/explorer/lib/explorer/chain/events/publisher.ex b/apps/explorer/lib/explorer/chain/events/publisher.ex index 9338c0bd0ebf..6672eac7d792 100644 --- a/apps/explorer/lib/explorer/chain/events/publisher.ex +++ b/apps/explorer/lib/explorer/chain/events/publisher.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Events.Publisher do @moduledoc """ Publishes events related to the Chain context. diff --git a/apps/explorer/lib/explorer/chain/events/simple_sender.ex b/apps/explorer/lib/explorer/chain/events/simple_sender.ex index f2a8da3e06a3..10cc3508d092 100644 --- a/apps/explorer/lib/explorer/chain/events/simple_sender.ex +++ b/apps/explorer/lib/explorer/chain/events/simple_sender.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Events.SimpleSender do @moduledoc """ Publishes events through Registry without intermediate levels. diff --git a/apps/explorer/lib/explorer/chain/events/subscriber.ex b/apps/explorer/lib/explorer/chain/events/subscriber.ex index 95759a8713ad..f26a98072c55 100644 --- a/apps/explorer/lib/explorer/chain/events/subscriber.ex +++ b/apps/explorer/lib/explorer/chain/events/subscriber.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Events.Subscriber do @moduledoc """ Subscribes to events related to the Chain context. diff --git a/apps/explorer/lib/explorer/chain/fetcher/addresses_blacklist.ex b/apps/explorer/lib/explorer/chain/fetcher/addresses_blacklist.ex index 64a628ead0b3..e89a1c4ddb37 100644 --- a/apps/explorer/lib/explorer/chain/fetcher/addresses_blacklist.ex +++ b/apps/explorer/lib/explorer/chain/fetcher/addresses_blacklist.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Fetcher.AddressesBlacklist do @moduledoc """ General fetcher for addresses blacklist diff --git a/apps/explorer/lib/explorer/chain/fetcher/addresses_blacklist/blockaid.ex b/apps/explorer/lib/explorer/chain/fetcher/addresses_blacklist/blockaid.ex index 736340f9fa4a..5136fd5c4592 100644 --- a/apps/explorer/lib/explorer/chain/fetcher/addresses_blacklist/blockaid.ex +++ b/apps/explorer/lib/explorer/chain/fetcher/addresses_blacklist/blockaid.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Fetcher.AddressesBlacklist.Blockaid do @moduledoc """ Fetcher for addresses blacklist from blockaid provider diff --git a/apps/explorer/lib/explorer/chain/fetcher/check_bytecode_matching_on_demand.ex b/apps/explorer/lib/explorer/chain/fetcher/check_bytecode_matching_on_demand.ex index 594c14296e15..45d7c9119c61 100644 --- a/apps/explorer/lib/explorer/chain/fetcher/check_bytecode_matching_on_demand.ex +++ b/apps/explorer/lib/explorer/chain/fetcher/check_bytecode_matching_on_demand.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Fetcher.CheckBytecodeMatchingOnDemand do @moduledoc """ On demand checker if bytecode written in BlockScout's DB equals to bytecode stored on node (only for verified contracts) diff --git a/apps/explorer/lib/explorer/chain/fetcher/fetch_validator_info_on_demand.ex b/apps/explorer/lib/explorer/chain/fetcher/fetch_validator_info_on_demand.ex index a081a5b521e8..4a1b5d81d463 100644 --- a/apps/explorer/lib/explorer/chain/fetcher/fetch_validator_info_on_demand.ex +++ b/apps/explorer/lib/explorer/chain/fetcher/fetch_validator_info_on_demand.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Fetcher.FetchValidatorInfoOnDemand do @moduledoc """ On demand fetcher info about validator diff --git a/apps/explorer/lib/explorer/chain/fetcher/look_up_smart_contract_sources_on_demand.ex b/apps/explorer/lib/explorer/chain/fetcher/look_up_smart_contract_sources_on_demand.ex index 5d187b54a48c..807c3460aef9 100644 --- a/apps/explorer/lib/explorer/chain/fetcher/look_up_smart_contract_sources_on_demand.ex +++ b/apps/explorer/lib/explorer/chain/fetcher/look_up_smart_contract_sources_on_demand.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Fetcher.LookUpSmartContractSourcesOnDemand do @moduledoc """ On demand fetcher sources for unverified smart contract from diff --git a/apps/explorer/lib/explorer/chain/fhe/fhe_contract_checker.ex b/apps/explorer/lib/explorer/chain/fhe/fhe_contract_checker.ex index 8ab87592d1fe..237666894be0 100644 --- a/apps/explorer/lib/explorer/chain/fhe/fhe_contract_checker.ex +++ b/apps/explorer/lib/explorer/chain/fhe/fhe_contract_checker.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.FheContractChecker do @moduledoc """ Helper module to check if a contract is a Confidential/FHE contract. diff --git a/apps/explorer/lib/explorer/chain/fhe/fhe_operation.ex b/apps/explorer/lib/explorer/chain/fhe/fhe_operation.ex index ff8ddd571e68..7ba102c4aa7d 100644 --- a/apps/explorer/lib/explorer/chain/fhe/fhe_operation.ex +++ b/apps/explorer/lib/explorer/chain/fhe/fhe_operation.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.FheOperation do @moduledoc """ Represents a single FHE (Fully Homomorphic Encryption) operation within a transaction. diff --git a/apps/explorer/lib/explorer/chain/fhe/fhe_operator_prices.ex b/apps/explorer/lib/explorer/chain/fhe/fhe_operator_prices.ex index affa8d25f5c0..ad65fbdb08bf 100644 --- a/apps/explorer/lib/explorer/chain/fhe/fhe_operator_prices.ex +++ b/apps/explorer/lib/explorer/chain/fhe/fhe_operator_prices.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.FheOperatorPrices do @moduledoc """ HCU (Homomorphic Computation Units) price data for FHE operations. diff --git a/apps/explorer/lib/explorer/chain/fhe/parser.ex b/apps/explorer/lib/explorer/chain/fhe/parser.ex index 1be65042ea4d..a747b91890cf 100644 --- a/apps/explorer/lib/explorer/chain/fhe/parser.ex +++ b/apps/explorer/lib/explorer/chain/fhe/parser.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Fhe.Parser do @moduledoc """ Logic for parsing FHE operations from transaction logs. diff --git a/apps/explorer/lib/explorer/chain/filecoin/id.ex b/apps/explorer/lib/explorer/chain/filecoin/id.ex index 8c73460f6e90..823c51510ccd 100644 --- a/apps/explorer/lib/explorer/chain/filecoin/id.ex +++ b/apps/explorer/lib/explorer/chain/filecoin/id.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Filecoin.IDAddress do @moduledoc """ Handles Filecoin ID addresses, wrapping the `NativeAddress` type. diff --git a/apps/explorer/lib/explorer/chain/filecoin/native_address.ex b/apps/explorer/lib/explorer/chain/filecoin/native_address.ex index 205a1107e04f..d35261c29bd2 100644 --- a/apps/explorer/lib/explorer/chain/filecoin/native_address.ex +++ b/apps/explorer/lib/explorer/chain/filecoin/native_address.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Filecoin.NativeAddress do @moduledoc """ Handles Filecoin addresses by parsing, validating, and converting them to and diff --git a/apps/explorer/lib/explorer/chain/filecoin/pending_address_operation.ex b/apps/explorer/lib/explorer/chain/filecoin/pending_address_operation.ex index 6db214a8bd6e..6f53b43f43e3 100644 --- a/apps/explorer/lib/explorer/chain/filecoin/pending_address_operation.ex +++ b/apps/explorer/lib/explorer/chain/filecoin/pending_address_operation.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Filecoin.PendingAddressOperation do @moduledoc """ Tracks an address that is pending for fetching of filecoin address info. diff --git a/apps/explorer/lib/explorer/chain/gas.ex b/apps/explorer/lib/explorer/chain/gas.ex index 06eae13e1a14..a8f374c94b28 100644 --- a/apps/explorer/lib/explorer/chain/gas.ex +++ b/apps/explorer/lib/explorer/chain/gas.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Gas do @moduledoc """ A measurement roughly equivalent to computational steps. Every operation has a gas expenditure; for most operations diff --git a/apps/explorer/lib/explorer/chain/hash.ex b/apps/explorer/lib/explorer/chain/hash.ex index 255861c0d697..b868a5828506 100644 --- a/apps/explorer/lib/explorer/chain/hash.ex +++ b/apps/explorer/lib/explorer/chain/hash.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Hash do @moduledoc """ A [KECCAK-256](https://en.wikipedia.org/wiki/SHA-3) hash. diff --git a/apps/explorer/lib/explorer/chain/hash/address.ex b/apps/explorer/lib/explorer/chain/hash/address.ex index f37db26dee9d..41057caa0b37 100644 --- a/apps/explorer/lib/explorer/chain/hash/address.ex +++ b/apps/explorer/lib/explorer/chain/hash/address.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Hash.Address do @moduledoc """ The address (40 (hex) characters / 160 bits / 20 bytes) is derived from the public key (128 (hex) characters / diff --git a/apps/explorer/lib/explorer/chain/hash/full.ex b/apps/explorer/lib/explorer/chain/hash/full.ex index db2a586bd770..441339c48988 100644 --- a/apps/explorer/lib/explorer/chain/hash/full.ex +++ b/apps/explorer/lib/explorer/chain/hash/full.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Hash.Full do @moduledoc """ A 32-byte [KECCAK-256](https://en.wikipedia.org/wiki/SHA-3) hash. diff --git a/apps/explorer/lib/explorer/chain/hash/nonce.ex b/apps/explorer/lib/explorer/chain/hash/nonce.ex index f8be6c276270..3eb26317ce6d 100644 --- a/apps/explorer/lib/explorer/chain/hash/nonce.ex +++ b/apps/explorer/lib/explorer/chain/hash/nonce.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Hash.Nonce do @moduledoc """ The nonce (16 (hex) characters / 128 bits / 8 bytes) is derived from the Proof-of-Work. diff --git a/apps/explorer/lib/explorer/chain/health/helper.ex b/apps/explorer/lib/explorer/chain/health/helper.ex index 82d4e44de5e9..6cb670d4b0a0 100644 --- a/apps/explorer/lib/explorer/chain/health/helper.ex +++ b/apps/explorer/lib/explorer/chain/health/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Health.Helper do @moduledoc """ Helper functions for /api/health endpoints diff --git a/apps/explorer/lib/explorer/chain/health/monitor.ex b/apps/explorer/lib/explorer/chain/health/monitor.ex index 85afbd67743c..c48ac0e89003 100644 --- a/apps/explorer/lib/explorer/chain/health/monitor.ex +++ b/apps/explorer/lib/explorer/chain/health/monitor.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Health.Monitor do @moduledoc """ This module provides functionality for monitoring of the application health. diff --git a/apps/explorer/lib/explorer/chain/import.ex b/apps/explorer/lib/explorer/chain/import.ex index 2593989eb0a5..db8b694f3b15 100644 --- a/apps/explorer/lib/explorer/chain/import.ex +++ b/apps/explorer/lib/explorer/chain/import.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import do @moduledoc """ Bulk importing of data into `Explorer.Repo` diff --git a/apps/explorer/lib/explorer/chain/import/runner.ex b/apps/explorer/lib/explorer/chain/import/runner.ex index 07b4d080eb4d..bebab143479c 100644 --- a/apps/explorer/lib/explorer/chain/import/runner.ex +++ b/apps/explorer/lib/explorer/chain/import/runner.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner do @moduledoc """ Behaviour used by `Explorer.Chain.Import.all/1` to import data into separate tables. diff --git a/apps/explorer/lib/explorer/chain/import/runner/address/coin_balances.ex b/apps/explorer/lib/explorer/chain/import/runner/address/coin_balances.ex index b75ae6c2488e..5ee64071bb49 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/address/coin_balances.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/address/coin_balances.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Address.CoinBalances do @moduledoc """ Bulk imports `t:Explorer.Chain.Address.CoinBalance.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/address/coin_balances_daily.ex b/apps/explorer/lib/explorer/chain/import/runner/address/coin_balances_daily.ex index e610ed3c81d9..a597044ccc33 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/address/coin_balances_daily.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/address/coin_balances_daily.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Address.CoinBalancesDaily do @moduledoc """ Bulk imports `t:Explorer.Chain.Address.CoinBalancesDaily.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/address/current_token_balances.ex b/apps/explorer/lib/explorer/chain/import/runner/address/current_token_balances.ex index 85e82bb0de68..e2d69283ed4a 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/address/current_token_balances.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/address/current_token_balances.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Address.CurrentTokenBalances do @moduledoc """ Bulk imports `t:Explorer.Chain.Address.CurrentTokenBalance.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/address/token_balances.ex b/apps/explorer/lib/explorer/chain/import/runner/address/token_balances.ex index 932b6cc748f1..bd2046768ca6 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/address/token_balances.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/address/token_balances.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Address.TokenBalances do @moduledoc """ Bulk imports `t:Explorer.Chain.Address.TokenBalance.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/addresses.ex b/apps/explorer/lib/explorer/chain/import/runner/addresses.ex index 265a4bb44b8f..b8239b915849 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/addresses.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/addresses.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Addresses do @moduledoc """ Bulk imports `t:Explorer.Chain.Address.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/arbitrum/batch_blocks.ex b/apps/explorer/lib/explorer/chain/import/runner/arbitrum/batch_blocks.ex index 2b97c22e75f1..c5f26081565a 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/arbitrum/batch_blocks.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/arbitrum/batch_blocks.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Arbitrum.BatchBlocks do @moduledoc """ Bulk imports of Explorer.Chain.Arbitrum.BatchBlock. diff --git a/apps/explorer/lib/explorer/chain/import/runner/arbitrum/batch_to_da_blobs.ex b/apps/explorer/lib/explorer/chain/import/runner/arbitrum/batch_to_da_blobs.ex index 752b94d4da6c..296256c44185 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/arbitrum/batch_to_da_blobs.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/arbitrum/batch_to_da_blobs.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Arbitrum.BatchToDaBlobs do @moduledoc """ Bulk imports of Explorer.Chain.Arbitrum.BatchToDaBlob. diff --git a/apps/explorer/lib/explorer/chain/import/runner/arbitrum/batch_transactions.ex b/apps/explorer/lib/explorer/chain/import/runner/arbitrum/batch_transactions.ex index 17cda3fb909a..333283517073 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/arbitrum/batch_transactions.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/arbitrum/batch_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Arbitrum.BatchTransactions do @moduledoc """ Bulk imports of Explorer.Chain.Arbitrum.BatchTransaction. diff --git a/apps/explorer/lib/explorer/chain/import/runner/arbitrum/da_multi_purpose_records.ex b/apps/explorer/lib/explorer/chain/import/runner/arbitrum/da_multi_purpose_records.ex index ca8ef10c95ee..4eb647f7ef83 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/arbitrum/da_multi_purpose_records.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/arbitrum/da_multi_purpose_records.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Arbitrum.DaMultiPurposeRecords do @moduledoc """ Bulk imports of Explorer.Chain.Arbitrum.DaMultiPurposeRecord. diff --git a/apps/explorer/lib/explorer/chain/import/runner/arbitrum/l1_batches.ex b/apps/explorer/lib/explorer/chain/import/runner/arbitrum/l1_batches.ex index ddca21b5de95..f6ea269fb34f 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/arbitrum/l1_batches.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/arbitrum/l1_batches.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Arbitrum.L1Batches do @moduledoc """ Bulk imports of Explorer.Chain.Arbitrum.L1Batch. diff --git a/apps/explorer/lib/explorer/chain/import/runner/arbitrum/l1_executions.ex b/apps/explorer/lib/explorer/chain/import/runner/arbitrum/l1_executions.ex index e597ba55f0e2..4e6d105a7d0c 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/arbitrum/l1_executions.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/arbitrum/l1_executions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Arbitrum.L1Executions do @moduledoc """ Bulk imports of Explorer.Chain.Arbitrum.L1Execution. diff --git a/apps/explorer/lib/explorer/chain/import/runner/arbitrum/lifecycle_transactions.ex b/apps/explorer/lib/explorer/chain/import/runner/arbitrum/lifecycle_transactions.ex index b6ab03b73cee..d0d23dc26786 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/arbitrum/lifecycle_transactions.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/arbitrum/lifecycle_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Arbitrum.LifecycleTransactions do @moduledoc """ Bulk imports of Explorer.Chain.Arbitrum.LifecycleTransaction. diff --git a/apps/explorer/lib/explorer/chain/import/runner/arbitrum/messages.ex b/apps/explorer/lib/explorer/chain/import/runner/arbitrum/messages.ex index e7a67e3b5f33..7c8629495838 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/arbitrum/messages.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/arbitrum/messages.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Arbitrum.Messages do @moduledoc """ Bulk imports of Explorer.Chain.Arbitrum.Message. diff --git a/apps/explorer/lib/explorer/chain/import/runner/beacon/blob_transactions.ex b/apps/explorer/lib/explorer/chain/import/runner/beacon/blob_transactions.ex index 251f81ea5534..1cac0aaeab1f 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/beacon/blob_transactions.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/beacon/blob_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Beacon.BlobTransactions do @moduledoc """ Bulk imports `t:Explorer.Chain.Beacon.BlobTransaction.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/block/rewards.ex b/apps/explorer/lib/explorer/chain/import/runner/block/rewards.ex index cf13ae1b2278..f3140ab0a69d 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/block/rewards.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/block/rewards.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Block.Rewards do @moduledoc """ Bulk imports `t:Explorer.Chain.Block.Reward.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/block/second_degree_relations.ex b/apps/explorer/lib/explorer/chain/import/runner/block/second_degree_relations.ex index 0383e681d31d..4061835998a7 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/block/second_degree_relations.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/block/second_degree_relations.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Block.SecondDegreeRelations do @moduledoc """ Bulk imports `t:Explorer.Chain.Block.SecondDegreeRelation.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/blocks.ex b/apps/explorer/lib/explorer/chain/import/runner/blocks.ex index 8fe151942eb3..60430b3c520f 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/blocks.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/blocks.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Blocks do @moduledoc """ Bulk imports `t:Explorer.Chain.Block.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/celo/accounts.ex b/apps/explorer/lib/explorer/chain/import/runner/celo/accounts.ex index 52ed902ff579..f627b7cb2ce7 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/celo/accounts.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/celo/accounts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Celo.Accounts do @moduledoc """ Bulk imports `t:Explorer.Chain.Celo.Account.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/celo/aggregated_election_rewards.ex b/apps/explorer/lib/explorer/chain/import/runner/celo/aggregated_election_rewards.ex index 24cd225b5b33..87aa7dfba16f 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/celo/aggregated_election_rewards.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/celo/aggregated_election_rewards.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Celo.AggregatedElectionRewards do @moduledoc """ Bulk imports `t:Explorer.Chain.Celo.AggregatedElectionReward.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/celo/election_rewards.ex b/apps/explorer/lib/explorer/chain/import/runner/celo/election_rewards.ex index 2e1715f599c5..ad4ee909ac53 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/celo/election_rewards.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/celo/election_rewards.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Celo.ElectionRewards do @moduledoc """ Bulk imports `t:Explorer.Chain.Celo.ElectionReward.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/celo/epoch_rewards.ex b/apps/explorer/lib/explorer/chain/import/runner/celo/epoch_rewards.ex index 5846be4d9d04..6b36be2eb2d2 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/celo/epoch_rewards.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/celo/epoch_rewards.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Celo.EpochRewards do @moduledoc """ Bulk imports `t:Explorer.Chain.Celo.EpochReward.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/celo/epochs.ex b/apps/explorer/lib/explorer/chain/import/runner/celo/epochs.ex index 9fdf3e868120..1ea3b158a474 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/celo/epochs.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/celo/epochs.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Celo.Epochs do @moduledoc """ Bulk imports `t:Explorer.Chain.Celo.Epoch.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/celo/pending_account_operations.ex b/apps/explorer/lib/explorer/chain/import/runner/celo/pending_account_operations.ex index 71cd9cac9de9..47d369564ffa 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/celo/pending_account_operations.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/celo/pending_account_operations.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Celo.PendingAccountOperations do @moduledoc """ Bulk imports `t:Explorer.Chain.Celo.PendingAccountOperation.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/celo/validator_group_votes.ex b/apps/explorer/lib/explorer/chain/import/runner/celo/validator_group_votes.ex index f196a1fe6724..4349e3843879 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/celo/validator_group_votes.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/celo/validator_group_votes.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Celo.ValidatorGroupVotes do @moduledoc """ Bulk imports `t:Explorer.Chain.Celo.ValidatorGroupVote.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/fhe_operations.ex b/apps/explorer/lib/explorer/chain/import/runner/fhe_operations.ex index 45d87f689004..80c6555de452 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/fhe_operations.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/fhe_operations.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.FheOperations do @moduledoc """ Bulk imports FHE operations parsed from transaction logs. diff --git a/apps/explorer/lib/explorer/chain/import/runner/helper.ex b/apps/explorer/lib/explorer/chain/import/runner/helper.ex index 5022ddbb3534..242408e5819a 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/helper.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Helper do @moduledoc """ Provides utility functions for the chain import runners. diff --git a/apps/explorer/lib/explorer/chain/import/runner/internal_transactions.ex b/apps/explorer/lib/explorer/chain/import/runner/internal_transactions.ex index 738a71eede3a..888cd7ecbdff 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/internal_transactions.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/internal_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.InternalTransactions do @moduledoc """ Bulk imports `t:Explorer.Chain.InternalTransactions.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/logs.ex b/apps/explorer/lib/explorer/chain/import/runner/logs.ex index 10e811c55762..f41af369600e 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/logs.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/logs.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Logs do @moduledoc """ Bulk imports `t:Explorer.Chain.Log.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/optimism/deposits.ex b/apps/explorer/lib/explorer/chain/import/runner/optimism/deposits.ex index 0422a625f35a..29abd107d73d 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/optimism/deposits.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/optimism/deposits.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Optimism.Deposits do @moduledoc """ Bulk imports `t:Explorer.Chain.Deposit.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/optimism/dispute_games.ex b/apps/explorer/lib/explorer/chain/import/runner/optimism/dispute_games.ex index 304ecd0c2aa4..d6b68f3ec559 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/optimism/dispute_games.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/optimism/dispute_games.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Optimism.DisputeGames do @moduledoc """ Bulk imports `t:Explorer.Chain.Optimism.DisputeGame.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/optimism/eip1559_config_updates.ex b/apps/explorer/lib/explorer/chain/import/runner/optimism/eip1559_config_updates.ex index afa33faa0a84..41806657b7d4 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/optimism/eip1559_config_updates.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/optimism/eip1559_config_updates.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Optimism.EIP1559ConfigUpdates do @moduledoc """ Bulk imports `t:Explorer.Chain.Optimism.EIP1559ConfigUpdate.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/optimism/frame_sequence_blobs.ex b/apps/explorer/lib/explorer/chain/import/runner/optimism/frame_sequence_blobs.ex index 56a2d6dcb13d..4aaeb132abef 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/optimism/frame_sequence_blobs.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/optimism/frame_sequence_blobs.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Optimism.FrameSequenceBlobs do @moduledoc """ Bulk imports `t:Explorer.Chain.Optimism.FrameSequenceBlob.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/optimism/frame_sequences.ex b/apps/explorer/lib/explorer/chain/import/runner/optimism/frame_sequences.ex index bf45f5354d71..4d3112654408 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/optimism/frame_sequences.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/optimism/frame_sequences.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Optimism.FrameSequences do @moduledoc """ Bulk imports `t:Explorer.Chain.Optimism.FrameSequence.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/optimism/interop_messages.ex b/apps/explorer/lib/explorer/chain/import/runner/optimism/interop_messages.ex index ea8f67a27680..7074e4b5d62f 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/optimism/interop_messages.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/optimism/interop_messages.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Optimism.InteropMessages do @moduledoc """ Bulk imports `t:Explorer.Chain.Optimism.InteropMessage.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/optimism/output_roots.ex b/apps/explorer/lib/explorer/chain/import/runner/optimism/output_roots.ex index d0027bc483f6..bdd45a048ce7 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/optimism/output_roots.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/optimism/output_roots.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Optimism.OutputRoots do @moduledoc """ Bulk imports `t:Explorer.Chain.Optimism.OutputRoot.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/optimism/transaction_batches.ex b/apps/explorer/lib/explorer/chain/import/runner/optimism/transaction_batches.ex index ae846119fd34..aca25624738f 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/optimism/transaction_batches.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/optimism/transaction_batches.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Optimism.TransactionBatches do @moduledoc """ Bulk imports `t:Explorer.Chain.Optimism.TransactionBatch.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/optimism/withdrawal_events.ex b/apps/explorer/lib/explorer/chain/import/runner/optimism/withdrawal_events.ex index f2fe0077873d..1347344003ae 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/optimism/withdrawal_events.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/optimism/withdrawal_events.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Optimism.WithdrawalEvents do @moduledoc """ Bulk imports `t:Explorer.Chain.Optimism.WithdrawalEvent.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/optimism/withdrawals.ex b/apps/explorer/lib/explorer/chain/import/runner/optimism/withdrawals.ex index 450c97b07017..193e642207fc 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/optimism/withdrawals.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/optimism/withdrawals.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Optimism.Withdrawals do @moduledoc """ Bulk imports `t:Explorer.Chain.OptimismWithdrawal.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/scroll/batch_bundles.ex b/apps/explorer/lib/explorer/chain/import/runner/scroll/batch_bundles.ex index 20633de83635..8434a29c1099 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/scroll/batch_bundles.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/scroll/batch_bundles.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Scroll.BatchBundles do @moduledoc """ Bulk imports `Explorer.Chain.Scroll.BatchBundle`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/scroll/batches.ex b/apps/explorer/lib/explorer/chain/import/runner/scroll/batches.ex index 710e22c9429f..b88ed19084bf 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/scroll/batches.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/scroll/batches.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Scroll.Batches do @moduledoc """ Bulk imports `Explorer.Chain.Scroll.Batch`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/scroll/bridge_operations.ex b/apps/explorer/lib/explorer/chain/import/runner/scroll/bridge_operations.ex index 44c8cc4f7fbc..55a13e50add3 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/scroll/bridge_operations.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/scroll/bridge_operations.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Scroll.BridgeOperations do @moduledoc """ Bulk imports `Explorer.Chain.Scroll.Bridge`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/scroll/l1_fee_params.ex b/apps/explorer/lib/explorer/chain/import/runner/scroll/l1_fee_params.ex index 525fd0ffee5e..0b99cb02db19 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/scroll/l1_fee_params.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/scroll/l1_fee_params.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Scroll.L1FeeParams do @moduledoc """ Bulk imports `Explorer.Chain.Scroll.L1FeeParam`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/shibarium/bridge_operations.ex b/apps/explorer/lib/explorer/chain/import/runner/shibarium/bridge_operations.ex index b7cd680ae231..5d8a464e2cb3 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/shibarium/bridge_operations.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/shibarium/bridge_operations.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Shibarium.BridgeOperations do @moduledoc """ Bulk imports `t:Explorer.Chain.Shibarium.Bridge.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/signed_authorizations.ex b/apps/explorer/lib/explorer/chain/import/runner/signed_authorizations.ex index 5f71e9a697fb..8eb8e371acc1 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/signed_authorizations.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/signed_authorizations.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.SignedAuthorizations do @moduledoc """ Bulk imports `t:Explorer.Chain.SignedAuthorization.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/stability/validators.ex b/apps/explorer/lib/explorer/chain/import/runner/stability/validators.ex index ba4d03f33d87..1e5ed19ee752 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/stability/validators.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/stability/validators.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Stability.Validators do @moduledoc """ Bulk updates `t:Explorer.Chain.Stability.Validator.t/0` blocks_validated counters. diff --git a/apps/explorer/lib/explorer/chain/import/runner/stats/hot_smart_contracts.ex b/apps/explorer/lib/explorer/chain/import/runner/stats/hot_smart_contracts.ex index 7a126c0ca770..b246b5962c73 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/stats/hot_smart_contracts.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/stats/hot_smart_contracts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Stats.HotSmartContracts do @moduledoc """ Bulk imports `t:Explorer.Stats.HotSmartContracts.t/0` rows (hot_smart_contracts_daily). diff --git a/apps/explorer/lib/explorer/chain/import/runner/token_instances.ex b/apps/explorer/lib/explorer/chain/import/runner/token_instances.ex index 0fb38962a755..de9326de5d28 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/token_instances.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/token_instances.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.TokenInstances do @moduledoc """ Bulk imports `t:Explorer.Chain.TokenInstances.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/token_transfers.ex b/apps/explorer/lib/explorer/chain/import/runner/token_transfers.ex index dc0ca4a64cef..9523c358f7a1 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/token_transfers.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/token_transfers.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.TokenTransfers do @moduledoc """ Bulk imports `t:Explorer.Chain.TokenTransfer.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/tokens.ex b/apps/explorer/lib/explorer/chain/import/runner/tokens.ex index 2c1a3234be70..ef77f04be358 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/tokens.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/tokens.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Tokens do @moduledoc """ Bulk imports `t:Explorer.Chain.Token.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/transaction/forks.ex b/apps/explorer/lib/explorer/chain/import/runner/transaction/forks.ex index 19144b9dca97..fa43a2b3bace 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/transaction/forks.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/transaction/forks.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Transaction.Forks do @moduledoc """ Bulk imports `t:Explorer.Chain.Transaction.Fork.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/transactions.ex b/apps/explorer/lib/explorer/chain/import/runner/transactions.ex index 66db3a1a90e9..fac92be3485f 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/transactions.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Transactions do @moduledoc """ Bulk imports `t:Explorer.Chain.Transaction.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/withdrawals.ex b/apps/explorer/lib/explorer/chain/import/runner/withdrawals.ex index 1c84df614110..4608207165e4 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/withdrawals.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/withdrawals.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Withdrawals do @moduledoc """ Bulk imports `t:Explorer.Chain.Withdrawal.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/zilliqa/aggregate_quorum_certificates.ex b/apps/explorer/lib/explorer/chain/import/runner/zilliqa/aggregate_quorum_certificates.ex index 42a2b00357a3..a35a79285d16 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/zilliqa/aggregate_quorum_certificates.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/zilliqa/aggregate_quorum_certificates.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Zilliqa.AggregateQuorumCertificates do @moduledoc """ Bulk imports `t:Explorer.Chain.Zilliqa.AggregateQuorumCertificate.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/zilliqa/nested_quorum_certificates.ex b/apps/explorer/lib/explorer/chain/import/runner/zilliqa/nested_quorum_certificates.ex index 78cc04979803..7df0efd1f5c3 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/zilliqa/nested_quorum_certificates.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/zilliqa/nested_quorum_certificates.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Zilliqa.NestedQuorumCertificates do @moduledoc """ Bulk imports `t:Explorer.Chain.Zilliqa.NestedQuorumCertificate.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/zilliqa/quorum_certificates.ex b/apps/explorer/lib/explorer/chain/import/runner/zilliqa/quorum_certificates.ex index e7b876910a8b..d2e42ed9c137 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/zilliqa/quorum_certificates.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/zilliqa/quorum_certificates.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Zilliqa.QuorumCertificates do @moduledoc """ Bulk imports `t:Explorer.Chain.Zilliqa.QuorumCertificate.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/zilliqa/zrc2/token_adapters.ex b/apps/explorer/lib/explorer/chain/import/runner/zilliqa/zrc2/token_adapters.ex index 9a7b9c154dd5..6a948349b545 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/zilliqa/zrc2/token_adapters.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/zilliqa/zrc2/token_adapters.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Zilliqa.Zrc2.TokenAdapters do @moduledoc """ Bulk imports `t:Explorer.Chain.Zilliqa.Zrc2.TokenAdapter.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/zilliqa/zrc2/token_transfers.ex b/apps/explorer/lib/explorer/chain/import/runner/zilliqa/zrc2/token_transfers.ex index c68390dc8b51..b366f389767a 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/zilliqa/zrc2/token_transfers.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/zilliqa/zrc2/token_transfers.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Zilliqa.Zrc2.TokenTransfers do @moduledoc """ Bulk imports `t:Explorer.Chain.Zilliqa.Zrc2.TokenTransfer.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/zksync/batch_blocks.ex b/apps/explorer/lib/explorer/chain/import/runner/zksync/batch_blocks.ex index 33d075e93588..362a2f685778 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/zksync/batch_blocks.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/zksync/batch_blocks.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.ZkSync.BatchBlocks do @moduledoc """ Bulk imports `t:Explorer.Chain.ZkSync.BatchBlock.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/zksync/batch_transactions.ex b/apps/explorer/lib/explorer/chain/import/runner/zksync/batch_transactions.ex index a7dca2298b86..2d8e645b68b0 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/zksync/batch_transactions.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/zksync/batch_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.ZkSync.BatchTransactions do @moduledoc """ Bulk imports `t:Explorer.Chain.ZkSync.BatchTransaction.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/zksync/lifecycle_transactions.ex b/apps/explorer/lib/explorer/chain/import/runner/zksync/lifecycle_transactions.ex index 7011423601ee..58fd12cbee3f 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/zksync/lifecycle_transactions.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/zksync/lifecycle_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.ZkSync.LifecycleTransactions do @moduledoc """ Bulk imports `t:Explorer.Chain.ZkSync.LifecycleTransaction.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/runner/zksync/transaction_batches.ex b/apps/explorer/lib/explorer/chain/import/runner/zksync/transaction_batches.ex index 11c85fff7601..b03df1708a71 100644 --- a/apps/explorer/lib/explorer/chain/import/runner/zksync/transaction_batches.ex +++ b/apps/explorer/lib/explorer/chain/import/runner/zksync/transaction_batches.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.ZkSync.TransactionBatches do @moduledoc """ Bulk imports `t:Explorer.Chain.ZkSync.TransactionBatch.t/0`. diff --git a/apps/explorer/lib/explorer/chain/import/stage.ex b/apps/explorer/lib/explorer/chain/import/stage.ex index ed000760ca9b..5120d0ee88b0 100644 --- a/apps/explorer/lib/explorer/chain/import/stage.ex +++ b/apps/explorer/lib/explorer/chain/import/stage.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Stage do @moduledoc """ Behaviour used to chunk `changes_list` into multiple `t:Ecto.Multi.t/0`` that can run in separate transactions to diff --git a/apps/explorer/lib/explorer/chain/import/stage/addresses.ex b/apps/explorer/lib/explorer/chain/import/stage/addresses.ex index 48f7ff82b454..0786e46108d2 100644 --- a/apps/explorer/lib/explorer/chain/import/stage/addresses.ex +++ b/apps/explorer/lib/explorer/chain/import/stage/addresses.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Stage.Addresses do @moduledoc """ Import addresses. diff --git a/apps/explorer/lib/explorer/chain/import/stage/block_transaction_referencing.ex b/apps/explorer/lib/explorer/chain/import/stage/block_transaction_referencing.ex index 1e9c50b82acf..5fbbcd9b53f2 100644 --- a/apps/explorer/lib/explorer/chain/import/stage/block_transaction_referencing.ex +++ b/apps/explorer/lib/explorer/chain/import/stage/block_transaction_referencing.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Stage.BlockTransactionReferencing do @moduledoc """ Imports any data that is related to blocks and transactions. diff --git a/apps/explorer/lib/explorer/chain/import/stage/blocks.ex b/apps/explorer/lib/explorer/chain/import/stage/blocks.ex index 205acd55453f..5d2e7e87a799 100644 --- a/apps/explorer/lib/explorer/chain/import/stage/blocks.ex +++ b/apps/explorer/lib/explorer/chain/import/stage/blocks.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Stage.Blocks do @moduledoc """ Import blocks. diff --git a/apps/explorer/lib/explorer/chain/import/stage/chain_type_specific.ex b/apps/explorer/lib/explorer/chain/import/stage/chain_type_specific.ex index 0809c354dfc9..63a07a05ba7e 100644 --- a/apps/explorer/lib/explorer/chain/import/stage/chain_type_specific.ex +++ b/apps/explorer/lib/explorer/chain/import/stage/chain_type_specific.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Stage.ChainTypeSpecific do @moduledoc """ Imports any chain type specific tables. diff --git a/apps/explorer/lib/explorer/chain/import/stage/internal_transactions.ex b/apps/explorer/lib/explorer/chain/import/stage/internal_transactions.ex index 178c6a1b95a3..29284932ea0f 100644 --- a/apps/explorer/lib/explorer/chain/import/stage/internal_transactions.ex +++ b/apps/explorer/lib/explorer/chain/import/stage/internal_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Stage.InternalTransactions do @moduledoc """ Imports the rest of the data. diff --git a/apps/explorer/lib/explorer/chain/import/stage/logs.ex b/apps/explorer/lib/explorer/chain/import/stage/logs.ex index 739af1583d35..0b879f3b87a0 100644 --- a/apps/explorer/lib/explorer/chain/import/stage/logs.ex +++ b/apps/explorer/lib/explorer/chain/import/stage/logs.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Stage.Logs do @moduledoc """ Import logs. diff --git a/apps/explorer/lib/explorer/chain/import/stage/main.ex b/apps/explorer/lib/explorer/chain/import/stage/main.ex index 863167db63a6..9f4c79bcea32 100644 --- a/apps/explorer/lib/explorer/chain/import/stage/main.ex +++ b/apps/explorer/lib/explorer/chain/import/stage/main.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Stage.Main do @moduledoc """ Imports main data (address_coin_balances, address_coin_balances_daily, tokens, transactions). diff --git a/apps/explorer/lib/explorer/chain/import/stage/stats.ex b/apps/explorer/lib/explorer/chain/import/stage/stats.ex index 3f702097b877..813aea6835c7 100644 --- a/apps/explorer/lib/explorer/chain/import/stage/stats.ex +++ b/apps/explorer/lib/explorer/chain/import/stage/stats.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Stage.Stats do @moduledoc """ Imports stats data (hot_smart_contracts_daily). diff --git a/apps/explorer/lib/explorer/chain/import/stage/token_instances.ex b/apps/explorer/lib/explorer/chain/import/stage/token_instances.ex index 785930e6e18d..57eecbedbbef 100644 --- a/apps/explorer/lib/explorer/chain/import/stage/token_instances.ex +++ b/apps/explorer/lib/explorer/chain/import/stage/token_instances.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Stage.TokenInstances do @moduledoc """ Import token instances. diff --git a/apps/explorer/lib/explorer/chain/import/stage/token_referencing.ex b/apps/explorer/lib/explorer/chain/import/stage/token_referencing.ex index 728254ec7aad..7e9d82260ce2 100644 --- a/apps/explorer/lib/explorer/chain/import/stage/token_referencing.ex +++ b/apps/explorer/lib/explorer/chain/import/stage/token_referencing.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Stage.TokenReferencing do @moduledoc """ Imports any data that is related to tokens. diff --git a/apps/explorer/lib/explorer/chain/internal_transaction.ex b/apps/explorer/lib/explorer/chain/internal_transaction.ex index 025255b3a85c..e7a50ee5136c 100644 --- a/apps/explorer/lib/explorer/chain/internal_transaction.ex +++ b/apps/explorer/lib/explorer/chain/internal_transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.InternalTransaction do @moduledoc "Models internal transactions." diff --git a/apps/explorer/lib/explorer/chain/internal_transaction/action.ex b/apps/explorer/lib/explorer/chain/internal_transaction/action.ex index d3311f34879e..79b7206d687f 100644 --- a/apps/explorer/lib/explorer/chain/internal_transaction/action.ex +++ b/apps/explorer/lib/explorer/chain/internal_transaction/action.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.InternalTransaction.Action do @moduledoc """ The action that was performed in a `t:EthereumJSONRPC.Nethermind.Trace.t/0` diff --git a/apps/explorer/lib/explorer/chain/internal_transaction/call_type.ex b/apps/explorer/lib/explorer/chain/internal_transaction/call_type.ex index 63e6dba64d2c..7bb4c7523aa3 100644 --- a/apps/explorer/lib/explorer/chain/internal_transaction/call_type.ex +++ b/apps/explorer/lib/explorer/chain/internal_transaction/call_type.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.InternalTransaction.CallType do @moduledoc """ Internal transaction types diff --git a/apps/explorer/lib/explorer/chain/internal_transaction/delete_queue.ex b/apps/explorer/lib/explorer/chain/internal_transaction/delete_queue.ex index 6533e70527d7..660e30c0fc81 100644 --- a/apps/explorer/lib/explorer/chain/internal_transaction/delete_queue.ex +++ b/apps/explorer/lib/explorer/chain/internal_transaction/delete_queue.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.InternalTransaction.DeleteQueue do @moduledoc """ Stores numbers for blocks, whose internal transactions should be deleted and refetched diff --git a/apps/explorer/lib/explorer/chain/internal_transaction/result.ex b/apps/explorer/lib/explorer/chain/internal_transaction/result.ex index 505f54568630..60080125c36b 100644 --- a/apps/explorer/lib/explorer/chain/internal_transaction/result.ex +++ b/apps/explorer/lib/explorer/chain/internal_transaction/result.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.InternalTransaction.Result do @moduledoc """ The result of performing the `t:EthereumJSONRPC.Nethermind.Action.t/0` in a `t:EthereumJSONRPC.Nethermind.Trace.t/0`. diff --git a/apps/explorer/lib/explorer/chain/internal_transaction/type.ex b/apps/explorer/lib/explorer/chain/internal_transaction/type.ex index 0be77999e52c..9a06ccc1a4a9 100644 --- a/apps/explorer/lib/explorer/chain/internal_transaction/type.ex +++ b/apps/explorer/lib/explorer/chain/internal_transaction/type.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.InternalTransaction.Type do @moduledoc """ Internal transaction types diff --git a/apps/explorer/lib/explorer/chain/log.ex b/apps/explorer/lib/explorer/chain/log.ex index f4e5210660bd..2e9a17231b2d 100644 --- a/apps/explorer/lib/explorer/chain/log.ex +++ b/apps/explorer/lib/explorer/chain/log.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Log.Schema do @moduledoc false use Utils.CompileTimeEnvHelper, diff --git a/apps/explorer/lib/explorer/chain/map_cache.ex b/apps/explorer/lib/explorer/chain/map_cache.ex index fbe38db6bbca..b8cad05203ec 100644 --- a/apps/explorer/lib/explorer/chain/map_cache.ex +++ b/apps/explorer/lib/explorer/chain/map_cache.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.MapCache do @moduledoc """ Behaviour for a map-like cache of elements. diff --git a/apps/explorer/lib/explorer/chain/method_identifier.ex b/apps/explorer/lib/explorer/chain/method_identifier.ex index 41ec6e3a167f..5ebe3e50a76d 100644 --- a/apps/explorer/lib/explorer/chain/method_identifier.ex +++ b/apps/explorer/lib/explorer/chain/method_identifier.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.MethodIdentifier do @moduledoc """ The first four bytes of the [KECCAK-256](https://en.wikipedia.org/wiki/SHA-3) hash of a contract method or event. diff --git a/apps/explorer/lib/explorer/chain/metrics/public_metrics.ex b/apps/explorer/lib/explorer/chain/metrics/public_metrics.ex index 5b5b33c22eda..dd4adef608cc 100644 --- a/apps/explorer/lib/explorer/chain/metrics/public_metrics.ex +++ b/apps/explorer/lib/explorer/chain/metrics/public_metrics.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Metrics.PublicMetrics do @moduledoc """ Module responsible for periodically setting current chain metrics. diff --git a/apps/explorer/lib/explorer/chain/metrics/queries/indexer_metrics.ex b/apps/explorer/lib/explorer/chain/metrics/queries/indexer_metrics.ex index cc6661c85bc2..721480ad1baf 100644 --- a/apps/explorer/lib/explorer/chain/metrics/queries/indexer_metrics.ex +++ b/apps/explorer/lib/explorer/chain/metrics/queries/indexer_metrics.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Metrics.Queries.IndexerMetrics do @moduledoc """ Module for DB queries to get indexer health metrics diff --git a/apps/explorer/lib/explorer/chain/metrics/queries/public_chain_metrics.ex b/apps/explorer/lib/explorer/chain/metrics/queries/public_chain_metrics.ex index 40e961fe2ba0..f22ef190d40a 100644 --- a/apps/explorer/lib/explorer/chain/metrics/queries/public_chain_metrics.ex +++ b/apps/explorer/lib/explorer/chain/metrics/queries/public_chain_metrics.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Metrics.Queries.PublicChainMetrics do @moduledoc """ Module for DB queries to get chain metrics exposed at /public-metrics endpoint diff --git a/apps/explorer/lib/explorer/chain/mud.ex b/apps/explorer/lib/explorer/chain/mud.ex index dc70e0467285..6ba99b7ace15 100644 --- a/apps/explorer/lib/explorer/chain/mud.ex +++ b/apps/explorer/lib/explorer/chain/mud.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Mud do @moduledoc """ Represents a MUD framework database record. diff --git a/apps/explorer/lib/explorer/chain/mud/schema.ex b/apps/explorer/lib/explorer/chain/mud/schema.ex index 42c22359f9ef..84406f24274c 100644 --- a/apps/explorer/lib/explorer/chain/mud/schema.ex +++ b/apps/explorer/lib/explorer/chain/mud/schema.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Mud.Schema do @moduledoc """ Represents a MUD framework database record schema. diff --git a/apps/explorer/lib/explorer/chain/mud/table.ex b/apps/explorer/lib/explorer/chain/mud/table.ex index 3adfc39a6593..2670cabc67e9 100644 --- a/apps/explorer/lib/explorer/chain/mud/table.ex +++ b/apps/explorer/lib/explorer/chain/mud/table.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Mud.Table do @moduledoc """ Represents a decoded MUD framework database table ID. diff --git a/apps/explorer/lib/explorer/chain/multichain_search_db/balances_export_queue.ex b/apps/explorer/lib/explorer/chain/multichain_search_db/balances_export_queue.ex index 5aa7d248629b..8a5e3fbdebaf 100644 --- a/apps/explorer/lib/explorer/chain/multichain_search_db/balances_export_queue.ex +++ b/apps/explorer/lib/explorer/chain/multichain_search_db/balances_export_queue.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.MultichainSearchDb.BalancesExportQueue do @moduledoc """ Tracks token and coin balances, pending for export to the Multichain Service database. diff --git a/apps/explorer/lib/explorer/chain/multichain_search_db/counters_export_queue.ex b/apps/explorer/lib/explorer/chain/multichain_search_db/counters_export_queue.ex index e00e79fbd72a..3f07a1e32742 100644 --- a/apps/explorer/lib/explorer/chain/multichain_search_db/counters_export_queue.ex +++ b/apps/explorer/lib/explorer/chain/multichain_search_db/counters_export_queue.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.MultichainSearchDb.CountersExportQueue do @moduledoc """ Tracks counters data, pending for export to the Multichain Service database. diff --git a/apps/explorer/lib/explorer/chain/multichain_search_db/main_export_queue.ex b/apps/explorer/lib/explorer/chain/multichain_search_db/main_export_queue.ex index d2a426d4ee7b..dbc282f2daa0 100644 --- a/apps/explorer/lib/explorer/chain/multichain_search_db/main_export_queue.ex +++ b/apps/explorer/lib/explorer/chain/multichain_search_db/main_export_queue.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.MultichainSearchDb.MainExportQueue do @moduledoc """ Tracks main blockchain data: block, transaction hashes, addresses with the metadata and block ranges, diff --git a/apps/explorer/lib/explorer/chain/multichain_search_db/token_info_export_queue.ex b/apps/explorer/lib/explorer/chain/multichain_search_db/token_info_export_queue.ex index 567eadbd4f09..58ad65d42dda 100644 --- a/apps/explorer/lib/explorer/chain/multichain_search_db/token_info_export_queue.ex +++ b/apps/explorer/lib/explorer/chain/multichain_search_db/token_info_export_queue.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.MultichainSearchDb.TokenInfoExportQueue do @moduledoc """ Tracks token data, pending for export to the Multichain Service database. diff --git a/apps/explorer/lib/explorer/chain/neon/linked_solana_transactions.ex b/apps/explorer/lib/explorer/chain/neon/linked_solana_transactions.ex index 9a0548b5b4c1..93fddee15c1f 100644 --- a/apps/explorer/lib/explorer/chain/neon/linked_solana_transactions.ex +++ b/apps/explorer/lib/explorer/chain/neon/linked_solana_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Neon.LinkedSolanaTransactions do @moduledoc """ A relation table between a regular EVM transaction and multiple Solana transactions diff --git a/apps/explorer/lib/explorer/chain/null_round_height.ex b/apps/explorer/lib/explorer/chain/null_round_height.ex index d89b763dcd11..0325f2a52071 100644 --- a/apps/explorer/lib/explorer/chain/null_round_height.ex +++ b/apps/explorer/lib/explorer/chain/null_round_height.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.NullRoundHeight do @moduledoc """ Manages and tracks null round heights in the Filecoin blockchain. diff --git a/apps/explorer/lib/explorer/chain/optimism/deposit.ex b/apps/explorer/lib/explorer/chain/optimism/deposit.ex index 25149344af9b..79048471193c 100644 --- a/apps/explorer/lib/explorer/chain/optimism/deposit.ex +++ b/apps/explorer/lib/explorer/chain/optimism/deposit.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Optimism.Deposit do @moduledoc "Models a deposit for Optimism." diff --git a/apps/explorer/lib/explorer/chain/optimism/dispute_game.ex b/apps/explorer/lib/explorer/chain/optimism/dispute_game.ex index a18d5f9e5182..25666afb6775 100644 --- a/apps/explorer/lib/explorer/chain/optimism/dispute_game.ex +++ b/apps/explorer/lib/explorer/chain/optimism/dispute_game.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Optimism.DisputeGame do @moduledoc "Models a dispute game for Optimism." diff --git a/apps/explorer/lib/explorer/chain/optimism/eip1559_config_update.ex b/apps/explorer/lib/explorer/chain/optimism/eip1559_config_update.ex index f52e5e3b4cc2..e2f7e6d020c3 100644 --- a/apps/explorer/lib/explorer/chain/optimism/eip1559_config_update.ex +++ b/apps/explorer/lib/explorer/chain/optimism/eip1559_config_update.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Optimism.EIP1559ConfigUpdate do @moduledoc "Models EIP-1559 config updates for Optimism (introduced by Holocene upgrade)." diff --git a/apps/explorer/lib/explorer/chain/optimism/frame_sequence.ex b/apps/explorer/lib/explorer/chain/optimism/frame_sequence.ex index 6d5cc3c323cf..6ea5fcecb72c 100644 --- a/apps/explorer/lib/explorer/chain/optimism/frame_sequence.ex +++ b/apps/explorer/lib/explorer/chain/optimism/frame_sequence.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Optimism.FrameSequence do @moduledoc """ Models a frame sequence for Optimism. diff --git a/apps/explorer/lib/explorer/chain/optimism/frame_sequence_blob.ex b/apps/explorer/lib/explorer/chain/optimism/frame_sequence_blob.ex index 5561138ebbce..c0ca09875c4c 100644 --- a/apps/explorer/lib/explorer/chain/optimism/frame_sequence_blob.ex +++ b/apps/explorer/lib/explorer/chain/optimism/frame_sequence_blob.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Optimism.FrameSequenceBlob do @moduledoc """ Models a blob related to Optimism frame sequence. diff --git a/apps/explorer/lib/explorer/chain/optimism/interop_message.ex b/apps/explorer/lib/explorer/chain/optimism/interop_message.ex index e95a7ff7c0f8..a22c3d22b3b9 100644 --- a/apps/explorer/lib/explorer/chain/optimism/interop_message.ex +++ b/apps/explorer/lib/explorer/chain/optimism/interop_message.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Optimism.InteropMessage do @moduledoc "Models interop message for Optimism." diff --git a/apps/explorer/lib/explorer/chain/optimism/output_root.ex b/apps/explorer/lib/explorer/chain/optimism/output_root.ex index 0d68cb7c3b51..36fce7b48ff8 100644 --- a/apps/explorer/lib/explorer/chain/optimism/output_root.ex +++ b/apps/explorer/lib/explorer/chain/optimism/output_root.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Optimism.OutputRoot do @moduledoc "Models an output root for Optimism." diff --git a/apps/explorer/lib/explorer/chain/optimism/reader.ex b/apps/explorer/lib/explorer/chain/optimism/reader.ex index 3dba0355f4f4..221ac207dca7 100644 --- a/apps/explorer/lib/explorer/chain/optimism/reader.ex +++ b/apps/explorer/lib/explorer/chain/optimism/reader.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Optimism.Reader do @moduledoc "Contains read functions for Optimism modules." import Ecto.Query, diff --git a/apps/explorer/lib/explorer/chain/optimism/transaction_batch.ex b/apps/explorer/lib/explorer/chain/optimism/transaction_batch.ex index d09aaa03134e..0be7645476fc 100644 --- a/apps/explorer/lib/explorer/chain/optimism/transaction_batch.ex +++ b/apps/explorer/lib/explorer/chain/optimism/transaction_batch.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Optimism.TransactionBatch do @moduledoc """ Models a batch of transactions for Optimism. diff --git a/apps/explorer/lib/explorer/chain/optimism/withdrawal.ex b/apps/explorer/lib/explorer/chain/optimism/withdrawal.ex index af3d083a1f72..5980f9ed4bbb 100644 --- a/apps/explorer/lib/explorer/chain/optimism/withdrawal.ex +++ b/apps/explorer/lib/explorer/chain/optimism/withdrawal.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Optimism.Withdrawal do @moduledoc "Models Optimism withdrawal." diff --git a/apps/explorer/lib/explorer/chain/optimism/withdrawal_event.ex b/apps/explorer/lib/explorer/chain/optimism/withdrawal_event.ex index b33010ed18ba..3c37578cecab 100644 --- a/apps/explorer/lib/explorer/chain/optimism/withdrawal_event.ex +++ b/apps/explorer/lib/explorer/chain/optimism/withdrawal_event.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Optimism.WithdrawalEvent do @moduledoc "Models Optimism withdrawal event." diff --git a/apps/explorer/lib/explorer/chain/ordered_cache.ex b/apps/explorer/lib/explorer/chain/ordered_cache.ex index 601daf2c1afd..8c3531a09af5 100644 --- a/apps/explorer/lib/explorer/chain/ordered_cache.ex +++ b/apps/explorer/lib/explorer/chain/ordered_cache.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.OrderedCache do @moduledoc """ Behaviour for a cache of ordered elements. diff --git a/apps/explorer/lib/explorer/chain/pending_block_operation.ex b/apps/explorer/lib/explorer/chain/pending_block_operation.ex index 634dcb6bb03d..e181c189baf2 100644 --- a/apps/explorer/lib/explorer/chain/pending_block_operation.ex +++ b/apps/explorer/lib/explorer/chain/pending_block_operation.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.PendingBlockOperation do @moduledoc """ Tracks a block that has pending operations. diff --git a/apps/explorer/lib/explorer/chain/pending_operations_helper.ex b/apps/explorer/lib/explorer/chain/pending_operations_helper.ex index cc6f9f0bf72c..268f76039e34 100644 --- a/apps/explorer/lib/explorer/chain/pending_operations_helper.ex +++ b/apps/explorer/lib/explorer/chain/pending_operations_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.PendingOperationsHelper do @moduledoc false diff --git a/apps/explorer/lib/explorer/chain/pending_transaction_operation.ex b/apps/explorer/lib/explorer/chain/pending_transaction_operation.ex index e916810f9680..fa5d295ea025 100644 --- a/apps/explorer/lib/explorer/chain/pending_transaction_operation.ex +++ b/apps/explorer/lib/explorer/chain/pending_transaction_operation.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.PendingTransactionOperation do @moduledoc """ Tracks a transaction that has pending operations. diff --git a/apps/explorer/lib/explorer/chain/scroll/batch.ex b/apps/explorer/lib/explorer/chain/scroll/batch.ex index 3bd9f1097692..a6397b0edf71 100644 --- a/apps/explorer/lib/explorer/chain/scroll/batch.ex +++ b/apps/explorer/lib/explorer/chain/scroll/batch.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Scroll.Batch do @moduledoc """ Models a batch for Scroll. diff --git a/apps/explorer/lib/explorer/chain/scroll/batch_bundle.ex b/apps/explorer/lib/explorer/chain/scroll/batch_bundle.ex index 5a36bf72e359..f05ab5b21bc5 100644 --- a/apps/explorer/lib/explorer/chain/scroll/batch_bundle.ex +++ b/apps/explorer/lib/explorer/chain/scroll/batch_bundle.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Scroll.BatchBundle do @moduledoc """ Models a batch bundle for Scroll. diff --git a/apps/explorer/lib/explorer/chain/scroll/bridge.ex b/apps/explorer/lib/explorer/chain/scroll/bridge.ex index 6cfd280e0b7f..1c16f472dd79 100644 --- a/apps/explorer/lib/explorer/chain/scroll/bridge.ex +++ b/apps/explorer/lib/explorer/chain/scroll/bridge.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Scroll.Bridge do @moduledoc """ Models a bridge operation for Scroll. diff --git a/apps/explorer/lib/explorer/chain/scroll/l1_fee_param.ex b/apps/explorer/lib/explorer/chain/scroll/l1_fee_param.ex index a9f55ae28750..be0d63e2d43f 100644 --- a/apps/explorer/lib/explorer/chain/scroll/l1_fee_param.ex +++ b/apps/explorer/lib/explorer/chain/scroll/l1_fee_param.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Scroll.L1FeeParam do @moduledoc """ Models an L1 fee parameter for Scroll. diff --git a/apps/explorer/lib/explorer/chain/scroll/reader.ex b/apps/explorer/lib/explorer/chain/scroll/reader.ex index 2d690310e991..361cbe674111 100644 --- a/apps/explorer/lib/explorer/chain/scroll/reader.ex +++ b/apps/explorer/lib/explorer/chain/scroll/reader.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Scroll.Reader do @moduledoc "Contains read functions for Scroll modules." diff --git a/apps/explorer/lib/explorer/chain/search.ex b/apps/explorer/lib/explorer/chain/search.ex index 8da7d39a5be5..5dc02b6beb2f 100644 --- a/apps/explorer/lib/explorer/chain/search.ex +++ b/apps/explorer/lib/explorer/chain/search.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Search do @moduledoc """ Search-related functions diff --git a/apps/explorer/lib/explorer/chain/shibarium/bridge.ex b/apps/explorer/lib/explorer/chain/shibarium/bridge.ex index 374bf2ae8d37..9609048d26e3 100644 --- a/apps/explorer/lib/explorer/chain/shibarium/bridge.ex +++ b/apps/explorer/lib/explorer/chain/shibarium/bridge.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Shibarium.Bridge do @moduledoc "Models Shibarium Bridge operation." diff --git a/apps/explorer/lib/explorer/chain/shibarium/reader.ex b/apps/explorer/lib/explorer/chain/shibarium/reader.ex index 59700c757549..9ed9a7f69526 100644 --- a/apps/explorer/lib/explorer/chain/shibarium/reader.ex +++ b/apps/explorer/lib/explorer/chain/shibarium/reader.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Shibarium.Reader do @moduledoc "Contains read functions for Shibarium modules." diff --git a/apps/explorer/lib/explorer/chain/signed_authorization.ex b/apps/explorer/lib/explorer/chain/signed_authorization.ex index ad40466b0792..6a82d460f46e 100644 --- a/apps/explorer/lib/explorer/chain/signed_authorization.ex +++ b/apps/explorer/lib/explorer/chain/signed_authorization.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SignedAuthorization do @moduledoc "Models a transaction extension with authorization tuples from eip7702 set code transactions." diff --git a/apps/explorer/lib/explorer/chain/signed_authorization/reader.ex b/apps/explorer/lib/explorer/chain/signed_authorization/reader.ex index dd2be17ffb0b..50acb7b6bd1c 100644 --- a/apps/explorer/lib/explorer/chain/signed_authorization/reader.ex +++ b/apps/explorer/lib/explorer/chain/signed_authorization/reader.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SignedAuthorization.Reader do @moduledoc """ Reads signed authorization data from the database. diff --git a/apps/explorer/lib/explorer/chain/smart_contract.ex b/apps/explorer/lib/explorer/chain/smart_contract.ex index d468f0a63899..6279cfbc7a1c 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Schema do @moduledoc """ Models smart-contract. diff --git a/apps/explorer/lib/explorer/chain/smart_contract/audit_report.ex b/apps/explorer/lib/explorer/chain/smart_contract/audit_report.ex index 87ba3928f372..6cd7a389fdcf 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/audit_report.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/audit_report.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.AuditReport do @moduledoc """ The representation of an audit report for a smart contract. diff --git a/apps/explorer/lib/explorer/chain/smart_contract/external_library.ex b/apps/explorer/lib/explorer/chain/smart_contract/external_library.ex index 62aeb99b7115..b5e9db9bb758 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/external_library.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/external_library.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.ExternalLibrary do @moduledoc """ The representation of an external library that was used for a smart contract. diff --git a/apps/explorer/lib/explorer/chain/smart_contract/proxy.ex b/apps/explorer/lib/explorer/chain/smart_contract/proxy.ex index 8c87d5fdeb3e..3a812b1ba1dd 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/proxy.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/proxy.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy do @moduledoc """ Module for proxy smart-contract implementation detection diff --git a/apps/explorer/lib/explorer/chain/smart_contract/proxy/basic_implementation_getter.ex b/apps/explorer/lib/explorer/chain/smart_contract/proxy/basic_implementation_getter.ex index eb8cf1f666b7..68340902f00e 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/proxy/basic_implementation_getter.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/proxy/basic_implementation_getter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy.BasicImplementationGetter do @moduledoc """ Module for fetching proxy implementation from public smart-contract method diff --git a/apps/explorer/lib/explorer/chain/smart_contract/proxy/clone_with_immutable_arguments.ex b/apps/explorer/lib/explorer/chain/smart_contract/proxy/clone_with_immutable_arguments.ex index 17c98670be2c..c7ca7cae1265 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/proxy/clone_with_immutable_arguments.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/proxy/clone_with_immutable_arguments.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy.CloneWithImmutableArguments do @moduledoc """ Module for fetching proxy implementation from clone contracts with immutable arguments. diff --git a/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_1167.ex b/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_1167.ex index adefe2cba493..250db408a2ba 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_1167.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_1167.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy.EIP1167 do @moduledoc """ Module for fetching proxy implementation from https://eips.ethereum.org/EIPS/eip-1167 (Minimal Proxy Contract) diff --git a/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_1822.ex b/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_1822.ex index 9a44c2ee2fcd..a5df461dce95 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_1822.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_1822.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy.EIP1822 do @moduledoc """ Module for fetching proxy implementation from https://eips.ethereum.org/EIPS/eip-1822 Universal Upgradeable Proxy Standard (UUPS) diff --git a/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_1967.ex b/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_1967.ex index c0d25e90a436..f7011098bb44 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_1967.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_1967.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy.EIP1967 do @moduledoc """ Module for fetching proxy implementation from https://eips.ethereum.org/EIPS/eip-1967 (Proxy Storage Slots) diff --git a/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_2535.ex b/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_2535.ex index abd68aadbff3..a46cb4d2596f 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_2535.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_2535.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy.EIP2535 do @moduledoc """ Module for fetching proxy implementation from https://eips.ethereum.org/EIPS/eip-2535 (Diamond Proxy) diff --git a/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_7702.ex b/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_7702.ex index ab5bd885c480..30a8839afe77 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_7702.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/proxy/eip_7702.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy.EIP7702 do @moduledoc """ Module for fetching EOA delegate from https://eips.ethereum.org/EIPS/eip-7702 diff --git a/apps/explorer/lib/explorer/chain/smart_contract/proxy/erc_7760.ex b/apps/explorer/lib/explorer/chain/smart_contract/proxy/erc_7760.ex index c96965e8e7f7..0e5dc4d2ec42 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/proxy/erc_7760.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/proxy/erc_7760.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy.ERC7760 do @moduledoc """ Module for fetching proxy implementation from https://github.com/ethereum/ERCs/blob/master/ERCS/erc-7760.md diff --git a/apps/explorer/lib/explorer/chain/smart_contract/proxy/master_copy.ex b/apps/explorer/lib/explorer/chain/smart_contract/proxy/master_copy.ex index 4b1f495ec842..a2572171b8ad 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/proxy/master_copy.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/proxy/master_copy.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy.MasterCopy do @moduledoc """ Module for fetching master-copy proxy implementation diff --git a/apps/explorer/lib/explorer/chain/smart_contract/proxy/models/implementation.ex b/apps/explorer/lib/explorer/chain/smart_contract/proxy/models/implementation.ex index 5373edb1cf6c..858e84105bac 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/proxy/models/implementation.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/proxy/models/implementation.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy.Models.Implementation do @moduledoc """ The representation of proxy smart-contract implementation. diff --git a/apps/explorer/lib/explorer/chain/smart_contract/proxy/resolved_delegate_proxy.ex b/apps/explorer/lib/explorer/chain/smart_contract/proxy/resolved_delegate_proxy.ex index 7730e89809bf..9851cbea70bc 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/proxy/resolved_delegate_proxy.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/proxy/resolved_delegate_proxy.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy.ResolvedDelegateProxy do @moduledoc """ Module for fetching proxy implementation from ResolvedDelegateProxy https://github.com/ethereum-optimism/optimism/blob/9580179013a04b15e6213ae8aa8d43c3f559ed9a/packages/contracts-bedrock/src/legacy/ResolvedDelegateProxy.sol diff --git a/apps/explorer/lib/explorer/chain/smart_contract/proxy/resolver_behaviour.ex b/apps/explorer/lib/explorer/chain/smart_contract/proxy/resolver_behaviour.ex index 8eb46aa24b1b..89364994d837 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/proxy/resolver_behaviour.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/proxy/resolver_behaviour.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy.ResolverBehaviour do @moduledoc """ Behaviour for smart contract proxy resolvers diff --git a/apps/explorer/lib/explorer/chain/smart_contract/proxy/verification_status.ex b/apps/explorer/lib/explorer/chain/smart_contract/proxy/verification_status.ex index 6e95cc136317..214afd1e3003 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/proxy/verification_status.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/proxy/verification_status.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy.VerificationStatus do @moduledoc """ Represents single proxy verification submission diff --git a/apps/explorer/lib/explorer/chain/smart_contract/verification_status.ex b/apps/explorer/lib/explorer/chain/smart_contract/verification_status.ex index cee840abc929..769489093aaf 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/verification_status.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/verification_status.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.VerificationStatus do @moduledoc """ Represents single verification try diff --git a/apps/explorer/lib/explorer/chain/smart_contract/verified_contract_addresses_query.ex b/apps/explorer/lib/explorer/chain/smart_contract/verified_contract_addresses_query.ex index f4124eaad83c..3507e122541f 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract/verified_contract_addresses_query.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract/verified_contract_addresses_query.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.VerifiedContractAddressesQuery do @moduledoc """ Query functions for fetching verified smart-contract addresses. diff --git a/apps/explorer/lib/explorer/chain/smart_contract_additional_source.ex b/apps/explorer/lib/explorer/chain/smart_contract_additional_source.ex index 38c716442946..4812f9bfe5e9 100644 --- a/apps/explorer/lib/explorer/chain/smart_contract_additional_source.ex +++ b/apps/explorer/lib/explorer/chain/smart_contract_additional_source.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContractAdditionalSource do @moduledoc """ The representation of a verified Smart Contract additional sources. diff --git a/apps/explorer/lib/explorer/chain/stability/validator.ex b/apps/explorer/lib/explorer/chain/stability/validator.ex index 4814d3eabac4..a46aaa41c390 100644 --- a/apps/explorer/lib/explorer/chain/stability/validator.ex +++ b/apps/explorer/lib/explorer/chain/stability/validator.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Stability.Validator do @moduledoc """ Stability validators diff --git a/apps/explorer/lib/explorer/chain/supply.ex b/apps/explorer/lib/explorer/chain/supply.ex index 0287a0dde80b..ebd091800430 100644 --- a/apps/explorer/lib/explorer/chain/supply.ex +++ b/apps/explorer/lib/explorer/chain/supply.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Supply do @moduledoc """ Behaviour for API needed to calculate data related to a chain's supply. diff --git a/apps/explorer/lib/explorer/chain/supply/exchange_rate.ex b/apps/explorer/lib/explorer/chain/supply/exchange_rate.ex index 1ef83b1a90c2..d05231cf6098 100644 --- a/apps/explorer/lib/explorer/chain/supply/exchange_rate.ex +++ b/apps/explorer/lib/explorer/chain/supply/exchange_rate.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Supply.ExchangeRate do @moduledoc """ Defines the supply API for calculating supply for coins from exchange_rate.. diff --git a/apps/explorer/lib/explorer/chain/supply/proof_of_authority.ex b/apps/explorer/lib/explorer/chain/supply/proof_of_authority.ex index bb8e625740ff..d942b6201db6 100644 --- a/apps/explorer/lib/explorer/chain/supply/proof_of_authority.ex +++ b/apps/explorer/lib/explorer/chain/supply/proof_of_authority.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Supply.ProofOfAuthority do @moduledoc """ Defines the supply API for calculating supply for POA. diff --git a/apps/explorer/lib/explorer/chain/supply/rsk.ex b/apps/explorer/lib/explorer/chain/supply/rsk.ex index 726d7144fc27..52967b809c34 100644 --- a/apps/explorer/lib/explorer/chain/supply/rsk.ex +++ b/apps/explorer/lib/explorer/chain/supply/rsk.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Supply.RSK do @moduledoc """ Defines the supply API for calculating supply for coins from RSK. diff --git a/apps/explorer/lib/explorer/chain/token.ex b/apps/explorer/lib/explorer/chain/token.ex index 82316b09cae7..bd283659ae64 100644 --- a/apps/explorer/lib/explorer/chain/token.ex +++ b/apps/explorer/lib/explorer/chain/token.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Token.Schema do @moduledoc false use Utils.CompileTimeEnvHelper, bridged_tokens_enabled: [:explorer, [Explorer.Chain.BridgedToken, :enabled]] diff --git a/apps/explorer/lib/explorer/chain/token/fiat_value.ex b/apps/explorer/lib/explorer/chain/token/fiat_value.ex index b19733063d8d..be894d97dd59 100644 --- a/apps/explorer/lib/explorer/chain/token/fiat_value.ex +++ b/apps/explorer/lib/explorer/chain/token/fiat_value.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Token.FiatValue do @moduledoc """ Represents money values, used to hide the value if there is a chance that the value is not relevant. diff --git a/apps/explorer/lib/explorer/chain/token/instance.ex b/apps/explorer/lib/explorer/chain/token/instance.ex index dc093a3bf40c..53ae31fad005 100644 --- a/apps/explorer/lib/explorer/chain/token/instance.ex +++ b/apps/explorer/lib/explorer/chain/token/instance.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Token.Instance do @moduledoc """ Represents an ERC-721/ERC-1155/ERC-404 token instance and stores metadata defined in https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md. diff --git a/apps/explorer/lib/explorer/chain/token/instance/media_urls.ex b/apps/explorer/lib/explorer/chain/token/instance/media_urls.ex index e37131dbefee..c59c655336cc 100644 --- a/apps/explorer/lib/explorer/chain/token/instance/media_urls.ex +++ b/apps/explorer/lib/explorer/chain/token/instance/media_urls.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Token.Instance.Thumbnails do @moduledoc """ Module defines thumbnails type for token instances diff --git a/apps/explorer/lib/explorer/chain/token_transfer.ex b/apps/explorer/lib/explorer/chain/token_transfer.ex index fa56a5fdb65e..1323b9aa5384 100644 --- a/apps/explorer/lib/explorer/chain/token_transfer.ex +++ b/apps/explorer/lib/explorer/chain/token_transfer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.TokenTransfer.Schema do @moduledoc """ Models token transfers. diff --git a/apps/explorer/lib/explorer/chain/transaction.ex b/apps/explorer/lib/explorer/chain/transaction.ex index 4fef55aa7118..8aca43eb8b66 100644 --- a/apps/explorer/lib/explorer/chain/transaction.ex +++ b/apps/explorer/lib/explorer/chain/transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Transaction.Schema do @moduledoc """ Models transactions. diff --git a/apps/explorer/lib/explorer/chain/transaction/fork.ex b/apps/explorer/lib/explorer/chain/transaction/fork.ex index 794d64c17360..3d77e6ec1441 100644 --- a/apps/explorer/lib/explorer/chain/transaction/fork.ex +++ b/apps/explorer/lib/explorer/chain/transaction/fork.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Transaction.Fork do @moduledoc """ A transaction fork has the same `hash` as a `t:Explorer.Chain.Transaction.t/0`, but associates that `hash` with a diff --git a/apps/explorer/lib/explorer/chain/transaction/history/historian.ex b/apps/explorer/lib/explorer/chain/transaction/history/historian.ex index a6a775d05e3f..f55dc8ca6e09 100644 --- a/apps/explorer/lib/explorer/chain/transaction/history/historian.ex +++ b/apps/explorer/lib/explorer/chain/transaction/history/historian.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Transaction.History.Historian do @moduledoc """ Implements behaviour Historian which will compile TransactionStats from Block/Transaction data and then save the TransactionStats into the database for later retrieval. diff --git a/apps/explorer/lib/explorer/chain/transaction/history/transaction_stats.ex b/apps/explorer/lib/explorer/chain/transaction/history/transaction_stats.ex index f1a7f6eb67ff..017f5726ae06 100644 --- a/apps/explorer/lib/explorer/chain/transaction/history/transaction_stats.ex +++ b/apps/explorer/lib/explorer/chain/transaction/history/transaction_stats.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Transaction.History.TransactionStats do @moduledoc """ Represents daily chain performance stats diff --git a/apps/explorer/lib/explorer/chain/transaction/reader.ex b/apps/explorer/lib/explorer/chain/transaction/reader.ex index 9064d135a415..e53de1f7e80e 100644 --- a/apps/explorer/lib/explorer/chain/transaction/reader.ex +++ b/apps/explorer/lib/explorer/chain/transaction/reader.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Transaction.Reader do @moduledoc """ Functions for reading transaction data. diff --git a/apps/explorer/lib/explorer/chain/transaction/state_change.ex b/apps/explorer/lib/explorer/chain/transaction/state_change.ex index ea0533104ce2..e1d878e41a9f 100644 --- a/apps/explorer/lib/explorer/chain/transaction/state_change.ex +++ b/apps/explorer/lib/explorer/chain/transaction/state_change.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Transaction.StateChange do @moduledoc """ Helper functions and struct for storing state changes diff --git a/apps/explorer/lib/explorer/chain/transaction/status.ex b/apps/explorer/lib/explorer/chain/transaction/status.ex index df4e56597f5f..ff6a0b7ca8be 100644 --- a/apps/explorer/lib/explorer/chain/transaction/status.ex +++ b/apps/explorer/lib/explorer/chain/transaction/status.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Transaction.Status do @moduledoc """ Whether a transaction succeeded (`:ok`) or failed (`:error`). diff --git a/apps/explorer/lib/explorer/chain/transaction_error.ex b/apps/explorer/lib/explorer/chain/transaction_error.ex index e8a044dac26e..54627dd03d78 100644 --- a/apps/explorer/lib/explorer/chain/transaction_error.ex +++ b/apps/explorer/lib/explorer/chain/transaction_error.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.TransactionError do @moduledoc """ Stores errors for transactions and internal transactions. diff --git a/apps/explorer/lib/explorer/chain/user_operation.ex b/apps/explorer/lib/explorer/chain/user_operation.ex index cdcb322e964d..854bd426f15c 100644 --- a/apps/explorer/lib/explorer/chain/user_operation.ex +++ b/apps/explorer/lib/explorer/chain/user_operation.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.UserOperation do @moduledoc """ The representation of a user operation for account abstraction (EIP-4337). diff --git a/apps/explorer/lib/explorer/chain/validator.ex b/apps/explorer/lib/explorer/chain/validator.ex index 4006d2a6acc9..d917abaec4f2 100644 --- a/apps/explorer/lib/explorer/chain/validator.ex +++ b/apps/explorer/lib/explorer/chain/validator.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Validator do @moduledoc """ Tracks info about POA validator diff --git a/apps/explorer/lib/explorer/chain/wei.ex b/apps/explorer/lib/explorer/chain/wei.ex index a611ad42a404..bb2cd0fba94f 100644 --- a/apps/explorer/lib/explorer/chain/wei.ex +++ b/apps/explorer/lib/explorer/chain/wei.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Wei do @moduledoc """ The smallest fractional unit of Ether. Using wei instead of ether allows code to do integer match instead of using diff --git a/apps/explorer/lib/explorer/chain/withdrawal.ex b/apps/explorer/lib/explorer/chain/withdrawal.ex index ac857e73efce..02af2fcceb79 100644 --- a/apps/explorer/lib/explorer/chain/withdrawal.ex +++ b/apps/explorer/lib/explorer/chain/withdrawal.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Withdrawal do @moduledoc """ A stored representation of withdrawal introduced in [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895) diff --git a/apps/explorer/lib/explorer/chain/zilliqa/aggregate_quorum_certificate.ex b/apps/explorer/lib/explorer/chain/zilliqa/aggregate_quorum_certificate.ex index f26936009f65..ee66b6cb53f6 100644 --- a/apps/explorer/lib/explorer/chain/zilliqa/aggregate_quorum_certificate.ex +++ b/apps/explorer/lib/explorer/chain/zilliqa/aggregate_quorum_certificate.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Zilliqa.AggregateQuorumCertificate do @moduledoc """ A stored representation of a Zilliqa aggregate quorum certificate in the diff --git a/apps/explorer/lib/explorer/chain/zilliqa/hash/bls_public_key.ex b/apps/explorer/lib/explorer/chain/zilliqa/hash/bls_public_key.ex index a0f16b6eef46..ea6eb3973176 100644 --- a/apps/explorer/lib/explorer/chain/zilliqa/hash/bls_public_key.ex +++ b/apps/explorer/lib/explorer/chain/zilliqa/hash/bls_public_key.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Zilliqa.Hash.BLSPublicKey do @moduledoc """ Staker's `blsPubKey` diff --git a/apps/explorer/lib/explorer/chain/zilliqa/hash/peer_id.ex b/apps/explorer/lib/explorer/chain/zilliqa/hash/peer_id.ex index 5ad612b059f5..0f00bbbfd013 100644 --- a/apps/explorer/lib/explorer/chain/zilliqa/hash/peer_id.ex +++ b/apps/explorer/lib/explorer/chain/zilliqa/hash/peer_id.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Zilliqa.Hash.PeerID do @moduledoc """ libp2p peer ID, corresponding to the staker's `blsPubKey` diff --git a/apps/explorer/lib/explorer/chain/zilliqa/hash/signature.ex b/apps/explorer/lib/explorer/chain/zilliqa/hash/signature.ex index 44c4253f990b..191e02b9de8e 100644 --- a/apps/explorer/lib/explorer/chain/zilliqa/hash/signature.ex +++ b/apps/explorer/lib/explorer/chain/zilliqa/hash/signature.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Zilliqa.Hash.Signature do @moduledoc """ A 96-byte BLS signature of the supermajority of the validators. diff --git a/apps/explorer/lib/explorer/chain/zilliqa/helper.ex b/apps/explorer/lib/explorer/chain/zilliqa/helper.ex index 748ae1f1e059..514c695a667b 100644 --- a/apps/explorer/lib/explorer/chain/zilliqa/helper.ex +++ b/apps/explorer/lib/explorer/chain/zilliqa/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Zilliqa.Helper do @moduledoc """ Common helper functions for Zilliqa. diff --git a/apps/explorer/lib/explorer/chain/zilliqa/nested_quorum_certificate.ex b/apps/explorer/lib/explorer/chain/zilliqa/nested_quorum_certificate.ex index 8edd55a14813..1d7647db85c9 100644 --- a/apps/explorer/lib/explorer/chain/zilliqa/nested_quorum_certificate.ex +++ b/apps/explorer/lib/explorer/chain/zilliqa/nested_quorum_certificate.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Zilliqa.NestedQuorumCertificate do @moduledoc """ A stored representation of a nested quorum certificate in Zilliqa's PBFT diff --git a/apps/explorer/lib/explorer/chain/zilliqa/quorum_certificate.ex b/apps/explorer/lib/explorer/chain/zilliqa/quorum_certificate.ex index 61235bae2699..b608aafd2fbb 100644 --- a/apps/explorer/lib/explorer/chain/zilliqa/quorum_certificate.ex +++ b/apps/explorer/lib/explorer/chain/zilliqa/quorum_certificate.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Zilliqa.QuorumCertificate do @moduledoc """ A stored representation of a Zilliqa quorum certificate in the context of PBFT diff --git a/apps/explorer/lib/explorer/chain/zilliqa/reader.ex b/apps/explorer/lib/explorer/chain/zilliqa/reader.ex index 726439ff551e..648d368e0d26 100644 --- a/apps/explorer/lib/explorer/chain/zilliqa/reader.ex +++ b/apps/explorer/lib/explorer/chain/zilliqa/reader.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Zilliqa.Reader do @moduledoc """ Reads Zilliqa-related data from the database. diff --git a/apps/explorer/lib/explorer/chain/zilliqa/staker.ex b/apps/explorer/lib/explorer/chain/zilliqa/staker.ex index 9365f691d8ef..bd4f178464f2 100644 --- a/apps/explorer/lib/explorer/chain/zilliqa/staker.ex +++ b/apps/explorer/lib/explorer/chain/zilliqa/staker.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Zilliqa.Staker do @moduledoc """ Represents Zilliqa staker (i.e. validator) in the database. This is the diff --git a/apps/explorer/lib/explorer/chain/zilliqa/zrc2/token_adapter.ex b/apps/explorer/lib/explorer/chain/zilliqa/zrc2/token_adapter.ex index 958c1bb2c579..9f6fb7cb238c 100644 --- a/apps/explorer/lib/explorer/chain/zilliqa/zrc2/token_adapter.ex +++ b/apps/explorer/lib/explorer/chain/zilliqa/zrc2/token_adapter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Zilliqa.Zrc2.TokenAdapter do @moduledoc """ Represents a list of `ERC-20 adapter contract address <-> ZRC-2 token contract address` pairs. diff --git a/apps/explorer/lib/explorer/chain/zilliqa/zrc2/token_transfer.ex b/apps/explorer/lib/explorer/chain/zilliqa/zrc2/token_transfer.ex index 01fb8e08f05b..d0629a12a668 100644 --- a/apps/explorer/lib/explorer/chain/zilliqa/zrc2/token_transfer.ex +++ b/apps/explorer/lib/explorer/chain/zilliqa/zrc2/token_transfer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Zilliqa.Zrc2.TokenTransfer do @moduledoc """ Represents a token transfer between addresses for a given ZRC-2 token with unknown ERC-20 adapter contract address yet. diff --git a/apps/explorer/lib/explorer/chain/zksync/batch_block.ex b/apps/explorer/lib/explorer/chain/zksync/batch_block.ex index 08c9be6912d0..de4c59ca9f6c 100644 --- a/apps/explorer/lib/explorer/chain/zksync/batch_block.ex +++ b/apps/explorer/lib/explorer/chain/zksync/batch_block.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.ZkSync.BatchBlock do @moduledoc "Models a list of blocks related to a batch for ZkSync." diff --git a/apps/explorer/lib/explorer/chain/zksync/batch_transaction.ex b/apps/explorer/lib/explorer/chain/zksync/batch_transaction.ex index d9c95f42f6b4..5caea124b07c 100644 --- a/apps/explorer/lib/explorer/chain/zksync/batch_transaction.ex +++ b/apps/explorer/lib/explorer/chain/zksync/batch_transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.ZkSync.BatchTransaction do @moduledoc """ Models a list of transactions related to a batch for ZkSync. diff --git a/apps/explorer/lib/explorer/chain/zksync/lifecycle_transaction.ex b/apps/explorer/lib/explorer/chain/zksync/lifecycle_transaction.ex index cc2ec207a6a2..0765e4c11011 100644 --- a/apps/explorer/lib/explorer/chain/zksync/lifecycle_transaction.ex +++ b/apps/explorer/lib/explorer/chain/zksync/lifecycle_transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.ZkSync.LifecycleTransaction do @moduledoc "Models an L1 lifecycle transaction for ZkSync." diff --git a/apps/explorer/lib/explorer/chain/zksync/reader.ex b/apps/explorer/lib/explorer/chain/zksync/reader.ex index f16e124d50d7..c66702ca2143 100644 --- a/apps/explorer/lib/explorer/chain/zksync/reader.ex +++ b/apps/explorer/lib/explorer/chain/zksync/reader.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.ZkSync.Reader do @moduledoc "Contains read functions for zksync modules." diff --git a/apps/explorer/lib/explorer/chain/zksync/transaction_batch.ex b/apps/explorer/lib/explorer/chain/zksync/transaction_batch.ex index d19f22af61c3..be7f84bd29e9 100644 --- a/apps/explorer/lib/explorer/chain/zksync/transaction_batch.ex +++ b/apps/explorer/lib/explorer/chain/zksync/transaction_batch.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.ZkSync.TransactionBatch do @moduledoc "Models a batch of transactions for ZkSync." diff --git a/apps/explorer/lib/explorer/chain_spec/genesis_data.ex b/apps/explorer/lib/explorer/chain_spec/genesis_data.ex index cbeae6750c99..5bf9bf4a1ed6 100644 --- a/apps/explorer/lib/explorer/chain_spec/genesis_data.ex +++ b/apps/explorer/lib/explorer/chain_spec/genesis_data.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ChainSpec.GenesisData do @moduledoc """ Handles the genesis data import. diff --git a/apps/explorer/lib/explorer/chain_spec/geth/importer.ex b/apps/explorer/lib/explorer/chain_spec/geth/importer.ex index 1a7e86d2bffe..d4cbc47ebe76 100644 --- a/apps/explorer/lib/explorer/chain_spec/geth/importer.ex +++ b/apps/explorer/lib/explorer/chain_spec/geth/importer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ChainSpec.Geth.Importer do @moduledoc """ Imports data from Geth genesis.json. diff --git a/apps/explorer/lib/explorer/chain_spec/parity/importer.ex b/apps/explorer/lib/explorer/chain_spec/parity/importer.ex index d104b59312cf..3e382e0b0495 100644 --- a/apps/explorer/lib/explorer/chain_spec/parity/importer.ex +++ b/apps/explorer/lib/explorer/chain_spec/parity/importer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # credo:disable-for-this-file defmodule Explorer.ChainSpec.Parity.Importer do @moduledoc """ diff --git a/apps/explorer/lib/explorer/chain_spec/poa/importer.ex b/apps/explorer/lib/explorer/chain_spec/poa/importer.ex index 1abfea0b0347..50792972adb8 100644 --- a/apps/explorer/lib/explorer/chain_spec/poa/importer.ex +++ b/apps/explorer/lib/explorer/chain_spec/poa/importer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ChainSpec.POA.Importer do @moduledoc """ Imports emission reward range for POA chain. diff --git a/apps/explorer/lib/explorer/custom_contracts_helper.ex b/apps/explorer/lib/explorer/custom_contracts_helper.ex index 658f88cda9ad..d9325ba2f724 100644 --- a/apps/explorer/lib/explorer/custom_contracts_helper.ex +++ b/apps/explorer/lib/explorer/custom_contracts_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.CustomContractsHelper do @moduledoc """ Helper to enable custom contracts themes diff --git a/apps/explorer/lib/explorer/encrypted/address_hash.ex b/apps/explorer/lib/explorer/encrypted/address_hash.ex index fb90251f1e60..68b17d8728b3 100644 --- a/apps/explorer/lib/explorer/encrypted/address_hash.ex +++ b/apps/explorer/lib/explorer/encrypted/address_hash.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Encrypted.AddressHash do @moduledoc false diff --git a/apps/explorer/lib/explorer/encrypted/binary.ex b/apps/explorer/lib/explorer/encrypted/binary.ex index 7a5e62bd39af..c1db2746ce4b 100644 --- a/apps/explorer/lib/explorer/encrypted/binary.ex +++ b/apps/explorer/lib/explorer/encrypted/binary.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Encrypted.Binary do @moduledoc false diff --git a/apps/explorer/lib/explorer/encrypted/transaction_hash.ex b/apps/explorer/lib/explorer/encrypted/transaction_hash.ex index fa240c27e3b1..c609cb30de4f 100644 --- a/apps/explorer/lib/explorer/encrypted/transaction_hash.ex +++ b/apps/explorer/lib/explorer/encrypted/transaction_hash.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Encrypted.TransactionHash do @moduledoc false diff --git a/apps/explorer/lib/explorer/encrypted/types/address_hash.ex b/apps/explorer/lib/explorer/encrypted/types/address_hash.ex index f9ca332c538f..55f38f8bfdfd 100644 --- a/apps/explorer/lib/explorer/encrypted/types/address_hash.ex +++ b/apps/explorer/lib/explorer/encrypted/types/address_hash.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Encrypted.Types.AddressHash do @moduledoc """ An `Ecto.Type` to encrypt address_hash fields. diff --git a/apps/explorer/lib/explorer/encrypted/types/transaction_hash.ex b/apps/explorer/lib/explorer/encrypted/types/transaction_hash.ex index 7c39a9aeca57..c5a1fc4cf6ab 100644 --- a/apps/explorer/lib/explorer/encrypted/types/transaction_hash.ex +++ b/apps/explorer/lib/explorer/encrypted/types/transaction_hash.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Encrypted.Types.TransactionHash do @moduledoc """ An `Ecto.Type` to encrypt transaction_hash fields. diff --git a/apps/explorer/lib/explorer/env_var_translator.ex b/apps/explorer/lib/explorer/env_var_translator.ex index 5e2db974d91b..9dc388cc2a1a 100644 --- a/apps/explorer/lib/explorer/env_var_translator.ex +++ b/apps/explorer/lib/explorer/env_var_translator.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.EnvVarTranslator do @moduledoc """ The module for transformation of environment variables diff --git a/apps/explorer/lib/explorer/eth_rpc.ex b/apps/explorer/lib/explorer/eth_rpc.ex index 6ba65be08d6f..55b22253df0d 100644 --- a/apps/explorer/lib/explorer/eth_rpc.ex +++ b/apps/explorer/lib/explorer/eth_rpc.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.EthRPC do @moduledoc """ Ethereum JSON RPC methods logic implementation. diff --git a/apps/explorer/lib/explorer/eth_rpc_helper.ex b/apps/explorer/lib/explorer/eth_rpc_helper.ex index 2cecf52be106..298898cce215 100644 --- a/apps/explorer/lib/explorer/eth_rpc_helper.ex +++ b/apps/explorer/lib/explorer/eth_rpc_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.EthRpcHelper do @moduledoc """ Helper module for Explorer.EthRPC. Mostly contains functions to validate input args diff --git a/apps/explorer/lib/explorer/etherscan.ex b/apps/explorer/lib/explorer/etherscan.ex index d4ca63255743..95c12d4dcba1 100644 --- a/apps/explorer/lib/explorer/etherscan.ex +++ b/apps/explorer/lib/explorer/etherscan.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Etherscan do @moduledoc """ The etherscan context. diff --git a/apps/explorer/lib/explorer/etherscan/addresses.ex b/apps/explorer/lib/explorer/etherscan/addresses.ex index ce486c6d5630..901f09e0be48 100644 --- a/apps/explorer/lib/explorer/etherscan/addresses.ex +++ b/apps/explorer/lib/explorer/etherscan/addresses.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Etherscan.Addresses do @moduledoc """ This module contains functions for working with addresses, as they pertain to the diff --git a/apps/explorer/lib/explorer/etherscan/blocks.ex b/apps/explorer/lib/explorer/etherscan/blocks.ex index 0249f46743d3..dfff0630040f 100644 --- a/apps/explorer/lib/explorer/etherscan/blocks.ex +++ b/apps/explorer/lib/explorer/etherscan/blocks.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Etherscan.Blocks do @moduledoc """ This module contains functions for working with blocks, as they pertain to the diff --git a/apps/explorer/lib/explorer/etherscan/contracts.ex b/apps/explorer/lib/explorer/etherscan/contracts.ex index 4906690a92d3..8719a9f29979 100644 --- a/apps/explorer/lib/explorer/etherscan/contracts.ex +++ b/apps/explorer/lib/explorer/etherscan/contracts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Etherscan.Contracts do @moduledoc """ This module contains functions for working with contracts, as they pertain to the diff --git a/apps/explorer/lib/explorer/etherscan/logs.ex b/apps/explorer/lib/explorer/etherscan/logs.ex index bf6df7ba9137..45a0cafe5a35 100644 --- a/apps/explorer/lib/explorer/etherscan/logs.ex +++ b/apps/explorer/lib/explorer/etherscan/logs.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Etherscan.Logs do @moduledoc """ This module contains functions for working with logs, as they pertain to the diff --git a/apps/explorer/lib/explorer/graphql.ex b/apps/explorer/lib/explorer/graphql.ex index 138ea3f86f3f..d2d028a91929 100644 --- a/apps/explorer/lib/explorer/graphql.ex +++ b/apps/explorer/lib/explorer/graphql.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.GraphQL do @moduledoc """ The GraphQL context. diff --git a/apps/explorer/lib/explorer/graphql/celo.ex b/apps/explorer/lib/explorer/graphql/celo.ex index 6f82167619dc..d4d4d68d20c4 100644 --- a/apps/explorer/lib/explorer/graphql/celo.ex +++ b/apps/explorer/lib/explorer/graphql/celo.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.GraphQL.Celo do @moduledoc """ Defines Ecto queries to fetch Celo blockchain data for the legacy GraphQL diff --git a/apps/explorer/lib/explorer/helper.ex b/apps/explorer/lib/explorer/helper.ex index 8aaa31c6dbf4..2ad1c6f66492 100644 --- a/apps/explorer/lib/explorer/helper.ex +++ b/apps/explorer/lib/explorer/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Helper do @moduledoc """ Auxiliary common functions. diff --git a/apps/explorer/lib/explorer/history/historian.ex b/apps/explorer/lib/explorer/history/historian.ex index f0dcedeae27c..a9d852773bc1 100644 --- a/apps/explorer/lib/explorer/history/historian.ex +++ b/apps/explorer/lib/explorer/history/historian.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.History.Historian do @moduledoc """ Interface for compiling, saving, and fetching historical records. diff --git a/apps/explorer/lib/explorer/history/process.ex b/apps/explorer/lib/explorer/history/process.ex index f9fe75579149..a717a8f003ce 100644 --- a/apps/explorer/lib/explorer/history/process.ex +++ b/apps/explorer/lib/explorer/history/process.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.History.Process do @moduledoc """ Creates the GenServer process used by a Historian to compile_history and to save_records. diff --git a/apps/explorer/lib/explorer/http_client.ex b/apps/explorer/lib/explorer/http_client.ex index 5b634c0cc404..d7378d06a6ec 100644 --- a/apps/explorer/lib/explorer/http_client.ex +++ b/apps/explorer/lib/explorer/http_client.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.HttpClient do @moduledoc false diff --git a/apps/explorer/lib/explorer/http_client/httpoison.ex b/apps/explorer/lib/explorer/http_client/httpoison.ex index 4ef9c66aa667..7030baddb471 100644 --- a/apps/explorer/lib/explorer/http_client/httpoison.ex +++ b/apps/explorer/lib/explorer/http_client/httpoison.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.HttpClient.HTTPoison do @moduledoc false diff --git a/apps/explorer/lib/explorer/http_client/tesla.ex b/apps/explorer/lib/explorer/http_client/tesla.ex index 9988dd313d07..8d8c68997718 100644 --- a/apps/explorer/lib/explorer/http_client/tesla.ex +++ b/apps/explorer/lib/explorer/http_client/tesla.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.HttpClient.Tesla do @moduledoc false diff --git a/apps/explorer/lib/explorer/logger.ex b/apps/explorer/lib/explorer/logger.ex index 580a04eac912..7e8576365dd5 100644 --- a/apps/explorer/lib/explorer/logger.ex +++ b/apps/explorer/lib/explorer/logger.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Logger do @moduledoc """ Helper for `Logger`. diff --git a/apps/explorer/lib/explorer/mailer.ex b/apps/explorer/lib/explorer/mailer.ex index ba5c095714bc..3b82e063cec8 100644 --- a/apps/explorer/lib/explorer/mailer.ex +++ b/apps/explorer/lib/explorer/mailer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Mailer do @moduledoc """ Base module for mail sending diff --git a/apps/explorer/lib/explorer/market/fetcher/coin.ex b/apps/explorer/lib/explorer/market/fetcher/coin.ex index 618626b6d057..35a4aca38ffd 100644 --- a/apps/explorer/lib/explorer/market/fetcher/coin.ex +++ b/apps/explorer/lib/explorer/market/fetcher/coin.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Fetcher.Coin do @moduledoc """ Local cache for native coin exchange rates. diff --git a/apps/explorer/lib/explorer/market/fetcher/history.ex b/apps/explorer/lib/explorer/market/fetcher/history.ex index 8e897b3df325..9a2fa55ab234 100644 --- a/apps/explorer/lib/explorer/market/fetcher/history.ex +++ b/apps/explorer/lib/explorer/market/fetcher/history.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Fetcher.History do @moduledoc """ Fetches the daily market history. diff --git a/apps/explorer/lib/explorer/market/fetcher/token.ex b/apps/explorer/lib/explorer/market/fetcher/token.ex index f00306beef28..d058a44c35ae 100644 --- a/apps/explorer/lib/explorer/market/fetcher/token.ex +++ b/apps/explorer/lib/explorer/market/fetcher/token.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Fetcher.Token do @moduledoc """ Periodically fetches fiat value of tokens. diff --git a/apps/explorer/lib/explorer/market/fetcher/token_list.ex b/apps/explorer/lib/explorer/market/fetcher/token_list.ex index 4f74a3e610be..bdfe3a989eb6 100644 --- a/apps/explorer/lib/explorer/market/fetcher/token_list.ex +++ b/apps/explorer/lib/explorer/market/fetcher/token_list.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Fetcher.TokenList do @moduledoc """ Periodically fetches a token list from a URL conforming to the diff --git a/apps/explorer/lib/explorer/market/market.ex b/apps/explorer/lib/explorer/market/market.ex index 4366add07b17..e7311169751d 100644 --- a/apps/explorer/lib/explorer/market/market.ex +++ b/apps/explorer/lib/explorer/market/market.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market do @moduledoc """ Context for data related to the cryptocurrency market. diff --git a/apps/explorer/lib/explorer/market/market_history.ex b/apps/explorer/lib/explorer/market/market_history.ex index 300b1b8d6dfb..d99aa1ec3c82 100644 --- a/apps/explorer/lib/explorer/market/market_history.ex +++ b/apps/explorer/lib/explorer/market/market_history.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.MarketHistory do @moduledoc """ Represents market history of configured coin to USD. diff --git a/apps/explorer/lib/explorer/market/market_history_cache.ex b/apps/explorer/lib/explorer/market/market_history_cache.ex index 8c0d479a776a..910b13944192 100644 --- a/apps/explorer/lib/explorer/market/market_history_cache.ex +++ b/apps/explorer/lib/explorer/market/market_history_cache.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.MarketHistoryCache do @moduledoc """ Caches recent market history. diff --git a/apps/explorer/lib/explorer/market/source.ex b/apps/explorer/lib/explorer/market/source.ex index c642c98a076c..2df47cf104d8 100644 --- a/apps/explorer/lib/explorer/market/source.ex +++ b/apps/explorer/lib/explorer/market/source.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Source do @moduledoc """ Defines behaviors and utilities for fetching cryptocurrency market data from multiple sources. diff --git a/apps/explorer/lib/explorer/market/source/coin_gecko.ex b/apps/explorer/lib/explorer/market/source/coin_gecko.ex index 8cc3239dd31c..581378b91c76 100644 --- a/apps/explorer/lib/explorer/market/source/coin_gecko.ex +++ b/apps/explorer/lib/explorer/market/source/coin_gecko.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Source.CoinGecko do @moduledoc """ Adapter for fetching exchange rates from https://coingecko.com diff --git a/apps/explorer/lib/explorer/market/source/coin_market_cap.ex b/apps/explorer/lib/explorer/market/source/coin_market_cap.ex index f0f5d91e8a49..8dc6a8f4ed37 100644 --- a/apps/explorer/lib/explorer/market/source/coin_market_cap.ex +++ b/apps/explorer/lib/explorer/market/source/coin_market_cap.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Source.CoinMarketCap do @moduledoc """ Adapter for fetching exchange rates from https://coinmarketcap.com/api/ diff --git a/apps/explorer/lib/explorer/market/source/crypto_compare.ex b/apps/explorer/lib/explorer/market/source/crypto_compare.ex index 92344c868b08..b2115a8a9d47 100644 --- a/apps/explorer/lib/explorer/market/source/crypto_compare.ex +++ b/apps/explorer/lib/explorer/market/source/crypto_compare.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Source.CryptoCompare do @moduledoc """ Adapter for fetching market history from https://cryptocompare.com. diff --git a/apps/explorer/lib/explorer/market/source/crypto_rank.ex b/apps/explorer/lib/explorer/market/source/crypto_rank.ex index 945a1c9239b1..3a22bc691c66 100644 --- a/apps/explorer/lib/explorer/market/source/crypto_rank.ex +++ b/apps/explorer/lib/explorer/market/source/crypto_rank.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Source.CryptoRank do @moduledoc """ Adapter for fetching market history from https://cryptorank.io/. diff --git a/apps/explorer/lib/explorer/market/source/defillama.ex b/apps/explorer/lib/explorer/market/source/defillama.ex index a92fa667daab..a740ee7e5dc9 100644 --- a/apps/explorer/lib/explorer/market/source/defillama.ex +++ b/apps/explorer/lib/explorer/market/source/defillama.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Source.DefiLlama do @moduledoc """ Adapter for fetching market history from https://defillama.com/. diff --git a/apps/explorer/lib/explorer/market/source/dia.ex b/apps/explorer/lib/explorer/market/source/dia.ex index 539eb07a3e2f..ee98d2693905 100644 --- a/apps/explorer/lib/explorer/market/source/dia.ex +++ b/apps/explorer/lib/explorer/market/source/dia.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Source.DIA do @moduledoc """ Adapter for fetching exchange rates from https://www.diadata.org/ diff --git a/apps/explorer/lib/explorer/market/source/mobula.ex b/apps/explorer/lib/explorer/market/source/mobula.ex index b42c4d8f1f1a..b5bdbe7f21f6 100644 --- a/apps/explorer/lib/explorer/market/source/mobula.ex +++ b/apps/explorer/lib/explorer/market/source/mobula.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Source.Mobula do @moduledoc """ Adapter for fetching exchange rates from https://mobula.io diff --git a/apps/explorer/lib/explorer/market/token.ex b/apps/explorer/lib/explorer/market/token.ex index ea56892bcee7..91f702ef9938 100644 --- a/apps/explorer/lib/explorer/market/token.ex +++ b/apps/explorer/lib/explorer/market/token.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Token do @moduledoc """ Data container for modeling an exchange rate for a currency/token. diff --git a/apps/explorer/lib/explorer/metadata_uri_validator.ex b/apps/explorer/lib/explorer/metadata_uri_validator.ex index 44d59135fc8b..e17d0bc8d7e5 100644 --- a/apps/explorer/lib/explorer/metadata_uri_validator.ex +++ b/apps/explorer/lib/explorer/metadata_uri_validator.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.MetadataURIValidator do @moduledoc """ Validates metadata URI diff --git a/apps/explorer/lib/explorer/microservice_interfaces/account_abstraction.ex b/apps/explorer/lib/explorer/microservice_interfaces/account_abstraction.ex index 9d471447ae0d..42416ff41812 100644 --- a/apps/explorer/lib/explorer/microservice_interfaces/account_abstraction.ex +++ b/apps/explorer/lib/explorer/microservice_interfaces/account_abstraction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.MicroserviceInterfaces.AccountAbstraction do @moduledoc """ Interface to interact with Blockscout Account Abstraction (EIP-4337) microservice diff --git a/apps/explorer/lib/explorer/microservice_interfaces/bens.ex b/apps/explorer/lib/explorer/microservice_interfaces/bens.ex index b809a4214e33..c757d89d71e7 100644 --- a/apps/explorer/lib/explorer/microservice_interfaces/bens.ex +++ b/apps/explorer/lib/explorer/microservice_interfaces/bens.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.MicroserviceInterfaces.BENS do @moduledoc """ Interface to interact with Blockscout ENS microservice diff --git a/apps/explorer/lib/explorer/microservice_interfaces/metadata.ex b/apps/explorer/lib/explorer/microservice_interfaces/metadata.ex index 40e63f2017b2..793ec473e413 100644 --- a/apps/explorer/lib/explorer/microservice_interfaces/metadata.ex +++ b/apps/explorer/lib/explorer/microservice_interfaces/metadata.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.MicroserviceInterfaces.Metadata do @moduledoc """ Module to interact with Metadata microservice diff --git a/apps/explorer/lib/explorer/microservice_interfaces/multichain_search.ex b/apps/explorer/lib/explorer/microservice_interfaces/multichain_search.ex index c4e374f1e347..e621047fdb9b 100644 --- a/apps/explorer/lib/explorer/microservice_interfaces/multichain_search.ex +++ b/apps/explorer/lib/explorer/microservice_interfaces/multichain_search.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.MicroserviceInterfaces.MultichainSearch do @moduledoc """ Module to interact with Multichain search microservice diff --git a/apps/explorer/lib/explorer/microservice_interfaces/tac_operation_lifecycle.ex b/apps/explorer/lib/explorer/microservice_interfaces/tac_operation_lifecycle.ex index fd8ee211fc0d..a75acd11afc0 100644 --- a/apps/explorer/lib/explorer/microservice_interfaces/tac_operation_lifecycle.ex +++ b/apps/explorer/lib/explorer/microservice_interfaces/tac_operation_lifecycle.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.MicroserviceInterfaces.TACOperationLifecycle do @moduledoc """ Interface to interact with Tac Operation Lifecycle Service (https://github.com/blockscout/blockscout-rs/tree/main/tac-operation-lifecycle) diff --git a/apps/explorer/lib/explorer/migrator/address_current_token_balance_token_type.ex b/apps/explorer/lib/explorer/migrator/address_current_token_balance_token_type.ex index 70ae0cf74124..0fa5cbc93559 100644 --- a/apps/explorer/lib/explorer/migrator/address_current_token_balance_token_type.ex +++ b/apps/explorer/lib/explorer/migrator/address_current_token_balance_token_type.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.AddressCurrentTokenBalanceTokenType do @moduledoc """ Fill empty token_type's for address_current_token_balances diff --git a/apps/explorer/lib/explorer/migrator/address_token_balance_token_type.ex b/apps/explorer/lib/explorer/migrator/address_token_balance_token_type.ex index f5977455692c..d00dcf3528af 100644 --- a/apps/explorer/lib/explorer/migrator/address_token_balance_token_type.ex +++ b/apps/explorer/lib/explorer/migrator/address_token_balance_token_type.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.AddressTokenBalanceTokenType do @moduledoc """ Fill empty token_type's for address_token_balances diff --git a/apps/explorer/lib/explorer/migrator/arbitrum_da_records_normalization.ex b/apps/explorer/lib/explorer/migrator/arbitrum_da_records_normalization.ex index 759e1b1d2b9e..49d4627151e1 100644 --- a/apps/explorer/lib/explorer/migrator/arbitrum_da_records_normalization.ex +++ b/apps/explorer/lib/explorer/migrator/arbitrum_da_records_normalization.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.ArbitrumDaRecordsNormalization do @moduledoc """ Normalizes batch-to-blob associations by moving them from arbitrum_da_multi_purpose to a dedicated diff --git a/apps/explorer/lib/explorer/migrator/backfill_metadata_url.ex b/apps/explorer/lib/explorer/migrator/backfill_metadata_url.ex index ff57a5f9d8f0..30bab5fcf4c7 100644 --- a/apps/explorer/lib/explorer/migrator/backfill_metadata_url.ex +++ b/apps/explorer/lib/explorer/migrator/backfill_metadata_url.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.BackfillMetadataURL do @moduledoc """ Backfills the metadata_url field for token instances diff --git a/apps/explorer/lib/explorer/migrator/backfill_multichain_search_db.ex b/apps/explorer/lib/explorer/migrator/backfill_multichain_search_db.ex index 7296844d10d9..7014767189da 100644 --- a/apps/explorer/lib/explorer/migrator/backfill_multichain_search_db.ex +++ b/apps/explorer/lib/explorer/migrator/backfill_multichain_search_db.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.BackfillMultichainSearchDB do @moduledoc """ Copies existing data from Blockscout instance to Multichain Search DB instance. diff --git a/apps/explorer/lib/explorer/migrator/celo_accounts.ex b/apps/explorer/lib/explorer/migrator/celo_accounts.ex index 9d8cf35a0fa5..393c009d26fe 100644 --- a/apps/explorer/lib/explorer/migrator/celo_accounts.ex +++ b/apps/explorer/lib/explorer/migrator/celo_accounts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.CeloAccounts do @moduledoc """ Backfills pending account operations table for each address that has diff --git a/apps/explorer/lib/explorer/migrator/celo_aggregated_election_rewards.ex b/apps/explorer/lib/explorer/migrator/celo_aggregated_election_rewards.ex index c14fd18fab30..5a3589c611c4 100644 --- a/apps/explorer/lib/explorer/migrator/celo_aggregated_election_rewards.ex +++ b/apps/explorer/lib/explorer/migrator/celo_aggregated_election_rewards.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.CeloAggregatedElectionRewards do @moduledoc """ Backfills the `celo_aggregated_election_rewards` table with aggregated diff --git a/apps/explorer/lib/explorer/migrator/celo_l2_epochs.ex b/apps/explorer/lib/explorer/migrator/celo_l2_epochs.ex index 3e3295000809..54a35ef485e6 100644 --- a/apps/explorer/lib/explorer/migrator/celo_l2_epochs.ex +++ b/apps/explorer/lib/explorer/migrator/celo_l2_epochs.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.CeloL2Epochs do @moduledoc """ Backfills Celo L2 epochs data. It processes logs related to epoch processing diff --git a/apps/explorer/lib/explorer/migrator/delete_zero_value_internal_transactions.ex b/apps/explorer/lib/explorer/migrator/delete_zero_value_internal_transactions.ex index 89295a7494e1..5d48a4dfd957 100644 --- a/apps/explorer/lib/explorer/migrator/delete_zero_value_internal_transactions.ex +++ b/apps/explorer/lib/explorer/migrator/delete_zero_value_internal_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.DeleteZeroValueInternalTransactions do @moduledoc """ Continuously deletes all zero-value calls older than diff --git a/apps/explorer/lib/explorer/migrator/empty_bytecode_for_selfdestructed_smart_contracts.ex b/apps/explorer/lib/explorer/migrator/empty_bytecode_for_selfdestructed_smart_contracts.ex index 9b3230604d5c..e604f98dbf64 100644 --- a/apps/explorer/lib/explorer/migrator/empty_bytecode_for_selfdestructed_smart_contracts.ex +++ b/apps/explorer/lib/explorer/migrator/empty_bytecode_for_selfdestructed_smart_contracts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.EmptyBytecodeForSelfdestructedSmartContracts do @moduledoc """ Finds all existing selfdestruct internal transactions and empties the contract_code diff --git a/apps/explorer/lib/explorer/migrator/empty_internal_transactions_data.ex b/apps/explorer/lib/explorer/migrator/empty_internal_transactions_data.ex index 23e48bf79df8..0aba5a1a6988 100644 --- a/apps/explorer/lib/explorer/migrator/empty_internal_transactions_data.ex +++ b/apps/explorer/lib/explorer/migrator/empty_internal_transactions_data.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.EmptyInternalTransactionsData do @moduledoc """ Searches for all internal transactions with non-empty `trace_address` and empties it. diff --git a/apps/explorer/lib/explorer/migrator/filecoin_pending_address_operations.ex b/apps/explorer/lib/explorer/migrator/filecoin_pending_address_operations.ex index 47254d880590..ad8b14d066d3 100644 --- a/apps/explorer/lib/explorer/migrator/filecoin_pending_address_operations.ex +++ b/apps/explorer/lib/explorer/migrator/filecoin_pending_address_operations.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.FilecoinPendingAddressOperations do @moduledoc """ Creates a pending address operation for each address missing Filecoin address diff --git a/apps/explorer/lib/explorer/migrator/fill_internal_transactions_address_ids.ex b/apps/explorer/lib/explorer/migrator/fill_internal_transactions_address_ids.ex index b8c0588ef01d..fa0995d85ffa 100644 --- a/apps/explorer/lib/explorer/migrator/fill_internal_transactions_address_ids.ex +++ b/apps/explorer/lib/explorer/migrator/fill_internal_transactions_address_ids.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.FillInternalTransactionsAddressIds do @moduledoc """ Clears `*_address_hash` fields in internal transactions and fills their `*_address_id` copies. diff --git a/apps/explorer/lib/explorer/migrator/filling_migration.ex b/apps/explorer/lib/explorer/migrator/filling_migration.ex index 30b212c9a2a3..f72197fdf984 100644 --- a/apps/explorer/lib/explorer/migrator/filling_migration.ex +++ b/apps/explorer/lib/explorer/migrator/filling_migration.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # credo:disable-for-this-file defmodule Explorer.Migrator.FillingMigration do @moduledoc """ diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation.ex index 76bd57df6c6c..0642eddd1083 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation do @moduledoc """ Provides a template for making heavy DB operations such as creation/deletion of new indexes in the large tables diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_hash_contract_code_not_null_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_hash_contract_code_not_null_index.ex index a5d7f498af04..5790f31fba9a 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_hash_contract_code_not_null_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_hash_contract_code_not_null_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateAddressesHashContractCodeNotNullIndex do @moduledoc """ Create partial B-tree index on `addresses` table filtering by `contract_code IS NOT NULL` diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_transactions_count_asc_coin_balance_desc_hash_partial.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_transactions_count_asc_coin_balance_desc_hash_partial.ex index bf08aa2cda9e..84985e3533f8 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_transactions_count_asc_coin_balance_desc_hash_partial.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_transactions_count_asc_coin_balance_desc_hash_partial.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateAddressesTransactionsCountAscCoinBalanceDescHashPartialIndex do @moduledoc """ Create partial B-tree index on `addresses` table filtering by `fetched_coin_balance > 0` diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_transactions_count_desc_partial_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_transactions_count_desc_partial_index.ex index 75e3cb1a5724..53ae195c6f7b 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_transactions_count_desc_partial_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_transactions_count_desc_partial_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateAddressesTransactionsCountDescPartialIndex do @moduledoc """ Create partial B-tree index on `addresses` table filtering by `fetched_coin_balance > 0` diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_verified_fetched_coin_balance_desc_hash_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_verified_fetched_coin_balance_desc_hash_index.ex index 4449d18c3ea7..e882fdc9c90d 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_verified_fetched_coin_balance_desc_hash_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_verified_fetched_coin_balance_desc_hash_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateAddressesVerifiedFetchedCoinBalanceDescHashIndex do @moduledoc """ Create partial B-tree index on `addresses` table filtering by `verified=true` diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_verified_hash_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_verified_hash_index.ex index 57addb5188bd..c4016900bdbf 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_verified_hash_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_verified_hash_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateAddressesVerifiedHashIndex do @moduledoc """ Create partial B-tree index on `addresses` table filtering by `verified=true` diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_verified_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_verified_index.ex index 1b8325dfe678..f6ba8af1cea5 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_verified_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_verified_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateAddressesVerifiedIndex do @moduledoc """ Create partial B-tree index on `addresses` table filtering by `verified = true`. diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_verified_transactions_count_desc_hash_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_verified_transactions_count_desc_hash_index.ex index b87b4dbc7cc3..17d669139d2e 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_verified_transactions_count_desc_hash_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_addresses_verified_transactions_count_desc_hash_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateAddressesVerifiedTransactionsCountDescHashIndex do @moduledoc """ Create partial B-tree index on `addresses` table filtering by `verified=true` diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_arbitrum_batch_l2_blocks_unconfirmed_blocks_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_arbitrum_batch_l2_blocks_unconfirmed_blocks_index.ex index e1d25a93c5f2..c92f2e18bf16 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_arbitrum_batch_l2_blocks_unconfirmed_blocks_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_arbitrum_batch_l2_blocks_unconfirmed_blocks_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateArbitrumBatchL2BlocksUnconfirmedBlocksIndex do @moduledoc """ Create partial B-tree index on `arbitrum_batch_l2_blocks` table filtering by `confirmation_id IS NULL`. diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_block_number_created_contract_address_id_partial_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_block_number_created_contract_address_id_partial_index.ex index 634684bd3cea..31700f1bde9c 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_block_number_created_contract_address_id_partial_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_block_number_created_contract_address_id_partial_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateInternalTransactionsBlockNumberCreatedContractAddressIdPartialIndex do @moduledoc """ Create partial B-tree index `internal_transactions_block_number_created_contract_address_id_index` on `internal_transactions` table for (block_number, created_contract_address_id) columns where created_contract_address_id is not NULL. diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_block_number_desc_block_index_desc_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_block_number_desc_block_index_desc_index.ex index 9b7654ed5b1f..90ab1ef05871 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_block_number_desc_block_index_desc_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_block_number_desc_block_index_desc_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateInternalTransactionsBlockNumberDescTransactionIndexDescIndexDescIndex do @moduledoc """ Create B-tree index `internal_transactions_block_number_DESC_transaction_index_DESC_index_DESC_index` on `internal_transactions` table for (`block_number` DESC, `transaction_index` DESC, `index` DESC) columns. diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_block_number_transaction_index_index_unique_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_block_number_transaction_index_index_unique_index.ex index 289d73b836cd..d4b0a9f73494 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_block_number_transaction_index_index_unique_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_block_number_transaction_index_index_unique_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateInternalTransactionsBlockNumberTransactionIndexIndexUniqueIndex do @moduledoc """ Create unique B-tree index `internal_transactions_block_number_transaction_index_index_index` on `internal_transactions` table for (`block_number`, `transaction_index`, `index`) columns. diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_created_contract_address_id_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_created_contract_address_id_index.ex index d4e5cfc9f383..37def77e79bc 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_created_contract_address_id_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_created_contract_address_id_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateInternalTransactionsCreatedContractAddressIdIndex do @moduledoc """ Create B-tree index on `internal_transactions` table for `created_contract_address_id` column. diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_from_address_id_partial_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_from_address_id_partial_index.ex index e591329a007b..b2acff175525 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_from_address_id_partial_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_from_address_id_partial_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateInternalTransactionsFromAddressIdPartialIndex do @moduledoc """ Create partial B-tree index `internal_transactions_from_address_id_partial_index` on `internal_transactions` table for (`from_address_id`, `block_number` DESC, `transaction_index` DESC, `index` DESC) columns. diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_to_address_id_partial_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_to_address_id_partial_index.ex index 1b71f540ef31..acc1c985820b 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_to_address_id_partial_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_internal_transactions_to_address_id_partial_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateInternalTransactionsToAddressIdPartialIndex do @moduledoc """ Create partial B-tree index `internal_transactions_to_address_id_partial_index` on `internal_transactions` table for (`to_address_id`, `block_number` DESC, `transaction_index` DESC, `index` DESC) columns. diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_logs_address_hash_block_number_desc_index_desc_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_logs_address_hash_block_number_desc_index_desc_index.ex index 6dae3af18d79..222ee72abacf 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_logs_address_hash_block_number_desc_index_desc_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_logs_address_hash_block_number_desc_index_desc_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateLogsAddressHashBlockNumberDescIndexDescIndex do @moduledoc """ Create B-tree index `logs_address_hash_block_number_DESC_index_DESC_index` on `logs` table for (`address_hash`, `block_number DESC`, `index DESC`) columns. diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_logs_address_hash_first_topic_block_number_index_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_logs_address_hash_first_topic_block_number_index_index.ex index 2842faca9a73..813fd2dfef89 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_logs_address_hash_first_topic_block_number_index_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_logs_address_hash_first_topic_block_number_index_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateLogsAddressHashFirstTopicBlockNumberIndexIndex do @moduledoc """ Create B-tree index `logs_address_hash_first_topic_block_number_index_index` on `logs` table for (`address_hash`, `first_topic`, `block_number`, `index`) columns. diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_logs_block_hash_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_logs_block_hash_index.ex index 5242457ff8d1..04e8a69fa9f0 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_logs_block_hash_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_logs_block_hash_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateLogsBlockHashIndex do @moduledoc """ Create B-tree index on `logs` table for `block_hash` column. diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_logs_deposits_withdrawals_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_logs_deposits_withdrawals_index.ex index bf94d4f8840d..b08e4abfbbb8 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_logs_deposits_withdrawals_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_logs_deposits_withdrawals_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateLogsDepositsWithdrawalsIndex do @moduledoc """ Create partial B-tree index `logs_deposits_withdrawals_index` on `logs` table for (`transaction_hash`, `block_hash`, `index`, `address_hash`) columns, filtered by first_topic IN diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_smart_contract_additional_sources_unique_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_smart_contract_additional_sources_unique_index.ex index 563679f68cbf..67eec9c86371 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_smart_contract_additional_sources_unique_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_smart_contract_additional_sources_unique_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateSmartContractAdditionalSourcesUniqueIndex do @moduledoc """ Creates a unique index on the smart_contract_additional_sources table. diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_smart_contracts_language_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_smart_contracts_language_index.ex index 4f1bfad09172..c8145ca1a33f 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_smart_contracts_language_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_smart_contracts_language_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateSmartContractsLanguageIndex do @moduledoc """ Create B-tree index `smart_contracts_language_index` on `smart_contracts` diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_tokens_name_partial_fts_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_tokens_name_partial_fts_index.ex index 2d3c1b38606b..5318b69d78ef 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_tokens_name_partial_fts_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_tokens_name_partial_fts_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateTokensNamePartialFtsIndex do @moduledoc """ Creates partial full-text search index on the `tokens` table with filtering by `symbol IS NULL`. diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_tokens_ord_fiat_holder_name_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_tokens_ord_fiat_holder_name_index.ex index ac11a4e3ecc0..43217d76b522 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_tokens_ord_fiat_holder_name_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_tokens_ord_fiat_holder_name_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateTokensOrdFiatHolderNameIndex do @moduledoc """ Create B-tree index `idx_tokens_ord_fiat_holder_name` on `tokens` table for diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_tokens_ord_holder_name_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_tokens_ord_holder_name_index.ex index 4eb98e07203b..9e0f49d7082b 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_tokens_ord_holder_name_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_tokens_ord_holder_name_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateTokensOrdHolderNameIndex do @moduledoc """ Create B-tree index `idx_tokens_ord_holder_name` on `tokens` table for diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_tokens_ord_mcap_fiat_holder_name_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_tokens_ord_mcap_fiat_holder_name_index.ex index 89d447430475..bc0d5a20dbf5 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_tokens_ord_mcap_fiat_holder_name_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_tokens_ord_mcap_fiat_holder_name_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateTokensOrdMcapFiatHolderNameIndex do @moduledoc """ Create B-tree index `idx_tokens_ord_mcap_fiat_holder_name` on `tokens` table diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_transactions_created_contract_address_hash_w_pending_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_transactions_created_contract_address_hash_w_pending_index.ex index 7e661ad6565e..24fc1fe1c0a7 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_transactions_created_contract_address_hash_w_pending_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/create_transactions_created_contract_address_hash_w_pending_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateTransactionsCreatedContractAddressHashWPendingIndex do @moduledoc """ Creates partial index "transactions_created_contract_address_hash_w_pending_index" on transactions (created_contract_address_hash, block_number ASC NULLS LAST, index ASC NULLS LAST, inserted_at ASC, hash DESC) WHERE created_contract_address_hash IS NOT NULL. diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_addresses_verified_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_addresses_verified_index.ex index 867aa18700ba..6d75f90be2c6 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_addresses_verified_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_addresses_verified_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropAddressesVerifiedIndex do @moduledoc """ Drops index "addresses_verified_index" on the addresses table. diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_block_hash_transaction_index_index_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_block_hash_transaction_index_index_index.ex index 23a2995af7b6..374d8e58e9b0 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_block_hash_transaction_index_index_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_block_hash_transaction_index_index_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropInternalTransactionsBlockHashTransactionIndexIndexIndex do @moduledoc """ Drops index "internal_transactions_block_hash_transaction_index_index_index" btree (block_hash, transaction_index, index). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_block_number_created_contract_address_hash_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_block_number_created_contract_address_hash_index.ex index a2855562d5b2..0d19cd7926fc 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_block_number_created_contract_address_hash_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_block_number_created_contract_address_hash_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropInternalTransactionsBlockNumberCreatedContractAddressHashIndex do @moduledoc """ Drops index "internal_transactions_block_number_created_contract_address_hash" btree (block_number, created_contract_address_hash) WHERE (created_contract_address_hash IS NOT NULL). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_created_contract_address_hash_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_created_contract_address_hash_index.ex index e92699f4863c..d07d2a8b95dc 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_created_contract_address_hash_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_created_contract_address_hash_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropInternalTransactionsCreatedContractAddressHashIndex do @moduledoc """ Drops index "internal_transactions_created_contract_address_hash_index" btree (created_contract_address_hash). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_created_contract_address_hash_partial_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_created_contract_address_hash_partial_index.ex index c32672686397..e3889aca61ce 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_created_contract_address_hash_partial_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_created_contract_address_hash_partial_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropInternalTransactionsCreatedContractAddressHashPartialIndex do @moduledoc """ Drops index "internal_transactions_created_contract_address_hash_partial_index" on internal_transactions(created_contract_address_hash, block_number DESC, transaction_index DESC, index DESC). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_from_address_hash_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_from_address_hash_index.ex index 8ac159cafb69..1051a5c1679c 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_from_address_hash_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_from_address_hash_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropInternalTransactionsFromAddressHashIndex do @moduledoc """ Drops index "internal_transactions_from_address_hash_index" btree (from_address_hash). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_from_address_hash_partial_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_from_address_hash_partial_index.ex index 9197300aa896..b424cd6b2855 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_from_address_hash_partial_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_from_address_hash_partial_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropInternalTransactionsFromAddressHashPartialIndex do @moduledoc """ Drops index "internal_transactions_from_address_hash_partial_index" btree (from_address_hash, block_number DESC, transaction_index DESC, index DESC) WHERE ((((type)::text = 'call'::text) AND (index > 0)) OR ((type)::text <> 'call'::text)). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_to_address_hash_partial_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_to_address_hash_partial_index.ex index 307530592bc9..ccec84d6a2c8 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_to_address_hash_partial_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_internal_transactions_to_address_hash_partial_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropInternalTransactionsToAddressHashPartialIndex do @moduledoc """ Drops index "internal_transactions_to_address_hash_partial_index" btree (to_address_hash, block_number DESC, transaction_index DESC, index DESC) WHERE ((((type)::text = 'call'::text) AND (index > 0)) OR ((type)::text <> 'call'::text)). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_logs_address_hash_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_logs_address_hash_index.ex index 3f7244a40bc7..8dc777e6b12e 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_logs_address_hash_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_logs_address_hash_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropLogsAddressHashIndex do @moduledoc """ Drops index "logs_address_hash_index" btree (address_hash). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_logs_address_hash_transaction_hash_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_logs_address_hash_transaction_hash_index.ex index d463bdb6c5ef..5f84a19378de 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_logs_address_hash_transaction_hash_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_logs_address_hash_transaction_hash_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropLogsAddressHashTransactionHashIndex do @moduledoc """ Drops index "logs_address_hash_transaction_hash_index" btree (address_hash, transaction_hash). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_logs_block_number_asc_index_asc_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_logs_block_number_asc_index_asc_index.ex index 837aa2dd802a..f34bf69f23d1 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_logs_block_number_asc_index_asc_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_logs_block_number_asc_index_asc_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropLogsBlockNumberAscIndexAscIndex do @moduledoc """ Drops index "logs_block_number_ASC__index_ASC_index" btree (block_number, index). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_logs_index_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_logs_index_index.ex index 6646c901c3a7..118400c0138e 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_logs_index_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_logs_index_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropLogsIndexIndex do @moduledoc """ Drops index "logs_index_index" btree (index). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_instances_token_id_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_instances_token_id_index.ex index ff0fd4b43733..8616a1ef7b11 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_instances_token_id_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_instances_token_id_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropTokenInstancesTokenIdIndex do @moduledoc """ Drops index "token_instances_token_id_index" btree (token_id). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_block_number_asc_log_index_asc_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_block_number_asc_log_index_asc_index.ex index b7b76039a066..9e59518fbb78 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_block_number_asc_log_index_asc_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_block_number_asc_log_index_asc_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropTokenTransfersBlockNumberAscLogIndexAscIndex do @moduledoc """ Drops index "token_transfers_block_number_ASC_log_index_ASC_index" btree (block_number, log_index). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_block_number_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_block_number_index.ex index 68129241a6d3..0a9b88fcba14 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_block_number_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_block_number_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropTokenTransfersBlockNumberIndex do @moduledoc """ Drops index "token_transfers_block_number_index" btree (block_number). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_from_address_hash_transaction_hash_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_from_address_hash_transaction_hash_index.ex index 1649096b6a58..1b7f87ce4c13 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_from_address_hash_transaction_hash_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_from_address_hash_transaction_hash_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropTokenTransfersFromAddressHashTransactionHashIndex do @moduledoc """ Drops index "token_transfers_from_address_hash_transaction_hash_index" btree (from_address_hash, transaction_hash). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_to_address_hash_transaction_hash_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_to_address_hash_transaction_hash_index.ex index dd94d4d5e9a9..0fcb9c87ce31 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_to_address_hash_transaction_hash_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_to_address_hash_transaction_hash_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropTokenTransfersToAddressHashTransactionHashIndex do @moduledoc """ Drops index "token_transfers_to_address_hash_transaction_hash_index" btree (to_address_hash, transaction_hash). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_token_contract_address_hash_transaction_hash_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_token_contract_address_hash_transaction_hash_index.ex index 638cec9fa075..5651ab30607f 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_token_contract_address_hash_transaction_hash_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_token_transfers_token_contract_address_hash_transaction_hash_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropTokenTransfersTokenContractAddressHashTransactionHashIndex do @moduledoc """ Drops index "token_transfers_token_contract_address_hash_transaction_hash_index" btree (token_contract_address_hash, transaction_hash). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_created_contract_address_hash_with_pending_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_created_contract_address_hash_with_pending_index.ex index 083d92118f4d..540bfba1b43a 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_created_contract_address_hash_with_pending_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_created_contract_address_hash_with_pending_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropTransactionsCreatedContractAddressHashWithPendingIndex do @moduledoc """ Drops index "transactions_created_contract_address_hash_with_pending_index" btree (created_contract_address_hash, block_number DESC, index DESC, inserted_at DESC, hash). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_created_contract_address_hash_with_pending_index_a.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_created_contract_address_hash_with_pending_index_a.ex index b4a0c1326d38..bd9237245b33 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_created_contract_address_hash_with_pending_index_a.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_created_contract_address_hash_with_pending_index_a.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropTransactionsCreatedContractAddressHashWithPendingIndexA do @moduledoc """ Drops index "transactions_created_contract_address_hash_with_pending_index_a" btree (created_contract_address_hash, block_number ASC NULLS LAST, index ASC NULLS LAST, inserted_at ASC, hash DESC). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_from_address_hash_with_pending_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_from_address_hash_with_pending_index.ex index 0a72cb56fed2..7dfedb1088c4 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_from_address_hash_with_pending_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_from_address_hash_with_pending_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropTransactionsFromAddressHashWithPendingIndex do @moduledoc """ Drops index "transactions_from_address_hash_with_pending_index" btree (from_address_hash, block_number DESC, index DESC, inserted_at DESC, hash). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_operator_fee_constant_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_operator_fee_constant_index.ex index ce061b224cca..59289090eea8 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_operator_fee_constant_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_operator_fee_constant_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropTransactionsOperatorFeeConstantIndex do @moduledoc """ Drops index "transactions_operator_fee_constant_index" btree (operator_fee_constant IS NULL). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_to_address_hash_with_pending_index.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_to_address_hash_with_pending_index.ex index e0f4067f2fe5..75ea59bf6e39 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_to_address_hash_with_pending_index.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/drop_transactions_to_address_hash_with_pending_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropTransactionsToAddressHashWithPendingIndex do @moduledoc """ Drops index "transactions_to_address_hash_with_pending_index" btree (to_address_hash, block_number DESC, index DESC, inserted_at DESC, hash). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/helper.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/helper.ex index f8cff0586826..6b3b74e37e0e 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/helper.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.Helper do @moduledoc """ Common functions for Explorer.Migrator.HeavyDbIndexOperation.* modules diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/remove_internal_transactions_block_hash_transaction_hash_block_index_error.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/remove_internal_transactions_block_hash_transaction_hash_block_index_error.ex index 3380136687ab..3ec34266a3be 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/remove_internal_transactions_block_hash_transaction_hash_block_index_error.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/remove_internal_transactions_block_hash_transaction_hash_block_index_error.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.RemoveInternalTransactionsBlockHashTransactionHashBlockIndexError do @moduledoc """ Removes `block_hash`, `transaction_hash`, `block_index` and `error` columns from `internal_transactions` diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/update_internal_transactions_primary_key.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/update_internal_transactions_primary_key.ex index 68bd428a208d..c385291823bf 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/update_internal_transactions_primary_key.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/update_internal_transactions_primary_key.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.UpdateInternalTransactionsPrimaryKey do @moduledoc """ Update primary key on `internal_transactions` table from (`block_hash`, `block_index`) to (`block_number`, `transaction_index`, `index`). diff --git a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/validate_internal_transactions_block_number_transaction_index_not_null.ex b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/validate_internal_transactions_block_number_transaction_index_not_null.ex index d67c86067d93..6c0b046d5597 100644 --- a/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/validate_internal_transactions_block_number_transaction_index_not_null.ex +++ b/apps/explorer/lib/explorer/migrator/heavy_db_index_operation/validate_internal_transactions_block_number_transaction_index_not_null.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.ValidateInternalTransactionsBlockNumberTransactionIndexNotNull do @moduledoc """ Validate `NOT NULL` constraints for `internal_transactions` (`block_number`, `transaction_index`). diff --git a/apps/explorer/lib/explorer/migrator/merge_adjacent_missing_block_ranges.ex b/apps/explorer/lib/explorer/migrator/merge_adjacent_missing_block_ranges.ex index 30332b7afa57..473d03fcf55d 100644 --- a/apps/explorer/lib/explorer/migrator/merge_adjacent_missing_block_ranges.ex +++ b/apps/explorer/lib/explorer/migrator/merge_adjacent_missing_block_ranges.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.MergeAdjacentMissingBlockRanges do @moduledoc """ Merges adjacent missing block ranges (like 10..5, 4..3) into one (10..3). diff --git a/apps/explorer/lib/explorer/migrator/migration_status.ex b/apps/explorer/lib/explorer/migrator/migration_status.ex index 99718a32077b..cd085ebab391 100644 --- a/apps/explorer/lib/explorer/migrator/migration_status.ex +++ b/apps/explorer/lib/explorer/migrator/migration_status.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.MigrationStatus do @moduledoc """ Module is responsible for keeping the current status of background migrations. diff --git a/apps/explorer/lib/explorer/migrator/refetch_contract_codes.ex b/apps/explorer/lib/explorer/migrator/refetch_contract_codes.ex index a20574417c1c..2a6ee0accbe5 100644 --- a/apps/explorer/lib/explorer/migrator/refetch_contract_codes.ex +++ b/apps/explorer/lib/explorer/migrator/refetch_contract_codes.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.RefetchContractCodes do @moduledoc """ Refetch contract_code for. Migration created for running on zksync chain type. diff --git a/apps/explorer/lib/explorer/migrator/reindex_blocks_with_missing_transactions.ex b/apps/explorer/lib/explorer/migrator/reindex_blocks_with_missing_transactions.ex index 573080488000..39e75750d076 100644 --- a/apps/explorer/lib/explorer/migrator/reindex_blocks_with_missing_transactions.ex +++ b/apps/explorer/lib/explorer/migrator/reindex_blocks_with_missing_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.ReindexBlocksWithMissingTransactions do @moduledoc """ Searches for all blocks where the number of transactions differs from the number of transactions on the node, diff --git a/apps/explorer/lib/explorer/migrator/reindex_internal_transactions_with_incompatible_status.ex b/apps/explorer/lib/explorer/migrator/reindex_internal_transactions_with_incompatible_status.ex index 7c596395c7df..833f2a65821f 100644 --- a/apps/explorer/lib/explorer/migrator/reindex_internal_transactions_with_incompatible_status.ex +++ b/apps/explorer/lib/explorer/migrator/reindex_internal_transactions_with_incompatible_status.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.ReindexInternalTransactionsWithIncompatibleStatus do @moduledoc """ Searches for all failed transactions for which all internal transactions are successful diff --git a/apps/explorer/lib/explorer/migrator/restore_omitted_weth_transfers.ex b/apps/explorer/lib/explorer/migrator/restore_omitted_weth_transfers.ex index fc85f76e3a04..c765b32ea2a4 100644 --- a/apps/explorer/lib/explorer/migrator/restore_omitted_weth_transfers.ex +++ b/apps/explorer/lib/explorer/migrator/restore_omitted_weth_transfers.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.RestoreOmittedWETHTransfers do @moduledoc """ Inserts missed WETH token transfers diff --git a/apps/explorer/lib/explorer/migrator/sanitize_duplicate_smart_contract_additional_sources.ex b/apps/explorer/lib/explorer/migrator/sanitize_duplicate_smart_contract_additional_sources.ex index d3ac807cd6af..ab95c0503bcf 100644 --- a/apps/explorer/lib/explorer/migrator/sanitize_duplicate_smart_contract_additional_sources.ex +++ b/apps/explorer/lib/explorer/migrator/sanitize_duplicate_smart_contract_additional_sources.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SanitizeDuplicateSmartContractAdditionalSources do @moduledoc """ Sanitizes the smart_contract_additional_sources table by removing duplicates. diff --git a/apps/explorer/lib/explorer/migrator/sanitize_duplicated_log_index_logs.ex b/apps/explorer/lib/explorer/migrator/sanitize_duplicated_log_index_logs.ex index 3b76d207454b..22db224ced2f 100644 --- a/apps/explorer/lib/explorer/migrator/sanitize_duplicated_log_index_logs.ex +++ b/apps/explorer/lib/explorer/migrator/sanitize_duplicated_log_index_logs.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SanitizeDuplicatedLogIndexLogs do @moduledoc """ This module is responsible for sanitizing duplicate log index entries in the database. diff --git a/apps/explorer/lib/explorer/migrator/sanitize_empty_contract_code_addresses.ex b/apps/explorer/lib/explorer/migrator/sanitize_empty_contract_code_addresses.ex index 5e500e03794f..af3eef971206 100644 --- a/apps/explorer/lib/explorer/migrator/sanitize_empty_contract_code_addresses.ex +++ b/apps/explorer/lib/explorer/migrator/sanitize_empty_contract_code_addresses.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SanitizeEmptyContractCodeAddresses do @moduledoc """ Migration that sets contract code to `"0x"` for addresses where contract code diff --git a/apps/explorer/lib/explorer/migrator/sanitize_erc_1155_token_balances_without_token_ids.ex b/apps/explorer/lib/explorer/migrator/sanitize_erc_1155_token_balances_without_token_ids.ex index 1c561e1dc4ec..29a53fd12165 100644 --- a/apps/explorer/lib/explorer/migrator/sanitize_erc_1155_token_balances_without_token_ids.ex +++ b/apps/explorer/lib/explorer/migrator/sanitize_erc_1155_token_balances_without_token_ids.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SanitizeErc1155TokenBalancesWithoutTokenIds do @moduledoc """ Deletes token balances of ERC-1155 tokens with empty token_id. diff --git a/apps/explorer/lib/explorer/migrator/sanitize_incorrect_nft_token_transfers.ex b/apps/explorer/lib/explorer/migrator/sanitize_incorrect_nft_token_transfers.ex index 02032101682b..b49f0e6cc8dd 100644 --- a/apps/explorer/lib/explorer/migrator/sanitize_incorrect_nft_token_transfers.ex +++ b/apps/explorer/lib/explorer/migrator/sanitize_incorrect_nft_token_transfers.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SanitizeIncorrectNFTTokenTransfers do @moduledoc """ Delete all token transfers of ERC-721 tokens with deposit/withdrawal signatures diff --git a/apps/explorer/lib/explorer/migrator/sanitize_incorrect_weth_token_transfers.ex b/apps/explorer/lib/explorer/migrator/sanitize_incorrect_weth_token_transfers.ex index 98991fea5ffd..79937c606c63 100644 --- a/apps/explorer/lib/explorer/migrator/sanitize_incorrect_weth_token_transfers.ex +++ b/apps/explorer/lib/explorer/migrator/sanitize_incorrect_weth_token_transfers.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SanitizeIncorrectWETHTokenTransfers do @moduledoc """ This migrator will delete all incorrect WETH token transfers. As incorrect we consider: diff --git a/apps/explorer/lib/explorer/migrator/sanitize_missing_block_ranges.ex b/apps/explorer/lib/explorer/migrator/sanitize_missing_block_ranges.ex index 03166816f981..1361ce4a644e 100644 --- a/apps/explorer/lib/explorer/migrator/sanitize_missing_block_ranges.ex +++ b/apps/explorer/lib/explorer/migrator/sanitize_missing_block_ranges.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SanitizeMissingBlockRanges do @moduledoc """ Remove invalid missing block ranges (from_number < to_number and intersecting ones) diff --git a/apps/explorer/lib/explorer/migrator/sanitize_missing_token_balances.ex b/apps/explorer/lib/explorer/migrator/sanitize_missing_token_balances.ex index 5ec34fa3bfc4..53024cf3bb14 100644 --- a/apps/explorer/lib/explorer/migrator/sanitize_missing_token_balances.ex +++ b/apps/explorer/lib/explorer/migrator/sanitize_missing_token_balances.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SanitizeMissingTokenBalances do @moduledoc """ Deletes empty current token balances if the related highest block_number historical token balance is filled. diff --git a/apps/explorer/lib/explorer/migrator/sanitize_replaced_transactions.ex b/apps/explorer/lib/explorer/migrator/sanitize_replaced_transactions.ex index 5b92f7176d3d..29b17cff8285 100644 --- a/apps/explorer/lib/explorer/migrator/sanitize_replaced_transactions.ex +++ b/apps/explorer/lib/explorer/migrator/sanitize_replaced_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SanitizeReplacedTransactions do @moduledoc """ Cleans the transactions that are related to non-consensus blocks. diff --git a/apps/explorer/lib/explorer/migrator/sanitize_verified_addresses.ex b/apps/explorer/lib/explorer/migrator/sanitize_verified_addresses.ex index 6dc7d5e38d8f..78636fead87d 100644 --- a/apps/explorer/lib/explorer/migrator/sanitize_verified_addresses.ex +++ b/apps/explorer/lib/explorer/migrator/sanitize_verified_addresses.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SanitizeVerifiedAddresses do @moduledoc """ Sets `verified` field to `true` for all addresses that have a corresponding diff --git a/apps/explorer/lib/explorer/migrator/shrink_internal_transactions.ex b/apps/explorer/lib/explorer/migrator/shrink_internal_transactions.ex index 1759fb84ec3b..ff47dfc43c59 100644 --- a/apps/explorer/lib/explorer/migrator/shrink_internal_transactions.ex +++ b/apps/explorer/lib/explorer/migrator/shrink_internal_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.ShrinkInternalTransactions do @moduledoc """ Removes the content of output field and leaves first 4 bytes signature in input field in internal transactions. diff --git a/apps/explorer/lib/explorer/migrator/switch_pending_operations.ex b/apps/explorer/lib/explorer/migrator/switch_pending_operations.ex index 52b623d25cb7..0121dff5858e 100644 --- a/apps/explorer/lib/explorer/migrator/switch_pending_operations.ex +++ b/apps/explorer/lib/explorer/migrator/switch_pending_operations.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SwitchPendingOperations do @moduledoc false diff --git a/apps/explorer/lib/explorer/migrator/token_transfer_block_consensus.ex b/apps/explorer/lib/explorer/migrator/token_transfer_block_consensus.ex index 2513c2a3716e..3ee56fa6504c 100644 --- a/apps/explorer/lib/explorer/migrator/token_transfer_block_consensus.ex +++ b/apps/explorer/lib/explorer/migrator/token_transfer_block_consensus.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.TokenTransferBlockConsensus do @moduledoc """ Fixes token transfers block_consensus field diff --git a/apps/explorer/lib/explorer/migrator/token_transfer_token_type.ex b/apps/explorer/lib/explorer/migrator/token_transfer_token_type.ex index af8d9f74b9fc..b154e3e7a5d0 100644 --- a/apps/explorer/lib/explorer/migrator/token_transfer_token_type.ex +++ b/apps/explorer/lib/explorer/migrator/token_transfer_token_type.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.TokenTransferTokenType do @moduledoc """ Migrates all token_transfers to have set token_type diff --git a/apps/explorer/lib/explorer/migrator/transaction_block_consensus.ex b/apps/explorer/lib/explorer/migrator/transaction_block_consensus.ex index 6024b10fba35..64e80a7d2946 100644 --- a/apps/explorer/lib/explorer/migrator/transaction_block_consensus.ex +++ b/apps/explorer/lib/explorer/migrator/transaction_block_consensus.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.TransactionBlockConsensus do @moduledoc """ Fixes transactions block_consensus field diff --git a/apps/explorer/lib/explorer/migrator/transactions_denormalization.ex b/apps/explorer/lib/explorer/migrator/transactions_denormalization.ex index 26c5e33804f5..3d780f171e84 100644 --- a/apps/explorer/lib/explorer/migrator/transactions_denormalization.ex +++ b/apps/explorer/lib/explorer/migrator/transactions_denormalization.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.TransactionsDenormalization do @moduledoc """ Migrates all transactions to have set block_consensus and block_timestamp diff --git a/apps/explorer/lib/explorer/migrator/unescape_ampersands_in_tokens.ex b/apps/explorer/lib/explorer/migrator/unescape_ampersands_in_tokens.ex index 9f22d5d288a9..7258b82e7510 100644 --- a/apps/explorer/lib/explorer/migrator/unescape_ampersands_in_tokens.ex +++ b/apps/explorer/lib/explorer/migrator/unescape_ampersands_in_tokens.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.UnescapeAmpersandsInTokens do @moduledoc """ Unescapes ampersands in `name` and `symbol` token fields diff --git a/apps/explorer/lib/explorer/migrator/unescape_quotes_in_tokens.ex b/apps/explorer/lib/explorer/migrator/unescape_quotes_in_tokens.ex index 1abd084c6c83..238de785b471 100644 --- a/apps/explorer/lib/explorer/migrator/unescape_quotes_in_tokens.ex +++ b/apps/explorer/lib/explorer/migrator/unescape_quotes_in_tokens.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.UnescapeQuotesInTokens do @moduledoc """ Unescapes single and double quotes in `name` and `symbol` token fields diff --git a/apps/explorer/lib/explorer/module_queue_registry.ex b/apps/explorer/lib/explorer/module_queue_registry.ex index 3e03b6e5eeb1..7cae727187f8 100644 --- a/apps/explorer/lib/explorer/module_queue_registry.ex +++ b/apps/explorer/lib/explorer/module_queue_registry.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ModuleQueueRegistry do @moduledoc """ Generic registry for module-scoped ETS-backed queues. diff --git a/apps/explorer/lib/explorer/paging_options.ex b/apps/explorer/lib/explorer/paging_options.ex index 08239758abc9..ea52356235ad 100644 --- a/apps/explorer/lib/explorer/paging_options.ex +++ b/apps/explorer/lib/explorer/paging_options.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.PagingOptions do @moduledoc """ Defines paging options for paging by a stable key such as a timestamp or block diff --git a/apps/explorer/lib/explorer/prometheus/collector/active_db_connections.ex b/apps/explorer/lib/explorer/prometheus/collector/active_db_connections.ex index 24ea428651f0..78f1b086d780 100644 --- a/apps/explorer/lib/explorer/prometheus/collector/active_db_connections.ex +++ b/apps/explorer/lib/explorer/prometheus/collector/active_db_connections.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Prometheus.Collector.ActiveDbConnections do @moduledoc """ Custom collector to count number of currently active DB connections. diff --git a/apps/explorer/lib/explorer/prometheus/instrumenter.ex b/apps/explorer/lib/explorer/prometheus/instrumenter.ex index 6bc350bd4eed..c11edbd41fa2 100644 --- a/apps/explorer/lib/explorer/prometheus/instrumenter.ex +++ b/apps/explorer/lib/explorer/prometheus/instrumenter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Prometheus.Instrumenter do @moduledoc """ Explorer metrics for `Prometheus`. diff --git a/apps/explorer/lib/explorer/promo/autoscout.ex b/apps/explorer/lib/explorer/promo/autoscout.ex index 9e295d5fa8ed..e4b446eaa404 100644 --- a/apps/explorer/lib/explorer/promo/autoscout.ex +++ b/apps/explorer/lib/explorer/promo/autoscout.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Promo.Autoscout do @moduledoc """ Module responsible for logging the Autoscout promo message on application startup diff --git a/apps/explorer/lib/explorer/query_helper.ex b/apps/explorer/lib/explorer/query_helper.ex index 1a320b8d62ff..8a687e05cf82 100644 --- a/apps/explorer/lib/explorer/query_helper.ex +++ b/apps/explorer/lib/explorer/query_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.QueryHelper do @moduledoc """ Helping functions for `Ecto.Query` building. diff --git a/apps/explorer/lib/explorer/repo.ex b/apps/explorer/lib/explorer/repo.ex index f5d30018d16b..6aca8ae8bfce 100644 --- a/apps/explorer/lib/explorer/repo.ex +++ b/apps/explorer/lib/explorer/repo.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo do use Ecto.Repo, otp_app: :explorer, diff --git a/apps/explorer/lib/explorer/repo/config_helper.ex b/apps/explorer/lib/explorer/repo/config_helper.ex index 10a262cb5a80..624f06b47f03 100644 --- a/apps/explorer/lib/explorer/repo/config_helper.ex +++ b/apps/explorer/lib/explorer/repo/config_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.ConfigHelper do @moduledoc """ Extracts values from environment and adds them to application config. diff --git a/apps/explorer/lib/explorer/repo/prometheus_logger.ex b/apps/explorer/lib/explorer/repo/prometheus_logger.ex index 93f377809179..6a3b057ce25d 100644 --- a/apps/explorer/lib/explorer/repo/prometheus_logger.ex +++ b/apps/explorer/lib/explorer/repo/prometheus_logger.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.PrometheusLogger do @moduledoc """ Log `Ecto` query durations as `Prometheus` metrics. diff --git a/apps/explorer/lib/explorer/schema.ex b/apps/explorer/lib/explorer/schema.ex index ef88e49fa60d..72c0f3f78863 100644 --- a/apps/explorer/lib/explorer/schema.ex +++ b/apps/explorer/lib/explorer/schema.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Schema do @moduledoc "Common configuration for Explorer schemas." diff --git a/apps/explorer/lib/explorer/smart_contract/certified_smart_contract_cataloger.ex b/apps/explorer/lib/explorer/smart_contract/certified_smart_contract_cataloger.ex index a7e2e4ef16bf..41e9f966ff31 100644 --- a/apps/explorer/lib/explorer/smart_contract/certified_smart_contract_cataloger.ex +++ b/apps/explorer/lib/explorer/smart_contract/certified_smart_contract_cataloger.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.CertifiedSmartContractCataloger do @moduledoc """ Actualizes certified smart-contracts. diff --git a/apps/explorer/lib/explorer/smart_contract/compiler_version.ex b/apps/explorer/lib/explorer/smart_contract/compiler_version.ex index 0a72a7649023..52eecf275fd7 100644 --- a/apps/explorer/lib/explorer/smart_contract/compiler_version.ex +++ b/apps/explorer/lib/explorer/smart_contract/compiler_version.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.CompilerVersion do @moduledoc """ Adapter for fetching compiler versions from https://binaries.soliditylang.org/bin/list.json. diff --git a/apps/explorer/lib/explorer/smart_contract/eth_bytecode_db_interface.ex b/apps/explorer/lib/explorer/smart_contract/eth_bytecode_db_interface.ex index e142ce4a2cee..368145ae864c 100644 --- a/apps/explorer/lib/explorer/smart_contract/eth_bytecode_db_interface.ex +++ b/apps/explorer/lib/explorer/smart_contract/eth_bytecode_db_interface.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.EthBytecodeDBInterface do @moduledoc """ Adapter for interaction with https://github.com/blockscout/blockscout-rs/tree/main/eth-bytecode-db diff --git a/apps/explorer/lib/explorer/smart_contract/geas/publisher.ex b/apps/explorer/lib/explorer/smart_contract/geas/publisher.ex index c65c7f32c2ed..d2508ef89eec 100644 --- a/apps/explorer/lib/explorer/smart_contract/geas/publisher.ex +++ b/apps/explorer/lib/explorer/smart_contract/geas/publisher.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Geas.Publisher do @moduledoc """ Module responsible for verifying and publishing GEAS smart contracts. diff --git a/apps/explorer/lib/explorer/smart_contract/helper.ex b/apps/explorer/lib/explorer/smart_contract/helper.ex index 1be9a85cab1e..683361f246ea 100644 --- a/apps/explorer/lib/explorer/smart_contract/helper.ex +++ b/apps/explorer/lib/explorer/smart_contract/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Helper do @moduledoc """ SmartContract helper functions diff --git a/apps/explorer/lib/explorer/smart_contract/reader.ex b/apps/explorer/lib/explorer/smart_contract/reader.ex index 0b333454d356..728353cc2037 100644 --- a/apps/explorer/lib/explorer/smart_contract/reader.ex +++ b/apps/explorer/lib/explorer/smart_contract/reader.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Reader do @moduledoc """ Reads Smart Contract functions from the blockchain. diff --git a/apps/explorer/lib/explorer/smart_contract/rust_verifier_interface.ex b/apps/explorer/lib/explorer/smart_contract/rust_verifier_interface.ex index 43c6f4befd28..42453df16584 100644 --- a/apps/explorer/lib/explorer/smart_contract/rust_verifier_interface.ex +++ b/apps/explorer/lib/explorer/smart_contract/rust_verifier_interface.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.RustVerifierInterface do @moduledoc """ Adapter for contracts verification with https://github.com/blockscout/blockscout-rs/blob/main/smart-contract-verifier diff --git a/apps/explorer/lib/explorer/smart_contract/rust_verifier_interface_behaviour.ex b/apps/explorer/lib/explorer/smart_contract/rust_verifier_interface_behaviour.ex index a5ccc5d7d4bb..42539a2b6767 100644 --- a/apps/explorer/lib/explorer/smart_contract/rust_verifier_interface_behaviour.ex +++ b/apps/explorer/lib/explorer/smart_contract/rust_verifier_interface_behaviour.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.RustVerifierInterfaceBehaviour do @moduledoc """ This behaviour module was created in order to add possibility to extend the functionality of RustVerifierInterface diff --git a/apps/explorer/lib/explorer/smart_contract/sig_provider_interface.ex b/apps/explorer/lib/explorer/smart_contract/sig_provider_interface.ex index 635763e66b97..1e30181083bf 100644 --- a/apps/explorer/lib/explorer/smart_contract/sig_provider_interface.ex +++ b/apps/explorer/lib/explorer/smart_contract/sig_provider_interface.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.SigProviderInterface do @moduledoc """ Adapter for decoding events and function calls with https://github.com/blockscout/blockscout-rs/tree/main/sig-provider diff --git a/apps/explorer/lib/explorer/smart_contract/solc_downloader.ex b/apps/explorer/lib/explorer/smart_contract/solc_downloader.ex index 105afa042921..3c5d2f74324f 100644 --- a/apps/explorer/lib/explorer/smart_contract/solc_downloader.ex +++ b/apps/explorer/lib/explorer/smart_contract/solc_downloader.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.SolcDownloader do @moduledoc """ Checks to see if the requested solc compiler version exists, and if not it diff --git a/apps/explorer/lib/explorer/smart_contract/solidity/code_compiler.ex b/apps/explorer/lib/explorer/smart_contract/solidity/code_compiler.ex index ba1cca203908..284b78f7c404 100644 --- a/apps/explorer/lib/explorer/smart_contract/solidity/code_compiler.ex +++ b/apps/explorer/lib/explorer/smart_contract/solidity/code_compiler.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Solidity.CodeCompiler do @moduledoc """ Module responsible to compile the Solidity code of a given Smart Contract. diff --git a/apps/explorer/lib/explorer/smart_contract/solidity/publish_helper.ex b/apps/explorer/lib/explorer/smart_contract/solidity/publish_helper.ex index 6d8b0cb7a782..0f92cfec5fac 100644 --- a/apps/explorer/lib/explorer/smart_contract/solidity/publish_helper.ex +++ b/apps/explorer/lib/explorer/smart_contract/solidity/publish_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Solidity.PublishHelper do @moduledoc """ Module responsible for preparing and publishing smart contracts diff --git a/apps/explorer/lib/explorer/smart_contract/solidity/publisher.ex b/apps/explorer/lib/explorer/smart_contract/solidity/publisher.ex index e4f8f4a49c34..0993c96d018d 100644 --- a/apps/explorer/lib/explorer/smart_contract/solidity/publisher.ex +++ b/apps/explorer/lib/explorer/smart_contract/solidity/publisher.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Solidity.Publisher do @moduledoc """ Module responsible to control the contract verification. diff --git a/apps/explorer/lib/explorer/smart_contract/solidity/publisher_worker.ex b/apps/explorer/lib/explorer/smart_contract/solidity/publisher_worker.ex index f1d4dff9de43..e7d9780ff0d3 100644 --- a/apps/explorer/lib/explorer/smart_contract/solidity/publisher_worker.ex +++ b/apps/explorer/lib/explorer/smart_contract/solidity/publisher_worker.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Solidity.PublisherWorker do @moduledoc """ Background smart contract verification worker. diff --git a/apps/explorer/lib/explorer/smart_contract/solidity/verifier.ex b/apps/explorer/lib/explorer/smart_contract/solidity/verifier.ex index 57031bb9765b..41d24edd2053 100644 --- a/apps/explorer/lib/explorer/smart_contract/solidity/verifier.ex +++ b/apps/explorer/lib/explorer/smart_contract/solidity/verifier.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # credo:disable-for-this-file defmodule Explorer.SmartContract.Solidity.Verifier do @moduledoc """ diff --git a/apps/explorer/lib/explorer/smart_contract/stylus/publisher.ex b/apps/explorer/lib/explorer/smart_contract/stylus/publisher.ex index 59bd673d2575..95cc36f4304d 100644 --- a/apps/explorer/lib/explorer/smart_contract/stylus/publisher.ex +++ b/apps/explorer/lib/explorer/smart_contract/stylus/publisher.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Stylus.Publisher do @moduledoc """ Module responsible for verifying and publishing Stylus smart contracts. diff --git a/apps/explorer/lib/explorer/smart_contract/stylus/publisher_worker.ex b/apps/explorer/lib/explorer/smart_contract/stylus/publisher_worker.ex index ad5357978cc7..e940d49ae2a1 100644 --- a/apps/explorer/lib/explorer/smart_contract/stylus/publisher_worker.ex +++ b/apps/explorer/lib/explorer/smart_contract/stylus/publisher_worker.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Stylus.PublisherWorker do @moduledoc """ Processes Stylus smart contract verification requests asynchronously in the background. diff --git a/apps/explorer/lib/explorer/smart_contract/stylus/verifier.ex b/apps/explorer/lib/explorer/smart_contract/stylus/verifier.ex index 86ddeb0c85b3..d459d4a6f062 100644 --- a/apps/explorer/lib/explorer/smart_contract/stylus/verifier.ex +++ b/apps/explorer/lib/explorer/smart_contract/stylus/verifier.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Stylus.Verifier do @moduledoc """ Verifies Stylus smart contracts by comparing their source code against deployed bytecode. diff --git a/apps/explorer/lib/explorer/smart_contract/stylus_verifier_interface.ex b/apps/explorer/lib/explorer/smart_contract/stylus_verifier_interface.ex index d5ab2ea9db4d..5ce38b0b3f34 100644 --- a/apps/explorer/lib/explorer/smart_contract/stylus_verifier_interface.ex +++ b/apps/explorer/lib/explorer/smart_contract/stylus_verifier_interface.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.StylusVerifierInterface do @moduledoc """ Provides an interface for verifying Stylus smart contracts by interacting with a verification diff --git a/apps/explorer/lib/explorer/smart_contract/vyper/code_compiler.ex b/apps/explorer/lib/explorer/smart_contract/vyper/code_compiler.ex index 52e8248c612d..5e4078bc0e17 100644 --- a/apps/explorer/lib/explorer/smart_contract/vyper/code_compiler.ex +++ b/apps/explorer/lib/explorer/smart_contract/vyper/code_compiler.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Vyper.CodeCompiler do @moduledoc """ Module responsible to compile the Vyper code of a given Smart Contract. diff --git a/apps/explorer/lib/explorer/smart_contract/vyper/publisher.ex b/apps/explorer/lib/explorer/smart_contract/vyper/publisher.ex index 3a2c85a488ec..567cb6da566b 100644 --- a/apps/explorer/lib/explorer/smart_contract/vyper/publisher.ex +++ b/apps/explorer/lib/explorer/smart_contract/vyper/publisher.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Vyper.Publisher do @moduledoc """ Module responsible to control Vyper contract verification. diff --git a/apps/explorer/lib/explorer/smart_contract/vyper/publisher_worker.ex b/apps/explorer/lib/explorer/smart_contract/vyper/publisher_worker.ex index a060197d2ffd..83e40ba63799 100644 --- a/apps/explorer/lib/explorer/smart_contract/vyper/publisher_worker.ex +++ b/apps/explorer/lib/explorer/smart_contract/vyper/publisher_worker.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Vyper.PublisherWorker do @moduledoc """ Background smart contract verification worker. diff --git a/apps/explorer/lib/explorer/smart_contract/vyper/verifier.ex b/apps/explorer/lib/explorer/smart_contract/vyper/verifier.ex index 049c9f544524..31d45eb14500 100644 --- a/apps/explorer/lib/explorer/smart_contract/vyper/verifier.ex +++ b/apps/explorer/lib/explorer/smart_contract/vyper/verifier.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # credo:disable-for-this-file defmodule Explorer.SmartContract.Vyper.Verifier do @moduledoc """ diff --git a/apps/explorer/lib/explorer/smart_contract/vyper_downloader.ex b/apps/explorer/lib/explorer/smart_contract/vyper_downloader.ex index 2f6ca24e0a07..1e48babfa730 100644 --- a/apps/explorer/lib/explorer/smart_contract/vyper_downloader.ex +++ b/apps/explorer/lib/explorer/smart_contract/vyper_downloader.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.VyperDownloader do @moduledoc """ Checks to see if the requested Vyper compiler version exists, and if not it diff --git a/apps/explorer/lib/explorer/smart_contract/writer.ex b/apps/explorer/lib/explorer/smart_contract/writer.ex index 0b0dc52a7e2a..f145ef62fd5f 100644 --- a/apps/explorer/lib/explorer/smart_contract/writer.ex +++ b/apps/explorer/lib/explorer/smart_contract/writer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Writer do @moduledoc """ Generates smart-contract transactions diff --git a/apps/explorer/lib/explorer/sorting_helper.ex b/apps/explorer/lib/explorer/sorting_helper.ex index 8ee6bcca82c9..07cb4c07405f 100644 --- a/apps/explorer/lib/explorer/sorting_helper.ex +++ b/apps/explorer/lib/explorer/sorting_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SortingHelper do @moduledoc """ Module that order and paginate queries dynamically based on default and provided sorting parameters. diff --git a/apps/explorer/lib/explorer/stats/hot_smart_contracts.ex b/apps/explorer/lib/explorer/stats/hot_smart_contracts.ex index 291cfc913b1f..982bb4be3920 100644 --- a/apps/explorer/lib/explorer/stats/hot_smart_contracts.ex +++ b/apps/explorer/lib/explorer/stats/hot_smart_contracts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Stats.HotSmartContracts do @moduledoc """ This module defines the HotSmartContracts schema and functions for aggregating and paginating hot contracts. diff --git a/apps/explorer/lib/explorer/tags/address_tag.ex b/apps/explorer/lib/explorer/tags/address_tag.ex index 633b25618362..ceb23c391b0d 100644 --- a/apps/explorer/lib/explorer/tags/address_tag.ex +++ b/apps/explorer/lib/explorer/tags/address_tag.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Tags.AddressTag do @moduledoc """ Represents an address Tag object. diff --git a/apps/explorer/lib/explorer/tags/address_tag_cataloger.ex b/apps/explorer/lib/explorer/tags/address_tag_cataloger.ex index bc695bdab465..59db3ba687d7 100644 --- a/apps/explorer/lib/explorer/tags/address_tag_cataloger.ex +++ b/apps/explorer/lib/explorer/tags/address_tag_cataloger.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Tags.AddressTag.Cataloger do @moduledoc """ Actualizes address tags. diff --git a/apps/explorer/lib/explorer/tags/address_to_tag.ex b/apps/explorer/lib/explorer/tags/address_to_tag.ex index 0c9a344bb7be..b6f7205a61a4 100644 --- a/apps/explorer/lib/explorer/tags/address_to_tag.ex +++ b/apps/explorer/lib/explorer/tags/address_to_tag.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Tags.AddressToTag do @moduledoc """ Represents Address to Tag relation. diff --git a/apps/explorer/lib/explorer/third_party_integrations/airtable_audit_report.ex b/apps/explorer/lib/explorer/third_party_integrations/airtable_audit_report.ex index 3e0c7ce5ae9f..c64c14ef25ab 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/airtable_audit_report.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/airtable_audit_report.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.AirTableAuditReport do @moduledoc """ Module is responsible for submitting audit reports to AirTable diff --git a/apps/explorer/lib/explorer/third_party_integrations/auth0.ex b/apps/explorer/lib/explorer/third_party_integrations/auth0.ex index fa2d7abd4d19..b57dd5415ed9 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/auth0.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/auth0.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.Auth0 do @moduledoc """ Auth0 Management REST API client for user management. diff --git a/apps/explorer/lib/explorer/third_party_integrations/auth0/internal.ex b/apps/explorer/lib/explorer/third_party_integrations/auth0/internal.ex index 1222576908c3..33805c812079 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/auth0/internal.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/auth0/internal.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.Auth0.Internal do @moduledoc """ Module for internal usage, not supposed to be used directly, if diff --git a/apps/explorer/lib/explorer/third_party_integrations/auth0/legacy.ex b/apps/explorer/lib/explorer/third_party_integrations/auth0/legacy.ex index c987f1a8fba9..6c8496843865 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/auth0/legacy.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/auth0/legacy.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.Auth0.Legacy do @moduledoc """ Module for internal usage, not supposed to be used directly, if diff --git a/apps/explorer/lib/explorer/third_party_integrations/auth0/migrated.ex b/apps/explorer/lib/explorer/third_party_integrations/auth0/migrated.ex index 6c7bdb575e26..c929be2c4126 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/auth0/migrated.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/auth0/migrated.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.Auth0.Migrated do @moduledoc """ Module for internal usage, not supposed to be used directly, if diff --git a/apps/explorer/lib/explorer/third_party_integrations/dynamic.ex b/apps/explorer/lib/explorer/third_party_integrations/dynamic.ex index 16f96ef20518..6e62416e575f 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/dynamic.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/dynamic.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.Dynamic do @moduledoc """ Provides integration with Dynamic for JWT-based user authentication. diff --git a/apps/explorer/lib/explorer/third_party_integrations/dynamic/strategy.ex b/apps/explorer/lib/explorer/third_party_integrations/dynamic/strategy.ex index b6dff6d6f85e..5a216892b2b5 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/dynamic/strategy.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/dynamic/strategy.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.Dynamic.Strategy do @moduledoc """ JWKS fetching strategy for Dynamic diff --git a/apps/explorer/lib/explorer/third_party_integrations/dynamic/token.ex b/apps/explorer/lib/explorer/third_party_integrations/dynamic/token.ex index e1ac7f54b5d4..118555df6389 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/dynamic/token.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/dynamic/token.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.Dynamic.Token do @moduledoc """ JWT token verification for Dynamic.xyz diff --git a/apps/explorer/lib/explorer/third_party_integrations/keycloak.ex b/apps/explorer/lib/explorer/third_party_integrations/keycloak.ex index 1f174cfad9a5..cb6aab51ee2b 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/keycloak.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/keycloak.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.Keycloak do @moduledoc """ Keycloak Admin REST API client for user management. diff --git a/apps/explorer/lib/explorer/third_party_integrations/noves_fi.ex b/apps/explorer/lib/explorer/third_party_integrations/noves_fi.ex index d9def2b47f32..c59fcf6c6eb0 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/noves_fi.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/noves_fi.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.NovesFi do @moduledoc """ Module for Noves.Fi API integration https://blockscout.noves.fi/swagger/index.html diff --git a/apps/explorer/lib/explorer/third_party_integrations/solidityscan.ex b/apps/explorer/lib/explorer/third_party_integrations/solidityscan.ex index dd6f95fa6a14..bf3065ca8961 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/solidityscan.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/solidityscan.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.SolidityScan do @moduledoc """ Module for SolidityScan integration https://apidoc.solidityscan.com/solidityscan-security-api/solidityscan-other-apis/quickscan-api-v1 diff --git a/apps/explorer/lib/explorer/third_party_integrations/sourcify.ex b/apps/explorer/lib/explorer/third_party_integrations/sourcify.ex index 2590dd008b4b..960fa47aef1b 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/sourcify.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/sourcify.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.Sourcify do @moduledoc """ Adapter for contracts verification with https://sourcify.dev/ diff --git a/apps/explorer/lib/explorer/third_party_integrations/universal_proxy.ex b/apps/explorer/lib/explorer/third_party_integrations/universal_proxy.ex index 13c4aa2eb6e3..a3fab5dfb465 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/universal_proxy.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/universal_proxy.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.UniversalProxy do @moduledoc """ A single point of entry for proxying third-party HTTP API endpoints diff --git a/apps/explorer/lib/explorer/third_party_integrations/universal_proxy/socket_handler.ex b/apps/explorer/lib/explorer/third_party_integrations/universal_proxy/socket_handler.ex index 809345551344..e71383c182da 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/universal_proxy/socket_handler.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/universal_proxy/socket_handler.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.UniversalProxy.SocketHandler do @moduledoc """ A simple WebSocket proxy handler that relays messages between a client and a target WebSocket server. diff --git a/apps/explorer/lib/explorer/third_party_integrations/universal_proxy/target_client.ex b/apps/explorer/lib/explorer/third_party_integrations/universal_proxy/target_client.ex index 16a7a1a07fbc..935e4b71e300 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/universal_proxy/target_client.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/universal_proxy/target_client.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.UniversalProxy.TargetClient do @moduledoc """ A WebSocket client that connects to a target WebSocket server and forwards messages to/from a diff --git a/apps/explorer/lib/explorer/third_party_integrations/xname.ex b/apps/explorer/lib/explorer/third_party_integrations/xname.ex index 2305267d61e8..1b7a7df0c8bc 100644 --- a/apps/explorer/lib/explorer/third_party_integrations/xname.ex +++ b/apps/explorer/lib/explorer/third_party_integrations/xname.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.Xname do @moduledoc """ Module for proxying xname https://xname.app/ API endpoints diff --git a/apps/explorer/lib/explorer/token/balance_reader.ex b/apps/explorer/lib/explorer/token/balance_reader.ex index 25912d102a14..09e9b97c41be 100644 --- a/apps/explorer/lib/explorer/token/balance_reader.ex +++ b/apps/explorer/lib/explorer/token/balance_reader.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Token.BalanceReader do @moduledoc """ Reads Token's balances using Smart Contract functions from the blockchain. diff --git a/apps/explorer/lib/explorer/token/metadata_retriever.ex b/apps/explorer/lib/explorer/token/metadata_retriever.ex index c0612f258315..de83e55105bc 100644 --- a/apps/explorer/lib/explorer/token/metadata_retriever.ex +++ b/apps/explorer/lib/explorer/token/metadata_retriever.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Token.MetadataRetriever do @moduledoc """ Reads Token's fields using Smart Contract functions from the blockchain. diff --git a/apps/explorer/lib/explorer/token_instance_owner_address_migration/helper.ex b/apps/explorer/lib/explorer/token_instance_owner_address_migration/helper.ex index 0a556e6dd282..5d80f405cd31 100644 --- a/apps/explorer/lib/explorer/token_instance_owner_address_migration/helper.ex +++ b/apps/explorer/lib/explorer/token_instance_owner_address_migration/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.TokenInstanceOwnerAddressMigration.Helper do @moduledoc """ Auxiliary functions for TokenInstanceOwnerAddressMigration.{Worker and Supervisor} diff --git a/apps/explorer/lib/explorer/token_instance_owner_address_migration/supervisor.ex b/apps/explorer/lib/explorer/token_instance_owner_address_migration/supervisor.ex index 01ca324f5f2d..da916fd0549e 100644 --- a/apps/explorer/lib/explorer/token_instance_owner_address_migration/supervisor.ex +++ b/apps/explorer/lib/explorer/token_instance_owner_address_migration/supervisor.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.TokenInstanceOwnerAddressMigration.Supervisor do @moduledoc """ Supervisor for Explorer.TokenInstanceOwnerAddressMigration.Worker diff --git a/apps/explorer/lib/explorer/token_instance_owner_address_migration/worker.ex b/apps/explorer/lib/explorer/token_instance_owner_address_migration/worker.ex index c9cfabc9d2ca..32810fff1940 100644 --- a/apps/explorer/lib/explorer/token_instance_owner_address_migration/worker.ex +++ b/apps/explorer/lib/explorer/token_instance_owner_address_migration/worker.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.TokenInstanceOwnerAddressMigration.Worker do @moduledoc """ GenServer for filling owner_address_hash, owner_updated_at_block and owner_updated_at_log_index diff --git a/apps/explorer/lib/explorer/tracer.ex b/apps/explorer/lib/explorer/tracer.ex index 20297d80abe9..e7381803b36e 100644 --- a/apps/explorer/lib/explorer/tracer.ex +++ b/apps/explorer/lib/explorer/tracer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Tracer do @moduledoc false diff --git a/apps/explorer/lib/explorer/tuple_encoder.ex b/apps/explorer/lib/explorer/tuple_encoder.ex index 5e3dd685d24c..4705a3a14f15 100644 --- a/apps/explorer/lib/explorer/tuple_encoder.ex +++ b/apps/explorer/lib/explorer/tuple_encoder.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule TupleEncoder do @moduledoc """ Implementation of Jason.Encoder for Tuple diff --git a/apps/explorer/lib/explorer/utility/address_contract_code_fetch_attempt.ex b/apps/explorer/lib/explorer/utility/address_contract_code_fetch_attempt.ex index 167584ab3584..67eeed1fd983 100644 --- a/apps/explorer/lib/explorer/utility/address_contract_code_fetch_attempt.ex +++ b/apps/explorer/lib/explorer/utility/address_contract_code_fetch_attempt.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Utility.AddressContractCodeFetchAttempt do @moduledoc """ Module is responsible for keeping the number of retries for diff --git a/apps/explorer/lib/explorer/utility/address_id_to_address_hash.ex b/apps/explorer/lib/explorer/utility/address_id_to_address_hash.ex index cb6c5e726a93..499027b48b65 100644 --- a/apps/explorer/lib/explorer/utility/address_id_to_address_hash.ex +++ b/apps/explorer/lib/explorer/utility/address_id_to_address_hash.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Utility.AddressIdToAddressHash do @moduledoc """ Module is responsible for keeping the address_id to address_hash correspondence. diff --git a/apps/explorer/lib/explorer/utility/event_notification.ex b/apps/explorer/lib/explorer/utility/event_notification.ex index 21a2ba644211..7ffce20156cb 100644 --- a/apps/explorer/lib/explorer/utility/event_notification.ex +++ b/apps/explorer/lib/explorer/utility/event_notification.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Utility.EventNotification do @moduledoc """ An auxiliary schema for sending postgres notifications. diff --git a/apps/explorer/lib/explorer/utility/hammer.ex b/apps/explorer/lib/explorer/utility/hammer.ex index ebb1826862cb..2ac06508657a 100644 --- a/apps/explorer/lib/explorer/utility/hammer.ex +++ b/apps/explorer/lib/explorer/utility/hammer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Utility.Hammer.ETS do @moduledoc false use Hammer, backend: Hammer.ETS diff --git a/apps/explorer/lib/explorer/utility/internal_transaction_helper.ex b/apps/explorer/lib/explorer/utility/internal_transaction_helper.ex index 56373bb90e90..c6bcecf05ab7 100644 --- a/apps/explorer/lib/explorer/utility/internal_transaction_helper.ex +++ b/apps/explorer/lib/explorer/utility/internal_transaction_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Utility.InternalTransactionHelper do @moduledoc """ Internal transactions helping functions. diff --git a/apps/explorer/lib/explorer/utility/internal_transactions_address_placeholder.ex b/apps/explorer/lib/explorer/utility/internal_transactions_address_placeholder.ex index 1ec7781eb2af..e64b3e73c5e5 100644 --- a/apps/explorer/lib/explorer/utility/internal_transactions_address_placeholder.ex +++ b/apps/explorer/lib/explorer/utility/internal_transactions_address_placeholder.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Utility.InternalTransactionsAddressPlaceholder do @moduledoc """ Module is responsible for keeping the information about the presence of internal transactions diff --git a/apps/explorer/lib/explorer/utility/massive_block.ex b/apps/explorer/lib/explorer/utility/massive_block.ex index 9aa710480396..cda8a29208e7 100644 --- a/apps/explorer/lib/explorer/utility/massive_block.ex +++ b/apps/explorer/lib/explorer/utility/massive_block.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Utility.MassiveBlock do @moduledoc """ Module is responsible for keeping the block numbers that are too large for regular import diff --git a/apps/explorer/lib/explorer/utility/microservice.ex b/apps/explorer/lib/explorer/utility/microservice.ex index 305ea86f2c11..f581e866425e 100644 --- a/apps/explorer/lib/explorer/utility/microservice.ex +++ b/apps/explorer/lib/explorer/utility/microservice.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Utility.Microservice do @moduledoc """ Module is responsible for common utils related to microservices. diff --git a/apps/explorer/lib/explorer/utility/missing_balance_of_token.ex b/apps/explorer/lib/explorer/utility/missing_balance_of_token.ex index 45faf333487c..069f43f5c317 100644 --- a/apps/explorer/lib/explorer/utility/missing_balance_of_token.ex +++ b/apps/explorer/lib/explorer/utility/missing_balance_of_token.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Utility.MissingBalanceOfToken do @moduledoc """ Module is responsible for keeping address hashes of tokens that does not support the balanceOf function diff --git a/apps/explorer/lib/explorer/utility/missing_block_range.ex b/apps/explorer/lib/explorer/utility/missing_block_range.ex index 0c17386ab7ea..724edcd66f34 100644 --- a/apps/explorer/lib/explorer/utility/missing_block_range.ex +++ b/apps/explorer/lib/explorer/utility/missing_block_range.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # credo:disable-for-this-file defmodule Explorer.Utility.MissingBlockRange do @moduledoc """ diff --git a/apps/explorer/lib/explorer/utility/rate_limiter.ex b/apps/explorer/lib/explorer/utility/rate_limiter.ex index 0e5e6bdb7377..197cd2426063 100644 --- a/apps/explorer/lib/explorer/utility/rate_limiter.ex +++ b/apps/explorer/lib/explorer/utility/rate_limiter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Utility.RateLimiter do @moduledoc """ Rate limit logic with separation by action type and exponential backoff for bans. diff --git a/apps/explorer/lib/explorer/utility/replica_accessibility_manager.ex b/apps/explorer/lib/explorer/utility/replica_accessibility_manager.ex index e4e466575eaa..59a949dd990a 100644 --- a/apps/explorer/lib/explorer/utility/replica_accessibility_manager.ex +++ b/apps/explorer/lib/explorer/utility/replica_accessibility_manager.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Utility.ReplicaAccessibilityManager do @moduledoc """ Module responsible for periodically checking replica accessibility. diff --git a/apps/explorer/lib/explorer/utility/token_instance_metadata_refetch_attempt.ex b/apps/explorer/lib/explorer/utility/token_instance_metadata_refetch_attempt.ex index a40e754d36e4..89bb1406ef22 100644 --- a/apps/explorer/lib/explorer/utility/token_instance_metadata_refetch_attempt.ex +++ b/apps/explorer/lib/explorer/utility/token_instance_metadata_refetch_attempt.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Utility.TokenInstanceMetadataRefetchAttempt do @moduledoc """ Module is responsible for keeping the number of retries for diff --git a/apps/explorer/lib/explorer/utility/version_constants_updater.ex b/apps/explorer/lib/explorer/utility/version_constants_updater.ex index e4f4bbb2e43a..2a7b535e748a 100644 --- a/apps/explorer/lib/explorer/utility/version_constants_updater.ex +++ b/apps/explorer/lib/explorer/utility/version_constants_updater.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Utility.VersionConstantsUpdater do @moduledoc """ Module responsible for updating current and previous backend version in table `constants`. diff --git a/apps/explorer/lib/explorer/utility/version_upgrade.ex b/apps/explorer/lib/explorer/utility/version_upgrade.ex index ed2c353008f4..c085f37dcdf4 100644 --- a/apps/explorer/lib/explorer/utility/version_upgrade.ex +++ b/apps/explorer/lib/explorer/utility/version_upgrade.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Utility.VersionUpgrade do @moduledoc """ Provides validation logic for application version upgrades. diff --git a/apps/explorer/lib/explorer/validator/metadata_importer.ex b/apps/explorer/lib/explorer/validator/metadata_importer.ex index 8cc3792a77c3..2e0837408a45 100644 --- a/apps/explorer/lib/explorer/validator/metadata_importer.ex +++ b/apps/explorer/lib/explorer/validator/metadata_importer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Validator.MetadataImporter do @moduledoc """ module that upserts validator metadata from a list of maps diff --git a/apps/explorer/lib/explorer/validator/metadata_processor.ex b/apps/explorer/lib/explorer/validator/metadata_processor.ex index ebc9db9d46f0..0b627a0784f1 100644 --- a/apps/explorer/lib/explorer/validator/metadata_processor.ex +++ b/apps/explorer/lib/explorer/validator/metadata_processor.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Validator.MetadataProcessor do @moduledoc """ module to periodically retrieve and update metadata belonging to validators diff --git a/apps/explorer/lib/explorer/validator/metadata_retriever.ex b/apps/explorer/lib/explorer/validator/metadata_retriever.ex index 756e5fea01fc..e189faf8ce67 100644 --- a/apps/explorer/lib/explorer/validator/metadata_retriever.ex +++ b/apps/explorer/lib/explorer/validator/metadata_retriever.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Validator.MetadataRetriever do @moduledoc """ Consults the configured smart contracts to fetch the validators' metadata diff --git a/apps/explorer/lib/explorer/vault.ex b/apps/explorer/lib/explorer/vault.ex index 70fc1ed17d7a..58f753966334 100644 --- a/apps/explorer/lib/explorer/vault.ex +++ b/apps/explorer/lib/explorer/vault.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Vault do @moduledoc """ Module responsible for encrypt/decrypt GenServer initialization diff --git a/apps/explorer/lib/explorer/visualize/sol2uml.ex b/apps/explorer/lib/explorer/visualize/sol2uml.ex index bec7eddfe7b8..fe32c719423d 100644 --- a/apps/explorer/lib/explorer/visualize/sol2uml.ex +++ b/apps/explorer/lib/explorer/visualize/sol2uml.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Visualize.Sol2uml do @moduledoc """ Adapter for sol2uml visualizer with https://github.com/blockscout/blockscout-rs/blob/main/visualizer diff --git a/apps/explorer/lib/fetch_celo_core_contracts.ex b/apps/explorer/lib/fetch_celo_core_contracts.ex index 6d720350aa9c..d68dbc1fdaf0 100644 --- a/apps/explorer/lib/fetch_celo_core_contracts.ex +++ b/apps/explorer/lib/fetch_celo_core_contracts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Mix.Tasks.FetchCeloCoreContracts do @moduledoc """ Fetch the addresses of celo core contracts: `mix help celo-contracts` diff --git a/apps/explorer/lib/mix/tasks/auth0_to_keycloak_migrate.ex b/apps/explorer/lib/mix/tasks/auth0_to_keycloak_migrate.ex index f9a4639e9b89..3821815677cb 100644 --- a/apps/explorer/lib/mix/tasks/auth0_to_keycloak_migrate.ex +++ b/apps/explorer/lib/mix/tasks/auth0_to_keycloak_migrate.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Mix.Tasks.Auth0ToKeycloakMigrate do @moduledoc """ Migrates users from Auth0 to Keycloak. diff --git a/apps/explorer/lib/release_tasks.ex b/apps/explorer/lib/release_tasks.ex index a55174738421..b198ab3ba170 100644 --- a/apps/explorer/lib/release_tasks.ex +++ b/apps/explorer/lib/release_tasks.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ReleaseTasks do @moduledoc """ Release tasks used to migrate or generate seeds. diff --git a/apps/explorer/lib/test_helper.ex b/apps/explorer/lib/test_helper.ex index 6219ddc15a3c..c91a2b12ea97 100644 --- a/apps/explorer/lib/test_helper.ex +++ b/apps/explorer/lib/test_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.TestHelper do @moduledoc false diff --git a/apps/explorer/mix.exs b/apps/explorer/mix.exs index 92908370ca04..a9f7705a7850 100644 --- a/apps/explorer/mix.exs +++ b/apps/explorer/mix.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Mixfile do use Mix.Project diff --git a/apps/explorer/priv/account/migrations/20211031164954_create_account_identities.exs b/apps/explorer/priv/account/migrations/20211031164954_create_account_identities.exs index fb571247f0b4..7b2684487a62 100644 --- a/apps/explorer/priv/account/migrations/20211031164954_create_account_identities.exs +++ b/apps/explorer/priv/account/migrations/20211031164954_create_account_identities.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.CreateAccountIdentities do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20211105114502_create_account_watchlists.exs b/apps/explorer/priv/account/migrations/20211105114502_create_account_watchlists.exs index 2e7c93f3cc97..006fbf951a16 100644 --- a/apps/explorer/priv/account/migrations/20211105114502_create_account_watchlists.exs +++ b/apps/explorer/priv/account/migrations/20211105114502_create_account_watchlists.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.CreateAccountWatchlists do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20211105130907_create_account_watchlist_addresses.exs b/apps/explorer/priv/account/migrations/20211105130907_create_account_watchlist_addresses.exs index ef51c1850e5e..01a658390551 100644 --- a/apps/explorer/priv/account/migrations/20211105130907_create_account_watchlist_addresses.exs +++ b/apps/explorer/priv/account/migrations/20211105130907_create_account_watchlist_addresses.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.CreateAccountWatchlistAddresses do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20211127212336_create_account_watchlist_notifications.exs b/apps/explorer/priv/account/migrations/20211127212336_create_account_watchlist_notifications.exs index 7d4af566fe46..3b48fd238e13 100644 --- a/apps/explorer/priv/account/migrations/20211127212336_create_account_watchlist_notifications.exs +++ b/apps/explorer/priv/account/migrations/20211127212336_create_account_watchlist_notifications.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.CreateAccountWatchlistNotifications do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20211205220414_add_email_and_name_to_account_identity.exs b/apps/explorer/priv/account/migrations/20211205220414_add_email_and_name_to_account_identity.exs index 0633e0dbaeac..3c4cb7de8f72 100644 --- a/apps/explorer/priv/account/migrations/20211205220414_add_email_and_name_to_account_identity.exs +++ b/apps/explorer/priv/account/migrations/20211205220414_add_email_and_name_to_account_identity.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.AddEmailToAccountIdentity do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20220212222222_create_account_tag_addresses.exs b/apps/explorer/priv/account/migrations/20220212222222_create_account_tag_addresses.exs index df0074041ee9..027c1fd00481 100644 --- a/apps/explorer/priv/account/migrations/20220212222222_create_account_tag_addresses.exs +++ b/apps/explorer/priv/account/migrations/20220212222222_create_account_tag_addresses.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.CreateAccountTagAddresses do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20220313133333_create_account_tag_transactions.exs b/apps/explorer/priv/account/migrations/20220313133333_create_account_tag_transactions.exs index ba6fa338b984..545fcca1a68f 100644 --- a/apps/explorer/priv/account/migrations/20220313133333_create_account_tag_transactions.exs +++ b/apps/explorer/priv/account/migrations/20220313133333_create_account_tag_transactions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.CreateAccountTagTransactions do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20220324213333_add_subject_to_watchlist_notifications.exs b/apps/explorer/priv/account/migrations/20220324213333_add_subject_to_watchlist_notifications.exs index 6ff8a359ba4d..18a4c387563f 100644 --- a/apps/explorer/priv/account/migrations/20220324213333_add_subject_to_watchlist_notifications.exs +++ b/apps/explorer/priv/account/migrations/20220324213333_add_subject_to_watchlist_notifications.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.AddSubjectToWatchlistNotifications do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20220407134152_add_api_keys_and_plans_tables.exs b/apps/explorer/priv/account/migrations/20220407134152_add_api_keys_and_plans_tables.exs index 11f23ffd6126..a832eeedfdcb 100644 --- a/apps/explorer/priv/account/migrations/20220407134152_add_api_keys_and_plans_tables.exs +++ b/apps/explorer/priv/account/migrations/20220407134152_add_api_keys_and_plans_tables.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.AddApiKeysAndPlansTables do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20220510094118_add_custom_abis_table.exs b/apps/explorer/priv/account/migrations/20220510094118_add_custom_abis_table.exs index a248c79458bf..2eb16d2211a9 100644 --- a/apps/explorer/priv/account/migrations/20220510094118_add_custom_abis_table.exs +++ b/apps/explorer/priv/account/migrations/20220510094118_add_custom_abis_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.AddCustomAbisTable do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20220606194836_add_account_public_tags_requests.exs b/apps/explorer/priv/account/migrations/20220606194836_add_account_public_tags_requests.exs index dd0a9896b0ca..3135cb15faec 100644 --- a/apps/explorer/priv/account/migrations/20220606194836_add_account_public_tags_requests.exs +++ b/apps/explorer/priv/account/migrations/20220606194836_add_account_public_tags_requests.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.AddAccountPublicTagsRequests do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20220620182600_add_account_identity_fields.exs b/apps/explorer/priv/account/migrations/20220620182600_add_account_identity_fields.exs index 1c7b13535f3c..fd5e69a8ebeb 100644 --- a/apps/explorer/priv/account/migrations/20220620182600_add_account_identity_fields.exs +++ b/apps/explorer/priv/account/migrations/20220620182600_add_account_identity_fields.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.AddAccountIdentityFields do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20220624142547_add_unique_constraints.exs b/apps/explorer/priv/account/migrations/20220624142547_add_unique_constraints.exs index 53293983d4a6..53cdc05d7ef9 100644 --- a/apps/explorer/priv/account/migrations/20220624142547_add_unique_constraints.exs +++ b/apps/explorer/priv/account/migrations/20220624142547_add_unique_constraints.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.AddUniqueConstraints do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20220705195240_migrate_public_tags_addresses_to_array.exs b/apps/explorer/priv/account/migrations/20220705195240_migrate_public_tags_addresses_to_array.exs index 1282e2166c15..3014c9100c1d 100644 --- a/apps/explorer/priv/account/migrations/20220705195240_migrate_public_tags_addresses_to_array.exs +++ b/apps/explorer/priv/account/migrations/20220705195240_migrate_public_tags_addresses_to_array.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.MigratePublicTagsAddressesToArray do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20220706114430_encrypt_account_data.exs b/apps/explorer/priv/account/migrations/20220706114430_encrypt_account_data.exs index c1fc49af2cd6..3e49846f1ce7 100644 --- a/apps/explorer/priv/account/migrations/20220706114430_encrypt_account_data.exs +++ b/apps/explorer/priv/account/migrations/20220706114430_encrypt_account_data.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.EncryptAccountData do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20220706153506_remove_unencrypted_fields.exs b/apps/explorer/priv/account/migrations/20220706153506_remove_unencrypted_fields.exs index c64e1e5edbe0..d26fba28ae5b 100644 --- a/apps/explorer/priv/account/migrations/20220706153506_remove_unencrypted_fields.exs +++ b/apps/explorer/priv/account/migrations/20220706153506_remove_unencrypted_fields.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.RemoveUnencryptedFields do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20220706211444_set_new_indexes.exs b/apps/explorer/priv/account/migrations/20220706211444_set_new_indexes.exs index 26abb92abeb2..05e552cc77e8 100644 --- a/apps/explorer/priv/account/migrations/20220706211444_set_new_indexes.exs +++ b/apps/explorer/priv/account/migrations/20220706211444_set_new_indexes.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.SetNewIndexes do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20220905195203_remove_guardian_tokens.exs b/apps/explorer/priv/account/migrations/20220905195203_remove_guardian_tokens.exs index 2c76df8099c0..1bd25b4c386b 100644 --- a/apps/explorer/priv/account/migrations/20220905195203_remove_guardian_tokens.exs +++ b/apps/explorer/priv/account/migrations/20220905195203_remove_guardian_tokens.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.RemoveGuardianTokens do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20221104104635_create_token_transfer_token_id_migrator_progress.exs b/apps/explorer/priv/account/migrations/20221104104635_create_token_transfer_token_id_migrator_progress.exs index 2fa317af207a..b6f9a157211c 100644 --- a/apps/explorer/priv/account/migrations/20221104104635_create_token_transfer_token_id_migrator_progress.exs +++ b/apps/explorer/priv/account/migrations/20221104104635_create_token_transfer_token_id_migrator_progress.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.CreateTokenTransferTokenIdMigratorProgress do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20230502083519_add_verification_email_sent_at.exs b/apps/explorer/priv/account/migrations/20230502083519_add_verification_email_sent_at.exs index a3145bab492c..7f368dcfbeb9 100644 --- a/apps/explorer/priv/account/migrations/20230502083519_add_verification_email_sent_at.exs +++ b/apps/explorer/priv/account/migrations/20230502083519_add_verification_email_sent_at.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.AddVerificationEmailSentAt do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20231207201701_add_watchlist_id_column.exs b/apps/explorer/priv/account/migrations/20231207201701_add_watchlist_id_column.exs index 176b65cd5a84..662f8de47964 100644 --- a/apps/explorer/priv/account/migrations/20231207201701_add_watchlist_id_column.exs +++ b/apps/explorer/priv/account/migrations/20231207201701_add_watchlist_id_column.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.AddWatchlistIdColumn do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20240219152220_add_account_watchlist_addresses_erc_404_fields.exs b/apps/explorer/priv/account/migrations/20240219152220_add_account_watchlist_addresses_erc_404_fields.exs index 7fbb08a48cd4..3fb54dbbe4f2 100644 --- a/apps/explorer/priv/account/migrations/20240219152220_add_account_watchlist_addresses_erc_404_fields.exs +++ b/apps/explorer/priv/account/migrations/20240219152220_add_account_watchlist_addresses_erc_404_fields.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.AddAccountWatchlistAddressesErc404Fields do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20240913194307_account_v2.exs b/apps/explorer/priv/account/migrations/20240913194307_account_v2.exs index 824f7f6c96fc..2d3384712007 100644 --- a/apps/explorer/priv/account/migrations/20240913194307_account_v2.exs +++ b/apps/explorer/priv/account/migrations/20240913194307_account_v2.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.AccountV2 do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20241015091450_rename_tx_hash_field.exs b/apps/explorer/priv/account/migrations/20241015091450_rename_tx_hash_field.exs index 61e1b43dc0a1..a64534860234 100644 --- a/apps/explorer/priv/account/migrations/20241015091450_rename_tx_hash_field.exs +++ b/apps/explorer/priv/account/migrations/20241015091450_rename_tx_hash_field.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.RenameTxHashField do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20241121140138_remove_abused_api_keys.exs b/apps/explorer/priv/account/migrations/20241121140138_remove_abused_api_keys.exs index c4fe2b74a579..3d72ce492fd6 100644 --- a/apps/explorer/priv/account/migrations/20241121140138_remove_abused_api_keys.exs +++ b/apps/explorer/priv/account/migrations/20241121140138_remove_abused_api_keys.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.RemoveAbusedApiKeys do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20241128100836_remove_abused_custom_abis.exs b/apps/explorer/priv/account/migrations/20241128100836_remove_abused_custom_abis.exs index 4c33d0c8ea38..c6e6e104a14a 100644 --- a/apps/explorer/priv/account/migrations/20241128100836_remove_abused_custom_abis.exs +++ b/apps/explorer/priv/account/migrations/20241128100836_remove_abused_custom_abis.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.RemoveAbusedCustomAbis do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20241204093817_remove_abused_public_tags_request.exs b/apps/explorer/priv/account/migrations/20241204093817_remove_abused_public_tags_request.exs index 65a0ab542753..ac07ded9b4e4 100644 --- a/apps/explorer/priv/account/migrations/20241204093817_remove_abused_public_tags_request.exs +++ b/apps/explorer/priv/account/migrations/20241204093817_remove_abused_public_tags_request.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.RemoveAbusedPublicTagsRequest do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20250815115250_drop_account_public_tags_requests.exs b/apps/explorer/priv/account/migrations/20250815115250_drop_account_public_tags_requests.exs index 28386f20bde3..c2748c93ae26 100644 --- a/apps/explorer/priv/account/migrations/20250815115250_drop_account_public_tags_requests.exs +++ b/apps/explorer/priv/account/migrations/20250815115250_drop_account_public_tags_requests.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.DropAccountPublicTagsRequests do use Ecto.Migration diff --git a/apps/explorer/priv/account/migrations/20251029115930_account_watchlist_zrc2_addresses.exs b/apps/explorer/priv/account/migrations/20251029115930_account_watchlist_zrc2_addresses.exs index 719a26613f8e..c198eb96c514 100644 --- a/apps/explorer/priv/account/migrations/20251029115930_account_watchlist_zrc2_addresses.exs +++ b/apps/explorer/priv/account/migrations/20251029115930_account_watchlist_zrc2_addresses.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Account.Migrations.AccountWatchlistZRC2Addresses do use Ecto.Migration use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/explorer/priv/arbitrum/migrations/20240201125730_create_arbitrum_tables.exs b/apps/explorer/priv/arbitrum/migrations/20240201125730_create_arbitrum_tables.exs index 3181ad01932b..d485489c837a 100644 --- a/apps/explorer/priv/arbitrum/migrations/20240201125730_create_arbitrum_tables.exs +++ b/apps/explorer/priv/arbitrum/migrations/20240201125730_create_arbitrum_tables.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Arbitrum.Migrations.CreateArbitrumTables do use Ecto.Migration diff --git a/apps/explorer/priv/arbitrum/migrations/20240510184858_extend_transaction_and_block_tables.exs b/apps/explorer/priv/arbitrum/migrations/20240510184858_extend_transaction_and_block_tables.exs index 3bc802b127e1..8c9e581a7936 100644 --- a/apps/explorer/priv/arbitrum/migrations/20240510184858_extend_transaction_and_block_tables.exs +++ b/apps/explorer/priv/arbitrum/migrations/20240510184858_extend_transaction_and_block_tables.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Arbitrum.Migrations.ExtendTransactionAndBlockTables do use Ecto.Migration diff --git a/apps/explorer/priv/arbitrum/migrations/20240527212653_add_da_info.exs b/apps/explorer/priv/arbitrum/migrations/20240527212653_add_da_info.exs index ee81ae9f74e8..6defb86485a2 100644 --- a/apps/explorer/priv/arbitrum/migrations/20240527212653_add_da_info.exs +++ b/apps/explorer/priv/arbitrum/migrations/20240527212653_add_da_info.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Arbitrum.Migrations.AddDaInfo do use Ecto.Migration diff --git a/apps/explorer/priv/arbitrum/migrations/20240628210148_add_index_for_messages.exs b/apps/explorer/priv/arbitrum/migrations/20240628210148_add_index_for_messages.exs index 9a62a7c41248..53f59d9df96a 100644 --- a/apps/explorer/priv/arbitrum/migrations/20240628210148_add_index_for_messages.exs +++ b/apps/explorer/priv/arbitrum/migrations/20240628210148_add_index_for_messages.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Arbitrum.Migrations.AddIndexForMessages do use Ecto.Migration diff --git a/apps/explorer/priv/arbitrum/migrations/20241015093220_rename_tx_hash_field_arbitrum.exs b/apps/explorer/priv/arbitrum/migrations/20241015093220_rename_tx_hash_field_arbitrum.exs index 2e6aa5028e04..e9f8e4a38468 100644 --- a/apps/explorer/priv/arbitrum/migrations/20241015093220_rename_tx_hash_field_arbitrum.exs +++ b/apps/explorer/priv/arbitrum/migrations/20241015093220_rename_tx_hash_field_arbitrum.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Arbitrum.Migrations.RenameTxHashFieldArbitrum do use Ecto.Migration diff --git a/apps/explorer/priv/arbitrum/migrations/20241111195112_add_stylus_fields.exs b/apps/explorer/priv/arbitrum/migrations/20241111195112_add_stylus_fields.exs index fb9ae49174e1..cb715519405f 100644 --- a/apps/explorer/priv/arbitrum/migrations/20241111195112_add_stylus_fields.exs +++ b/apps/explorer/priv/arbitrum/migrations/20241111195112_add_stylus_fields.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Arbitrum.Migrations.AddStylusFields do use Ecto.Migration diff --git a/apps/explorer/priv/arbitrum/migrations/20241217155103_add_data_blobs_to_batches_table.exs b/apps/explorer/priv/arbitrum/migrations/20241217155103_add_data_blobs_to_batches_table.exs index a1a03458284c..8f27945b7bb3 100644 --- a/apps/explorer/priv/arbitrum/migrations/20241217155103_add_data_blobs_to_batches_table.exs +++ b/apps/explorer/priv/arbitrum/migrations/20241217155103_add_data_blobs_to_batches_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Arbitrum.Migrations.AddDataBlobsToBatchesTable do use Ecto.Migration diff --git a/apps/explorer/priv/arbitrum/migrations/20250731001757_add_eigenda_batches.exs b/apps/explorer/priv/arbitrum/migrations/20250731001757_add_eigenda_batches.exs index 2c4af82d268d..75189f216478 100644 --- a/apps/explorer/priv/arbitrum/migrations/20250731001757_add_eigenda_batches.exs +++ b/apps/explorer/priv/arbitrum/migrations/20250731001757_add_eigenda_batches.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Arbitrum.Migrations.AddEigendaBatches do use Ecto.Migration diff --git a/apps/explorer/priv/beacon/migrations/20240109102458_create_blobs_tables.exs b/apps/explorer/priv/beacon/migrations/20240109102458_create_blobs_tables.exs index e67cf501babc..d97c71bb2914 100644 --- a/apps/explorer/priv/beacon/migrations/20240109102458_create_blobs_tables.exs +++ b/apps/explorer/priv/beacon/migrations/20240109102458_create_blobs_tables.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Beacon.Migrations.CreateBlobsTables do use Ecto.Migration diff --git a/apps/explorer/priv/beacon/migrations/20240318154323_create_blob_transactions_index.exs b/apps/explorer/priv/beacon/migrations/20240318154323_create_blob_transactions_index.exs index 094e49a51600..0799558d56f2 100644 --- a/apps/explorer/priv/beacon/migrations/20240318154323_create_blob_transactions_index.exs +++ b/apps/explorer/priv/beacon/migrations/20240318154323_create_blob_transactions_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Beacon.Migrations.AddTransactionsRecentBlobTransactionsIndex do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/beacon/migrations/20250813001523_create_deposits.exs b/apps/explorer/priv/beacon/migrations/20250813001523_create_deposits.exs index 4b95822f155e..d17b57d882b1 100644 --- a/apps/explorer/priv/beacon/migrations/20250813001523_create_deposits.exs +++ b/apps/explorer/priv/beacon/migrations/20250813001523_create_deposits.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Beacon.Migrations.CreateDeposits do use Ecto.Migration diff --git a/apps/explorer/priv/beacon/migrations/20251029090030_deposits_remove_foreign_keys.exs b/apps/explorer/priv/beacon/migrations/20251029090030_deposits_remove_foreign_keys.exs index dbd0056c8caf..09e0763e78fc 100644 --- a/apps/explorer/priv/beacon/migrations/20251029090030_deposits_remove_foreign_keys.exs +++ b/apps/explorer/priv/beacon/migrations/20251029090030_deposits_remove_foreign_keys.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Beacon.Migrations.DepositsRemoveForeignKeys do use Ecto.Migration diff --git a/apps/explorer/priv/blackfort/migrations/20240910112251_add_blackfort_validators.exs b/apps/explorer/priv/blackfort/migrations/20240910112251_add_blackfort_validators.exs index d1d2b55e8d0d..819a6f683c8e 100644 --- a/apps/explorer/priv/blackfort/migrations/20240910112251_add_blackfort_validators.exs +++ b/apps/explorer/priv/blackfort/migrations/20240910112251_add_blackfort_validators.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Blackfort.Migrations.AddBlackfortValidators do use Ecto.Migration diff --git a/apps/explorer/priv/bridged_tokens/migrations/20230919080116_add_bridged_tokens.exs b/apps/explorer/priv/bridged_tokens/migrations/20230919080116_add_bridged_tokens.exs index 2622358c1dff..796113ef125b 100644 --- a/apps/explorer/priv/bridged_tokens/migrations/20230919080116_add_bridged_tokens.exs +++ b/apps/explorer/priv/bridged_tokens/migrations/20230919080116_add_bridged_tokens.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.BridgedTokens.Migrations.AddBridgedTokens do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20240323152023_add_custom_fields.exs b/apps/explorer/priv/celo/migrations/20240323152023_add_custom_fields.exs index 8de00c05e774..8e4ead713f73 100644 --- a/apps/explorer/priv/celo/migrations/20240323152023_add_custom_fields.exs +++ b/apps/explorer/priv/celo/migrations/20240323152023_add_custom_fields.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.AddCustomFields do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20240424121856_add_pending_epoch_block_operations.exs b/apps/explorer/priv/celo/migrations/20240424121856_add_pending_epoch_block_operations.exs index 3b36446be154..8d016048c40d 100644 --- a/apps/explorer/priv/celo/migrations/20240424121856_add_pending_epoch_block_operations.exs +++ b/apps/explorer/priv/celo/migrations/20240424121856_add_pending_epoch_block_operations.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.AddPendingEpochBlockOperations do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20240512143204_remove_transaction_hash_from_primary_key_in_logs.exs b/apps/explorer/priv/celo/migrations/20240512143204_remove_transaction_hash_from_primary_key_in_logs.exs index 9429c33f0e91..5cfebb6dcab7 100644 --- a/apps/explorer/priv/celo/migrations/20240512143204_remove_transaction_hash_from_primary_key_in_logs.exs +++ b/apps/explorer/priv/celo/migrations/20240512143204_remove_transaction_hash_from_primary_key_in_logs.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.RemoveTransactionHashFromPrimaryKeyInLogs do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20240513091316_remove_transaction_hash_from_primary_key_in_token_transfers.exs b/apps/explorer/priv/celo/migrations/20240513091316_remove_transaction_hash_from_primary_key_in_token_transfers.exs index 31dd75fb6e85..60bbbec251cc 100644 --- a/apps/explorer/priv/celo/migrations/20240513091316_remove_transaction_hash_from_primary_key_in_token_transfers.exs +++ b/apps/explorer/priv/celo/migrations/20240513091316_remove_transaction_hash_from_primary_key_in_token_transfers.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.RemoveTransactionHashFromPrimaryKeyInTokenTransfers do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20240607185817_add_epoch_rewards.exs b/apps/explorer/priv/celo/migrations/20240607185817_add_epoch_rewards.exs index b44e2069a2bd..ae4e61308aa8 100644 --- a/apps/explorer/priv/celo/migrations/20240607185817_add_epoch_rewards.exs +++ b/apps/explorer/priv/celo/migrations/20240607185817_add_epoch_rewards.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.AddEpochRewards do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20240612135216_add_validator_group_votes.exs b/apps/explorer/priv/celo/migrations/20240612135216_add_validator_group_votes.exs index 3d6f1f4eeb18..3b9484d274e0 100644 --- a/apps/explorer/priv/celo/migrations/20240612135216_add_validator_group_votes.exs +++ b/apps/explorer/priv/celo/migrations/20240612135216_add_validator_group_votes.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.AddValidatorGroupVotes do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20240614125614_add_election_rewards.exs b/apps/explorer/priv/celo/migrations/20240614125614_add_election_rewards.exs index 30dc3a67de0a..8bc4479a4633 100644 --- a/apps/explorer/priv/celo/migrations/20240614125614_add_election_rewards.exs +++ b/apps/explorer/priv/celo/migrations/20240614125614_add_election_rewards.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.AddElectionRewards do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20240715110334_remove_unused_fields_from_validator_group_votes.exs b/apps/explorer/priv/celo/migrations/20240715110334_remove_unused_fields_from_validator_group_votes.exs index 8d678d5c8341..e19c8a1af488 100644 --- a/apps/explorer/priv/celo/migrations/20240715110334_remove_unused_fields_from_validator_group_votes.exs +++ b/apps/explorer/priv/celo/migrations/20240715110334_remove_unused_fields_from_validator_group_votes.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.RemoveUnusedFieldsFromValidatorGroupVotes do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20240830094610_add_account_address_and_group_address_to_primary_key.exs b/apps/explorer/priv/celo/migrations/20240830094610_add_account_address_and_group_address_to_primary_key.exs index d03857ba7e52..754a7468bcec 100644 --- a/apps/explorer/priv/celo/migrations/20240830094610_add_account_address_and_group_address_to_primary_key.exs +++ b/apps/explorer/priv/celo/migrations/20240830094610_add_account_address_and_group_address_to_primary_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.AddAccountAddressAndGroupAddressToPrimaryKey do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20241029131554_modify_collated_gas_price_constraint.exs b/apps/explorer/priv/celo/migrations/20241029131554_modify_collated_gas_price_constraint.exs index 3162375fd4d7..1586e528ec83 100644 --- a/apps/explorer/priv/celo/migrations/20241029131554_modify_collated_gas_price_constraint.exs +++ b/apps/explorer/priv/celo/migrations/20241029131554_modify_collated_gas_price_constraint.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.ModifyCollatedGasPriceConstraint do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20250416085705_create_epoch.exs b/apps/explorer/priv/celo/migrations/20250416085705_create_epoch.exs index 73b531721e0e..d526644e5a9b 100644 --- a/apps/explorer/priv/celo/migrations/20250416085705_create_epoch.exs +++ b/apps/explorer/priv/celo/migrations/20250416085705_create_epoch.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.CreateEpoch do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20250418141539_remove_pending_epoch_block_operations.exs b/apps/explorer/priv/celo/migrations/20250418141539_remove_pending_epoch_block_operations.exs index 6121c118bb17..bde81ec8dc0d 100644 --- a/apps/explorer/priv/celo/migrations/20250418141539_remove_pending_epoch_block_operations.exs +++ b/apps/explorer/priv/celo/migrations/20250418141539_remove_pending_epoch_block_operations.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.RemovePendingEpochBlockOperations do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20250420130550_epoch_rewards_replace_block_hash_with_epoch_number.exs b/apps/explorer/priv/celo/migrations/20250420130550_epoch_rewards_replace_block_hash_with_epoch_number.exs index c9bd94a00dc7..ec6c6c524269 100644 --- a/apps/explorer/priv/celo/migrations/20250420130550_epoch_rewards_replace_block_hash_with_epoch_number.exs +++ b/apps/explorer/priv/celo/migrations/20250420130550_epoch_rewards_replace_block_hash_with_epoch_number.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.EpochRewardsReplaceBlockHashWithEpochNumber do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20250420140107_election_rewards_replace_block_hash_with_epoch_number.exs b/apps/explorer/priv/celo/migrations/20250420140107_election_rewards_replace_block_hash_with_epoch_number.exs index 76215c792d9b..5f8b81197bb3 100644 --- a/apps/explorer/priv/celo/migrations/20250420140107_election_rewards_replace_block_hash_with_epoch_number.exs +++ b/apps/explorer/priv/celo/migrations/20250420140107_election_rewards_replace_block_hash_with_epoch_number.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ElectionRewardsReplaceBlockHashWithEpochNumber do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20250731143827_create_account.exs b/apps/explorer/priv/celo/migrations/20250731143827_create_account.exs index 90d9b56a7d4b..7040641fa315 100644 --- a/apps/explorer/priv/celo/migrations/20250731143827_create_account.exs +++ b/apps/explorer/priv/celo/migrations/20250731143827_create_account.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.CreateAccount do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20250801112346_create_pending_account_operations.exs b/apps/explorer/priv/celo/migrations/20250801112346_create_pending_account_operations.exs index 2fbc3c0335cd..6cbc5072708c 100644 --- a/apps/explorer/priv/celo/migrations/20250801112346_create_pending_account_operations.exs +++ b/apps/explorer/priv/celo/migrations/20250801112346_create_pending_account_operations.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.CreatePendingAccountOperations do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20251014111445_add_log_index_to_validator_group_votes.exs b/apps/explorer/priv/celo/migrations/20251014111445_add_log_index_to_validator_group_votes.exs index a97666878918..01805381f59a 100644 --- a/apps/explorer/priv/celo/migrations/20251014111445_add_log_index_to_validator_group_votes.exs +++ b/apps/explorer/priv/celo/migrations/20251014111445_add_log_index_to_validator_group_votes.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.AddLogIndexToValidatorGroupVotes do use Ecto.Migration diff --git a/apps/explorer/priv/celo/migrations/20251016095435_create_celo_aggregated_election_rewards.exs b/apps/explorer/priv/celo/migrations/20251016095435_create_celo_aggregated_election_rewards.exs index be390bd0b579..d89e1a904d01 100644 --- a/apps/explorer/priv/celo/migrations/20251016095435_create_celo_aggregated_election_rewards.exs +++ b/apps/explorer/priv/celo/migrations/20251016095435_create_celo_aggregated_election_rewards.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Celo.Migrations.CreateCeloAggregatedElectionRewards do use Ecto.Migration diff --git a/apps/explorer/priv/event_notifications/migrations/20220804114005_create_event_notifications.exs b/apps/explorer/priv/event_notifications/migrations/20220804114005_create_event_notifications.exs index d2dc5abd7a69..6a2fc29bc75f 100644 --- a/apps/explorer/priv/event_notifications/migrations/20220804114005_create_event_notifications.exs +++ b/apps/explorer/priv/event_notifications/migrations/20220804114005_create_event_notifications.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.EventNotifications.Migrations.CreateEventNotifications do use Ecto.Migration diff --git a/apps/explorer/priv/event_notifications/migrations/20250704124014_add_timestamp_to_event_notifications.exs b/apps/explorer/priv/event_notifications/migrations/20250704124014_add_timestamp_to_event_notifications.exs index a04aa865ae98..17c2168daae5 100644 --- a/apps/explorer/priv/event_notifications/migrations/20250704124014_add_timestamp_to_event_notifications.exs +++ b/apps/explorer/priv/event_notifications/migrations/20250704124014_add_timestamp_to_event_notifications.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.EventNotifications.Migrations.AddTimestampToEventNotifications do use Ecto.Migration diff --git a/apps/explorer/priv/filecoin/migrations/20230731130103_modify_collated_gas_price_constraint.exs b/apps/explorer/priv/filecoin/migrations/20230731130103_modify_collated_gas_price_constraint.exs index 18ff64b5f382..bff066cc1e13 100644 --- a/apps/explorer/priv/filecoin/migrations/20230731130103_modify_collated_gas_price_constraint.exs +++ b/apps/explorer/priv/filecoin/migrations/20230731130103_modify_collated_gas_price_constraint.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Filecoin.Migrations.ModifyCollatedGasPriceConstraint do use Ecto.Migration diff --git a/apps/explorer/priv/filecoin/migrations/20231109104957_create_null_round_heights.exs b/apps/explorer/priv/filecoin/migrations/20231109104957_create_null_round_heights.exs index 081d17637dab..d9febfaf26cc 100644 --- a/apps/explorer/priv/filecoin/migrations/20231109104957_create_null_round_heights.exs +++ b/apps/explorer/priv/filecoin/migrations/20231109104957_create_null_round_heights.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Filecoin.Migrations.CreateNullRoundHeights do use Ecto.Migration diff --git a/apps/explorer/priv/filecoin/migrations/20240219140124_change_null_round_heights_height_type.exs b/apps/explorer/priv/filecoin/migrations/20240219140124_change_null_round_heights_height_type.exs index 590a313661a3..2acb346e5121 100644 --- a/apps/explorer/priv/filecoin/migrations/20240219140124_change_null_round_heights_height_type.exs +++ b/apps/explorer/priv/filecoin/migrations/20240219140124_change_null_round_heights_height_type.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Filecoin.Migrations.ChangeNullRoundHeightsHeightType do use Ecto.Migration diff --git a/apps/explorer/priv/filecoin/migrations/20240801134142_create_pending_address_operations.exs b/apps/explorer/priv/filecoin/migrations/20240801134142_create_pending_address_operations.exs index 7da899939bdb..cc0cf306eb2a 100644 --- a/apps/explorer/priv/filecoin/migrations/20240801134142_create_pending_address_operations.exs +++ b/apps/explorer/priv/filecoin/migrations/20240801134142_create_pending_address_operations.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Filecoin.Migrations.CreatePendingAddressOperations do use Ecto.Migration diff --git a/apps/explorer/priv/filecoin/migrations/20240807134138_add_chain_type_fields_to_address.exs b/apps/explorer/priv/filecoin/migrations/20240807134138_add_chain_type_fields_to_address.exs index 378e3b24c0b3..55f303b6ba3b 100644 --- a/apps/explorer/priv/filecoin/migrations/20240807134138_add_chain_type_fields_to_address.exs +++ b/apps/explorer/priv/filecoin/migrations/20240807134138_add_chain_type_fields_to_address.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Filecoin.Migrations.AddChainTypeFieldsToAddress do use Ecto.Migration diff --git a/apps/explorer/priv/filecoin/migrations/20241214110136_add_refetch_after_to_pending_address_operation.exs b/apps/explorer/priv/filecoin/migrations/20241214110136_add_refetch_after_to_pending_address_operation.exs index 212eadecf55a..18b8914391a4 100644 --- a/apps/explorer/priv/filecoin/migrations/20241214110136_add_refetch_after_to_pending_address_operation.exs +++ b/apps/explorer/priv/filecoin/migrations/20241214110136_add_refetch_after_to_pending_address_operation.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Filecoin.Migrations.AddRefetchAfterToPendingAddressOperation do use Ecto.Migration diff --git a/apps/explorer/priv/filecoin/migrations/20250220085529_replace_filecoin_addresses_indexes.exs b/apps/explorer/priv/filecoin/migrations/20250220085529_replace_filecoin_addresses_indexes.exs index 9b27c3c61a66..3f11cf2dbccb 100644 --- a/apps/explorer/priv/filecoin/migrations/20250220085529_replace_filecoin_addresses_indexes.exs +++ b/apps/explorer/priv/filecoin/migrations/20250220085529_replace_filecoin_addresses_indexes.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Filecoin.Migrations.ReplaceFilecoinAddressesIndexes do use Ecto.Migration diff --git a/apps/explorer/priv/neon/migrations/20241203161152_create_neon_solana_transactions.exs b/apps/explorer/priv/neon/migrations/20241203161152_create_neon_solana_transactions.exs index 1e29fba47ee6..5168e67d2cda 100644 --- a/apps/explorer/priv/neon/migrations/20241203161152_create_neon_solana_transactions.exs +++ b/apps/explorer/priv/neon/migrations/20241203161152_create_neon_solana_transactions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateNeonSolanaTransactions do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20220204060243_transaction_columns_to_support_l2.exs b/apps/explorer/priv/optimism/migrations/20220204060243_transaction_columns_to_support_l2.exs index 36a7902cfdf5..77e538652960 100644 --- a/apps/explorer/priv/optimism/migrations/20220204060243_transaction_columns_to_support_l2.exs +++ b/apps/explorer/priv/optimism/migrations/20220204060243_transaction_columns_to_support_l2.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.TransactionColumnsToSupportL2 do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20230131115105_add_op_output_roots_table.exs b/apps/explorer/priv/optimism/migrations/20230131115105_add_op_output_roots_table.exs index da07e936ee7d..242ea15a6a8d 100644 --- a/apps/explorer/priv/optimism/migrations/20230131115105_add_op_output_roots_table.exs +++ b/apps/explorer/priv/optimism/migrations/20230131115105_add_op_output_roots_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddOpOutputRootsTable do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20230206123308_add_op_withdrawals_table.exs b/apps/explorer/priv/optimism/migrations/20230206123308_add_op_withdrawals_table.exs index cee87054f02b..83abe96286f1 100644 --- a/apps/explorer/priv/optimism/migrations/20230206123308_add_op_withdrawals_table.exs +++ b/apps/explorer/priv/optimism/migrations/20230206123308_add_op_withdrawals_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddOpWithdrawalsTable do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20230212162845_add_op_withdrawal_events_table.exs b/apps/explorer/priv/optimism/migrations/20230212162845_add_op_withdrawal_events_table.exs index 12f5d3160614..34aa89143f1f 100644 --- a/apps/explorer/priv/optimism/migrations/20230212162845_add_op_withdrawal_events_table.exs +++ b/apps/explorer/priv/optimism/migrations/20230212162845_add_op_withdrawal_events_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddOpWithdrawalEventsTable do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20230216135703_add_op_transaction_batches_table.exs b/apps/explorer/priv/optimism/migrations/20230216135703_add_op_transaction_batches_table.exs index 59fbc9822675..ae95097ce7a9 100644 --- a/apps/explorer/priv/optimism/migrations/20230216135703_add_op_transaction_batches_table.exs +++ b/apps/explorer/priv/optimism/migrations/20230216135703_add_op_transaction_batches_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddOpTransactionBatchesTable do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20230220202107_create_op_deposits.exs b/apps/explorer/priv/optimism/migrations/20230220202107_create_op_deposits.exs index 3f313995528c..2544c26ed874 100644 --- a/apps/explorer/priv/optimism/migrations/20230220202107_create_op_deposits.exs +++ b/apps/explorer/priv/optimism/migrations/20230220202107_create_op_deposits.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateOpDeposits do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20230301105051_rename_fields.exs b/apps/explorer/priv/optimism/migrations/20230301105051_rename_fields.exs index d7041587a38f..b0fb5d8f097b 100644 --- a/apps/explorer/priv/optimism/migrations/20230301105051_rename_fields.exs +++ b/apps/explorer/priv/optimism/migrations/20230301105051_rename_fields.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RenameFields do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20230303125841_add_op_indexes.exs b/apps/explorer/priv/optimism/migrations/20230303125841_add_op_indexes.exs index e9db8591c361..69551a11e66d 100644 --- a/apps/explorer/priv/optimism/migrations/20230303125841_add_op_indexes.exs +++ b/apps/explorer/priv/optimism/migrations/20230303125841_add_op_indexes.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddOpIndexes do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20230307090655_add_op_frame_sequences_table.exs b/apps/explorer/priv/optimism/migrations/20230307090655_add_op_frame_sequences_table.exs index ea7f192af638..916781b5611b 100644 --- a/apps/explorer/priv/optimism/migrations/20230307090655_add_op_frame_sequences_table.exs +++ b/apps/explorer/priv/optimism/migrations/20230307090655_add_op_frame_sequences_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddOpFrameSequencesTable do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20230731130103_modify_collated_gas_price_constraint.exs b/apps/explorer/priv/optimism/migrations/20230731130103_modify_collated_gas_price_constraint.exs index 59a07d849153..78e90b7df4d3 100644 --- a/apps/explorer/priv/optimism/migrations/20230731130103_modify_collated_gas_price_constraint.exs +++ b/apps/explorer/priv/optimism/migrations/20230731130103_modify_collated_gas_price_constraint.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.ModifyCollatedGasPriceConstraint do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20231025102325_add_op_withdrawal_index.exs b/apps/explorer/priv/optimism/migrations/20231025102325_add_op_withdrawal_index.exs index 3fda19158b86..15dc0977c26b 100644 --- a/apps/explorer/priv/optimism/migrations/20231025102325_add_op_withdrawal_index.exs +++ b/apps/explorer/priv/optimism/migrations/20231025102325_add_op_withdrawal_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddOpWithdrawalIndex do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20240124124644_remove_op_epoch_number_field.exs b/apps/explorer/priv/optimism/migrations/20240124124644_remove_op_epoch_number_field.exs index 652f9551896c..8a774de8646b 100644 --- a/apps/explorer/priv/optimism/migrations/20240124124644_remove_op_epoch_number_field.exs +++ b/apps/explorer/priv/optimism/migrations/20240124124644_remove_op_epoch_number_field.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RemoveOpEpochNumberField do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20240328125102_fault_proofs_support.exs b/apps/explorer/priv/optimism/migrations/20240328125102_fault_proofs_support.exs index cf3a139b5ec5..a4066f133be5 100644 --- a/apps/explorer/priv/optimism/migrations/20240328125102_fault_proofs_support.exs +++ b/apps/explorer/priv/optimism/migrations/20240328125102_fault_proofs_support.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.FaultProofsSupport do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20240503113124_add_celestia_blob_metadata.exs b/apps/explorer/priv/optimism/migrations/20240503113124_add_celestia_blob_metadata.exs index 3878db97f015..461e70126a86 100644 --- a/apps/explorer/priv/optimism/migrations/20240503113124_add_celestia_blob_metadata.exs +++ b/apps/explorer/priv/optimism/migrations/20240503113124_add_celestia_blob_metadata.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.AddCelestiaBlobMetadata do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20240612120541_add_view_ready_field.exs b/apps/explorer/priv/optimism/migrations/20240612120541_add_view_ready_field.exs index 9b3e26b59cee..012fbb493208 100644 --- a/apps/explorer/priv/optimism/migrations/20240612120541_add_view_ready_field.exs +++ b/apps/explorer/priv/optimism/migrations/20240612120541_add_view_ready_field.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.AddViewReadyField do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20240613065020_add_frame_sequence_id_prev_field.exs b/apps/explorer/priv/optimism/migrations/20240613065020_add_frame_sequence_id_prev_field.exs index 35416d64b060..b281d2e59249 100644 --- a/apps/explorer/priv/optimism/migrations/20240613065020_add_frame_sequence_id_prev_field.exs +++ b/apps/explorer/priv/optimism/migrations/20240613065020_add_frame_sequence_id_prev_field.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.AddFrameSequenceIdPrevField do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20241015140121_rename_tx_related_field_optimism.exs b/apps/explorer/priv/optimism/migrations/20241015140121_rename_tx_related_field_optimism.exs index 6f2b4a493540..44c9ac18f3c9 100644 --- a/apps/explorer/priv/optimism/migrations/20241015140121_rename_tx_related_field_optimism.exs +++ b/apps/explorer/priv/optimism/migrations/20241015140121_rename_tx_related_field_optimism.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.RenameTxRelatedFieldOptimism do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20241203113159_holocene_support.exs b/apps/explorer/priv/optimism/migrations/20241203113159_holocene_support.exs index fc23b0dcdd6f..b86682b0070b 100644 --- a/apps/explorer/priv/optimism/migrations/20241203113159_holocene_support.exs +++ b/apps/explorer/priv/optimism/migrations/20241203113159_holocene_support.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.HoloceneSupport do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20241209101134_op_withdrawal_events_key.exs b/apps/explorer/priv/optimism/migrations/20241209101134_op_withdrawal_events_key.exs index 026c8436cc4a..063cb4a06a61 100644 --- a/apps/explorer/priv/optimism/migrations/20241209101134_op_withdrawal_events_key.exs +++ b/apps/explorer/priv/optimism/migrations/20241209101134_op_withdrawal_events_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.OPWithdrawalEventsKey do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20250121131928_holocene_clear.exs b/apps/explorer/priv/optimism/migrations/20250121131928_holocene_clear.exs index 7c3007f2035d..fc5a57884641 100644 --- a/apps/explorer/priv/optimism/migrations/20250121131928_holocene_clear.exs +++ b/apps/explorer/priv/optimism/migrations/20250121131928_holocene_clear.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.HoloceneClear do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20250204050501_op_interop_messages.exs b/apps/explorer/priv/optimism/migrations/20250204050501_op_interop_messages.exs index c822ad30adc4..4a36d76c5190 100644 --- a/apps/explorer/priv/optimism/migrations/20250204050501_op_interop_messages.exs +++ b/apps/explorer/priv/optimism/migrations/20250204050501_op_interop_messages.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.OPInteropMessages do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20250221121840_reindex_batches.exs b/apps/explorer/priv/optimism/migrations/20250221121840_reindex_batches.exs index 2cc22da4e106..af139f05a58a 100644 --- a/apps/explorer/priv/optimism/migrations/20250221121840_reindex_batches.exs +++ b/apps/explorer/priv/optimism/migrations/20250221121840_reindex_batches.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.ReindexBatches do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20250317111838_rename_interop_addresses.exs b/apps/explorer/priv/optimism/migrations/20250317111838_rename_interop_addresses.exs index 4033f9578c3f..9ffa61052771 100644 --- a/apps/explorer/priv/optimism/migrations/20250317111838_rename_interop_addresses.exs +++ b/apps/explorer/priv/optimism/migrations/20250317111838_rename_interop_addresses.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.RenameInteropAddresses do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20250428080401_game_address_field_in_withdrawals.exs b/apps/explorer/priv/optimism/migrations/20250428080401_game_address_field_in_withdrawals.exs index 265c64d5f168..963cfc0c3411 100644 --- a/apps/explorer/priv/optimism/migrations/20250428080401_game_address_field_in_withdrawals.exs +++ b/apps/explorer/priv/optimism/migrations/20250428080401_game_address_field_in_withdrawals.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.GameAddressFieldInWithdrawals do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20250501120524_op_interop_transfer_fields.exs b/apps/explorer/priv/optimism/migrations/20250501120524_op_interop_transfer_fields.exs index 78a0886f453b..723d19ff69fe 100644 --- a/apps/explorer/priv/optimism/migrations/20250501120524_op_interop_transfer_fields.exs +++ b/apps/explorer/priv/optimism/migrations/20250501120524_op_interop_transfer_fields.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.OPInteropTransferFields do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20250610100740_add_op_interop_indices.exs b/apps/explorer/priv/optimism/migrations/20250610100740_add_op_interop_indices.exs index 8e51e5e29ed9..3db3aa61616d 100644 --- a/apps/explorer/priv/optimism/migrations/20250610100740_add_op_interop_indices.exs +++ b/apps/explorer/priv/optimism/migrations/20250610100740_add_op_interop_indices.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.AddOPInteropIndices do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20250619093450_op_sent_to_multichain_nullable.exs b/apps/explorer/priv/optimism/migrations/20250619093450_op_sent_to_multichain_nullable.exs index d7edd502e077..5d1d0be97fcf 100644 --- a/apps/explorer/priv/optimism/migrations/20250619093450_op_sent_to_multichain_nullable.exs +++ b/apps/explorer/priv/optimism/migrations/20250619093450_op_sent_to_multichain_nullable.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.OPSentToMultichainNullable do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20250901063610_op_operator_fee.exs b/apps/explorer/priv/optimism/migrations/20250901063610_op_operator_fee.exs index d1cbf4ddbac3..1aa7e1c206c3 100644 --- a/apps/explorer/priv/optimism/migrations/20250901063610_op_operator_fee.exs +++ b/apps/explorer/priv/optimism/migrations/20250901063610_op_operator_fee.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.OPOperatorFee do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20250908073612_add_alt_da_blobs.exs b/apps/explorer/priv/optimism/migrations/20250908073612_add_alt_da_blobs.exs index 3d5927a4d6b5..9c700e9f9f69 100644 --- a/apps/explorer/priv/optimism/migrations/20250908073612_add_alt_da_blobs.exs +++ b/apps/explorer/priv/optimism/migrations/20250908073612_add_alt_da_blobs.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.AddAltDABlobs do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20250919073011_op_withdrawal_claim_button.exs b/apps/explorer/priv/optimism/migrations/20250919073011_op_withdrawal_claim_button.exs index 23d4b01a107e..33af75063069 100644 --- a/apps/explorer/priv/optimism/migrations/20250919073011_op_withdrawal_claim_button.exs +++ b/apps/explorer/priv/optimism/migrations/20250919073011_op_withdrawal_claim_button.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.OPWithdrawalClaimButton do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20251104063632_jovian_support.exs b/apps/explorer/priv/optimism/migrations/20251104063632_jovian_support.exs index 91bddac9e24b..020912e7f4cf 100644 --- a/apps/explorer/priv/optimism/migrations/20251104063632_jovian_support.exs +++ b/apps/explorer/priv/optimism/migrations/20251104063632_jovian_support.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.JovianSupport do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20251205112616_op_eigen_da_blobs.exs b/apps/explorer/priv/optimism/migrations/20251205112616_op_eigen_da_blobs.exs index 9aeb849d2db6..0361751e9916 100644 --- a/apps/explorer/priv/optimism/migrations/20251205112616_op_eigen_da_blobs.exs +++ b/apps/explorer/priv/optimism/migrations/20251205112616_op_eigen_da_blobs.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.OPEigenDABlobs do use Ecto.Migration diff --git a/apps/explorer/priv/optimism/migrations/20260304115554_op_drop_operator_fee_index.exs b/apps/explorer/priv/optimism/migrations/20260304115554_op_drop_operator_fee_index.exs index 110e8e340a96..4024c98919da 100644 --- a/apps/explorer/priv/optimism/migrations/20260304115554_op_drop_operator_fee_index.exs +++ b/apps/explorer/priv/optimism/migrations/20260304115554_op_drop_operator_fee_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Optimism.Migrations.OPDropOperatorFeeIndex do use Ecto.Migration diff --git a/apps/explorer/priv/polygon_edge/migrations/20230618132249_create_polygon_edge_withdrawal_tables.exs b/apps/explorer/priv/polygon_edge/migrations/20230618132249_create_polygon_edge_withdrawal_tables.exs index b69751a14a2b..40b2d2204bfd 100644 --- a/apps/explorer/priv/polygon_edge/migrations/20230618132249_create_polygon_edge_withdrawal_tables.exs +++ b/apps/explorer/priv/polygon_edge/migrations/20230618132249_create_polygon_edge_withdrawal_tables.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.PolygonEdge.Migrations.CreatePolygonEdgeWithdrawalTables do use Ecto.Migration diff --git a/apps/explorer/priv/polygon_edge/migrations/20230707113550_create_polygon_edge_deposit_tables.exs b/apps/explorer/priv/polygon_edge/migrations/20230707113550_create_polygon_edge_deposit_tables.exs index 36ef8613b2e5..7377fdd84685 100644 --- a/apps/explorer/priv/polygon_edge/migrations/20230707113550_create_polygon_edge_deposit_tables.exs +++ b/apps/explorer/priv/polygon_edge/migrations/20230707113550_create_polygon_edge_deposit_tables.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.PolygonEdge.Migrations.CreatePolygonEdgeDepositTables do use Ecto.Migration diff --git a/apps/explorer/priv/polygon_edge/migrations/20230731130103_modify_collated_gas_price_constraint.exs b/apps/explorer/priv/polygon_edge/migrations/20230731130103_modify_collated_gas_price_constraint.exs index 9a532bdd5c5b..30afa6f93c9c 100644 --- a/apps/explorer/priv/polygon_edge/migrations/20230731130103_modify_collated_gas_price_constraint.exs +++ b/apps/explorer/priv/polygon_edge/migrations/20230731130103_modify_collated_gas_price_constraint.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.PolygonEdge.Migrations.ModifyCollatedGasPriceConstraint do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180117221921_create_address.exs b/apps/explorer/priv/repo/migrations/20180117221921_create_address.exs index aabe0d93697b..dfacd5c0c3cc 100644 --- a/apps/explorer/priv/repo/migrations/20180117221921_create_address.exs +++ b/apps/explorer/priv/repo/migrations/20180117221921_create_address.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateAddress do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180117221922_create_blocks.exs b/apps/explorer/priv/repo/migrations/20180117221922_create_blocks.exs index b9157dc9a4d2..fabcb984189f 100644 --- a/apps/explorer/priv/repo/migrations/20180117221922_create_blocks.exs +++ b/apps/explorer/priv/repo/migrations/20180117221922_create_blocks.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateBlocks do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180117221923_create_transactions.exs b/apps/explorer/priv/repo/migrations/20180117221923_create_transactions.exs index 7ef5491a6a33..30b4bee3c8ac 100644 --- a/apps/explorer/priv/repo/migrations/20180117221923_create_transactions.exs +++ b/apps/explorer/priv/repo/migrations/20180117221923_create_transactions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateTransactions do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180212222309_create_logs.exs b/apps/explorer/priv/repo/migrations/20180212222309_create_logs.exs index b6dc879204e4..bc87ffc51d19 100644 --- a/apps/explorer/priv/repo/migrations/20180212222309_create_logs.exs +++ b/apps/explorer/priv/repo/migrations/20180212222309_create_logs.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateLogs do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180221001948_create_internal_transactions.exs b/apps/explorer/priv/repo/migrations/20180221001948_create_internal_transactions.exs index cb7c64c7c2ec..6b4de7df1e78 100644 --- a/apps/explorer/priv/repo/migrations/20180221001948_create_internal_transactions.exs +++ b/apps/explorer/priv/repo/migrations/20180221001948_create_internal_transactions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateInternalTransactions do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180424203101_create_market_history.exs b/apps/explorer/priv/repo/migrations/20180424203101_create_market_history.exs index 44c0e8efa1c1..cfb3f577c986 100644 --- a/apps/explorer/priv/repo/migrations/20180424203101_create_market_history.exs +++ b/apps/explorer/priv/repo/migrations/20180424203101_create_market_history.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateMarketHistory do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180508183700_create_users.exs b/apps/explorer/priv/repo/migrations/20180508183700_create_users.exs index c94a47492925..48c49b317357 100644 --- a/apps/explorer/priv/repo/migrations/20180508183700_create_users.exs +++ b/apps/explorer/priv/repo/migrations/20180508183700_create_users.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateUsers do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180508191045_create_user_contacts.exs b/apps/explorer/priv/repo/migrations/20180508191045_create_user_contacts.exs index 84b896ed5c86..cb95978171b2 100644 --- a/apps/explorer/priv/repo/migrations/20180508191045_create_user_contacts.exs +++ b/apps/explorer/priv/repo/migrations/20180508191045_create_user_contacts.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateUserContacts do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180518221256_create_smart_contract_verified.exs b/apps/explorer/priv/repo/migrations/20180518221256_create_smart_contract_verified.exs index 0402d4f40373..79af3ccd9bd4 100644 --- a/apps/explorer/priv/repo/migrations/20180518221256_create_smart_contract_verified.exs +++ b/apps/explorer/priv/repo/migrations/20180518221256_create_smart_contract_verified.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateSmartContractVerified do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180522154252_create_btree_gist_extension.exs b/apps/explorer/priv/repo/migrations/20180522154252_create_btree_gist_extension.exs index d773e024717c..882e17ace362 100644 --- a/apps/explorer/priv/repo/migrations/20180522154252_create_btree_gist_extension.exs +++ b/apps/explorer/priv/repo/migrations/20180522154252_create_btree_gist_extension.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateBtreeGistExtension do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180522154253_create_block_rewards.exs b/apps/explorer/priv/repo/migrations/20180522154253_create_block_rewards.exs index 5e1c4349ae91..02e9a4d19cab 100644 --- a/apps/explorer/priv/repo/migrations/20180522154253_create_block_rewards.exs +++ b/apps/explorer/priv/repo/migrations/20180522154253_create_block_rewards.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateBlockRewards do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180606135149_create_tokens.exs b/apps/explorer/priv/repo/migrations/20180606135149_create_tokens.exs index 4246dfee6b68..df67a18896d4 100644 --- a/apps/explorer/priv/repo/migrations/20180606135149_create_tokens.exs +++ b/apps/explorer/priv/repo/migrations/20180606135149_create_tokens.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateTokens do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180606135150_create_token_transfers.exs b/apps/explorer/priv/repo/migrations/20180606135150_create_token_transfers.exs index e0e8b2c62577..8365d9efa388 100644 --- a/apps/explorer/priv/repo/migrations/20180606135150_create_token_transfers.exs +++ b/apps/explorer/priv/repo/migrations/20180606135150_create_token_transfers.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateTokenTransfers do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180626143840_add_inserted_at_index_to_blocks.exs b/apps/explorer/priv/repo/migrations/20180626143840_add_inserted_at_index_to_blocks.exs index 2b723ec120cb..2189d847b01f 100644 --- a/apps/explorer/priv/repo/migrations/20180626143840_add_inserted_at_index_to_blocks.exs +++ b/apps/explorer/priv/repo/migrations/20180626143840_add_inserted_at_index_to_blocks.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddInsertedAtIndexToBlocks do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180717204948_create_address_coin_balances.exs b/apps/explorer/priv/repo/migrations/20180717204948_create_address_coin_balances.exs index 7001f3b8b07d..ad1ebbec8488 100644 --- a/apps/explorer/priv/repo/migrations/20180717204948_create_address_coin_balances.exs +++ b/apps/explorer/priv/repo/migrations/20180717204948_create_address_coin_balances.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateCoinBalances do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180817021704_create_address_token_balances.exs b/apps/explorer/priv/repo/migrations/20180817021704_create_address_token_balances.exs index 94902f55933b..ff28bdd05b6e 100644 --- a/apps/explorer/priv/repo/migrations/20180817021704_create_address_token_balances.exs +++ b/apps/explorer/priv/repo/migrations/20180817021704_create_address_token_balances.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateAddressTokenBalances do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180821142139_create_address_names.exs b/apps/explorer/priv/repo/migrations/20180821142139_create_address_names.exs index d501bee198af..7d0f6ad12cf7 100644 --- a/apps/explorer/priv/repo/migrations/20180821142139_create_address_names.exs +++ b/apps/explorer/priv/repo/migrations/20180821142139_create_address_names.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateAddressNames do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180917182319_create_block_second_degree_relations.exs b/apps/explorer/priv/repo/migrations/20180917182319_create_block_second_degree_relations.exs index ed77cdb3090d..ceaa5c855529 100644 --- a/apps/explorer/priv/repo/migrations/20180917182319_create_block_second_degree_relations.exs +++ b/apps/explorer/priv/repo/migrations/20180917182319_create_block_second_degree_relations.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateBlockSecondDegreeRelations do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180918200001_create_transaction_fork.exs b/apps/explorer/priv/repo/migrations/20180918200001_create_transaction_fork.exs index 06e77dcd4134..8f6840237cf8 100644 --- a/apps/explorer/priv/repo/migrations/20180918200001_create_transaction_fork.exs +++ b/apps/explorer/priv/repo/migrations/20180918200001_create_transaction_fork.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateTransactionBlockUncles do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20180919175123_alter_token_decimals_to_bigint.exs b/apps/explorer/priv/repo/migrations/20180919175123_alter_token_decimals_to_bigint.exs index d185476853f8..b066ccfb753d 100644 --- a/apps/explorer/priv/repo/migrations/20180919175123_alter_token_decimals_to_bigint.exs +++ b/apps/explorer/priv/repo/migrations/20180919175123_alter_token_decimals_to_bigint.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AlterTokenDecimalsToBigint do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181008195723_create_administrators.exs b/apps/explorer/priv/repo/migrations/20181008195723_create_administrators.exs index ea0f45d3bb73..f5c2cca8b829 100644 --- a/apps/explorer/priv/repo/migrations/20181008195723_create_administrators.exs +++ b/apps/explorer/priv/repo/migrations/20181008195723_create_administrators.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateAdministrators do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181011193212_add_fields_to_internal_transactions.exs b/apps/explorer/priv/repo/migrations/20181011193212_add_fields_to_internal_transactions.exs index 9eda36fe323b..a7c5461f8884 100644 --- a/apps/explorer/priv/repo/migrations/20181011193212_add_fields_to_internal_transactions.exs +++ b/apps/explorer/priv/repo/migrations/20181011193212_add_fields_to_internal_transactions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddFieldsToInternalTransactions do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181015173318_add_case_insensitive_extension.exs b/apps/explorer/priv/repo/migrations/20181015173318_add_case_insensitive_extension.exs index 5ddc4688ebd0..c901a1aa9107 100644 --- a/apps/explorer/priv/repo/migrations/20181015173318_add_case_insensitive_extension.exs +++ b/apps/explorer/priv/repo/migrations/20181015173318_add_case_insensitive_extension.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddCaseInsensitiveExtension do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181015173319_modify_users_username.exs b/apps/explorer/priv/repo/migrations/20181015173319_modify_users_username.exs index 44b21818d8a9..dec0a95b2c56 100644 --- a/apps/explorer/priv/repo/migrations/20181015173319_modify_users_username.exs +++ b/apps/explorer/priv/repo/migrations/20181015173319_modify_users_username.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ModifyUsersUsername do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181016163236_modify_user_contacts_email.exs b/apps/explorer/priv/repo/migrations/20181016163236_modify_user_contacts_email.exs index 986a18e259b5..94ce7d05de77 100644 --- a/apps/explorer/priv/repo/migrations/20181016163236_modify_user_contacts_email.exs +++ b/apps/explorer/priv/repo/migrations/20181016163236_modify_user_contacts_email.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ModifyUserContactsEmail do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181017141409_add_index_to_internal_transaction_table.exs b/apps/explorer/priv/repo/migrations/20181017141409_add_index_to_internal_transaction_table.exs index 0f7e6c183781..1bfc8050d4e0 100644 --- a/apps/explorer/priv/repo/migrations/20181017141409_add_index_to_internal_transaction_table.exs +++ b/apps/explorer/priv/repo/migrations/20181017141409_add_index_to_internal_transaction_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexToInternalTransactionTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181024141113_internal_transactions_composite_primary_key.exs b/apps/explorer/priv/repo/migrations/20181024141113_internal_transactions_composite_primary_key.exs index be09d23c935c..1479b8310813 100644 --- a/apps/explorer/priv/repo/migrations/20181024141113_internal_transactions_composite_primary_key.exs +++ b/apps/explorer/priv/repo/migrations/20181024141113_internal_transactions_composite_primary_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.InternalTransactionsCompositePrimaryKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181024164623_logs_composite_primary_key.exs b/apps/explorer/priv/repo/migrations/20181024164623_logs_composite_primary_key.exs index 702f79eec134..81847b1aeb29 100644 --- a/apps/explorer/priv/repo/migrations/20181024164623_logs_composite_primary_key.exs +++ b/apps/explorer/priv/repo/migrations/20181024164623_logs_composite_primary_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.LogsCompositePrimaryKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181024172010_token_transfers_composite_primary_key.exs b/apps/explorer/priv/repo/migrations/20181024172010_token_transfers_composite_primary_key.exs index a9736478988f..1859fd301270 100644 --- a/apps/explorer/priv/repo/migrations/20181024172010_token_transfers_composite_primary_key.exs +++ b/apps/explorer/priv/repo/migrations/20181024172010_token_transfers_composite_primary_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.TokenTransfersCompositePrimaryKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181026180921_create_address_current_token_balances.exs b/apps/explorer/priv/repo/migrations/20181026180921_create_address_current_token_balances.exs index f2fb477a2a64..d83cd9fca548 100644 --- a/apps/explorer/priv/repo/migrations/20181026180921_create_address_current_token_balances.exs +++ b/apps/explorer/priv/repo/migrations/20181026180921_create_address_current_token_balances.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateAddressCurrentTokenBalances do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181029174420_update_tokens_table_decimals_from_bigint_to_numeric.exs b/apps/explorer/priv/repo/migrations/20181029174420_update_tokens_table_decimals_from_bigint_to_numeric.exs index 3f4f4df9d621..6f840a34017e 100644 --- a/apps/explorer/priv/repo/migrations/20181029174420_update_tokens_table_decimals_from_bigint_to_numeric.exs +++ b/apps/explorer/priv/repo/migrations/20181029174420_update_tokens_table_decimals_from_bigint_to_numeric.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.UpdateTokensTableDecimalsFromBigintToNumeric do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181106152300_add_nonce_to_addresses.exs b/apps/explorer/priv/repo/migrations/20181106152300_add_nonce_to_addresses.exs index 871c1daf5789..b6e9b905fdc3 100644 --- a/apps/explorer/priv/repo/migrations/20181106152300_add_nonce_to_addresses.exs +++ b/apps/explorer/priv/repo/migrations/20181106152300_add_nonce_to_addresses.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddNonceToAddresses do @moduledoc """ Use `priv/repo/migrations/scripts/20181126182700_migrate_address_nonce.sql` to migrate data. diff --git a/apps/explorer/priv/repo/migrations/20181107164103_eip6.exs b/apps/explorer/priv/repo/migrations/20181107164103_eip6.exs index 783561be1f25..5bc1b9d061b4 100644 --- a/apps/explorer/priv/repo/migrations/20181107164103_eip6.exs +++ b/apps/explorer/priv/repo/migrations/20181107164103_eip6.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.EIP6 do @moduledoc """ Use `priv/repo/migrations/scripts/20181107164103_eip6.sql` to migrate data and validate constraint. diff --git a/apps/explorer/priv/repo/migrations/20181108205650_additional_internal_transaction_constraints.exs b/apps/explorer/priv/repo/migrations/20181108205650_additional_internal_transaction_constraints.exs index 431e68144cf6..4a1268cf855d 100644 --- a/apps/explorer/priv/repo/migrations/20181108205650_additional_internal_transaction_constraints.exs +++ b/apps/explorer/priv/repo/migrations/20181108205650_additional_internal_transaction_constraints.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AdditionalInternalTransactionConstraints do @moduledoc """ Use `priv/repo/migrations/scripts/20181108205650_additional_internal_transaction_constraints.sql` to migrate data and diff --git a/apps/explorer/priv/repo/migrations/20181121170616_add_block_number_to_token_transfers.exs b/apps/explorer/priv/repo/migrations/20181121170616_add_block_number_to_token_transfers.exs index 60c426e304f3..eee4756b0195 100644 --- a/apps/explorer/priv/repo/migrations/20181121170616_add_block_number_to_token_transfers.exs +++ b/apps/explorer/priv/repo/migrations/20181121170616_add_block_number_to_token_transfers.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddBlockNumberToTokenTransfers do @moduledoc """ Use `priv/repo/migrations/scripts/20181121170616_token_transfers_update_block_number_in_batches.sql` to migrate data. diff --git a/apps/explorer/priv/repo/migrations/20181126203826_add_index_to_addresses.exs b/apps/explorer/priv/repo/migrations/20181126203826_add_index_to_addresses.exs index 3c1b16dfec24..81ddc18a5825 100644 --- a/apps/explorer/priv/repo/migrations/20181126203826_add_index_to_addresses.exs +++ b/apps/explorer/priv/repo/migrations/20181126203826_add_index_to_addresses.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexToAddresses do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181206200140_rename_block_rewards_to_emission_rewards.exs b/apps/explorer/priv/repo/migrations/20181206200140_rename_block_rewards_to_emission_rewards.exs index 6ec5a8c4668e..1ae33448515f 100644 --- a/apps/explorer/priv/repo/migrations/20181206200140_rename_block_rewards_to_emission_rewards.exs +++ b/apps/explorer/priv/repo/migrations/20181206200140_rename_block_rewards_to_emission_rewards.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RenameBlockRewardsToEmissionRewards do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181206200312_create_new_block_rewards.exs b/apps/explorer/priv/repo/migrations/20181206200312_create_new_block_rewards.exs index 253b75c52820..10b5450f52d6 100644 --- a/apps/explorer/priv/repo/migrations/20181206200312_create_new_block_rewards.exs +++ b/apps/explorer/priv/repo/migrations/20181206200312_create_new_block_rewards.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateNewBlockRewards do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181212115448_add_indexes_to_token_transfers.exs b/apps/explorer/priv/repo/migrations/20181212115448_add_indexes_to_token_transfers.exs index 67d9ad5dc0bc..e3850e34b7f1 100644 --- a/apps/explorer/priv/repo/migrations/20181212115448_add_indexes_to_token_transfers.exs +++ b/apps/explorer/priv/repo/migrations/20181212115448_add_indexes_to_token_transfers.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexesToTokenTransfers do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181213111656_add_metadata_field_to_address_names.exs b/apps/explorer/priv/repo/migrations/20181213111656_add_metadata_field_to_address_names.exs index 593c381a298d..9f38da7e4f57 100644 --- a/apps/explorer/priv/repo/migrations/20181213111656_add_metadata_field_to_address_names.exs +++ b/apps/explorer/priv/repo/migrations/20181213111656_add_metadata_field_to_address_names.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddMetadataFieldToAddressNames do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181221143000_create_blocks_miner_hash_index.exs b/apps/explorer/priv/repo/migrations/20181221143000_create_blocks_miner_hash_index.exs index bd5993229527..2b23ad27f8cd 100644 --- a/apps/explorer/priv/repo/migrations/20181221143000_create_blocks_miner_hash_index.exs +++ b/apps/explorer/priv/repo/migrations/20181221143000_create_blocks_miner_hash_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateBlocksMinerHashIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20181221145054_add_contract_methods.exs b/apps/explorer/priv/repo/migrations/20181221145054_add_contract_methods.exs index f2cc50fa76f5..14b123cee1a2 100644 --- a/apps/explorer/priv/repo/migrations/20181221145054_add_contract_methods.exs +++ b/apps/explorer/priv/repo/migrations/20181221145054_add_contract_methods.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddContractMethods do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190102141900_index_current_token_holders.exs b/apps/explorer/priv/repo/migrations/20190102141900_index_current_token_holders.exs index 5332b0f09ebc..70204486b404 100644 --- a/apps/explorer/priv/repo/migrations/20190102141900_index_current_token_holders.exs +++ b/apps/explorer/priv/repo/migrations/20190102141900_index_current_token_holders.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.IndexCurrentTokenHolders do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190114204640_add_tokens_holder_count.exs b/apps/explorer/priv/repo/migrations/20190114204640_add_tokens_holder_count.exs index 502470dd6566..613d48c77c96 100644 --- a/apps/explorer/priv/repo/migrations/20190114204640_add_tokens_holder_count.exs +++ b/apps/explorer/priv/repo/migrations/20190114204640_add_tokens_holder_count.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTokensHolderCount do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190116082843_add_created_contract_indexed_at_to_transactions.exs b/apps/explorer/priv/repo/migrations/20190116082843_add_created_contract_indexed_at_to_transactions.exs index 44aafd9cffca..8bae5272df6d 100644 --- a/apps/explorer/priv/repo/migrations/20190116082843_add_created_contract_indexed_at_to_transactions.exs +++ b/apps/explorer/priv/repo/migrations/20190116082843_add_created_contract_indexed_at_to_transactions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddCreatedContractIndexedAtToTransactions do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190118040301_create_tokens_primary_key.exs b/apps/explorer/priv/repo/migrations/20190118040301_create_tokens_primary_key.exs index 67ce6b0f2061..06f1f2ac0ce7 100644 --- a/apps/explorer/priv/repo/migrations/20190118040301_create_tokens_primary_key.exs +++ b/apps/explorer/priv/repo/migrations/20190118040301_create_tokens_primary_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateTokensPrimaryKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190118152240_block_second_degree_relations_composite_primary_key.exs b/apps/explorer/priv/repo/migrations/20190118152240_block_second_degree_relations_composite_primary_key.exs index 1bc0ae9d0602..865b5a7ad7d6 100644 --- a/apps/explorer/priv/repo/migrations/20190118152240_block_second_degree_relations_composite_primary_key.exs +++ b/apps/explorer/priv/repo/migrations/20190118152240_block_second_degree_relations_composite_primary_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.BlockSecondDegreeRelationsCompositePrimaryKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190122125815_change_transaction_error_constraint.exs b/apps/explorer/priv/repo/migrations/20190122125815_change_transaction_error_constraint.exs index 9111ab4e874f..b63b16b38f5f 100644 --- a/apps/explorer/priv/repo/migrations/20190122125815_change_transaction_error_constraint.exs +++ b/apps/explorer/priv/repo/migrations/20190122125815_change_transaction_error_constraint.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ChangeTransactionErrorConstraint do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190124082812_add_index_on_transaction_nonce_and_from_address_hash.exs b/apps/explorer/priv/repo/migrations/20190124082812_add_index_on_transaction_nonce_and_from_address_hash.exs index 8d8848a2d1c9..31cd28c45af7 100644 --- a/apps/explorer/priv/repo/migrations/20190124082812_add_index_on_transaction_nonce_and_from_address_hash.exs +++ b/apps/explorer/priv/repo/migrations/20190124082812_add_index_on_transaction_nonce_and_from_address_hash.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexOnTransactionNonceAndFromAddressHash do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190208113202_add_unique_index_to_rewards.exs b/apps/explorer/priv/repo/migrations/20190208113202_add_unique_index_to_rewards.exs index cd306c79778d..40e03e9f532c 100644 --- a/apps/explorer/priv/repo/migrations/20190208113202_add_unique_index_to_rewards.exs +++ b/apps/explorer/priv/repo/migrations/20190208113202_add_unique_index_to_rewards.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddUniqueIndexToRewards do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190208143201_add_index_on_address_hash_block_number_and_token_contract_address_hash_for_current_token_balance.exs b/apps/explorer/priv/repo/migrations/20190208143201_add_index_on_address_hash_block_number_and_token_contract_address_hash_for_current_token_balance.exs index ba8576675609..fb27a33f47de 100644 --- a/apps/explorer/priv/repo/migrations/20190208143201_add_index_on_address_hash_block_number_and_token_contract_address_hash_for_current_token_balance.exs +++ b/apps/explorer/priv/repo/migrations/20190208143201_add_index_on_address_hash_block_number_and_token_contract_address_hash_for_current_token_balance.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexOnAddressHashBlockNumberAndTokenContractAddressHashForCurrentTokenBalance do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190213180502_add_earliest_processing_start_to_transactions.exs b/apps/explorer/priv/repo/migrations/20190213180502_add_earliest_processing_start_to_transactions.exs index cc895ae70b18..52071b315e84 100644 --- a/apps/explorer/priv/repo/migrations/20190213180502_add_earliest_processing_start_to_transactions.exs +++ b/apps/explorer/priv/repo/migrations/20190213180502_add_earliest_processing_start_to_transactions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddEarliestProcessingStartToTransactions do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190214135850_add_index_on_block_number_to_address_token_balances.exs b/apps/explorer/priv/repo/migrations/20190214135850_add_index_on_block_number_to_address_token_balances.exs index 356d49e096f9..55a0f4b7a150 100644 --- a/apps/explorer/priv/repo/migrations/20190214135850_add_index_on_block_number_to_address_token_balances.exs +++ b/apps/explorer/priv/repo/migrations/20190214135850_add_index_on_block_number_to_address_token_balances.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexOnBlockNumberToAddressTokenBalances do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190215080049_add_index_on_fetched_coin_balance_to_addresses.exs b/apps/explorer/priv/repo/migrations/20190215080049_add_index_on_fetched_coin_balance_to_addresses.exs index 3e9b53487f4c..900cae312c68 100644 --- a/apps/explorer/priv/repo/migrations/20190215080049_add_index_on_fetched_coin_balance_to_addresses.exs +++ b/apps/explorer/priv/repo/migrations/20190215080049_add_index_on_fetched_coin_balance_to_addresses.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexOnFetchedCoinBalanceToAddresses do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190215093358_add_compound_index_address_token_balances.exs b/apps/explorer/priv/repo/migrations/20190215093358_add_compound_index_address_token_balances.exs index 3bf3582df0f9..be3f631ff545 100644 --- a/apps/explorer/priv/repo/migrations/20190215093358_add_compound_index_address_token_balances.exs +++ b/apps/explorer/priv/repo/migrations/20190215093358_add_compound_index_address_token_balances.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddCompoundIndexAddressTokenBalances do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190215105501_add_constructor_arguments_to_smart_contracts.exs b/apps/explorer/priv/repo/migrations/20190215105501_add_constructor_arguments_to_smart_contracts.exs index 0abe45b09ad2..d611051889cb 100644 --- a/apps/explorer/priv/repo/migrations/20190215105501_add_constructor_arguments_to_smart_contracts.exs +++ b/apps/explorer/priv/repo/migrations/20190215105501_add_constructor_arguments_to_smart_contracts.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddConstructorArgumentsToSmartContracts do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190219082636_add_indexes_for_block_reward_query.exs b/apps/explorer/priv/repo/migrations/20190219082636_add_indexes_for_block_reward_query.exs index 18f06b899992..8e5057bd8ce3 100644 --- a/apps/explorer/priv/repo/migrations/20190219082636_add_indexes_for_block_reward_query.exs +++ b/apps/explorer/priv/repo/migrations/20190219082636_add_indexes_for_block_reward_query.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexesForBlockRewardQuery do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190228102650_add_index_created_contract_address_hash.exs b/apps/explorer/priv/repo/migrations/20190228102650_add_index_created_contract_address_hash.exs index db46c4dc61ca..9d2fab9bb5a2 100644 --- a/apps/explorer/priv/repo/migrations/20190228102650_add_index_created_contract_address_hash.exs +++ b/apps/explorer/priv/repo/migrations/20190228102650_add_index_created_contract_address_hash.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexCreatedContractAddressHas do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190228152333_change_constructor_arguments_to_text.exs b/apps/explorer/priv/repo/migrations/20190228152333_change_constructor_arguments_to_text.exs index 6582a013d85d..10f64248276e 100644 --- a/apps/explorer/priv/repo/migrations/20190228152333_change_constructor_arguments_to_text.exs +++ b/apps/explorer/priv/repo/migrations/20190228152333_change_constructor_arguments_to_text.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ChangeConstructorArgumentsToText do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190228220746_add_internal_transactions_indexed_at_to_blocks.exs b/apps/explorer/priv/repo/migrations/20190228220746_add_internal_transactions_indexed_at_to_blocks.exs index 2e913f4d9897..40f1fde17e0b 100644 --- a/apps/explorer/priv/repo/migrations/20190228220746_add_internal_transactions_indexed_at_to_blocks.exs +++ b/apps/explorer/priv/repo/migrations/20190228220746_add_internal_transactions_indexed_at_to_blocks.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddInternalTransactionsIndexedAtToBlocks do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190301095620_remove_duplicated_indexes.exs b/apps/explorer/priv/repo/migrations/20190301095620_remove_duplicated_indexes.exs index f89d9a365298..b54d51ac5b70 100644 --- a/apps/explorer/priv/repo/migrations/20190301095620_remove_duplicated_indexes.exs +++ b/apps/explorer/priv/repo/migrations/20190301095620_remove_duplicated_indexes.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RemoveDuplicatedIndexes do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190301120328_add_index_to_consensus.exs b/apps/explorer/priv/repo/migrations/20190301120328_add_index_to_consensus.exs index 1a3f3ac5b630..ea4067c85952 100644 --- a/apps/explorer/priv/repo/migrations/20190301120328_add_index_to_consensus.exs +++ b/apps/explorer/priv/repo/migrations/20190301120328_add_index_to_consensus.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexToConsensus do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190305095926_add_index_to_value_fetched_at.exs b/apps/explorer/priv/repo/migrations/20190305095926_add_index_to_value_fetched_at.exs index 27b39a560101..a5c47cd8ea4a 100644 --- a/apps/explorer/priv/repo/migrations/20190305095926_add_index_to_value_fetched_at.exs +++ b/apps/explorer/priv/repo/migrations/20190305095926_add_index_to_value_fetched_at.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexToValueFetchedAt do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190313085740_add_index_symobl_in_tokens.exs b/apps/explorer/priv/repo/migrations/20190313085740_add_index_symobl_in_tokens.exs index ce6b8d24b45e..095027b899c9 100644 --- a/apps/explorer/priv/repo/migrations/20190313085740_add_index_symobl_in_tokens.exs +++ b/apps/explorer/priv/repo/migrations/20190313085740_add_index_symobl_in_tokens.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexSymbolInTokens do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190313103912_change_transactions_v_column_type.exs b/apps/explorer/priv/repo/migrations/20190313103912_change_transactions_v_column_type.exs index 73aaaad672eb..2e0d3a61287e 100644 --- a/apps/explorer/priv/repo/migrations/20190313103912_change_transactions_v_column_type.exs +++ b/apps/explorer/priv/repo/migrations/20190313103912_change_transactions_v_column_type.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ChangeTransactionsVColumnType do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190314084907_add_index_to_to_address_hash.exs b/apps/explorer/priv/repo/migrations/20190314084907_add_index_to_to_address_hash.exs index a46822a17c9e..c3327e62c37f 100644 --- a/apps/explorer/priv/repo/migrations/20190314084907_add_index_to_to_address_hash.exs +++ b/apps/explorer/priv/repo/migrations/20190314084907_add_index_to_to_address_hash.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexToToAddressHash do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190318151809_add_inserted_at_index_to_accounts.exs b/apps/explorer/priv/repo/migrations/20190318151809_add_inserted_at_index_to_accounts.exs index f1ac25756528..e427ca2d4d71 100644 --- a/apps/explorer/priv/repo/migrations/20190318151809_add_inserted_at_index_to_accounts.exs +++ b/apps/explorer/priv/repo/migrations/20190318151809_add_inserted_at_index_to_accounts.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddInsertedAtIndexToAccounts do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190319081821_create_decompiled_smart_contracts.exs b/apps/explorer/priv/repo/migrations/20190319081821_create_decompiled_smart_contracts.exs index 4055f3242b6c..44d0e6fb363f 100644 --- a/apps/explorer/priv/repo/migrations/20190319081821_create_decompiled_smart_contracts.exs +++ b/apps/explorer/priv/repo/migrations/20190319081821_create_decompiled_smart_contracts.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateDecompiledSmartContracts do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190321185644_add_old_value_for_current_token_balances.exs b/apps/explorer/priv/repo/migrations/20190321185644_add_old_value_for_current_token_balances.exs index 45cc50d7e444..20f9cbb165fe 100644 --- a/apps/explorer/priv/repo/migrations/20190321185644_add_old_value_for_current_token_balances.exs +++ b/apps/explorer/priv/repo/migrations/20190321185644_add_old_value_for_current_token_balances.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddOldValueForCurrentTokenBalances do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190325081658_remove_unique_address_hash_decompiled_contracts.exs b/apps/explorer/priv/repo/migrations/20190325081658_remove_unique_address_hash_decompiled_contracts.exs index eb4b94237e24..0aa729daf5a7 100644 --- a/apps/explorer/priv/repo/migrations/20190325081658_remove_unique_address_hash_decompiled_contracts.exs +++ b/apps/explorer/priv/repo/migrations/20190325081658_remove_unique_address_hash_decompiled_contracts.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RemoveUniqueAddressHashDecompiledContracts do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190403080447_add_full_text_search_tokens.exs b/apps/explorer/priv/repo/migrations/20190403080447_add_full_text_search_tokens.exs index a4d642f54ed5..98cda8e1db87 100644 --- a/apps/explorer/priv/repo/migrations/20190403080447_add_full_text_search_tokens.exs +++ b/apps/explorer/priv/repo/migrations/20190403080447_add_full_text_search_tokens.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddFullTextSearchTokens do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190421143300_add_index_to_bsdr.exs b/apps/explorer/priv/repo/migrations/20190421143300_add_index_to_bsdr.exs index dc8fc0422dfc..f111fde79b65 100644 --- a/apps/explorer/priv/repo/migrations/20190421143300_add_index_to_bsdr.exs +++ b/apps/explorer/priv/repo/migrations/20190421143300_add_index_to_bsdr.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexToBsdr do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190424170833_change_block_size_to_nullable.exs b/apps/explorer/priv/repo/migrations/20190424170833_change_block_size_to_nullable.exs index 90769c7233bf..7b6cdbe6ba70 100644 --- a/apps/explorer/priv/repo/migrations/20190424170833_change_block_size_to_nullable.exs +++ b/apps/explorer/priv/repo/migrations/20190424170833_change_block_size_to_nullable.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ChangeBlockSizeToNullable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190508152922_add_old_block_hash_for_transactions.exs b/apps/explorer/priv/repo/migrations/20190508152922_add_old_block_hash_for_transactions.exs index daf04c22f3fc..3213a3760850 100644 --- a/apps/explorer/priv/repo/migrations/20190508152922_add_old_block_hash_for_transactions.exs +++ b/apps/explorer/priv/repo/migrations/20190508152922_add_old_block_hash_for_transactions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddOldBlockHashForTransactions do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190513134025_add_refetch_needed_to_block.exs b/apps/explorer/priv/repo/migrations/20190513134025_add_refetch_needed_to_block.exs index 5380e2df142d..dc5019b1fbda 100644 --- a/apps/explorer/priv/repo/migrations/20190513134025_add_refetch_needed_to_block.exs +++ b/apps/explorer/priv/repo/migrations/20190513134025_add_refetch_needed_to_block.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddRefetchNeededToBlock do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190516140202_add_address_hash_index_to_decompiled_smart_contracts.exs b/apps/explorer/priv/repo/migrations/20190516140202_add_address_hash_index_to_decompiled_smart_contracts.exs index 689a3757d27a..c6f3d56893fa 100644 --- a/apps/explorer/priv/repo/migrations/20190516140202_add_address_hash_index_to_decompiled_smart_contracts.exs +++ b/apps/explorer/priv/repo/migrations/20190516140202_add_address_hash_index_to_decompiled_smart_contracts.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddAddressHashIndexToDecompiledSmartContracts do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190516160535_add_decompiled_and_verified_flag_to_addresses.exs b/apps/explorer/priv/repo/migrations/20190516160535_add_decompiled_and_verified_flag_to_addresses.exs index cfc45092fd06..57f68c572fb5 100644 --- a/apps/explorer/priv/repo/migrations/20190516160535_add_decompiled_and_verified_flag_to_addresses.exs +++ b/apps/explorer/priv/repo/migrations/20190516160535_add_decompiled_and_verified_flag_to_addresses.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddDecompiledAndVerifiedFlagToAddresses do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190521104412_create_staking_pools.exs b/apps/explorer/priv/repo/migrations/20190521104412_create_staking_pools.exs index 94483112f224..8b87e4730ab8 100644 --- a/apps/explorer/priv/repo/migrations/20190521104412_create_staking_pools.exs +++ b/apps/explorer/priv/repo/migrations/20190521104412_create_staking_pools.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateStakingPools do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190523112839_create_staking_pools_delegators.exs b/apps/explorer/priv/repo/migrations/20190523112839_create_staking_pools_delegators.exs index ccf9c8c3728e..3c1ac7a89662 100644 --- a/apps/explorer/priv/repo/migrations/20190523112839_create_staking_pools_delegators.exs +++ b/apps/explorer/priv/repo/migrations/20190523112839_create_staking_pools_delegators.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateStakingPoolsDelegator do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190613065856_add_transaction_hash_inserted_at_index.exs b/apps/explorer/priv/repo/migrations/20190613065856_add_transaction_hash_inserted_at_index.exs index 6402ee966706..fc85696aad67 100644 --- a/apps/explorer/priv/repo/migrations/20190613065856_add_transaction_hash_inserted_at_index.exs +++ b/apps/explorer/priv/repo/migrations/20190613065856_add_transaction_hash_inserted_at_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTransactionHashInsertedAtIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190619154943_reduce_transaction_status_constraint.exs b/apps/explorer/priv/repo/migrations/20190619154943_reduce_transaction_status_constraint.exs index 4964bc425073..eed4326387be 100644 --- a/apps/explorer/priv/repo/migrations/20190619154943_reduce_transaction_status_constraint.exs +++ b/apps/explorer/priv/repo/migrations/20190619154943_reduce_transaction_status_constraint.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ReduceTransactionStatusConstraint do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190625085852_add_additional_contract_fields.exs b/apps/explorer/priv/repo/migrations/20190625085852_add_additional_contract_fields.exs index 031593905ab1..55c00c62df52 100644 --- a/apps/explorer/priv/repo/migrations/20190625085852_add_additional_contract_fields.exs +++ b/apps/explorer/priv/repo/migrations/20190625085852_add_additional_contract_fields.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddAdditionalContractFields do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190709043832_create_transaction_stats.exs b/apps/explorer/priv/repo/migrations/20190709043832_create_transaction_stats.exs index e358fc2e1225..cede553825f3 100644 --- a/apps/explorer/priv/repo/migrations/20190709043832_create_transaction_stats.exs +++ b/apps/explorer/priv/repo/migrations/20190709043832_create_transaction_stats.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateTransactionStats do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190709103104_add_external_libraries_to_smart_contracts.exs b/apps/explorer/priv/repo/migrations/20190709103104_add_external_libraries_to_smart_contracts.exs index 5200253f84da..69e6b0cce041 100644 --- a/apps/explorer/priv/repo/migrations/20190709103104_add_external_libraries_to_smart_contracts.exs +++ b/apps/explorer/priv/repo/migrations/20190709103104_add_external_libraries_to_smart_contracts.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddExternalLibrariesToSmartContracts do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190807111216_remove_duplicate_indexes.exs b/apps/explorer/priv/repo/migrations/20190807111216_remove_duplicate_indexes.exs index ae07c8b1e522..ae64de09b3c7 100644 --- a/apps/explorer/priv/repo/migrations/20190807111216_remove_duplicate_indexes.exs +++ b/apps/explorer/priv/repo/migrations/20190807111216_remove_duplicate_indexes.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RemoveDuplicateIndexes do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190807113117_create_suggested_indexes.exs b/apps/explorer/priv/repo/migrations/20190807113117_create_suggested_indexes.exs index d44d61092318..19a875d9bbb9 100644 --- a/apps/explorer/priv/repo/migrations/20190807113117_create_suggested_indexes.exs +++ b/apps/explorer/priv/repo/migrations/20190807113117_create_suggested_indexes.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateSuggestedIndexes do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190827120224_add_index_on_token_transfer_token_id.exs b/apps/explorer/priv/repo/migrations/20190827120224_add_index_on_token_transfer_token_id.exs index b92f216fd44c..074fe8369a80 100644 --- a/apps/explorer/priv/repo/migrations/20190827120224_add_index_on_token_transfer_token_id.exs +++ b/apps/explorer/priv/repo/migrations/20190827120224_add_index_on_token_transfer_token_id.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexOnTokenTransferTokenId do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190905083522_create_token_instances.exs b/apps/explorer/priv/repo/migrations/20190905083522_create_token_instances.exs index 7ebf9c12e951..0f93daff681d 100644 --- a/apps/explorer/priv/repo/migrations/20190905083522_create_token_instances.exs +++ b/apps/explorer/priv/repo/migrations/20190905083522_create_token_instances.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateTokenInstances do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20190910170703_create_indexes_for_block_number_in_token_transfers_and_transactions.exs b/apps/explorer/priv/repo/migrations/20190910170703_create_indexes_for_block_number_in_token_transfers_and_transactions.exs index b71822462285..0e3c8bd691da 100644 --- a/apps/explorer/priv/repo/migrations/20190910170703_create_indexes_for_block_number_in_token_transfers_and_transactions.exs +++ b/apps/explorer/priv/repo/migrations/20190910170703_create_indexes_for_block_number_in_token_transfers_and_transactions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateIndexesForBlockNumberInTokenTransfersAndTransactions do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20191007082500_add_indexes_for_token_instances_query.exs b/apps/explorer/priv/repo/migrations/20191007082500_add_indexes_for_token_instances_query.exs index ee6f757544cd..e97060b909fc 100644 --- a/apps/explorer/priv/repo/migrations/20191007082500_add_indexes_for_token_instances_query.exs +++ b/apps/explorer/priv/repo/migrations/20191007082500_add_indexes_for_token_instances_query.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexesForTokenInstancesQuery do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20191009121635_add_token_transfer_sorting_indexes.exs b/apps/explorer/priv/repo/migrations/20191009121635_add_token_transfer_sorting_indexes.exs index 65b4c004d26d..6a43c7b1c8bc 100644 --- a/apps/explorer/priv/repo/migrations/20191009121635_add_token_transfer_sorting_indexes.exs +++ b/apps/explorer/priv/repo/migrations/20191009121635_add_token_transfer_sorting_indexes.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTokenTransferSortingIndexes do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20191010075740_add_error_to_token_instances.exs b/apps/explorer/priv/repo/migrations/20191010075740_add_error_to_token_instances.exs index a2a9e6a8a59c..f776631006df 100644 --- a/apps/explorer/priv/repo/migrations/20191010075740_add_error_to_token_instances.exs +++ b/apps/explorer/priv/repo/migrations/20191010075740_add_error_to_token_instances.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddErrorToTokenInstances do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20191018120546_create_pending_block_operations.exs b/apps/explorer/priv/repo/migrations/20191018120546_create_pending_block_operations.exs index 3e917122a681..b33f01b67741 100644 --- a/apps/explorer/priv/repo/migrations/20191018120546_create_pending_block_operations.exs +++ b/apps/explorer/priv/repo/migrations/20191018120546_create_pending_block_operations.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreatePendingBlockOperations do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20191018140054_add_pending_internal_transactions_operation.exs b/apps/explorer/priv/repo/migrations/20191018140054_add_pending_internal_transactions_operation.exs index d7a7234026f4..8d424a3eefce 100644 --- a/apps/explorer/priv/repo/migrations/20191018140054_add_pending_internal_transactions_operation.exs +++ b/apps/explorer/priv/repo/migrations/20191018140054_add_pending_internal_transactions_operation.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddPendingInternalTransactionsOperation do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20191121064805_add_block_hash_and_block_index_to_logs.exs b/apps/explorer/priv/repo/migrations/20191121064805_add_block_hash_and_block_index_to_logs.exs index 94033d52d014..8d4f33443d15 100644 --- a/apps/explorer/priv/repo/migrations/20191121064805_add_block_hash_and_block_index_to_logs.exs +++ b/apps/explorer/priv/repo/migrations/20191121064805_add_block_hash_and_block_index_to_logs.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddBlockHashAndBlockIndexToLogs do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20191122062035_add_block_hash_to_token_transfers.exs b/apps/explorer/priv/repo/migrations/20191122062035_add_block_hash_to_token_transfers.exs index c10d3b271307..a655b8e7eefe 100644 --- a/apps/explorer/priv/repo/migrations/20191122062035_add_block_hash_to_token_transfers.exs +++ b/apps/explorer/priv/repo/migrations/20191122062035_add_block_hash_to_token_transfers.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddBlockHashToTokenTransfers do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20191128124415_remove_duplicate_indexes_token_entities.exs b/apps/explorer/priv/repo/migrations/20191128124415_remove_duplicate_indexes_token_entities.exs index 9a9415ada4c8..df6afda69d4c 100644 --- a/apps/explorer/priv/repo/migrations/20191128124415_remove_duplicate_indexes_token_entities.exs +++ b/apps/explorer/priv/repo/migrations/20191128124415_remove_duplicate_indexes_token_entities.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RemoveDuplicateIndexesTokenEntities do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20191203112646_internal_transactions_add_to_address_hash_index.exs b/apps/explorer/priv/repo/migrations/20191203112646_internal_transactions_add_to_address_hash_index.exs index bf9bc5ce1065..2fe35839a09f 100644 --- a/apps/explorer/priv/repo/migrations/20191203112646_internal_transactions_add_to_address_hash_index.exs +++ b/apps/explorer/priv/repo/migrations/20191203112646_internal_transactions_add_to_address_hash_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.InternalTransactionsAddToAddressHashIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20191208135613_block_rewards_block_hash_partial_index.exs b/apps/explorer/priv/repo/migrations/20191208135613_block_rewards_block_hash_partial_index.exs index 0b0fa86a4a0e..44ac899d36f0 100644 --- a/apps/explorer/priv/repo/migrations/20191208135613_block_rewards_block_hash_partial_index.exs +++ b/apps/explorer/priv/repo/migrations/20191208135613_block_rewards_block_hash_partial_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.BlockRewardsBlockHashPartialIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20191218120138_logs_block_number_index_index.exs b/apps/explorer/priv/repo/migrations/20191218120138_logs_block_number_index_index.exs index 735a835db934..71548f208562 100644 --- a/apps/explorer/priv/repo/migrations/20191218120138_logs_block_number_index_index.exs +++ b/apps/explorer/priv/repo/migrations/20191218120138_logs_block_number_index_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.LogsBlockNumberIndexIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20191220113006_pending_block_operations_block_hash_partial_index.exs b/apps/explorer/priv/repo/migrations/20191220113006_pending_block_operations_block_hash_partial_index.exs index 1b1a52e4edb7..a16238673503 100644 --- a/apps/explorer/priv/repo/migrations/20191220113006_pending_block_operations_block_hash_partial_index.exs +++ b/apps/explorer/priv/repo/migrations/20191220113006_pending_block_operations_block_hash_partial_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.PendingBlockOperationsBlockHashPartialIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20200214152058_add_token_id_to_token_balances.exs b/apps/explorer/priv/repo/migrations/20200214152058_add_token_id_to_token_balances.exs index b009091f81fd..72f27ea470a9 100644 --- a/apps/explorer/priv/repo/migrations/20200214152058_add_token_id_to_token_balances.exs +++ b/apps/explorer/priv/repo/migrations/20200214152058_add_token_id_to_token_balances.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTokenIdToTokenBalances do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20200410115841_create_index_address_current_token_balances_token_contract_address_hash_value.exs b/apps/explorer/priv/repo/migrations/20200410115841_create_index_address_current_token_balances_token_contract_address_hash_value.exs index 31f02a146fd7..7e24036fde41 100644 --- a/apps/explorer/priv/repo/migrations/20200410115841_create_index_address_current_token_balances_token_contract_address_hash_value.exs +++ b/apps/explorer/priv/repo/migrations/20200410115841_create_index_address_current_token_balances_token_contract_address_hash_value.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateIndexAddressCurrentTokenBalancesTokenContractAddressHashValue do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20200410141202_create_index_token_transfers_token_contract_address_hash_block_number.exs b/apps/explorer/priv/repo/migrations/20200410141202_create_index_token_transfers_token_contract_address_hash_block_number.exs index 59c3c132e2b5..2d1a1f59d580 100644 --- a/apps/explorer/priv/repo/migrations/20200410141202_create_index_token_transfers_token_contract_address_hash_block_number.exs +++ b/apps/explorer/priv/repo/migrations/20200410141202_create_index_token_transfers_token_contract_address_hash_block_number.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateIndexTokenTransfersTokenContractAddressHashBlockNumber do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20200421102450_pending_transactions.exs b/apps/explorer/priv/repo/migrations/20200421102450_pending_transactions.exs index 93619991f0f6..4241ce5c2dd5 100644 --- a/apps/explorer/priv/repo/migrations/20200421102450_pending_transactions.exs +++ b/apps/explorer/priv/repo/migrations/20200421102450_pending_transactions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.PendingTransactions do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20200424070607_drop_block_rewards_address_hash_address_type_block_hash_index.exs b/apps/explorer/priv/repo/migrations/20200424070607_drop_block_rewards_address_hash_address_type_block_hash_index.exs index 3761f419afec..4ffda6f9a417 100644 --- a/apps/explorer/priv/repo/migrations/20200424070607_drop_block_rewards_address_hash_address_type_block_hash_index.exs +++ b/apps/explorer/priv/repo/migrations/20200424070607_drop_block_rewards_address_hash_address_type_block_hash_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropBlockRewardsAddressHashAddressTypeBlockHashIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20200518075748_create_index_blocks_miner_hash_number_index.exs b/apps/explorer/priv/repo/migrations/20200518075748_create_index_blocks_miner_hash_number_index.exs index f48ff9bbf099..e36f3aabbbfd 100644 --- a/apps/explorer/priv/repo/migrations/20200518075748_create_index_blocks_miner_hash_number_index.exs +++ b/apps/explorer/priv/repo/migrations/20200518075748_create_index_blocks_miner_hash_number_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateIndexBlocksMinerHashNumberIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20200521090250_recreate_staking_tables.exs b/apps/explorer/priv/repo/migrations/20200521090250_recreate_staking_tables.exs index cb6fb80fc4be..ef1e3c2e3b74 100644 --- a/apps/explorer/priv/repo/migrations/20200521090250_recreate_staking_tables.exs +++ b/apps/explorer/priv/repo/migrations/20200521090250_recreate_staking_tables.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RecreateStakingTables do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20200521170002_create_token_transfers_token_contract_address_hash_token_id_block_number_index.exs b/apps/explorer/priv/repo/migrations/20200521170002_create_token_transfers_token_contract_address_hash_token_id_block_number_index.exs index eb136b3f22ba..556698fc0936 100644 --- a/apps/explorer/priv/repo/migrations/20200521170002_create_token_transfers_token_contract_address_hash_token_id_block_number_index.exs +++ b/apps/explorer/priv/repo/migrations/20200521170002_create_token_transfers_token_contract_address_hash_token_id_block_number_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateTokenTransfersTokenContractAddressHashTokenIdBlockNumberIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20200525115811_address_coin_balances_daily.exs b/apps/explorer/priv/repo/migrations/20200525115811_address_coin_balances_daily.exs index dc03899679fb..bc221d92bdfc 100644 --- a/apps/explorer/priv/repo/migrations/20200525115811_address_coin_balances_daily.exs +++ b/apps/explorer/priv/repo/migrations/20200525115811_address_coin_balances_daily.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddressCoinBalancesDaily do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20200527144742_add_counters_table.exs b/apps/explorer/priv/repo/migrations/20200527144742_add_counters_table.exs index e09b9ee1e75f..be7dd09ab799 100644 --- a/apps/explorer/priv/repo/migrations/20200527144742_add_counters_table.exs +++ b/apps/explorer/priv/repo/migrations/20200527144742_add_counters_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddCountersTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20200608075122_alter_transactions_add_error_reason.exs b/apps/explorer/priv/repo/migrations/20200608075122_alter_transactions_add_error_reason.exs index 6f0ab6320e1e..06cd7d80740b 100644 --- a/apps/explorer/priv/repo/migrations/20200608075122_alter_transactions_add_error_reason.exs +++ b/apps/explorer/priv/repo/migrations/20200608075122_alter_transactions_add_error_reason.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AlterTransactionsAddErrorReason do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20200806125649_token_add_bridged_column.exs b/apps/explorer/priv/repo/migrations/20200806125649_token_add_bridged_column.exs index ee059af16c97..3a2b53b0c928 100644 --- a/apps/explorer/priv/repo/migrations/20200806125649_token_add_bridged_column.exs +++ b/apps/explorer/priv/repo/migrations/20200806125649_token_add_bridged_column.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.TokenAddBridgedColumn do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20200807064700_bridged_tokens_table.exs b/apps/explorer/priv/repo/migrations/20200807064700_bridged_tokens_table.exs index a601379fcdd7..f38fbef9b342 100644 --- a/apps/explorer/priv/repo/migrations/20200807064700_bridged_tokens_table.exs +++ b/apps/explorer/priv/repo/migrations/20200807064700_bridged_tokens_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.BridgedTokensTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20200812143050_add_addresses_contract_code_index.exs b/apps/explorer/priv/repo/migrations/20200812143050_add_addresses_contract_code_index.exs index d6f5bb378b5a..3e1af8ef582d 100644 --- a/apps/explorer/priv/repo/migrations/20200812143050_add_addresses_contract_code_index.exs +++ b/apps/explorer/priv/repo/migrations/20200812143050_add_addresses_contract_code_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddAddressesContractCodeIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20200904075501_add_bridged_token_custom_metadata.exs b/apps/explorer/priv/repo/migrations/20200904075501_add_bridged_token_custom_metadata.exs index 418a07962cd2..76985ce4e726 100644 --- a/apps/explorer/priv/repo/migrations/20200904075501_add_bridged_token_custom_metadata.exs +++ b/apps/explorer/priv/repo/migrations/20200904075501_add_bridged_token_custom_metadata.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddBridgedTokenCustomMetadata do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20200929075625_add_bridged_token_type.exs b/apps/explorer/priv/repo/migrations/20200929075625_add_bridged_token_type.exs index b8a6c30f459e..3db5eb303987 100644 --- a/apps/explorer/priv/repo/migrations/20200929075625_add_bridged_token_type.exs +++ b/apps/explorer/priv/repo/migrations/20200929075625_add_bridged_token_type.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddBridgedTokenType do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20201026093652_transactions_stat_add_gas_usage_column.exs b/apps/explorer/priv/repo/migrations/20201026093652_transactions_stat_add_gas_usage_column.exs index 2c57675f4e98..c0efc510b631 100644 --- a/apps/explorer/priv/repo/migrations/20201026093652_transactions_stat_add_gas_usage_column.exs +++ b/apps/explorer/priv/repo/migrations/20201026093652_transactions_stat_add_gas_usage_column.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.TransactionsStatAddGasUsageColumn do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20201214203532_support_sourcify.exs b/apps/explorer/priv/repo/migrations/20201214203532_support_sourcify.exs index 97854cd8c52f..4e08d419f074 100644 --- a/apps/explorer/priv/repo/migrations/20201214203532_support_sourcify.exs +++ b/apps/explorer/priv/repo/migrations/20201214203532_support_sourcify.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.SupportSourcify do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20210219080523_add_tags.exs b/apps/explorer/priv/repo/migrations/20210219080523_add_tags.exs index 79e83f808ce6..9e976edb8e36 100644 --- a/apps/explorer/priv/repo/migrations/20210219080523_add_tags.exs +++ b/apps/explorer/priv/repo/migrations/20210219080523_add_tags.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTags do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20210226154732_add_exchange_rate_column_to_bridged_tokens.exs b/apps/explorer/priv/repo/migrations/20210226154732_add_exchange_rate_column_to_bridged_tokens.exs index 01fb6aac2b2e..9b51d3299ae0 100644 --- a/apps/explorer/priv/repo/migrations/20210226154732_add_exchange_rate_column_to_bridged_tokens.exs +++ b/apps/explorer/priv/repo/migrations/20210226154732_add_exchange_rate_column_to_bridged_tokens.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddExchangeRateColumnToBridgedTokens do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20210309104122_add_bridged_token_custom_cap.exs b/apps/explorer/priv/repo/migrations/20210309104122_add_bridged_token_custom_cap.exs index c8214a655205..91b2eb9f98ee 100644 --- a/apps/explorer/priv/repo/migrations/20210309104122_add_bridged_token_custom_cap.exs +++ b/apps/explorer/priv/repo/migrations/20210309104122_add_bridged_token_custom_cap.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddBridgedTokenCustomCap do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20210331074008_add_pool_name_description.exs b/apps/explorer/priv/repo/migrations/20210331074008_add_pool_name_description.exs index 13e76efeb224..c4dc42e302f6 100644 --- a/apps/explorer/priv/repo/migrations/20210331074008_add_pool_name_description.exs +++ b/apps/explorer/priv/repo/migrations/20210331074008_add_pool_name_description.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddPoolNameDescription do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20210422115740_add_token_id_to_current_token_balances.exs b/apps/explorer/priv/repo/migrations/20210422115740_add_token_id_to_current_token_balances.exs index 4d8d8705298d..1569fe69fdc6 100644 --- a/apps/explorer/priv/repo/migrations/20210422115740_add_token_id_to_current_token_balances.exs +++ b/apps/explorer/priv/repo/migrations/20210422115740_add_token_id_to_current_token_balances.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTokenIdToCurrentTokenBalances do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20210423084253_address_current_token_balances_add_token_id_to_unique_index.exs b/apps/explorer/priv/repo/migrations/20210423084253_address_current_token_balances_add_token_id_to_unique_index.exs index b71de0448ee1..aa07f7ea6143 100644 --- a/apps/explorer/priv/repo/migrations/20210423084253_address_current_token_balances_add_token_id_to_unique_index.exs +++ b/apps/explorer/priv/repo/migrations/20210423084253_address_current_token_balances_add_token_id_to_unique_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddressCurrentTokenBalancesAddTokenIdToUniqueIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20210423091652_address_token_balances_add_token_id_to_unique_index.exs b/apps/explorer/priv/repo/migrations/20210423091652_address_token_balances_add_token_id_to_unique_index.exs index 1968f52132f4..faf892dc64b4 100644 --- a/apps/explorer/priv/repo/migrations/20210423091652_address_token_balances_add_token_id_to_unique_index.exs +++ b/apps/explorer/priv/repo/migrations/20210423091652_address_token_balances_add_token_id_to_unique_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddressTokenBalancesAddTokenIdToUniqueIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20210423094801_address_token_balances_change_unfetched_token_balances_unique_index.exs b/apps/explorer/priv/repo/migrations/20210423094801_address_token_balances_change_unfetched_token_balances_unique_index.exs index 911a7affbb41..a3b1fb6a7570 100644 --- a/apps/explorer/priv/repo/migrations/20210423094801_address_token_balances_change_unfetched_token_balances_unique_index.exs +++ b/apps/explorer/priv/repo/migrations/20210423094801_address_token_balances_change_unfetched_token_balances_unique_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddressTokenBalancesChangeUnfetchedTokenBalancesUniqueIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20210423115108_extend_token_transfers_for_erc1155.exs b/apps/explorer/priv/repo/migrations/20210423115108_extend_token_transfers_for_erc1155.exs index 211524e95492..f806eef9f1c3 100644 --- a/apps/explorer/priv/repo/migrations/20210423115108_extend_token_transfers_for_erc1155.exs +++ b/apps/explorer/priv/repo/migrations/20210423115108_extend_token_transfers_for_erc1155.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ExtendTokenTransfersForErc1155 do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20210524165427_min_missing_block_number.exs b/apps/explorer/priv/repo/migrations/20210524165427_min_missing_block_number.exs index 204ad4363a7e..1abab0b87efb 100644 --- a/apps/explorer/priv/repo/migrations/20210524165427_min_missing_block_number.exs +++ b/apps/explorer/priv/repo/migrations/20210524165427_min_missing_block_number.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.MinMissingBlockNumber do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20210527093756_transaction_stats_add_total_fee_column.exs b/apps/explorer/priv/repo/migrations/20210527093756_transaction_stats_add_total_fee_column.exs index 3684c20ad126..5131404ea66a 100644 --- a/apps/explorer/priv/repo/migrations/20210527093756_transaction_stats_add_total_fee_column.exs +++ b/apps/explorer/priv/repo/migrations/20210527093756_transaction_stats_add_total_fee_column.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.TransactionStatsAddTotalFeeColumn do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20210616120552_smart_contracts_add_is_vyper_flag.exs b/apps/explorer/priv/repo/migrations/20210616120552_smart_contracts_add_is_vyper_flag.exs index 171a90d4e4a0..22781f55821e 100644 --- a/apps/explorer/priv/repo/migrations/20210616120552_smart_contracts_add_is_vyper_flag.exs +++ b/apps/explorer/priv/repo/migrations/20210616120552_smart_contracts_add_is_vyper_flag.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.SmartContractsAddIsVyperFlag do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20210701084814_support_partial_match.exs b/apps/explorer/priv/repo/migrations/20210701084814_support_partial_match.exs index 29f13234a1ab..e0e4749115e6 100644 --- a/apps/explorer/priv/repo/migrations/20210701084814_support_partial_match.exs +++ b/apps/explorer/priv/repo/migrations/20210701084814_support_partial_match.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.SupportPartialMatch do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20210811140837_add_1559_support.exs b/apps/explorer/priv/repo/migrations/20210811140837_add_1559_support.exs index b83f65fc08f6..d0de9e51191a 100644 --- a/apps/explorer/priv/repo/migrations/20210811140837_add_1559_support.exs +++ b/apps/explorer/priv/repo/migrations/20210811140837_add_1559_support.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.Add1559Support do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20210823144531_tokens_add_metadata_fetch_flag.exs b/apps/explorer/priv/repo/migrations/20210823144531_tokens_add_metadata_fetch_flag.exs index 1b966d9a29c5..24395d4e48e7 100644 --- a/apps/explorer/priv/repo/migrations/20210823144531_tokens_add_metadata_fetch_flag.exs +++ b/apps/explorer/priv/repo/migrations/20210823144531_tokens_add_metadata_fetch_flag.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.TokensAddMetadataFetchFlag do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20210916194004_add_file_path_for_sourcify_contracts.exs b/apps/explorer/priv/repo/migrations/20210916194004_add_file_path_for_sourcify_contracts.exs index ad10e3129c3f..9f8ccbcb805e 100644 --- a/apps/explorer/priv/repo/migrations/20210916194004_add_file_path_for_sourcify_contracts.exs +++ b/apps/explorer/priv/repo/migrations/20210916194004_add_file_path_for_sourcify_contracts.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddFilePathForSourcifyContracts do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20211006121008_add_block_is_empty_flag.exs b/apps/explorer/priv/repo/migrations/20211006121008_add_block_is_empty_flag.exs index 609f342453bf..efaca37255ac 100644 --- a/apps/explorer/priv/repo/migrations/20211006121008_add_block_is_empty_flag.exs +++ b/apps/explorer/priv/repo/migrations/20211006121008_add_block_is_empty_flag.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddBlockIsEmptyFlag do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20211013190346_remove_duplicates_of_current_token_balances.exs b/apps/explorer/priv/repo/migrations/20211013190346_remove_duplicates_of_current_token_balances.exs index ec26db4b7364..5d90f04201e8 100644 --- a/apps/explorer/priv/repo/migrations/20211013190346_remove_duplicates_of_current_token_balances.exs +++ b/apps/explorer/priv/repo/migrations/20211013190346_remove_duplicates_of_current_token_balances.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RemoveDuplicatesOfCurrentTokenBalances do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20211017135545_migrate_optimization_runs_to_int8.exs b/apps/explorer/priv/repo/migrations/20211017135545_migrate_optimization_runs_to_int8.exs index 0ff9a6d23d80..cc3316b61ac2 100644 --- a/apps/explorer/priv/repo/migrations/20211017135545_migrate_optimization_runs_to_int8.exs +++ b/apps/explorer/priv/repo/migrations/20211017135545_migrate_optimization_runs_to_int8.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.MigrateOptimizationRunsToInt8 do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20211018072347_add_is_empty_index.exs b/apps/explorer/priv/repo/migrations/20211018072347_add_is_empty_index.exs index 8631b31307d7..06199fed179f 100644 --- a/apps/explorer/priv/repo/migrations/20211018072347_add_is_empty_index.exs +++ b/apps/explorer/priv/repo/migrations/20211018072347_add_is_empty_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIsEmptyIndex do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20211018073652_add_token_balances_contract_address_hash_index.exs b/apps/explorer/priv/repo/migrations/20211018073652_add_token_balances_contract_address_hash_index.exs index ebfa8920e2f4..2cfeb9950aa2 100644 --- a/apps/explorer/priv/repo/migrations/20211018073652_add_token_balances_contract_address_hash_index.exs +++ b/apps/explorer/priv/repo/migrations/20211018073652_add_token_balances_contract_address_hash_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTokenBalancesContractAddressHashIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20211018164843_transactions_block_number_index.exs b/apps/explorer/priv/repo/migrations/20211018164843_transactions_block_number_index.exs index bb561b7c2375..fe87b8e568b5 100644 --- a/apps/explorer/priv/repo/migrations/20211018164843_transactions_block_number_index.exs +++ b/apps/explorer/priv/repo/migrations/20211018164843_transactions_block_number_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.TransactionsBlockNumberIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20211018170533_add_address_token_balances_address_hash_token_contract_address_hash_block_number_index.exs b/apps/explorer/priv/repo/migrations/20211018170533_add_address_token_balances_address_hash_token_contract_address_hash_block_number_index.exs index 4965726c5dc7..da59879dfd1d 100644 --- a/apps/explorer/priv/repo/migrations/20211018170533_add_address_token_balances_address_hash_token_contract_address_hash_block_number_index.exs +++ b/apps/explorer/priv/repo/migrations/20211018170533_add_address_token_balances_address_hash_token_contract_address_hash_block_number_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddAddressTokenBalancesAddressHashTokenContractAddressHashBlockNumberIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20211018170638_add_logs_address_hash_transaction_hash_index.exs b/apps/explorer/priv/repo/migrations/20211018170638_add_logs_address_hash_transaction_hash_index.exs index 10eafea095c6..1d6a57897e7d 100644 --- a/apps/explorer/priv/repo/migrations/20211018170638_add_logs_address_hash_transaction_hash_index.exs +++ b/apps/explorer/priv/repo/migrations/20211018170638_add_logs_address_hash_transaction_hash_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateLogsAddressHashTransactionHashIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20211029085117_drop_block_rewards_block_hash_partial_index.exs b/apps/explorer/priv/repo/migrations/20211029085117_drop_block_rewards_block_hash_partial_index.exs index 98d18e70d4d7..3695e6823329 100644 --- a/apps/explorer/priv/repo/migrations/20211029085117_drop_block_rewards_block_hash_partial_index.exs +++ b/apps/explorer/priv/repo/migrations/20211029085117_drop_block_rewards_block_hash_partial_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropBlockRewardsBlockHashPartialIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20211115164817_add_check_for_bytecode_actuality.exs b/apps/explorer/priv/repo/migrations/20211115164817_add_check_for_bytecode_actuality.exs index dfb86074be8a..a6cd37b8c413 100644 --- a/apps/explorer/priv/repo/migrations/20211115164817_add_check_for_bytecode_actuality.exs +++ b/apps/explorer/priv/repo/migrations/20211115164817_add_check_for_bytecode_actuality.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddCheckForBytecodeActuality do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20211203115010_add_contract_verification_status_table.exs b/apps/explorer/priv/repo/migrations/20211203115010_add_contract_verification_status_table.exs index 79af9a6c54c6..58f1835dae7e 100644 --- a/apps/explorer/priv/repo/migrations/20211203115010_add_contract_verification_status_table.exs +++ b/apps/explorer/priv/repo/migrations/20211203115010_add_contract_verification_status_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddContractVerificationStatusTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20211204184037_address_add_gas_used.exs b/apps/explorer/priv/repo/migrations/20211204184037_address_add_gas_used.exs index 0494e0a9e6e7..179c2648645f 100644 --- a/apps/explorer/priv/repo/migrations/20211204184037_address_add_gas_used.exs +++ b/apps/explorer/priv/repo/migrations/20211204184037_address_add_gas_used.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddressAddGasUsed do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20211206071033_modify_address_gas_used_bigint.exs b/apps/explorer/priv/repo/migrations/20211206071033_modify_address_gas_used_bigint.exs index 18158defba0b..4d1c20d8ea54 100644 --- a/apps/explorer/priv/repo/migrations/20211206071033_modify_address_gas_used_bigint.exs +++ b/apps/explorer/priv/repo/migrations/20211206071033_modify_address_gas_used_bigint.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ModifyAddressGasUsedBigint do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20211210184136_add_display_name_to_address_tag.exs b/apps/explorer/priv/repo/migrations/20211210184136_add_display_name_to_address_tag.exs index f07af29e10f9..17d048d2a8dc 100644 --- a/apps/explorer/priv/repo/migrations/20211210184136_add_display_name_to_address_tag.exs +++ b/apps/explorer/priv/repo/migrations/20211210184136_add_display_name_to_address_tag.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddDisplayNameToAddressTag do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20211217201759_add_has_error_in_internal_txs_field_to_transaction.exs b/apps/explorer/priv/repo/migrations/20211217201759_add_has_error_in_internal_txs_field_to_transaction.exs index 424f82e82b1d..b94e694caf07 100644 --- a/apps/explorer/priv/repo/migrations/20211217201759_add_has_error_in_internal_txs_field_to_transaction.exs +++ b/apps/explorer/priv/repo/migrations/20211217201759_add_has_error_in_internal_txs_field_to_transaction.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddHasErrorInInternalTxsFieldToTransaction do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220111085751_address_add_counters.exs b/apps/explorer/priv/repo/migrations/20220111085751_address_add_counters.exs index 15a7104582d5..c7918794c857 100644 --- a/apps/explorer/priv/repo/migrations/20220111085751_address_add_counters.exs +++ b/apps/explorer/priv/repo/migrations/20220111085751_address_add_counters.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddressAddCounters do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220303083252_smart_contracts_contract_code_md5.exs b/apps/explorer/priv/repo/migrations/20220303083252_smart_contracts_contract_code_md5.exs index 7c8a66ddf43f..9a88522d37d1 100644 --- a/apps/explorer/priv/repo/migrations/20220303083252_smart_contracts_contract_code_md5.exs +++ b/apps/explorer/priv/repo/migrations/20220303083252_smart_contracts_contract_code_md5.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.SmartContractsContractCodeMd5 do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220306091504_add_implementation_name.exs b/apps/explorer/priv/repo/migrations/20220306091504_add_implementation_name.exs index bbcf9702148c..6bb39df386cb 100644 --- a/apps/explorer/priv/repo/migrations/20220306091504_add_implementation_name.exs +++ b/apps/explorer/priv/repo/migrations/20220306091504_add_implementation_name.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddImplementationName do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220527131249_add_implementation_fields.exs b/apps/explorer/priv/repo/migrations/20220527131249_add_implementation_fields.exs index 5f3839dd4a4c..28e6e939fbe0 100644 --- a/apps/explorer/priv/repo/migrations/20220527131249_add_implementation_fields.exs +++ b/apps/explorer/priv/repo/migrations/20220527131249_add_implementation_fields.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddImplementationFields do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220622114402_remove_staking_tables.exs b/apps/explorer/priv/repo/migrations/20220622114402_remove_staking_tables.exs index 53f9e9516642..c5803c8a4d63 100644 --- a/apps/explorer/priv/repo/migrations/20220622114402_remove_staking_tables.exs +++ b/apps/explorer/priv/repo/migrations/20220622114402_remove_staking_tables.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RemoveStakingTables do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220622140604_remove_bridged_tokens.exs b/apps/explorer/priv/repo/migrations/20220622140604_remove_bridged_tokens.exs index 3bcef596351f..ff989d421c01 100644 --- a/apps/explorer/priv/repo/migrations/20220622140604_remove_bridged_tokens.exs +++ b/apps/explorer/priv/repo/migrations/20220622140604_remove_bridged_tokens.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RemoveBridgedTokens do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220706101103_address_coin_balances_daily_add_primary_key.exs b/apps/explorer/priv/repo/migrations/20220706101103_address_coin_balances_daily_add_primary_key.exs index e13e2f897ade..b63c7c9a9bce 100644 --- a/apps/explorer/priv/repo/migrations/20220706101103_address_coin_balances_daily_add_primary_key.exs +++ b/apps/explorer/priv/repo/migrations/20220706101103_address_coin_balances_daily_add_primary_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddressCoinBalancesDailyAddPrimaryKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220706102257_address_coin_balances_add_primary_key.exs b/apps/explorer/priv/repo/migrations/20220706102257_address_coin_balances_add_primary_key.exs index c3d48b640d3b..6fc704087dd4 100644 --- a/apps/explorer/priv/repo/migrations/20220706102257_address_coin_balances_add_primary_key.exs +++ b/apps/explorer/priv/repo/migrations/20220706102257_address_coin_balances_add_primary_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddressCoinBalancesAddPrimaryKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220706102504_transactions_forks_add_primary_key.exs b/apps/explorer/priv/repo/migrations/20220706102504_transactions_forks_add_primary_key.exs index 242ee5c250f1..9db421468027 100644 --- a/apps/explorer/priv/repo/migrations/20220706102504_transactions_forks_add_primary_key.exs +++ b/apps/explorer/priv/repo/migrations/20220706102504_transactions_forks_add_primary_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.TransactionsForksAddPrimaryKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220706102746_block_rewards_add_primary_key.exs b/apps/explorer/priv/repo/migrations/20220706102746_block_rewards_add_primary_key.exs index a908a89367e8..ec779b359fa6 100644 --- a/apps/explorer/priv/repo/migrations/20220706102746_block_rewards_add_primary_key.exs +++ b/apps/explorer/priv/repo/migrations/20220706102746_block_rewards_add_primary_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.BlockRewardsAddPrimaryKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220706105925_emission_rewards_add_primary_key.exs b/apps/explorer/priv/repo/migrations/20220706105925_emission_rewards_add_primary_key.exs index 877b0f1441c5..d5ba02b5f4b9 100644 --- a/apps/explorer/priv/repo/migrations/20220706105925_emission_rewards_add_primary_key.exs +++ b/apps/explorer/priv/repo/migrations/20220706105925_emission_rewards_add_primary_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.EmissionRewardsAddPrimaryKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220706111510_address_names_add_primary_key.exs b/apps/explorer/priv/repo/migrations/20220706111510_address_names_add_primary_key.exs index 606eded6b58a..5e4e1153b652 100644 --- a/apps/explorer/priv/repo/migrations/20220706111510_address_names_add_primary_key.exs +++ b/apps/explorer/priv/repo/migrations/20220706111510_address_names_add_primary_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddressNamesAddPrimaryKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220804114005_create_event_notifications.exs b/apps/explorer/priv/repo/migrations/20220804114005_create_event_notifications.exs index 953cfd4472e0..38dd567e40ef 100644 --- a/apps/explorer/priv/repo/migrations/20220804114005_create_event_notifications.exs +++ b/apps/explorer/priv/repo/migrations/20220804114005_create_event_notifications.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateEventNotifications do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220902083436_extend_token_name_type.exs b/apps/explorer/priv/repo/migrations/20220902083436_extend_token_name_type.exs index fee8460def3b..5887636f633d 100644 --- a/apps/explorer/priv/repo/migrations/20220902083436_extend_token_name_type.exs +++ b/apps/explorer/priv/repo/migrations/20220902083436_extend_token_name_type.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ExtendTokenNameType do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220902103213_create_index_token_transfers_token_ids.exs b/apps/explorer/priv/repo/migrations/20220902103213_create_index_token_transfers_token_ids.exs index e7f30e9cc07f..0a5f99f04a99 100644 --- a/apps/explorer/priv/repo/migrations/20220902103213_create_index_token_transfers_token_ids.exs +++ b/apps/explorer/priv/repo/migrations/20220902103213_create_index_token_transfers_token_ids.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateIndexTokenTransfersTokenIds do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220902103527_create_indexes_token_instances_token_contract_address_hash_token_id.exs b/apps/explorer/priv/repo/migrations/20220902103527_create_indexes_token_instances_token_contract_address_hash_token_id.exs index a91fc7d0fe3d..254a7b452c26 100644 --- a/apps/explorer/priv/repo/migrations/20220902103527_create_indexes_token_instances_token_contract_address_hash_token_id.exs +++ b/apps/explorer/priv/repo/migrations/20220902103527_create_indexes_token_instances_token_contract_address_hash_token_id.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateIndexesTokenInstancesTokenContractAddressHashTokenId do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220919105140_add_method_id_index.exs b/apps/explorer/priv/repo/migrations/20220919105140_add_method_id_index.exs index daa96722b5b1..2fc72338f534 100644 --- a/apps/explorer/priv/repo/migrations/20220919105140_add_method_id_index.exs +++ b/apps/explorer/priv/repo/migrations/20220919105140_add_method_id_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddMethodIdIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20220926122620_extend_token_symbol_type.exs b/apps/explorer/priv/repo/migrations/20220926122620_extend_token_symbol_type.exs index e97255a160aa..3d1ebb6c7763 100644 --- a/apps/explorer/priv/repo/migrations/20220926122620_extend_token_symbol_type.exs +++ b/apps/explorer/priv/repo/migrations/20220926122620_extend_token_symbol_type.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ExtendTokenSymbolType do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20221104091552_add_transaction_actions_table.exs b/apps/explorer/priv/repo/migrations/20221104091552_add_transaction_actions_table.exs index 1922a08faa3f..d70e50e13c41 100644 --- a/apps/explorer/priv/repo/migrations/20221104091552_add_transaction_actions_table.exs +++ b/apps/explorer/priv/repo/migrations/20221104091552_add_transaction_actions_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTransactionActionsTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20221104104635_create_token_transfer_token_id_migrator_progress.exs b/apps/explorer/priv/repo/migrations/20221104104635_create_token_transfer_token_id_migrator_progress.exs index 3bf19f8dfbda..b9cb6c5f012c 100644 --- a/apps/explorer/priv/repo/migrations/20221104104635_create_token_transfer_token_id_migrator_progress.exs +++ b/apps/explorer/priv/repo/migrations/20221104104635_create_token_transfer_token_id_migrator_progress.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateTokenTransferTokenIdMigratorProgress do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20221114113853_remove_not_null_constraint_from_abi.exs b/apps/explorer/priv/repo/migrations/20221114113853_remove_not_null_constraint_from_abi.exs index 81903e79e30c..88c25b0ee5eb 100644 --- a/apps/explorer/priv/repo/migrations/20221114113853_remove_not_null_constraint_from_abi.exs +++ b/apps/explorer/priv/repo/migrations/20221114113853_remove_not_null_constraint_from_abi.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RemoveNotNullConstraintFromAbi do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20221114121811_drop_internal_transactions_order_index.exs b/apps/explorer/priv/repo/migrations/20221114121811_drop_internal_transactions_order_index.exs index f59a416be856..0b69ebf27ab5 100644 --- a/apps/explorer/priv/repo/migrations/20221114121811_drop_internal_transactions_order_index.exs +++ b/apps/explorer/priv/repo/migrations/20221114121811_drop_internal_transactions_order_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropInternalTransactionsOrderIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20221117075456_modify_address_token_balances_indexes.exs b/apps/explorer/priv/repo/migrations/20221117075456_modify_address_token_balances_indexes.exs index 9c21c4b40a89..ec0b9dd1deb5 100644 --- a/apps/explorer/priv/repo/migrations/20221117075456_modify_address_token_balances_indexes.exs +++ b/apps/explorer/priv/repo/migrations/20221117075456_modify_address_token_balances_indexes.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ModifyAddressTokenBalancesIndexes do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20221117080657_modify_address_current_token_balances_indexes.exs b/apps/explorer/priv/repo/migrations/20221117080657_modify_address_current_token_balances_indexes.exs index 295a7a5c3f15..b64c16c258a3 100644 --- a/apps/explorer/priv/repo/migrations/20221117080657_modify_address_current_token_balances_indexes.exs +++ b/apps/explorer/priv/repo/migrations/20221117080657_modify_address_current_token_balances_indexes.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ModifyAddressCurrentTokenBalancesIndexes do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20221120184715_add_json_compiler_settings.exs b/apps/explorer/priv/repo/migrations/20221120184715_add_json_compiler_settings.exs index e6f90d78648a..3ce667549639 100644 --- a/apps/explorer/priv/repo/migrations/20221120184715_add_json_compiler_settings.exs +++ b/apps/explorer/priv/repo/migrations/20221120184715_add_json_compiler_settings.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddJsonCompilerSettings do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20221125074820_drop_required_output_constraint.exs b/apps/explorer/priv/repo/migrations/20221125074820_drop_required_output_constraint.exs index a524af715fc0..5759ddeb4978 100644 --- a/apps/explorer/priv/repo/migrations/20221125074820_drop_required_output_constraint.exs +++ b/apps/explorer/priv/repo/migrations/20221125074820_drop_required_output_constraint.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropRequiredOutputConstraint do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20221126103223_add_transactions_indexes.exs b/apps/explorer/priv/repo/migrations/20221126103223_add_transactions_indexes.exs index 9cc38fb2e7aa..940385e555d0 100644 --- a/apps/explorer/priv/repo/migrations/20221126103223_add_transactions_indexes.exs +++ b/apps/explorer/priv/repo/migrations/20221126103223_add_transactions_indexes.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTransactionsIndexes do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20221209123459_drop_unfetched_token_balances_index.exs b/apps/explorer/priv/repo/migrations/20221209123459_drop_unfetched_token_balances_index.exs index c4e89981297b..7017cead3a18 100644 --- a/apps/explorer/priv/repo/migrations/20221209123459_drop_unfetched_token_balances_index.exs +++ b/apps/explorer/priv/repo/migrations/20221209123459_drop_unfetched_token_balances_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropUnfetchedTokenBalancesIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20221212093406_change_index_for_pending_block_operations.exs b/apps/explorer/priv/repo/migrations/20221212093406_change_index_for_pending_block_operations.exs index 550c6ce2b288..af2b0a1b0c18 100644 --- a/apps/explorer/priv/repo/migrations/20221212093406_change_index_for_pending_block_operations.exs +++ b/apps/explorer/priv/repo/migrations/20221212093406_change_index_for_pending_block_operations.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ChangeIndexForPendingBlockOperations do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20221219151744_create_missing_block_ranges.exs b/apps/explorer/priv/repo/migrations/20221219151744_create_missing_block_ranges.exs index 2f61a85162d8..1e9564581759 100644 --- a/apps/explorer/priv/repo/migrations/20221219151744_create_missing_block_ranges.exs +++ b/apps/explorer/priv/repo/migrations/20221219151744_create_missing_block_ranges.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateMissingBlockRanges do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20221223151234_add_block_number_to_pending_block_operations.exs b/apps/explorer/priv/repo/migrations/20221223151234_add_block_number_to_pending_block_operations.exs index 85229ecd2e7b..23d2531be2fe 100644 --- a/apps/explorer/priv/repo/migrations/20221223151234_add_block_number_to_pending_block_operations.exs +++ b/apps/explorer/priv/repo/migrations/20221223151234_add_block_number_to_pending_block_operations.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddBlockNumberToPendingBlockOperations do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20221223214711_create_withdrawals.exs b/apps/explorer/priv/repo/migrations/20221223214711_create_withdrawals.exs index 407fc4ddc313..c6e33e74b7cc 100644 --- a/apps/explorer/priv/repo/migrations/20221223214711_create_withdrawals.exs +++ b/apps/explorer/priv/repo/migrations/20221223214711_create_withdrawals.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateWithdrawals do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230126205627_add_fiat_value_and_circulating_market_cap_for_tokens.exs b/apps/explorer/priv/repo/migrations/20230126205627_add_fiat_value_and_circulating_market_cap_for_tokens.exs index 1b8887ada940..9e9f7fe0c84b 100644 --- a/apps/explorer/priv/repo/migrations/20230126205627_add_fiat_value_and_circulating_market_cap_for_tokens.exs +++ b/apps/explorer/priv/repo/migrations/20230126205627_add_fiat_value_and_circulating_market_cap_for_tokens.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddFiatValueAndCirculatingMarketCapForTokens do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230214104917_add_validators_and_constants_tables.exs b/apps/explorer/priv/repo/migrations/20230214104917_add_validators_and_constants_tables.exs index 95cce03e9fdf..b52c5601676c 100644 --- a/apps/explorer/priv/repo/migrations/20230214104917_add_validators_and_constants_tables.exs +++ b/apps/explorer/priv/repo/migrations/20230214104917_add_validators_and_constants_tables.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddValidatorsAndConstantsTables do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230217095226_add_total_supply_updated_at_block.exs b/apps/explorer/priv/repo/migrations/20230217095226_add_total_supply_updated_at_block.exs index 5221ee3b3d71..7d02aa6b8396 100644 --- a/apps/explorer/priv/repo/migrations/20230217095226_add_total_supply_updated_at_block.exs +++ b/apps/explorer/priv/repo/migrations/20230217095226_add_total_supply_updated_at_block.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTotalSupplyUpdatedAtBlock do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230328100414_add_transaction_action_types.exs b/apps/explorer/priv/repo/migrations/20230328100414_add_transaction_action_types.exs index bb18503d152c..7e1dbcdb310f 100644 --- a/apps/explorer/priv/repo/migrations/20230328100414_add_transaction_action_types.exs +++ b/apps/explorer/priv/repo/migrations/20230328100414_add_transaction_action_types.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTransactionActionTypes do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230417093914_allow_nil_transaction_gas_price.exs b/apps/explorer/priv/repo/migrations/20230417093914_allow_nil_transaction_gas_price.exs index 14dbd678fe48..cf17eb121093 100644 --- a/apps/explorer/priv/repo/migrations/20230417093914_allow_nil_transaction_gas_price.exs +++ b/apps/explorer/priv/repo/migrations/20230417093914_allow_nil_transaction_gas_price.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AllowNilTransactionGasPrice do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230425185941_add_token_icon_url.exs b/apps/explorer/priv/repo/migrations/20230425185941_add_token_icon_url.exs index 88e72b7fb209..73c8bb175fe7 100644 --- a/apps/explorer/priv/repo/migrations/20230425185941_add_token_icon_url.exs +++ b/apps/explorer/priv/repo/migrations/20230425185941_add_token_icon_url.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTokenIconUrl do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230522130735_withdrawals_gwei_amount_to_wei_amount.exs b/apps/explorer/priv/repo/migrations/20230522130735_withdrawals_gwei_amount_to_wei_amount.exs index e18bf417516e..39015d27211f 100644 --- a/apps/explorer/priv/repo/migrations/20230522130735_withdrawals_gwei_amount_to_wei_amount.exs +++ b/apps/explorer/priv/repo/migrations/20230522130735_withdrawals_gwei_amount_to_wei_amount.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.WithdrawalsGweiAmountToWeiAmount do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230530074105_market_history_add_market_cap.exs b/apps/explorer/priv/repo/migrations/20230530074105_market_history_add_market_cap.exs index b0ddaca92c21..bdd65983b6d9 100644 --- a/apps/explorer/priv/repo/migrations/20230530074105_market_history_add_market_cap.exs +++ b/apps/explorer/priv/repo/migrations/20230530074105_market_history_add_market_cap.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.MarketHistoryAddMarketCap do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230605080138_add_verified_via_eth_bytecode_db.exs b/apps/explorer/priv/repo/migrations/20230605080138_add_verified_via_eth_bytecode_db.exs index 9cef42d46938..be5bb0abe93f 100644 --- a/apps/explorer/priv/repo/migrations/20230605080138_add_verified_via_eth_bytecode_db.exs +++ b/apps/explorer/priv/repo/migrations/20230605080138_add_verified_via_eth_bytecode_db.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddVerifiedViaEthBytecodeDb do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230606091935_fix_contract_creation_transactions.exs b/apps/explorer/priv/repo/migrations/20230606091935_fix_contract_creation_transactions.exs index 86a088ae50b7..c10618dc493a 100644 --- a/apps/explorer/priv/repo/migrations/20230606091935_fix_contract_creation_transactions.exs +++ b/apps/explorer/priv/repo/migrations/20230606091935_fix_contract_creation_transactions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.FixContractCreationTransactions do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230613181244_address_coin_balances_block_number_index.exs b/apps/explorer/priv/repo/migrations/20230613181244_address_coin_balances_block_number_index.exs index f50a577455a3..c34961507480 100644 --- a/apps/explorer/priv/repo/migrations/20230613181244_address_coin_balances_block_number_index.exs +++ b/apps/explorer/priv/repo/migrations/20230613181244_address_coin_balances_block_number_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddressCoinBalancesBlockNumberIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230615130940_add_blocks_date_index.exs b/apps/explorer/priv/repo/migrations/20230615130940_add_blocks_date_index.exs index c0b415d676e4..0465cb97ddb2 100644 --- a/apps/explorer/priv/repo/migrations/20230615130940_add_blocks_date_index.exs +++ b/apps/explorer/priv/repo/migrations/20230615130940_add_blocks_date_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddBlocksDateIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230719160318_delete_erc_1155_tt_with_empty_token_ids.exs b/apps/explorer/priv/repo/migrations/20230719160318_delete_erc_1155_tt_with_empty_token_ids.exs index 190fdf8e8023..44108ef4251e 100644 --- a/apps/explorer/priv/repo/migrations/20230719160318_delete_erc_1155_tt_with_empty_token_ids.exs +++ b/apps/explorer/priv/repo/migrations/20230719160318_delete_erc_1155_tt_with_empty_token_ids.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DeleteErc1155TtWithEmptyTokenIds do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230809134253_add_is_verified_via_admin_panel.exs b/apps/explorer/priv/repo/migrations/20230809134253_add_is_verified_via_admin_panel.exs index 1cfa57cb6fca..c627ce4758ad 100644 --- a/apps/explorer/priv/repo/migrations/20230809134253_add_is_verified_via_admin_panel.exs +++ b/apps/explorer/priv/repo/migrations/20230809134253_add_is_verified_via_admin_panel.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIsVerifiedViaAdminPanel do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230815131151_drop_logs_address_hash_foreign_key.exs b/apps/explorer/priv/repo/migrations/20230815131151_drop_logs_address_hash_foreign_key.exs index 350c8a3a85ca..cebdb843cc4b 100644 --- a/apps/explorer/priv/repo/migrations/20230815131151_drop_logs_address_hash_foreign_key.exs +++ b/apps/explorer/priv/repo/migrations/20230815131151_drop_logs_address_hash_foreign_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropLogsAddressHashForeignKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230816061723_drop_token_transfers_and_transactions_address_foreign_key.exs b/apps/explorer/priv/repo/migrations/20230816061723_drop_token_transfers_and_transactions_address_foreign_key.exs index f5a1ef465fc5..3bb4a25cf6c4 100644 --- a/apps/explorer/priv/repo/migrations/20230816061723_drop_token_transfers_and_transactions_address_foreign_key.exs +++ b/apps/explorer/priv/repo/migrations/20230816061723_drop_token_transfers_and_transactions_address_foreign_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropTokenTransfersAndTransactionsAddressForeignKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230817061317_drop_address_foreign_keys.exs b/apps/explorer/priv/repo/migrations/20230817061317_drop_address_foreign_keys.exs index 275e7172aa9a..a20b0fa72b79 100644 --- a/apps/explorer/priv/repo/migrations/20230817061317_drop_address_foreign_keys.exs +++ b/apps/explorer/priv/repo/migrations/20230817061317_drop_address_foreign_keys.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropAddressForeignKeys do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230818094455_add_token_ids_to_address_token_balances.exs b/apps/explorer/priv/repo/migrations/20230818094455_add_token_ids_to_address_token_balances.exs index a141276ab529..ed4685a8e52b 100644 --- a/apps/explorer/priv/repo/migrations/20230818094455_add_token_ids_to_address_token_balances.exs +++ b/apps/explorer/priv/repo/migrations/20230818094455_add_token_ids_to_address_token_balances.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTokenIdsToAddressTokenBalances do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230821120625_drop_rest_address_foreign_keys.exs b/apps/explorer/priv/repo/migrations/20230821120625_drop_rest_address_foreign_keys.exs index 05d0afa05c28..3c658d66d1ce 100644 --- a/apps/explorer/priv/repo/migrations/20230821120625_drop_rest_address_foreign_keys.exs +++ b/apps/explorer/priv/repo/migrations/20230821120625_drop_rest_address_foreign_keys.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropRestAddressForeignKeys do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230831122819_drop_current_token_balances_tokens_foreign_key.exs b/apps/explorer/priv/repo/migrations/20230831122819_drop_current_token_balances_tokens_foreign_key.exs index 49f45e654f61..61c0650cf9e6 100644 --- a/apps/explorer/priv/repo/migrations/20230831122819_drop_current_token_balances_tokens_foreign_key.exs +++ b/apps/explorer/priv/repo/migrations/20230831122819_drop_current_token_balances_tokens_foreign_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropCurrentTokenBalancesTokensForeignKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20230905085809_drop_token_balances_tokens_foreign_key.exs b/apps/explorer/priv/repo/migrations/20230905085809_drop_token_balances_tokens_foreign_key.exs index 6af0d319b4af..27754c5dce5b 100644 --- a/apps/explorer/priv/repo/migrations/20230905085809_drop_token_balances_tokens_foreign_key.exs +++ b/apps/explorer/priv/repo/migrations/20230905085809_drop_token_balances_tokens_foreign_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropTokenBalancesTokensForeignKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20231003093553_add_tvl_to_market_history_table.exs b/apps/explorer/priv/repo/migrations/20231003093553_add_tvl_to_market_history_table.exs index 5ff8dd795a3f..fb8a6e271022 100644 --- a/apps/explorer/priv/repo/migrations/20231003093553_add_tvl_to_market_history_table.exs +++ b/apps/explorer/priv/repo/migrations/20231003093553_add_tvl_to_market_history_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTvlToMarketHistoryTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20231212101547_add_block_timestamp_and_consensus_to_transactions.exs b/apps/explorer/priv/repo/migrations/20231212101547_add_block_timestamp_and_consensus_to_transactions.exs index 458e29604383..f8d3cc69e6a8 100644 --- a/apps/explorer/priv/repo/migrations/20231212101547_add_block_timestamp_and_consensus_to_transactions.exs +++ b/apps/explorer/priv/repo/migrations/20231212101547_add_block_timestamp_and_consensus_to_transactions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddBlockTimestampAndConsensusToTransactions do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20231212102127_create_migrations_status.exs b/apps/explorer/priv/repo/migrations/20231212102127_create_migrations_status.exs index 0b8bf54a5c3b..ec0c30ce84bd 100644 --- a/apps/explorer/priv/repo/migrations/20231212102127_create_migrations_status.exs +++ b/apps/explorer/priv/repo/migrations/20231212102127_create_migrations_status.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateMigrationsStatus do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20231213085254_add_btree_gin_extension.exs b/apps/explorer/priv/repo/migrations/20231213085254_add_btree_gin_extension.exs index b34f9ee059cb..a49fc250c18a 100644 --- a/apps/explorer/priv/repo/migrations/20231213085254_add_btree_gin_extension.exs +++ b/apps/explorer/priv/repo/migrations/20231213085254_add_btree_gin_extension.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateBtreeGinExtension do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20231213090140_add_token_transfers_token_contract_address_token_ids_index.exs b/apps/explorer/priv/repo/migrations/20231213090140_add_token_transfers_token_contract_address_token_ids_index.exs index 7636fc7b3c2f..f1f797d1c15e 100644 --- a/apps/explorer/priv/repo/migrations/20231213090140_add_token_transfers_token_contract_address_token_ids_index.exs +++ b/apps/explorer/priv/repo/migrations/20231213090140_add_token_transfers_token_contract_address_token_ids_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTokenTransfersTokenContractAddressTokenIdsIndex do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20231213101235_drop_token_transfers_token_ids_index.exs b/apps/explorer/priv/repo/migrations/20231213101235_drop_token_transfers_token_ids_index.exs index 0065d2e26312..23d54399b7ed 100644 --- a/apps/explorer/priv/repo/migrations/20231213101235_drop_token_transfers_token_ids_index.exs +++ b/apps/explorer/priv/repo/migrations/20231213101235_drop_token_transfers_token_ids_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropTokenTransfersTokenIdsIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20231213152332_alter_log_topic_columns_type.exs b/apps/explorer/priv/repo/migrations/20231213152332_alter_log_topic_columns_type.exs index 649c95d0dbf1..c53373ed8dd1 100644 --- a/apps/explorer/priv/repo/migrations/20231213152332_alter_log_topic_columns_type.exs +++ b/apps/explorer/priv/repo/migrations/20231213152332_alter_log_topic_columns_type.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AlterLogTopicColumnsType do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20231215094615_drop_token_transfers_token_id_column.exs b/apps/explorer/priv/repo/migrations/20231215094615_drop_token_transfers_token_id_column.exs index df8637071b31..e0d727e22714 100644 --- a/apps/explorer/priv/repo/migrations/20231215094615_drop_token_transfers_token_id_column.exs +++ b/apps/explorer/priv/repo/migrations/20231215094615_drop_token_transfers_token_id_column.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropTokenTransfersTokenIdColumn do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20231215104320_drop_unused_actb_indexes.exs b/apps/explorer/priv/repo/migrations/20231215104320_drop_unused_actb_indexes.exs index 0f8ad39f3bc0..87d65a3083b9 100644 --- a/apps/explorer/priv/repo/migrations/20231215104320_drop_unused_actb_indexes.exs +++ b/apps/explorer/priv/repo/migrations/20231215104320_drop_unused_actb_indexes.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropUnusedActbIndexes do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20231215115638_drop_unused_logs_type_index.exs b/apps/explorer/priv/repo/migrations/20231215115638_drop_unused_logs_type_index.exs index fc7df4ddce8c..d8d0014ed0fb 100644 --- a/apps/explorer/priv/repo/migrations/20231215115638_drop_unused_logs_type_index.exs +++ b/apps/explorer/priv/repo/migrations/20231215115638_drop_unused_logs_type_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropUnusedLogsTypeIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20231215132609_add_index_blocks_refetch_needed.exs b/apps/explorer/priv/repo/migrations/20231215132609_add_index_blocks_refetch_needed.exs index aef72e5ed81c..9e0137bda8cb 100644 --- a/apps/explorer/priv/repo/migrations/20231215132609_add_index_blocks_refetch_needed.exs +++ b/apps/explorer/priv/repo/migrations/20231215132609_add_index_blocks_refetch_needed.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIndexBlocksRefetchNeeded do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20231225113850_transactions_asc_indices.exs b/apps/explorer/priv/repo/migrations/20231225113850_transactions_asc_indices.exs index b0f668e89cd5..1cdd6a2733b1 100644 --- a/apps/explorer/priv/repo/migrations/20231225113850_transactions_asc_indices.exs +++ b/apps/explorer/priv/repo/migrations/20231225113850_transactions_asc_indices.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.TransactionsAscIndices do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20231225115026_logs_asc_index.exs b/apps/explorer/priv/repo/migrations/20231225115026_logs_asc_index.exs index 7e7fc0963d6a..8b25b53d29bd 100644 --- a/apps/explorer/priv/repo/migrations/20231225115026_logs_asc_index.exs +++ b/apps/explorer/priv/repo/migrations/20231225115026_logs_asc_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.LogsAscIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20231225115100_token_transfers_asc_index.exs b/apps/explorer/priv/repo/migrations/20231225115100_token_transfers_asc_index.exs index 084ce83adb35..fee538e1f235 100644 --- a/apps/explorer/priv/repo/migrations/20231225115100_token_transfers_asc_index.exs +++ b/apps/explorer/priv/repo/migrations/20231225115100_token_transfers_asc_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.TokenTransfersAscIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20231227170848_add_proxy_verification_status.exs b/apps/explorer/priv/repo/migrations/20231227170848_add_proxy_verification_status.exs index 0b20b0a914e2..99db72c1eec2 100644 --- a/apps/explorer/priv/repo/migrations/20231227170848_add_proxy_verification_status.exs +++ b/apps/explorer/priv/repo/migrations/20231227170848_add_proxy_verification_status.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddProxyVerificationStatus do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20231229120232_add_smart_contract_audit_reports_table.exs b/apps/explorer/priv/repo/migrations/20231229120232_add_smart_contract_audit_reports_table.exs index 3b5880acfb8a..139a11b42704 100644 --- a/apps/explorer/priv/repo/migrations/20231229120232_add_smart_contract_audit_reports_table.exs +++ b/apps/explorer/priv/repo/migrations/20231229120232_add_smart_contract_audit_reports_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddSmartContractAuditReportsTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240103094720_constrain_null_date_market_history.exs b/apps/explorer/priv/repo/migrations/20240103094720_constrain_null_date_market_history.exs index ab43538e4e1e..12349e2710d1 100644 --- a/apps/explorer/priv/repo/migrations/20240103094720_constrain_null_date_market_history.exs +++ b/apps/explorer/priv/repo/migrations/20240103094720_constrain_null_date_market_history.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ConstrainNullDateMarketHistory do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240114181404_enhanced_unfetched_token_balances_index.exs b/apps/explorer/priv/repo/migrations/20240114181404_enhanced_unfetched_token_balances_index.exs index dcab0dc92050..eef1b7dd20e4 100644 --- a/apps/explorer/priv/repo/migrations/20240114181404_enhanced_unfetched_token_balances_index.exs +++ b/apps/explorer/priv/repo/migrations/20240114181404_enhanced_unfetched_token_balances_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.EnhancedUnfetchedTokenBalancesIndex do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20240122102141_add_token_type_to_token_transfers.exs b/apps/explorer/priv/repo/migrations/20240122102141_add_token_type_to_token_transfers.exs index 7ba7ddff029b..9a0854b0b7b5 100644 --- a/apps/explorer/priv/repo/migrations/20240122102141_add_token_type_to_token_transfers.exs +++ b/apps/explorer/priv/repo/migrations/20240122102141_add_token_type_to_token_transfers.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTokenTypeToTokenTransfers do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20240123102336_add_tokens_cataloged_index.exs b/apps/explorer/priv/repo/migrations/20240123102336_add_tokens_cataloged_index.exs index b0157fb6a9c5..e205b6abecf7 100644 --- a/apps/explorer/priv/repo/migrations/20240123102336_add_tokens_cataloged_index.exs +++ b/apps/explorer/priv/repo/migrations/20240123102336_add_tokens_cataloged_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTokensCatalogedIndex do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20240129112623_add_smart_contract_license_type.exs b/apps/explorer/priv/repo/migrations/20240129112623_add_smart_contract_license_type.exs index 91bea9e1b861..418bafbecbf8 100644 --- a/apps/explorer/priv/repo/migrations/20240129112623_add_smart_contract_license_type.exs +++ b/apps/explorer/priv/repo/migrations/20240129112623_add_smart_contract_license_type.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddSmartContractLicenseType do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240219143204_add_volume_24h_to_tokens.exs b/apps/explorer/priv/repo/migrations/20240219143204_add_volume_24h_to_tokens.exs index cf3c9ad7b3b8..ae70b602ddba 100644 --- a/apps/explorer/priv/repo/migrations/20240219143204_add_volume_24h_to_tokens.exs +++ b/apps/explorer/priv/repo/migrations/20240219143204_add_volume_24h_to_tokens.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddVolume24hToTokens do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240219152810_add_block_consensus_to_token_transfers.exs b/apps/explorer/priv/repo/migrations/20240219152810_add_block_consensus_to_token_transfers.exs index 253c952ba4ea..e1bd12b980ea 100644 --- a/apps/explorer/priv/repo/migrations/20240219152810_add_block_consensus_to_token_transfers.exs +++ b/apps/explorer/priv/repo/migrations/20240219152810_add_block_consensus_to_token_transfers.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddBlockConsensusToTokenTransfers do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20240224112210_create_index_pending_block_operations_block_number.exs b/apps/explorer/priv/repo/migrations/20240224112210_create_index_pending_block_operations_block_number.exs index ad590ae77aa6..18c2e0f865d7 100644 --- a/apps/explorer/priv/repo/migrations/20240224112210_create_index_pending_block_operations_block_number.exs +++ b/apps/explorer/priv/repo/migrations/20240224112210_create_index_pending_block_operations_block_number.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateIndexPendingBlockOperationsBlockNumber do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20240226074456_create_massive_blocks.exs b/apps/explorer/priv/repo/migrations/20240226074456_create_massive_blocks.exs index 824a4f8f271c..17a10ff596f1 100644 --- a/apps/explorer/priv/repo/migrations/20240226074456_create_massive_blocks.exs +++ b/apps/explorer/priv/repo/migrations/20240226074456_create_massive_blocks.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateMassiveBlocks do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240226151331_add_secondary_coin_market_history.exs b/apps/explorer/priv/repo/migrations/20240226151331_add_secondary_coin_market_history.exs index 799cf62ab01c..c2666c87d3f1 100644 --- a/apps/explorer/priv/repo/migrations/20240226151331_add_secondary_coin_market_history.exs +++ b/apps/explorer/priv/repo/migrations/20240226151331_add_secondary_coin_market_history.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddSecondaryCoinMarketHistory do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240227115149_add_smart_contracts_name_text_index.exs b/apps/explorer/priv/repo/migrations/20240227115149_add_smart_contracts_name_text_index.exs index 8cf53911574d..46160332b556 100644 --- a/apps/explorer/priv/repo/migrations/20240227115149_add_smart_contracts_name_text_index.exs +++ b/apps/explorer/priv/repo/migrations/20240227115149_add_smart_contracts_name_text_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddSmartContractsNameTextIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240308123508_token_transfers_add_from_address_hash_block_number_index.exs b/apps/explorer/priv/repo/migrations/20240308123508_token_transfers_add_from_address_hash_block_number_index.exs index 5d7d27f14474..a24ecefce624 100644 --- a/apps/explorer/priv/repo/migrations/20240308123508_token_transfers_add_from_address_hash_block_number_index.exs +++ b/apps/explorer/priv/repo/migrations/20240308123508_token_transfers_add_from_address_hash_block_number_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.TokenTransfersAddFromAddressHashBlockNumberIndex do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20240313195728_token_transfers_add_to_address_hash_block_number_index.exs b/apps/explorer/priv/repo/migrations/20240313195728_token_transfers_add_to_address_hash_block_number_index.exs index cef07e10e777..fda787d5faa5 100644 --- a/apps/explorer/priv/repo/migrations/20240313195728_token_transfers_add_to_address_hash_block_number_index.exs +++ b/apps/explorer/priv/repo/migrations/20240313195728_token_transfers_add_to_address_hash_block_number_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.TokenTransfersAddToAddressHashBlockNumberIndex do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20240322115647_create_address_contract_code_fetch_attempts_table.exs b/apps/explorer/priv/repo/migrations/20240322115647_create_address_contract_code_fetch_attempts_table.exs index 94799ad1d9b9..c443c0f7de46 100644 --- a/apps/explorer/priv/repo/migrations/20240322115647_create_address_contract_code_fetch_attempts_table.exs +++ b/apps/explorer/priv/repo/migrations/20240322115647_create_address_contract_code_fetch_attempts_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateAddressContractCodeFetchAttemptsTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240325195446_add_verified_via_verifier_alliance.exs b/apps/explorer/priv/repo/migrations/20240325195446_add_verified_via_verifier_alliance.exs index 8849626e98b2..b4a20cfe7478 100644 --- a/apps/explorer/priv/repo/migrations/20240325195446_add_verified_via_verifier_alliance.exs +++ b/apps/explorer/priv/repo/migrations/20240325195446_add_verified_via_verifier_alliance.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddVerifiedViaVerifierAlliance do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240403151125_enhance_index_for_token_transfers_list.exs b/apps/explorer/priv/repo/migrations/20240403151125_enhance_index_for_token_transfers_list.exs index 78fe6192e578..3f56745b8860 100644 --- a/apps/explorer/priv/repo/migrations/20240403151125_enhance_index_for_token_transfers_list.exs +++ b/apps/explorer/priv/repo/migrations/20240403151125_enhance_index_for_token_transfers_list.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.EnhanceIndexForTokenTransfersList do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20240403151126_drop_outdated_index_for_token_transfers_list.exs b/apps/explorer/priv/repo/migrations/20240403151126_drop_outdated_index_for_token_transfers_list.exs index 4e9f524aebc6..46599951ab6e 100644 --- a/apps/explorer/priv/repo/migrations/20240403151126_drop_outdated_index_for_token_transfers_list.exs +++ b/apps/explorer/priv/repo/migrations/20240403151126_drop_outdated_index_for_token_transfers_list.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropOutdatedIndexForTokenTransfersList do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20240404102510_enhance_index_for_token_holders_list.exs b/apps/explorer/priv/repo/migrations/20240404102510_enhance_index_for_token_holders_list.exs index b547e833734a..7fbf9b4f9198 100644 --- a/apps/explorer/priv/repo/migrations/20240404102510_enhance_index_for_token_holders_list.exs +++ b/apps/explorer/priv/repo/migrations/20240404102510_enhance_index_for_token_holders_list.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.EnhanceIndexForTokenHoldersList do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20240404102511_drop_outdated_index_for_token_holders_list.exs b/apps/explorer/priv/repo/migrations/20240404102511_drop_outdated_index_for_token_holders_list.exs index 85eda9d17f71..1136205bb659 100644 --- a/apps/explorer/priv/repo/migrations/20240404102511_drop_outdated_index_for_token_holders_list.exs +++ b/apps/explorer/priv/repo/migrations/20240404102511_drop_outdated_index_for_token_holders_list.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropOutdatedIndexForTokenHoldersList do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20240417141515_smart_contracts_add_certified_flag.exs b/apps/explorer/priv/repo/migrations/20240417141515_smart_contracts_add_certified_flag.exs index 581bdd9d3a5a..03f19045e022 100644 --- a/apps/explorer/priv/repo/migrations/20240417141515_smart_contracts_add_certified_flag.exs +++ b/apps/explorer/priv/repo/migrations/20240417141515_smart_contracts_add_certified_flag.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.SmartContractsAddCertifiedFlag do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20240418135458_fix_index_for_unfetched_token_balances.exs b/apps/explorer/priv/repo/migrations/20240418135458_fix_index_for_unfetched_token_balances.exs index 6b6f58f9cdca..bb5abd3ccaa5 100644 --- a/apps/explorer/priv/repo/migrations/20240418135458_fix_index_for_unfetched_token_balances.exs +++ b/apps/explorer/priv/repo/migrations/20240418135458_fix_index_for_unfetched_token_balances.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.FixIndexForUnfetchedTokenBalances do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20240418140425_drop_outdated_index_for_unfetched_token_balances.exs b/apps/explorer/priv/repo/migrations/20240418140425_drop_outdated_index_for_unfetched_token_balances.exs index 0b1a05f4fcc4..e9fd38b76d6d 100644 --- a/apps/explorer/priv/repo/migrations/20240418140425_drop_outdated_index_for_unfetched_token_balances.exs +++ b/apps/explorer/priv/repo/migrations/20240418140425_drop_outdated_index_for_unfetched_token_balances.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropOutdatedIndexForUnfetchedTokenBalances do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20240419095711_add_proxy_implementations_table.exs b/apps/explorer/priv/repo/migrations/20240419095711_add_proxy_implementations_table.exs index 5b60caa470ca..e6578dcb0bad 100644 --- a/apps/explorer/priv/repo/migrations/20240419095711_add_proxy_implementations_table.exs +++ b/apps/explorer/priv/repo/migrations/20240419095711_add_proxy_implementations_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddProxyImplementationsTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240419101821_migrate_proxy_implementations.exs b/apps/explorer/priv/repo/migrations/20240419101821_migrate_proxy_implementations.exs index 2210d341b7de..5fd66514a4ce 100644 --- a/apps/explorer/priv/repo/migrations/20240419101821_migrate_proxy_implementations.exs +++ b/apps/explorer/priv/repo/migrations/20240419101821_migrate_proxy_implementations.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.MigrateProxyImplementations do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240419102345_drop_implementation_fields_from_smart_contract_table.exs b/apps/explorer/priv/repo/migrations/20240419102345_drop_implementation_fields_from_smart_contract_table.exs index 3030a6bae266..ae9f318a718c 100644 --- a/apps/explorer/priv/repo/migrations/20240419102345_drop_implementation_fields_from_smart_contract_table.exs +++ b/apps/explorer/priv/repo/migrations/20240419102345_drop_implementation_fields_from_smart_contract_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropImplementationFieldsFromSmartContractTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240425091614_add_proxy_type_column.exs b/apps/explorer/priv/repo/migrations/20240425091614_add_proxy_type_column.exs index 3add30af7ac1..67957daff820 100644 --- a/apps/explorer/priv/repo/migrations/20240425091614_add_proxy_type_column.exs +++ b/apps/explorer/priv/repo/migrations/20240425091614_add_proxy_type_column.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddProxyTypeColumn do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240425185705_alter_proxy_type.exs b/apps/explorer/priv/repo/migrations/20240425185705_alter_proxy_type.exs index 91459cb8294c..e5f979a95350 100644 --- a/apps/explorer/priv/repo/migrations/20240425185705_alter_proxy_type.exs +++ b/apps/explorer/priv/repo/migrations/20240425185705_alter_proxy_type.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AlterProxyType do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240501131140_new_proxy_type_clones_with_immutable_arguments.exs b/apps/explorer/priv/repo/migrations/20240501131140_new_proxy_type_clones_with_immutable_arguments.exs index 55d3d3b9a404..6844818789ab 100644 --- a/apps/explorer/priv/repo/migrations/20240501131140_new_proxy_type_clones_with_immutable_arguments.exs +++ b/apps/explorer/priv/repo/migrations/20240501131140_new_proxy_type_clones_with_immutable_arguments.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.NewProxyTypeClonesWithImmutableArguments do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240502064431_create_missing_balance_of_tokens.exs b/apps/explorer/priv/repo/migrations/20240502064431_create_missing_balance_of_tokens.exs index a75513c02749..cd2407a49b4b 100644 --- a/apps/explorer/priv/repo/migrations/20240502064431_create_missing_balance_of_tokens.exs +++ b/apps/explorer/priv/repo/migrations/20240502064431_create_missing_balance_of_tokens.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateMissingBalanceOfTokens do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240503091708_add_nft_instance_fetcher_aux_fields.exs b/apps/explorer/priv/repo/migrations/20240503091708_add_nft_instance_fetcher_aux_fields.exs index 29195625806f..d5109d50b82e 100644 --- a/apps/explorer/priv/repo/migrations/20240503091708_add_nft_instance_fetcher_aux_fields.exs +++ b/apps/explorer/priv/repo/migrations/20240503091708_add_nft_instance_fetcher_aux_fields.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddNftInstanceFetcherAuxFields do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240509014500_smart_contracts_add_is_blueprint_flag.exs b/apps/explorer/priv/repo/migrations/20240509014500_smart_contracts_add_is_blueprint_flag.exs index f5d362e519a1..ebc45f3990b5 100644 --- a/apps/explorer/priv/repo/migrations/20240509014500_smart_contracts_add_is_blueprint_flag.exs +++ b/apps/explorer/priv/repo/migrations/20240509014500_smart_contracts_add_is_blueprint_flag.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.SmartContractsAddIsBlueprintFlag do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240520075414_create_token_instance_metadata_refetch_attempts_table.exs b/apps/explorer/priv/repo/migrations/20240520075414_create_token_instance_metadata_refetch_attempts_table.exs index 5d15ef1db24f..12a2a732defd 100644 --- a/apps/explorer/priv/repo/migrations/20240520075414_create_token_instance_metadata_refetch_attempts_table.exs +++ b/apps/explorer/priv/repo/migrations/20240520075414_create_token_instance_metadata_refetch_attempts_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateTokenInstanceMetadataRefetchAttemptsTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240527152734_add_currently_implemented_to_missing_balance_of_tokens.exs b/apps/explorer/priv/repo/migrations/20240527152734_add_currently_implemented_to_missing_balance_of_tokens.exs index 84b8e02cf431..fe0825a3bdcb 100644 --- a/apps/explorer/priv/repo/migrations/20240527152734_add_currently_implemented_to_missing_balance_of_tokens.exs +++ b/apps/explorer/priv/repo/migrations/20240527152734_add_currently_implemented_to_missing_balance_of_tokens.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddCurrentlyImplementedToMissingBalanceOfTokens do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240708152519_add_nft_media_urls.exs b/apps/explorer/priv/repo/migrations/20240708152519_add_nft_media_urls.exs index f39aec152f97..2017314b476d 100644 --- a/apps/explorer/priv/repo/migrations/20240708152519_add_nft_media_urls.exs +++ b/apps/explorer/priv/repo/migrations/20240708152519_add_nft_media_urls.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddNFTMediaUrls do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240718150123_add_no_overlap_index_to_missing_block_ranges.exs b/apps/explorer/priv/repo/migrations/20240718150123_add_no_overlap_index_to_missing_block_ranges.exs index 7f569610b1cb..bc257808cce0 100644 --- a/apps/explorer/priv/repo/migrations/20240718150123_add_no_overlap_index_to_missing_block_ranges.exs +++ b/apps/explorer/priv/repo/migrations/20240718150123_add_no_overlap_index_to_missing_block_ranges.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddNoOverlapIndexToMissingBlockRanges do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240806162644_add_contract_methods_inserted_at_index.exs b/apps/explorer/priv/repo/migrations/20240806162644_add_contract_methods_inserted_at_index.exs index b025f59ebe37..cc6458f47241 100644 --- a/apps/explorer/priv/repo/migrations/20240806162644_add_contract_methods_inserted_at_index.exs +++ b/apps/explorer/priv/repo/migrations/20240806162644_add_contract_methods_inserted_at_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddContractMethodsInsertedAtIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240828140638_add_token_balance_retry_fields.exs b/apps/explorer/priv/repo/migrations/20240828140638_add_token_balance_retry_fields.exs index 3d1fddf8bb8f..29fe0e4ac956 100644 --- a/apps/explorer/priv/repo/migrations/20240828140638_add_token_balance_retry_fields.exs +++ b/apps/explorer/priv/repo/migrations/20240828140638_add_token_balance_retry_fields.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTokenBalanceRetryFields do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240830142652_add_meta_to_migrations_status.exs b/apps/explorer/priv/repo/migrations/20240830142652_add_meta_to_migrations_status.exs index f17486215b9c..39b900b3a480 100644 --- a/apps/explorer/priv/repo/migrations/20240830142652_add_meta_to_migrations_status.exs +++ b/apps/explorer/priv/repo/migrations/20240830142652_add_meta_to_migrations_status.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddMetaToMigrationsStatus do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240904161254_create_signed_authorizations.exs b/apps/explorer/priv/repo/migrations/20240904161254_create_signed_authorizations.exs index e37cd4297f50..80cdebf25a3f 100644 --- a/apps/explorer/priv/repo/migrations/20240904161254_create_signed_authorizations.exs +++ b/apps/explorer/priv/repo/migrations/20240904161254_create_signed_authorizations.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateSignedAuthorizations do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240910095635_add_address_badges_tables.exs b/apps/explorer/priv/repo/migrations/20240910095635_add_address_badges_tables.exs index ba7bbc7db20d..42fb91198d7f 100644 --- a/apps/explorer/priv/repo/migrations/20240910095635_add_address_badges_tables.exs +++ b/apps/explorer/priv/repo/migrations/20240910095635_add_address_badges_tables.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddAddressBadgesTables do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240918104231_new_proxy_type_eip7702.exs b/apps/explorer/priv/repo/migrations/20240918104231_new_proxy_type_eip7702.exs index 85c1ef80c85b..6ca1a65e9733 100644 --- a/apps/explorer/priv/repo/migrations/20240918104231_new_proxy_type_eip7702.exs +++ b/apps/explorer/priv/repo/migrations/20240918104231_new_proxy_type_eip7702.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.NewProxyTypeEip7702 do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240923135258_reset_sanitize_missing_token_balances_migration_status.exs b/apps/explorer/priv/repo/migrations/20240923135258_reset_sanitize_missing_token_balances_migration_status.exs index d96bab5f2ace..91cca9286c3d 100644 --- a/apps/explorer/priv/repo/migrations/20240923135258_reset_sanitize_missing_token_balances_migration_status.exs +++ b/apps/explorer/priv/repo/migrations/20240923135258_reset_sanitize_missing_token_balances_migration_status.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ResetSanitizeMissingTokenBalancesMigrationStatus do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20240923173516_address_tags_add_primary_key.exs b/apps/explorer/priv/repo/migrations/20240923173516_address_tags_add_primary_key.exs index 97a93144c57a..4b4c9778c116 100644 --- a/apps/explorer/priv/repo/migrations/20240923173516_address_tags_add_primary_key.exs +++ b/apps/explorer/priv/repo/migrations/20240923173516_address_tags_add_primary_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddressTagsAddPrimaryKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20241002125432_add_is_banned_to_token_instances.exs b/apps/explorer/priv/repo/migrations/20241002125432_add_is_banned_to_token_instances.exs index 2e67556f2089..bc126d63ad67 100644 --- a/apps/explorer/priv/repo/migrations/20241002125432_add_is_banned_to_token_instances.exs +++ b/apps/explorer/priv/repo/migrations/20241002125432_add_is_banned_to_token_instances.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddIsBannedToTokenInstances do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20241015140214_rename_tx_related_field.exs b/apps/explorer/priv/repo/migrations/20241015140214_rename_tx_related_field.exs index 948ae164c51c..6e22d3b3aa01 100644 --- a/apps/explorer/priv/repo/migrations/20241015140214_rename_tx_related_field.exs +++ b/apps/explorer/priv/repo/migrations/20241015140214_rename_tx_related_field.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RenameTxRelatedField do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20241022133006_add_aux_types_for_duplicated_log_index_logs_migration.exs b/apps/explorer/priv/repo/migrations/20241022133006_add_aux_types_for_duplicated_log_index_logs_migration.exs index f5684a9f45fc..fdfc91af5ed1 100644 --- a/apps/explorer/priv/repo/migrations/20241022133006_add_aux_types_for_duplicated_log_index_logs_migration.exs +++ b/apps/explorer/priv/repo/migrations/20241022133006_add_aux_types_for_duplicated_log_index_logs_migration.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddAuxTypesForDuplicatedLogIndexLogsMigration do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20241031110127_create_pending_transaction_operations.exs b/apps/explorer/priv/repo/migrations/20241031110127_create_pending_transaction_operations.exs index 369dd2c280d9..e92c2b609aec 100644 --- a/apps/explorer/priv/repo/migrations/20241031110127_create_pending_transaction_operations.exs +++ b/apps/explorer/priv/repo/migrations/20241031110127_create_pending_transaction_operations.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreatePendingTransactionOperations do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20241111200520_add_language_field.exs b/apps/explorer/priv/repo/migrations/20241111200520_add_language_field.exs index 28a811359dc8..aa6ea868f99d 100644 --- a/apps/explorer/priv/repo/migrations/20241111200520_add_language_field.exs +++ b/apps/explorer/priv/repo/migrations/20241111200520_add_language_field.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddLanguageField do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20241216112656_create_types_for_composite_primary_keys.exs b/apps/explorer/priv/repo/migrations/20241216112656_create_types_for_composite_primary_keys.exs index bdf474d43380..d261041c4473 100644 --- a/apps/explorer/priv/repo/migrations/20241216112656_create_types_for_composite_primary_keys.exs +++ b/apps/explorer/priv/repo/migrations/20241216112656_create_types_for_composite_primary_keys.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateTypesForCompositePrimaryKeys do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20241219102223_remove_large_decimals.exs b/apps/explorer/priv/repo/migrations/20241219102223_remove_large_decimals.exs index fa65540e395a..dacc3d32e638 100644 --- a/apps/explorer/priv/repo/migrations/20241219102223_remove_large_decimals.exs +++ b/apps/explorer/priv/repo/migrations/20241219102223_remove_large_decimals.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RemoveLargeDecimals do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250119145532_add_metadata_tags_aux_type.exs b/apps/explorer/priv/repo/migrations/20250119145532_add_metadata_tags_aux_type.exs index 2a20459a835d..ffa91d1ae272 100644 --- a/apps/explorer/priv/repo/migrations/20250119145532_add_metadata_tags_aux_type.exs +++ b/apps/explorer/priv/repo/migrations/20250119145532_add_metadata_tags_aux_type.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddMetadataTagsAuxType do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250121142849_add_tokens_metadata_updated_at_column.exs b/apps/explorer/priv/repo/migrations/20250121142849_add_tokens_metadata_updated_at_column.exs index 8eb71443cf4a..4893a8840af6 100644 --- a/apps/explorer/priv/repo/migrations/20250121142849_add_tokens_metadata_updated_at_column.exs +++ b/apps/explorer/priv/repo/migrations/20250121142849_add_tokens_metadata_updated_at_column.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTokensMetadataUpdatedAtColumn do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250122185347_new_proxy_type_resolved_delegate_proxy.exs b/apps/explorer/priv/repo/migrations/20250122185347_new_proxy_type_resolved_delegate_proxy.exs index 8a7ba87bcff9..eaf1992015c8 100644 --- a/apps/explorer/priv/repo/migrations/20250122185347_new_proxy_type_resolved_delegate_proxy.exs +++ b/apps/explorer/priv/repo/migrations/20250122185347_new_proxy_type_resolved_delegate_proxy.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.NewProxyTypeResolvedDelegateProxy do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250128081221_add_token_instance_type.exs b/apps/explorer/priv/repo/migrations/20250128081221_add_token_instance_type.exs index 218c752334ea..4c683bf5e7f7 100644 --- a/apps/explorer/priv/repo/migrations/20250128081221_add_token_instance_type.exs +++ b/apps/explorer/priv/repo/migrations/20250128081221_add_token_instance_type.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTokenInstanceType do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250212182049_update_last_fetched_counters_keys.exs b/apps/explorer/priv/repo/migrations/20250212182049_update_last_fetched_counters_keys.exs index 4d0528749ab2..eaad9bc8f7e7 100644 --- a/apps/explorer/priv/repo/migrations/20250212182049_update_last_fetched_counters_keys.exs +++ b/apps/explorer/priv/repo/migrations/20250212182049_update_last_fetched_counters_keys.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.UpdateLastFetchedCountersKeys do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250214102221_remove_composite_id_types.exs b/apps/explorer/priv/repo/migrations/20250214102221_remove_composite_id_types.exs index d44f758fa24b..90b17fb0285e 100644 --- a/apps/explorer/priv/repo/migrations/20250214102221_remove_composite_id_types.exs +++ b/apps/explorer/priv/repo/migrations/20250214102221_remove_composite_id_types.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RemoveCompositeIdTypes do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250217221717_change_tokens_icon_url_type.exs b/apps/explorer/priv/repo/migrations/20250217221717_change_tokens_icon_url_type.exs index 66ee2b853cd2..b61f1900ca16 100644 --- a/apps/explorer/priv/repo/migrations/20250217221717_change_tokens_icon_url_type.exs +++ b/apps/explorer/priv/repo/migrations/20250217221717_change_tokens_icon_url_type.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ChangeTokensIconUrlType do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250303080958_remove_decompiled_smart_contracts_table.exs b/apps/explorer/priv/repo/migrations/20250303080958_remove_decompiled_smart_contracts_table.exs index 517a97d9de35..d9294e130dd8 100644 --- a/apps/explorer/priv/repo/migrations/20250303080958_remove_decompiled_smart_contracts_table.exs +++ b/apps/explorer/priv/repo/migrations/20250303080958_remove_decompiled_smart_contracts_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RemoveDecompiledSmartContractsTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250311090608_add_erc_7760_to_proxy_type.exs b/apps/explorer/priv/repo/migrations/20250311090608_add_erc_7760_to_proxy_type.exs index a99b9a8fcf51..60f48db465cd 100644 --- a/apps/explorer/priv/repo/migrations/20250311090608_add_erc_7760_to_proxy_type.exs +++ b/apps/explorer/priv/repo/migrations/20250311090608_add_erc_7760_to_proxy_type.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddErc7760ToProxyType do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250318091828_add_metadata_url.exs b/apps/explorer/priv/repo/migrations/20250318091828_add_metadata_url.exs index b53db5ad9c97..e323ff468227 100644 --- a/apps/explorer/priv/repo/migrations/20250318091828_add_metadata_url.exs +++ b/apps/explorer/priv/repo/migrations/20250318091828_add_metadata_url.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddMetadataURL do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250319163945_missing_block_ranges_add_priority.exs b/apps/explorer/priv/repo/migrations/20250319163945_missing_block_ranges_add_priority.exs index aaede59033e3..ecc19cb39f16 100644 --- a/apps/explorer/priv/repo/migrations/20250319163945_missing_block_ranges_add_priority.exs +++ b/apps/explorer/priv/repo/migrations/20250319163945_missing_block_ranges_add_priority.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.MissingBlockRangesAddPriority do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250328104924_signed_authorizations_nonce_change_type_to_numeric.exs b/apps/explorer/priv/repo/migrations/20250328104924_signed_authorizations_nonce_change_type_to_numeric.exs index 484cfeb5ea2f..876c55aa5831 100644 --- a/apps/explorer/priv/repo/migrations/20250328104924_signed_authorizations_nonce_change_type_to_numeric.exs +++ b/apps/explorer/priv/repo/migrations/20250328104924_signed_authorizations_nonce_change_type_to_numeric.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.SignedAuthorizationsNonceChangeTypeToNumeric do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250505123201_create_multichain_search_db_export_retry_queue_table.exs b/apps/explorer/priv/repo/migrations/20250505123201_create_multichain_search_db_export_retry_queue_table.exs index 008401ce7ba8..4a5592780856 100644 --- a/apps/explorer/priv/repo/migrations/20250505123201_create_multichain_search_db_export_retry_queue_table.exs +++ b/apps/explorer/priv/repo/migrations/20250505123201_create_multichain_search_db_export_retry_queue_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateMultichainSearchDbExportRetryQueueTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250512083932_add_authorization_status.exs b/apps/explorer/priv/repo/migrations/20250512083932_add_authorization_status.exs index 6c07291dbe55..f6d39b9ce5db 100644 --- a/apps/explorer/priv/repo/migrations/20250512083932_add_authorization_status.exs +++ b/apps/explorer/priv/repo/migrations/20250512083932_add_authorization_status.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddAuthorizationStatus do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250526111446_rename_multichain_search_db_export_retry_queue_table.exs b/apps/explorer/priv/repo/migrations/20250526111446_rename_multichain_search_db_export_retry_queue_table.exs index 21aeb318b716..dfa14af6fce5 100644 --- a/apps/explorer/priv/repo/migrations/20250526111446_rename_multichain_search_db_export_retry_queue_table.exs +++ b/apps/explorer/priv/repo/migrations/20250526111446_rename_multichain_search_db_export_retry_queue_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RenameMultichainSearchDbExportRetryQueueTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250526114340_add_block_range_and_retries_number_to_multichain_search_db_export_queue_table.exs b/apps/explorer/priv/repo/migrations/20250526114340_add_block_range_and_retries_number_to_multichain_search_db_export_queue_table.exs index 581dda6fe6dc..ac1bc2fd641c 100644 --- a/apps/explorer/priv/repo/migrations/20250526114340_add_block_range_and_retries_number_to_multichain_search_db_export_queue_table.exs +++ b/apps/explorer/priv/repo/migrations/20250526114340_add_block_range_and_retries_number_to_multichain_search_db_export_queue_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddBlockRangeAndRetriesNumberToMultichainSearchDbMainExportQueueTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250529150808_add_block_range_index_to_multichain_search_db_export_queue_table.exs b/apps/explorer/priv/repo/migrations/20250529150808_add_block_range_index_to_multichain_search_db_export_queue_table.exs index f631c3395a97..531155cd70a4 100644 --- a/apps/explorer/priv/repo/migrations/20250529150808_add_block_range_index_to_multichain_search_db_export_queue_table.exs +++ b/apps/explorer/priv/repo/migrations/20250529150808_add_block_range_index_to_multichain_search_db_export_queue_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddBlockRangeIndexToMultichainSearchDbMainExportQueueTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250609130618_add_multichain_search_db_balances_export_queue_table.exs b/apps/explorer/priv/repo/migrations/20250609130618_add_multichain_search_db_balances_export_queue_table.exs index 44ef6f6ce029..227eb11c0edf 100644 --- a/apps/explorer/priv/repo/migrations/20250609130618_add_multichain_search_db_balances_export_queue_table.exs +++ b/apps/explorer/priv/repo/migrations/20250609130618_add_multichain_search_db_balances_export_queue_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddMultichainSearchDbBalancesExportQueueTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250613144606_drop_address_coin_balances_value_fetched_at_index.exs b/apps/explorer/priv/repo/migrations/20250613144606_drop_address_coin_balances_value_fetched_at_index.exs index 615cf3ffcb9c..7dfc37f3abbc 100644 --- a/apps/explorer/priv/repo/migrations/20250613144606_drop_address_coin_balances_value_fetched_at_index.exs +++ b/apps/explorer/priv/repo/migrations/20250613144606_drop_address_coin_balances_value_fetched_at_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropAddressCoinBalancesValueFetchedAtIndex do use Ecto.Migration @disable_ddl_transaction true diff --git a/apps/explorer/priv/repo/migrations/20250704124014_add_timestamp_to_event_notifications.exs b/apps/explorer/priv/repo/migrations/20250704124014_add_timestamp_to_event_notifications.exs index 124fa572b7e2..72e567c458b1 100644 --- a/apps/explorer/priv/repo/migrations/20250704124014_add_timestamp_to_event_notifications.exs +++ b/apps/explorer/priv/repo/migrations/20250704124014_add_timestamp_to_event_notifications.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddTimestampToEventNotifications do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250714093329_add_multichain_search_db_token_info_export_queue_table.exs b/apps/explorer/priv/repo/migrations/20250714093329_add_multichain_search_db_token_info_export_queue_table.exs index 3fff03c98db2..9c92833abacf 100644 --- a/apps/explorer/priv/repo/migrations/20250714093329_add_multichain_search_db_token_info_export_queue_table.exs +++ b/apps/explorer/priv/repo/migrations/20250714093329_add_multichain_search_db_token_info_export_queue_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddMultichainSearchDbTokenInfoExportQueueTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250718092418_refactor_proxy_implementations.exs b/apps/explorer/priv/repo/migrations/20250718092418_refactor_proxy_implementations.exs index b3fcd055cd7d..1abcfbba5122 100644 --- a/apps/explorer/priv/repo/migrations/20250718092418_refactor_proxy_implementations.exs +++ b/apps/explorer/priv/repo/migrations/20250718092418_refactor_proxy_implementations.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RefactorProxyImplementations do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250725162308_reset_tokens_skip_metadata.exs b/apps/explorer/priv/repo/migrations/20250725162308_reset_tokens_skip_metadata.exs index 456638dd0c98..9bc7c53d7a7a 100644 --- a/apps/explorer/priv/repo/migrations/20250725162308_reset_tokens_skip_metadata.exs +++ b/apps/explorer/priv/repo/migrations/20250725162308_reset_tokens_skip_metadata.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ResetTokensSkipMetadata do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250812000000_internal_transactions_drop_not_null_constraints.exs b/apps/explorer/priv/repo/migrations/20250812000000_internal_transactions_drop_not_null_constraints.exs index ebcfa15fcb48..f407ad8be772 100644 --- a/apps/explorer/priv/repo/migrations/20250812000000_internal_transactions_drop_not_null_constraints.exs +++ b/apps/explorer/priv/repo/migrations/20250812000000_internal_transactions_drop_not_null_constraints.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.InternalTransactionsDropNotNullConstraints do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250814065910_add_multichain_search_db_counters_export_queue_table.exs b/apps/explorer/priv/repo/migrations/20250814065910_add_multichain_search_db_counters_export_queue_table.exs index bbe3243f05eb..65b79ebe8470 100644 --- a/apps/explorer/priv/repo/migrations/20250814065910_add_multichain_search_db_counters_export_queue_table.exs +++ b/apps/explorer/priv/repo/migrations/20250814065910_add_multichain_search_db_counters_export_queue_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddMultichainSearchDbCountersExportQueueTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250820121833_change_chain_id_type_in_signed_authorization.exs b/apps/explorer/priv/repo/migrations/20250820121833_change_chain_id_type_in_signed_authorization.exs index 3be90d80a771..cb6e91f1269d 100644 --- a/apps/explorer/priv/repo/migrations/20250820121833_change_chain_id_type_in_signed_authorization.exs +++ b/apps/explorer/priv/repo/migrations/20250820121833_change_chain_id_type_in_signed_authorization.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ChangeChainIdTypeInSignedAuthorization do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250901144042_create_internal_transaction_delete_queue.exs b/apps/explorer/priv/repo/migrations/20250901144042_create_internal_transaction_delete_queue.exs index 59f00c6d71d3..e35a9a358c8e 100644 --- a/apps/explorer/priv/repo/migrations/20250901144042_create_internal_transaction_delete_queue.exs +++ b/apps/explorer/priv/repo/migrations/20250901144042_create_internal_transaction_delete_queue.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateInternalTransactionDeleteQueue do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250908062439_add_call_type_enum_to_internal_transactions.exs b/apps/explorer/priv/repo/migrations/20250908062439_add_call_type_enum_to_internal_transactions.exs index 20b1976e8883..87dd5fa42ef2 100644 --- a/apps/explorer/priv/repo/migrations/20250908062439_add_call_type_enum_to_internal_transactions.exs +++ b/apps/explorer/priv/repo/migrations/20250908062439_add_call_type_enum_to_internal_transactions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddCallTypeEnumToInternalTransactions do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20250915135943_create_transaction_errors.exs b/apps/explorer/priv/repo/migrations/20250915135943_create_transaction_errors.exs index 135298e18119..ddddef86a017 100644 --- a/apps/explorer/priv/repo/migrations/20250915135943_create_transaction_errors.exs +++ b/apps/explorer/priv/repo/migrations/20250915135943_create_transaction_errors.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateTransactionErrors do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20251020144203_add_hot_smart_contracts_daily.exs b/apps/explorer/priv/repo/migrations/20251020144203_add_hot_smart_contracts_daily.exs index cb424d2653a8..be589f341a54 100644 --- a/apps/explorer/priv/repo/migrations/20251020144203_add_hot_smart_contracts_daily.exs +++ b/apps/explorer/priv/repo/migrations/20251020144203_add_hot_smart_contracts_daily.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddHotContractsDaily do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20251104134603_create_address_ids_to_address_hashes.exs b/apps/explorer/priv/repo/migrations/20251104134603_create_address_ids_to_address_hashes.exs index 34e4506c2fc1..14efd21f4088 100644 --- a/apps/explorer/priv/repo/migrations/20251104134603_create_address_ids_to_address_hashes.exs +++ b/apps/explorer/priv/repo/migrations/20251104134603_create_address_ids_to_address_hashes.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateAddressIdsToAddressHashes do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20251104135728_create_internal_transactions_address_placeholders.exs b/apps/explorer/priv/repo/migrations/20251104135728_create_internal_transactions_address_placeholders.exs index 9123aba577f0..cbcaf1a8bde0 100644 --- a/apps/explorer/priv/repo/migrations/20251104135728_create_internal_transactions_address_placeholders.exs +++ b/apps/explorer/priv/repo/migrations/20251104135728_create_internal_transactions_address_placeholders.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateInternalTransactionsAddressPlaceholders do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20251111085348_reset_sanitize_duplicated_logs_migration.exs b/apps/explorer/priv/repo/migrations/20251111085348_reset_sanitize_duplicated_logs_migration.exs index c098f716e66b..cea0c11cc9e9 100644 --- a/apps/explorer/priv/repo/migrations/20251111085348_reset_sanitize_duplicated_logs_migration.exs +++ b/apps/explorer/priv/repo/migrations/20251111085348_reset_sanitize_duplicated_logs_migration.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ResetSanitizeDuplicatedLogsMigration do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20251115202635_drop_tokens_contract_address_hash_index.exs b/apps/explorer/priv/repo/migrations/20251115202635_drop_tokens_contract_address_hash_index.exs index abd0461c3be1..c4b630a54d6e 100644 --- a/apps/explorer/priv/repo/migrations/20251115202635_drop_tokens_contract_address_hash_index.exs +++ b/apps/explorer/priv/repo/migrations/20251115202635_drop_tokens_contract_address_hash_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropTokensContractAddressHashIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20251128143146_create_internal_transactions_zero_value_delete_queue.exs b/apps/explorer/priv/repo/migrations/20251128143146_create_internal_transactions_zero_value_delete_queue.exs index 87875d128ba2..51ba7ea59242 100644 --- a/apps/explorer/priv/repo/migrations/20251128143146_create_internal_transactions_zero_value_delete_queue.exs +++ b/apps/explorer/priv/repo/migrations/20251128143146_create_internal_transactions_zero_value_delete_queue.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateInternalTransactionsZeroValueDeleteQueue do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20251202092200_update_contract_methods_unique_index.exs b/apps/explorer/priv/repo/migrations/20251202092200_update_contract_methods_unique_index.exs index 47b923892b85..18f99bd60d73 100644 --- a/apps/explorer/priv/repo/migrations/20251202092200_update_contract_methods_unique_index.exs +++ b/apps/explorer/priv/repo/migrations/20251202092200_update_contract_methods_unique_index.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.UpdateContractMethodsUniqueIndex do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20251214200315_create_fhe_operations.exs b/apps/explorer/priv/repo/migrations/20251214200315_create_fhe_operations.exs index 2b84197be38e..f5d02df35f4c 100644 --- a/apps/explorer/priv/repo/migrations/20251214200315_create_fhe_operations.exs +++ b/apps/explorer/priv/repo/migrations/20251214200315_create_fhe_operations.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.CreateFheOperations do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260107090004_alter_contract_verification_status_table.exs b/apps/explorer/priv/repo/migrations/20260107090004_alter_contract_verification_status_table.exs index e1c2e428e2af..0840780d00a2 100644 --- a/apps/explorer/priv/repo/migrations/20260107090004_alter_contract_verification_status_table.exs +++ b/apps/explorer/priv/repo/migrations/20260107090004_alter_contract_verification_status_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AlterContractVerificationStatusTable do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260114143222_re_run_sanitize_incorrect_nft_migration.exs b/apps/explorer/priv/repo/migrations/20260114143222_re_run_sanitize_incorrect_nft_migration.exs index 57eb4ad3cad5..75d273f3fd68 100644 --- a/apps/explorer/priv/repo/migrations/20260114143222_re_run_sanitize_incorrect_nft_migration.exs +++ b/apps/explorer/priv/repo/migrations/20260114143222_re_run_sanitize_incorrect_nft_migration.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ReRunSanitizeIncorrectNftMigration do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260121084059_reset_tokens_extended_skip_metadata.exs b/apps/explorer/priv/repo/migrations/20260121084059_reset_tokens_extended_skip_metadata.exs index fecd40aa509d..ac2f164b95ec 100644 --- a/apps/explorer/priv/repo/migrations/20260121084059_reset_tokens_extended_skip_metadata.exs +++ b/apps/explorer/priv/repo/migrations/20260121084059_reset_tokens_extended_skip_metadata.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ResetTokensExtendedSkipMetadata do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260128120316_drop_internal_transactions_zero_value_delete_queue.exs b/apps/explorer/priv/repo/migrations/20260128120316_drop_internal_transactions_zero_value_delete_queue.exs index 68c086d073e4..26d0ca47620d 100644 --- a/apps/explorer/priv/repo/migrations/20260128120316_drop_internal_transactions_zero_value_delete_queue.exs +++ b/apps/explorer/priv/repo/migrations/20260128120316_drop_internal_transactions_zero_value_delete_queue.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropInternalTransactionsZeroValueDeleteQueue do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260128160608_add_current_token_balance_retry_fields.exs b/apps/explorer/priv/repo/migrations/20260128160608_add_current_token_balance_retry_fields.exs index 7509acdc269e..ef3eff85aaca 100644 --- a/apps/explorer/priv/repo/migrations/20260128160608_add_current_token_balance_retry_fields.exs +++ b/apps/explorer/priv/repo/migrations/20260128160608_add_current_token_balance_retry_fields.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddCurrentTokenBalanceRetryFields do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260209173317_add_csv_export_requests.exs b/apps/explorer/priv/repo/migrations/20260209173317_add_csv_export_requests.exs index 88a279f41be6..7b0fc74b6fd0 100644 --- a/apps/explorer/priv/repo/migrations/20260209173317_add_csv_export_requests.exs +++ b/apps/explorer/priv/repo/migrations/20260209173317_add_csv_export_requests.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddCsvExportRequests do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260213092943_add_internal_transactions_pk_not_null_constraint.exs b/apps/explorer/priv/repo/migrations/20260213092943_add_internal_transactions_pk_not_null_constraint.exs index 298b263dde76..c3eec2b480bb 100644 --- a/apps/explorer/priv/repo/migrations/20260213092943_add_internal_transactions_pk_not_null_constraint.exs +++ b/apps/explorer/priv/repo/migrations/20260213092943_add_internal_transactions_pk_not_null_constraint.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddInternalTransactionsPkNotNullConstraint do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260217131711_reset_token_transfer_block_consensus_migration.exs b/apps/explorer/priv/repo/migrations/20260217131711_reset_token_transfer_block_consensus_migration.exs index e759cad6719a..4e9df3834ce8 100644 --- a/apps/explorer/priv/repo/migrations/20260217131711_reset_token_transfer_block_consensus_migration.exs +++ b/apps/explorer/priv/repo/migrations/20260217131711_reset_token_transfer_block_consensus_migration.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ResetTokenTransferBlockConsensusMigration do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260220073231_vacuum_full_multichain_search_db_main_export_queue.exs b/apps/explorer/priv/repo/migrations/20260220073231_vacuum_full_multichain_search_db_main_export_queue.exs index 4249ab982397..1c4f2a6a6ac6 100644 --- a/apps/explorer/priv/repo/migrations/20260220073231_vacuum_full_multichain_search_db_main_export_queue.exs +++ b/apps/explorer/priv/repo/migrations/20260220073231_vacuum_full_multichain_search_db_main_export_queue.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.VacuumFullMultichainSearchDbMainExportQueue do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260220073239_alter_multichain_search_db_export_balances_queue_id_to_bigint.exs b/apps/explorer/priv/repo/migrations/20260220073239_alter_multichain_search_db_export_balances_queue_id_to_bigint.exs index 87fe8c54c0ec..67939a4ffcd1 100644 --- a/apps/explorer/priv/repo/migrations/20260220073239_alter_multichain_search_db_export_balances_queue_id_to_bigint.exs +++ b/apps/explorer/priv/repo/migrations/20260220073239_alter_multichain_search_db_export_balances_queue_id_to_bigint.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AlterMultichainSearchDbExportBalancesQueueIdToBigint do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260220073248_vacuum_full_multichain_search_db_export_counters_queue.exs b/apps/explorer/priv/repo/migrations/20260220073248_vacuum_full_multichain_search_db_export_counters_queue.exs index a6303e965ddf..871a419802b2 100644 --- a/apps/explorer/priv/repo/migrations/20260220073248_vacuum_full_multichain_search_db_export_counters_queue.exs +++ b/apps/explorer/priv/repo/migrations/20260220073248_vacuum_full_multichain_search_db_export_counters_queue.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.VacuumFullMultichainSearchDbExportCountersQueue do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260220073250_vacuum_full_multichain_search_db_export_token_info_queue.exs b/apps/explorer/priv/repo/migrations/20260220073250_vacuum_full_multichain_search_db_export_token_info_queue.exs index af07b8a37ef0..9ad99aadde97 100644 --- a/apps/explorer/priv/repo/migrations/20260220073250_vacuum_full_multichain_search_db_export_token_info_queue.exs +++ b/apps/explorer/priv/repo/migrations/20260220073250_vacuum_full_multichain_search_db_export_token_info_queue.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.VacuumFullMultichainSearchDbExportTokenInfoQueue do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260226120000_drop_is_vyper_contract_column.exs b/apps/explorer/priv/repo/migrations/20260226120000_drop_is_vyper_contract_column.exs index 99f0dcf2b8e4..573f9a0e420b 100644 --- a/apps/explorer/priv/repo/migrations/20260226120000_drop_is_vyper_contract_column.exs +++ b/apps/explorer/priv/repo/migrations/20260226120000_drop_is_vyper_contract_column.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.DropIsVyperContractColumn do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260305162638_change_address_names_primary_key.exs b/apps/explorer/priv/repo/migrations/20260305162638_change_address_names_primary_key.exs index b3b7f6b72b65..5af91eb00cb1 100644 --- a/apps/explorer/priv/repo/migrations/20260305162638_change_address_names_primary_key.exs +++ b/apps/explorer/priv/repo/migrations/20260305162638_change_address_names_primary_key.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.ChangeAddressNamesPrimaryKey do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260311085615_remove_internal_transactions_transaction_hash_not_null.exs b/apps/explorer/priv/repo/migrations/20260311085615_remove_internal_transactions_transaction_hash_not_null.exs index 0fd47b72d4fe..48dea8f67d9a 100644 --- a/apps/explorer/priv/repo/migrations/20260311085615_remove_internal_transactions_transaction_hash_not_null.exs +++ b/apps/explorer/priv/repo/migrations/20260311085615_remove_internal_transactions_transaction_hash_not_null.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.RemoveInternalTransactionsTransactionHashNotNull do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260317081858_add_address_ids_to_internal_transactions.exs b/apps/explorer/priv/repo/migrations/20260317081858_add_address_ids_to_internal_transactions.exs index 213dc3cf80d4..9042de90b01a 100644 --- a/apps/explorer/priv/repo/migrations/20260317081858_add_address_ids_to_internal_transactions.exs +++ b/apps/explorer/priv/repo/migrations/20260317081858_add_address_ids_to_internal_transactions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddAddressIdsToInternalTransactions do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260402093149_remove-tx-actions.exs b/apps/explorer/priv/repo/migrations/20260402093149_remove-tx-actions.exs index ad9e2e9485b6..8bf850103f24 100644 --- a/apps/explorer/priv/repo/migrations/20260402093149_remove-tx-actions.exs +++ b/apps/explorer/priv/repo/migrations/20260402093149_remove-tx-actions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule :"Elixir.Explorer.Repo.Migrations.Remove-tx-actions" do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260406100324_add_oban_v13.exs b/apps/explorer/priv/repo/migrations/20260406100324_add_oban_v13.exs index c3a9e945a5b1..b83d0bd512b7 100644 --- a/apps/explorer/priv/repo/migrations/20260406100324_add_oban_v13.exs +++ b/apps/explorer/priv/repo/migrations/20260406100324_add_oban_v13.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddObanV13 do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260407120000_add_circulating_supply_to_tokens.exs b/apps/explorer/priv/repo/migrations/20260407120000_add_circulating_supply_to_tokens.exs index 49b5208312db..73cd342b1827 100644 --- a/apps/explorer/priv/repo/migrations/20260407120000_add_circulating_supply_to_tokens.exs +++ b/apps/explorer/priv/repo/migrations/20260407120000_add_circulating_supply_to_tokens.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddCirculatingSupplyToTokens do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260506124737_add_priority_to_pending_operations.exs b/apps/explorer/priv/repo/migrations/20260506124737_add_priority_to_pending_operations.exs index 9027cf6d3750..832004ac7b79 100644 --- a/apps/explorer/priv/repo/migrations/20260506124737_add_priority_to_pending_operations.exs +++ b/apps/explorer/priv/repo/migrations/20260506124737_add_priority_to_pending_operations.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.AddPriorityToPendingOperations do use Ecto.Migration diff --git a/apps/explorer/priv/repo/migrations/20260511114944_update_oban_to_v14.exs b/apps/explorer/priv/repo/migrations/20260511114944_update_oban_to_v14.exs index 33d274af01c6..f8dbeaac997d 100644 --- a/apps/explorer/priv/repo/migrations/20260511114944_update_oban_to_v14.exs +++ b/apps/explorer/priv/repo/migrations/20260511114944_update_oban_to_v14.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Migrations.UpdateObanToV14 do use Ecto.Migration diff --git a/apps/explorer/priv/repo/seeds.exs b/apps/explorer/priv/repo/seeds.exs index ba0f7b4f39d3..a960918527aa 100644 --- a/apps/explorer/priv/repo/seeds.exs +++ b/apps/explorer/priv/repo/seeds.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # Script for populating the database. You can run it as: # # mix run priv/repo/seeds.exs diff --git a/apps/explorer/priv/rsk/migrations/20230724094744_add_rootstock_fields_to_blocks.exs b/apps/explorer/priv/rsk/migrations/20230724094744_add_rootstock_fields_to_blocks.exs index 40bbbc79793b..5b26b9a05a35 100644 --- a/apps/explorer/priv/rsk/migrations/20230724094744_add_rootstock_fields_to_blocks.exs +++ b/apps/explorer/priv/rsk/migrations/20230724094744_add_rootstock_fields_to_blocks.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.RSK.Migrations.AddRootstockFieldsToBlocks do use Ecto.Migration diff --git a/apps/explorer/priv/rsk/migrations/20231004101922_populate_pending_block_ops_with_historic_blocks.exs b/apps/explorer/priv/rsk/migrations/20231004101922_populate_pending_block_ops_with_historic_blocks.exs index cef3c3968be8..e53dd7a2208e 100644 --- a/apps/explorer/priv/rsk/migrations/20231004101922_populate_pending_block_ops_with_historic_blocks.exs +++ b/apps/explorer/priv/rsk/migrations/20231004101922_populate_pending_block_ops_with_historic_blocks.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.RSK.Migrations.PopulatePendingBlockOpsWithHistoricBlocks do use Ecto.Migration diff --git a/apps/explorer/priv/scroll/migrations/20240710101931_add_fee_fields.exs b/apps/explorer/priv/scroll/migrations/20240710101931_add_fee_fields.exs index e3cbaa630f8a..19133d1e9b75 100644 --- a/apps/explorer/priv/scroll/migrations/20240710101931_add_fee_fields.exs +++ b/apps/explorer/priv/scroll/migrations/20240710101931_add_fee_fields.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Scroll.Migrations.AddFeeFields do use Ecto.Migration diff --git a/apps/explorer/priv/scroll/migrations/20240807114346_add_queue_index_field.exs b/apps/explorer/priv/scroll/migrations/20240807114346_add_queue_index_field.exs index f49c6d9d85b3..8b44d4ba7fd8 100644 --- a/apps/explorer/priv/scroll/migrations/20240807114346_add_queue_index_field.exs +++ b/apps/explorer/priv/scroll/migrations/20240807114346_add_queue_index_field.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Scroll.Migrations.AddQueueIndexField do use Ecto.Migration diff --git a/apps/explorer/priv/scroll/migrations/20240815102318_add_bridge_table.exs b/apps/explorer/priv/scroll/migrations/20240815102318_add_bridge_table.exs index 44bcd091b58d..65d06f25204a 100644 --- a/apps/explorer/priv/scroll/migrations/20240815102318_add_bridge_table.exs +++ b/apps/explorer/priv/scroll/migrations/20240815102318_add_bridge_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Scroll.Migrations.AddBridgeTable do use Ecto.Migration diff --git a/apps/explorer/priv/scroll/migrations/20240913114630_add_batches_tables.exs b/apps/explorer/priv/scroll/migrations/20240913114630_add_batches_tables.exs index 139136987e6d..591bf6b85809 100644 --- a/apps/explorer/priv/scroll/migrations/20240913114630_add_batches_tables.exs +++ b/apps/explorer/priv/scroll/migrations/20240913114630_add_batches_tables.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Scroll.Migrations.AddBatchesTables do use Ecto.Migration diff --git a/apps/explorer/priv/scroll/migrations/20241016105249_rename_fields.exs b/apps/explorer/priv/scroll/migrations/20241016105249_rename_fields.exs index 304d409c2ec6..d83124d3f109 100644 --- a/apps/explorer/priv/scroll/migrations/20241016105249_rename_fields.exs +++ b/apps/explorer/priv/scroll/migrations/20241016105249_rename_fields.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Scroll.Migrations.RenameFields do use Ecto.Migration diff --git a/apps/explorer/priv/shibarium/migrations/20231024091228_add_bridge_table.exs b/apps/explorer/priv/shibarium/migrations/20231024091228_add_bridge_table.exs index 4fb2fe71c99a..2e5600d5a40d 100644 --- a/apps/explorer/priv/shibarium/migrations/20231024091228_add_bridge_table.exs +++ b/apps/explorer/priv/shibarium/migrations/20231024091228_add_bridge_table.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Shibarium.Migrations.AddBridgeTable do use Ecto.Migration diff --git a/apps/explorer/priv/shrunk_internal_transactions/migrations/20240717080512_remove_internal_transactions_constraints.exs b/apps/explorer/priv/shrunk_internal_transactions/migrations/20240717080512_remove_internal_transactions_constraints.exs index a2bbdbc7cde9..076942d3d9de 100644 --- a/apps/explorer/priv/shrunk_internal_transactions/migrations/20240717080512_remove_internal_transactions_constraints.exs +++ b/apps/explorer/priv/shrunk_internal_transactions/migrations/20240717080512_remove_internal_transactions_constraints.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.ShrunkInternalTransactions.Migrations.RemoveInternalTransactionsConstraints do use Ecto.Migration diff --git a/apps/explorer/priv/shrunk_internal_transactions/migrations/20250919150023_drop_call_has_error_id_or_result_constraint.exs b/apps/explorer/priv/shrunk_internal_transactions/migrations/20250919150023_drop_call_has_error_id_or_result_constraint.exs index f715875a7ea4..1012e0d88a05 100644 --- a/apps/explorer/priv/shrunk_internal_transactions/migrations/20250919150023_drop_call_has_error_id_or_result_constraint.exs +++ b/apps/explorer/priv/shrunk_internal_transactions/migrations/20250919150023_drop_call_has_error_id_or_result_constraint.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.ShrunkInternalTransactions.Migrations.DropCallHasErrorIdOrResultConstraint do use Ecto.Migration diff --git a/apps/explorer/priv/shrunk_internal_transactions/migrations/20260407115103_remove_call_has_error_id_or_result_constraint.exs b/apps/explorer/priv/shrunk_internal_transactions/migrations/20260407115103_remove_call_has_error_id_or_result_constraint.exs index 4272a6dcb226..7e953a2b3ddc 100644 --- a/apps/explorer/priv/shrunk_internal_transactions/migrations/20260407115103_remove_call_has_error_id_or_result_constraint.exs +++ b/apps/explorer/priv/shrunk_internal_transactions/migrations/20260407115103_remove_call_has_error_id_or_result_constraint.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.ShrunkInternalTransactions.Migrations.RemoveCallHasErrorIdOrResultConstraint do use Ecto.Migration diff --git a/apps/explorer/priv/stability/migrations/20240203091010_add_stability_validators.exs b/apps/explorer/priv/stability/migrations/20240203091010_add_stability_validators.exs index 67e5580fef13..6f06675012c9 100644 --- a/apps/explorer/priv/stability/migrations/20240203091010_add_stability_validators.exs +++ b/apps/explorer/priv/stability/migrations/20240203091010_add_stability_validators.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Stability.Migrations.AddStabilityValidators do use Ecto.Migration diff --git a/apps/explorer/priv/stability/migrations/20250602163043_add_validator_blocks_validated_counter.exs b/apps/explorer/priv/stability/migrations/20250602163043_add_validator_blocks_validated_counter.exs index dfbc9406ccce..428380242c28 100644 --- a/apps/explorer/priv/stability/migrations/20250602163043_add_validator_blocks_validated_counter.exs +++ b/apps/explorer/priv/stability/migrations/20250602163043_add_validator_blocks_validated_counter.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Stability.Migrations.AddValidatorBlocksValidatedCounter do use Ecto.Migration diff --git a/apps/explorer/priv/suave/migrations/20230921120210_add_suave_transaction_fields.exs b/apps/explorer/priv/suave/migrations/20230921120210_add_suave_transaction_fields.exs index 2476d0b42fab..04d2b00bb97e 100644 --- a/apps/explorer/priv/suave/migrations/20230921120210_add_suave_transaction_fields.exs +++ b/apps/explorer/priv/suave/migrations/20230921120210_add_suave_transaction_fields.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Suave.Migrations.AddSuaveTransactionFields do use Ecto.Migration diff --git a/apps/explorer/priv/zilliqa/migrations/20240927123039_create_quorum_certificate.exs b/apps/explorer/priv/zilliqa/migrations/20240927123039_create_quorum_certificate.exs index f3156cae9bdb..a0d3e6dc0817 100644 --- a/apps/explorer/priv/zilliqa/migrations/20240927123039_create_quorum_certificate.exs +++ b/apps/explorer/priv/zilliqa/migrations/20240927123039_create_quorum_certificate.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Zilliqa.Migrations.CreateQuorumCertificate do use Ecto.Migration diff --git a/apps/explorer/priv/zilliqa/migrations/20240927123101_create_aggregate_quorum_certificate.exs b/apps/explorer/priv/zilliqa/migrations/20240927123101_create_aggregate_quorum_certificate.exs index dd21c9cff3de..580da1e0e901 100644 --- a/apps/explorer/priv/zilliqa/migrations/20240927123101_create_aggregate_quorum_certificate.exs +++ b/apps/explorer/priv/zilliqa/migrations/20240927123101_create_aggregate_quorum_certificate.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Zilliqa.Migrations.CreateAggregateQuorumCertificate do use Ecto.Migration diff --git a/apps/explorer/priv/zilliqa/migrations/20240927123113_create_nested_quorum_certificate.exs b/apps/explorer/priv/zilliqa/migrations/20240927123113_create_nested_quorum_certificate.exs index 01bd2c042238..4826fb8b65d8 100644 --- a/apps/explorer/priv/zilliqa/migrations/20240927123113_create_nested_quorum_certificate.exs +++ b/apps/explorer/priv/zilliqa/migrations/20240927123113_create_nested_quorum_certificate.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Zilliqa.Migrations.CreateNestedQuorumCertificate do use Ecto.Migration diff --git a/apps/explorer/priv/zilliqa/migrations/20241015095021_add_view_to_block.exs b/apps/explorer/priv/zilliqa/migrations/20241015095021_add_view_to_block.exs index d988964daf89..e21c067d7cc9 100644 --- a/apps/explorer/priv/zilliqa/migrations/20241015095021_add_view_to_block.exs +++ b/apps/explorer/priv/zilliqa/migrations/20241015095021_add_view_to_block.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Zilliqa.Migrations.AddViewToBlock do use Ecto.Migration diff --git a/apps/explorer/priv/zilliqa/migrations/20241027171945_modify_smart_contracts.exs b/apps/explorer/priv/zilliqa/migrations/20241027171945_modify_smart_contracts.exs index f181216a48f6..8c0d8be606f7 100644 --- a/apps/explorer/priv/zilliqa/migrations/20241027171945_modify_smart_contracts.exs +++ b/apps/explorer/priv/zilliqa/migrations/20241027171945_modify_smart_contracts.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Zilliqa.Migrations.ModifySmartContracts do use Ecto.Migration diff --git a/apps/explorer/priv/zilliqa/migrations/20250106185108_create_zilliqa_stakers.exs b/apps/explorer/priv/zilliqa/migrations/20250106185108_create_zilliqa_stakers.exs index acd40cd7e6c5..136738ceeb29 100644 --- a/apps/explorer/priv/zilliqa/migrations/20250106185108_create_zilliqa_stakers.exs +++ b/apps/explorer/priv/zilliqa/migrations/20250106185108_create_zilliqa_stakers.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Zilliqa.Migrations.CreateZilliqaStakers do use Ecto.Migration diff --git a/apps/explorer/priv/zilliqa/migrations/20250303201406_decrease_scilla_language_index_by_one.exs b/apps/explorer/priv/zilliqa/migrations/20250303201406_decrease_scilla_language_index_by_one.exs index bc7d4cb8742a..1167492e898e 100644 --- a/apps/explorer/priv/zilliqa/migrations/20250303201406_decrease_scilla_language_index_by_one.exs +++ b/apps/explorer/priv/zilliqa/migrations/20250303201406_decrease_scilla_language_index_by_one.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Zilliqa.Migrations.DecreaseScillaLanguageIndexByOne do @moduledoc """ Migration to update the language identifier for Scilla smart contracts in Zilliqa. diff --git a/apps/explorer/priv/zilliqa/migrations/20251003112047_create_zrc2_token_tables.exs b/apps/explorer/priv/zilliqa/migrations/20251003112047_create_zrc2_token_tables.exs index 499c75691649..5581e9fe6c6d 100644 --- a/apps/explorer/priv/zilliqa/migrations/20251003112047_create_zrc2_token_tables.exs +++ b/apps/explorer/priv/zilliqa/migrations/20251003112047_create_zrc2_token_tables.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.Zilliqa.Migrations.CreateZRC2TokenTables do use Ecto.Migration diff --git a/apps/explorer/priv/zk_sync/migrations/20211202082101_make_tranaction_r_s_v_optional.exs b/apps/explorer/priv/zk_sync/migrations/20211202082101_make_tranaction_r_s_v_optional.exs index 7bf465fb5bda..f05f5f6d43f8 100644 --- a/apps/explorer/priv/zk_sync/migrations/20211202082101_make_tranaction_r_s_v_optional.exs +++ b/apps/explorer/priv/zk_sync/migrations/20211202082101_make_tranaction_r_s_v_optional.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.ZkSync.Migrations.MakeTransactionRSVOptional do use Ecto.Migration diff --git a/apps/explorer/priv/zk_sync/migrations/20231213171043_create_zksync_tables.exs b/apps/explorer/priv/zk_sync/migrations/20231213171043_create_zksync_tables.exs index 1e7d02c1d7c0..031048713037 100644 --- a/apps/explorer/priv/zk_sync/migrations/20231213171043_create_zksync_tables.exs +++ b/apps/explorer/priv/zk_sync/migrations/20231213171043_create_zksync_tables.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.ZkSync.Migrations.CreateZkSyncTables do use Ecto.Migration diff --git a/apps/explorer/priv/zk_sync/migrations/20240611091814_rename_field_in_batch_transactions.exs b/apps/explorer/priv/zk_sync/migrations/20240611091814_rename_field_in_batch_transactions.exs index 185a07079db0..b2c30a81e658 100644 --- a/apps/explorer/priv/zk_sync/migrations/20240611091814_rename_field_in_batch_transactions.exs +++ b/apps/explorer/priv/zk_sync/migrations/20240611091814_rename_field_in_batch_transactions.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.ZkSync.Migrations.RenameFieldInBatchTransactions do use Ecto.Migration diff --git a/apps/explorer/priv/zk_sync/migrations/20240716095237_add_zk_compiler_version_to_smart_contracts.exs b/apps/explorer/priv/zk_sync/migrations/20240716095237_add_zk_compiler_version_to_smart_contracts.exs index dd1202656f33..4b04c62e9902 100644 --- a/apps/explorer/priv/zk_sync/migrations/20240716095237_add_zk_compiler_version_to_smart_contracts.exs +++ b/apps/explorer/priv/zk_sync/migrations/20240716095237_add_zk_compiler_version_to_smart_contracts.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.ZkSync.Migrations.AddZkCompilerVersionToSmartContracts do use Ecto.Migration diff --git a/apps/explorer/priv/zk_sync/migrations/20241015093336_rename_tx_hash_field_zksync.exs b/apps/explorer/priv/zk_sync/migrations/20241015093336_rename_tx_hash_field_zksync.exs index e62c62816547..cfe635c77a41 100644 --- a/apps/explorer/priv/zk_sync/migrations/20241015093336_rename_tx_hash_field_zksync.exs +++ b/apps/explorer/priv/zk_sync/migrations/20241015093336_rename_tx_hash_field_zksync.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.ZkSync.Migrations.RenameTxHashFieldArbitrum do use Ecto.Migration diff --git a/apps/explorer/priv/zk_sync/migrations/20241028102407_rename_tx_count_fields_zksync.exs b/apps/explorer/priv/zk_sync/migrations/20241028102407_rename_tx_count_fields_zksync.exs index dd89c64fce22..2f71a123dbba 100644 --- a/apps/explorer/priv/zk_sync/migrations/20241028102407_rename_tx_count_fields_zksync.exs +++ b/apps/explorer/priv/zk_sync/migrations/20241028102407_rename_tx_count_fields_zksync.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.ZkSync.Migrations.RenameTxCountFieldsZksync do use Ecto.Migration diff --git a/apps/explorer/priv/zk_sync/migrations/20241028102853_add_contract_code_refetched.exs b/apps/explorer/priv/zk_sync/migrations/20241028102853_add_contract_code_refetched.exs index 7f24a305d115..4082367c526d 100644 --- a/apps/explorer/priv/zk_sync/migrations/20241028102853_add_contract_code_refetched.exs +++ b/apps/explorer/priv/zk_sync/migrations/20241028102853_add_contract_code_refetched.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.ZkSync.Migrations.AddContractCodeRefetched do use Ecto.Migration diff --git a/apps/explorer/test/explorer/account/identity_test.exs b/apps/explorer/test/explorer/account/identity_test.exs index 2bcb06708a12..f2ec6da9f9aa 100644 --- a/apps/explorer/test/explorer/account/identity_test.exs +++ b/apps/explorer/test/explorer/account/identity_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.IdentityTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/account/notifier/email_test.exs b/apps/explorer/test/explorer/account/notifier/email_test.exs index 6541474eb8bd..a46c95ce8903 100644 --- a/apps/explorer/test/explorer/account/notifier/email_test.exs +++ b/apps/explorer/test/explorer/account/notifier/email_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.Notifier.EmailTest do use ExUnit.Case diff --git a/apps/explorer/test/explorer/account/notifier/notify_test.exs b/apps/explorer/test/explorer/account/notifier/notify_test.exs index 72884d5dde9f..2775b07186d5 100644 --- a/apps/explorer/test/explorer/account/notifier/notify_test.exs +++ b/apps/explorer/test/explorer/account/notifier/notify_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.Notifier.NotifyTest do # use ExUnit.Case use Explorer.DataCase diff --git a/apps/explorer/test/explorer/account/notifier/summary_test.exs b/apps/explorer/test/explorer/account/notifier/summary_test.exs index 96a65c15b037..ce8e6c676410 100644 --- a/apps/explorer/test/explorer/account/notifier/summary_test.exs +++ b/apps/explorer/test/explorer/account/notifier/summary_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Account.Notifier.SummaryTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/accounts/accounts_test.exs b/apps/explorer/test/explorer/accounts/accounts_test.exs index 37c61d414b47..8e54a628ab6d 100644 --- a/apps/explorer/test/explorer/accounts/accounts_test.exs +++ b/apps/explorer/test/explorer/accounts/accounts_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.AccountsTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/accounts/user_contact_test.exs b/apps/explorer/test/explorer/accounts/user_contact_test.exs index a93a97911cc3..8b5c2d4244ac 100644 --- a/apps/explorer/test/explorer/accounts/user_contact_test.exs +++ b/apps/explorer/test/explorer/accounts/user_contact_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Accounts.UserContactTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/accounts/user_test.exs b/apps/explorer/test/explorer/accounts/user_test.exs index adf1475a0597..2f91c88d233a 100644 --- a/apps/explorer/test/explorer/accounts/user_test.exs +++ b/apps/explorer/test/explorer/accounts/user_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Accounts.UserTest do use ExUnit.Case diff --git a/apps/explorer/test/explorer/admin/administrator/role_test.exs b/apps/explorer/test/explorer/admin/administrator/role_test.exs index c65b05904bf2..2787962ec846 100644 --- a/apps/explorer/test/explorer/admin/administrator/role_test.exs +++ b/apps/explorer/test/explorer/admin/administrator/role_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Admin.Administrator.RoleTest do use ExUnit.Case diff --git a/apps/explorer/test/explorer/admin/recovery_test.exs b/apps/explorer/test/explorer/admin/recovery_test.exs index 755a812df53e..883184e7e53c 100644 --- a/apps/explorer/test/explorer/admin/recovery_test.exs +++ b/apps/explorer/test/explorer/admin/recovery_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Admin.RecoveryTest do use ExUnit.Case, async: false diff --git a/apps/explorer/test/explorer/admin_test.exs b/apps/explorer/test/explorer/admin_test.exs index 9afb7b988715..09bf715e03dd 100644 --- a/apps/explorer/test/explorer/admin_test.exs +++ b/apps/explorer/test/explorer/admin_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.AdminTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/bloom_filter_test.exs b/apps/explorer/test/explorer/bloom_filter_test.exs index e9ec4a2c5106..148b5331248d 100644 --- a/apps/explorer/test/explorer/bloom_filter_test.exs +++ b/apps/explorer/test/explorer/bloom_filter_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.BloomFilterTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/address/coin_balance_test.exs b/apps/explorer/test/explorer/chain/address/coin_balance_test.exs index 554da911ea37..ab76e3fdb1db 100644 --- a/apps/explorer/test/explorer/chain/address/coin_balance_test.exs +++ b/apps/explorer/test/explorer/chain/address/coin_balance_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.CoinBalanceTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/address/current_token_balance_test.exs b/apps/explorer/test/explorer/chain/address/current_token_balance_test.exs index 6ca3bd6f0092..874139efe3b1 100644 --- a/apps/explorer/test/explorer/chain/address/current_token_balance_test.exs +++ b/apps/explorer/test/explorer/chain/address/current_token_balance_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.CurrentTokenBalanceTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/address/token_balance_test.exs b/apps/explorer/test/explorer/chain/address/token_balance_test.exs index 0e3825e2e57c..9749c8b5d769 100644 --- a/apps/explorer/test/explorer/chain/address/token_balance_test.exs +++ b/apps/explorer/test/explorer/chain/address/token_balance_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.TokenBalanceTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/address/token_test.exs b/apps/explorer/test/explorer/chain/address/token_test.exs index 849ea4a18891..852edaf31a2d 100644 --- a/apps/explorer/test/explorer/chain/address/token_test.exs +++ b/apps/explorer/test/explorer/chain/address/token_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.TokenTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/address_test.exs b/apps/explorer/test/explorer/chain/address_test.exs index 97107539c7af..f0853878fcd6 100644 --- a/apps/explorer/test/explorer/chain/address_test.exs +++ b/apps/explorer/test/explorer/chain/address_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.AddressTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/beacon/deposit_test.exs b/apps/explorer/test/explorer/chain/beacon/deposit_test.exs index 37caca82eb69..a9b490a1606f 100644 --- a/apps/explorer/test/explorer/chain/beacon/deposit_test.exs +++ b/apps/explorer/test/explorer/chain/beacon/deposit_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Beacon.DepositTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/beacon/reader_test.exs b/apps/explorer/test/explorer/chain/beacon/reader_test.exs index 2a8abb6ccaae..c65a77200b5c 100644 --- a/apps/explorer/test/explorer/chain/beacon/reader_test.exs +++ b/apps/explorer/test/explorer/chain/beacon/reader_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Beacon.ReaderTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/block/range_test.exs b/apps/explorer/test/explorer/chain/block/range_test.exs index 8ffc612c4ce4..f55649378582 100644 --- a/apps/explorer/test/explorer/chain/block/range_test.exs +++ b/apps/explorer/test/explorer/chain/block/range_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Block.RangeTest do use ExUnit.Case diff --git a/apps/explorer/test/explorer/chain/block/reader/general_test.exs b/apps/explorer/test/explorer/chain/block/reader/general_test.exs index 0f78e9aba3eb..2d1737d49f37 100644 --- a/apps/explorer/test/explorer/chain/block/reader/general_test.exs +++ b/apps/explorer/test/explorer/chain/block/reader/general_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Block.Reader.GeneralTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/block/second_degree_relation_test.exs b/apps/explorer/test/explorer/chain/block/second_degree_relation_test.exs index 1059b061d6e9..f476b412ddc0 100644 --- a/apps/explorer/test/explorer/chain/block/second_degree_relation_test.exs +++ b/apps/explorer/test/explorer/chain/block/second_degree_relation_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Block.SecondDegreeRelationTest do use Explorer.DataCase, async: true diff --git a/apps/explorer/test/explorer/chain/block_test.exs b/apps/explorer/test/explorer/chain/block_test.exs index 0c6073a8aab0..fd271313cc4e 100644 --- a/apps/explorer/test/explorer/chain/block_test.exs +++ b/apps/explorer/test/explorer/chain/block_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.BlockTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/accounts_test.exs b/apps/explorer/test/explorer/chain/cache/accounts_test.exs index a1a49bd67b92..77e4561e3cd3 100644 --- a/apps/explorer/test/explorer/chain/cache/accounts_test.exs +++ b/apps/explorer/test/explorer/chain/cache/accounts_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.AccountsTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/block_number_test.exs b/apps/explorer/test/explorer/chain/cache/block_number_test.exs index 87107fe45cec..7ac332e878e4 100644 --- a/apps/explorer/test/explorer/chain/cache/block_number_test.exs +++ b/apps/explorer/test/explorer/chain/cache/block_number_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.BlockNumberTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/blocks_test.exs b/apps/explorer/test/explorer/chain/cache/blocks_test.exs index 384a2516238c..358bd7548443 100644 --- a/apps/explorer/test/explorer/chain/cache/blocks_test.exs +++ b/apps/explorer/test/explorer/chain/cache/blocks_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.BlocksTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/celo_core_contracts_test.exs b/apps/explorer/test/explorer/chain/cache/celo_core_contracts_test.exs index 6a3284e46218..4da00718e5c9 100644 --- a/apps/explorer/test/explorer/chain/cache/celo_core_contracts_test.exs +++ b/apps/explorer/test/explorer/chain/cache/celo_core_contracts_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.CeloCoreContractsTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/chain/cache/counters/addresses_count_test.exs b/apps/explorer/test/explorer/chain/cache/counters/addresses_count_test.exs index 35b2058e176e..41900380bc53 100644 --- a/apps/explorer/test/explorer/chain/cache/counters/addresses_count_test.exs +++ b/apps/explorer/test/explorer/chain/cache/counters/addresses_count_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.AddressesCountTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/counters/addresses_sum_minus_burnt.exs b/apps/explorer/test/explorer/chain/cache/counters/addresses_sum_minus_burnt.exs index 8bbd06836b83..f1b6e3076bf0 100644 --- a/apps/explorer/test/explorer/chain/cache/counters/addresses_sum_minus_burnt.exs +++ b/apps/explorer/test/explorer/chain/cache/counters/addresses_sum_minus_burnt.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.AddressesCoinBalanceSumMinusBurntTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/counters/addresses_sum_test.exs b/apps/explorer/test/explorer/chain/cache/counters/addresses_sum_test.exs index 163361c32bb8..324873b0daad 100644 --- a/apps/explorer/test/explorer/chain/cache/counters/addresses_sum_test.exs +++ b/apps/explorer/test/explorer/chain/cache/counters/addresses_sum_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.AddressSumTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/counters/addresses_tokens_usd_sum_counter_test.exs b/apps/explorer/test/explorer/chain/cache/counters/addresses_tokens_usd_sum_counter_test.exs index 6a22aa54a071..6fb31f11301f 100644 --- a/apps/explorer/test/explorer/chain/cache/counters/addresses_tokens_usd_sum_counter_test.exs +++ b/apps/explorer/test/explorer/chain/cache/counters/addresses_tokens_usd_sum_counter_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.AddressTokensUsdSumTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/counters/average_block_time_test.exs b/apps/explorer/test/explorer/chain/cache/counters/average_block_time_test.exs index 80ce0affa2e6..0b3eed884ebd 100644 --- a/apps/explorer/test/explorer/chain/cache/counters/average_block_time_test.exs +++ b/apps/explorer/test/explorer/chain/cache/counters/average_block_time_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.AverageBlockTimeTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/counters/blocks_test.exs b/apps/explorer/test/explorer/chain/cache/counters/blocks_test.exs index 85b0dfe6fc30..5045397fda7b 100644 --- a/apps/explorer/test/explorer/chain/cache/counters/blocks_test.exs +++ b/apps/explorer/test/explorer/chain/cache/counters/blocks_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.BlocksTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/counters/contracts_test.exs b/apps/explorer/test/explorer/chain/cache/counters/contracts_test.exs index 1946e2b0c78f..e012ba3997a4 100644 --- a/apps/explorer/test/explorer/chain/cache/counters/contracts_test.exs +++ b/apps/explorer/test/explorer/chain/cache/counters/contracts_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.ContractsTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/counters/new_contracts_count_test.exs b/apps/explorer/test/explorer/chain/cache/counters/new_contracts_count_test.exs index a740ae577e29..d12bad32ca08 100644 --- a/apps/explorer/test/explorer/chain/cache/counters/new_contracts_count_test.exs +++ b/apps/explorer/test/explorer/chain/cache/counters/new_contracts_count_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.NewContractsCountTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/counters/new_pending_transactions_count_test.exs b/apps/explorer/test/explorer/chain/cache/counters/new_pending_transactions_count_test.exs index cf57ddc6aad7..2b5159b4abbd 100644 --- a/apps/explorer/test/explorer/chain/cache/counters/new_pending_transactions_count_test.exs +++ b/apps/explorer/test/explorer/chain/cache/counters/new_pending_transactions_count_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.NewPendingTransactionsCountTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/counters/new_verified_contracts_count_test.exs b/apps/explorer/test/explorer/chain/cache/counters/new_verified_contracts_count_test.exs index 11c54033939e..d2db47df9086 100644 --- a/apps/explorer/test/explorer/chain/cache/counters/new_verified_contracts_count_test.exs +++ b/apps/explorer/test/explorer/chain/cache/counters/new_verified_contracts_count_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.NewVerifiedContractsCountTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/counters/optimism/last_output_root_size_count_test.exs b/apps/explorer/test/explorer/chain/cache/counters/optimism/last_output_root_size_count_test.exs index fe5716cf09d9..6aae67bd2891 100644 --- a/apps/explorer/test/explorer/chain/cache/counters/optimism/last_output_root_size_count_test.exs +++ b/apps/explorer/test/explorer/chain/cache/counters/optimism/last_output_root_size_count_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.Optimism.LastOutputRootSizeCountTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/counters/rootstock/rootstock_locked_btc_count_test.exs b/apps/explorer/test/explorer/chain/cache/counters/rootstock/rootstock_locked_btc_count_test.exs index 08e69bc89334..ed431677faef 100644 --- a/apps/explorer/test/explorer/chain/cache/counters/rootstock/rootstock_locked_btc_count_test.exs +++ b/apps/explorer/test/explorer/chain/cache/counters/rootstock/rootstock_locked_btc_count_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.Rootstock.LockedBTCCountTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/counters/transactions_24h_count_test.exs b/apps/explorer/test/explorer/chain/cache/counters/transactions_24h_count_test.exs index 9adbaf9d5195..415905f04bb6 100644 --- a/apps/explorer/test/explorer/chain/cache/counters/transactions_24h_count_test.exs +++ b/apps/explorer/test/explorer/chain/cache/counters/transactions_24h_count_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.Transactions24hCountTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/counters/transactions_test.exs b/apps/explorer/test/explorer/chain/cache/counters/transactions_test.exs index d3ed4244e9f3..0bc082af09bf 100644 --- a/apps/explorer/test/explorer/chain/cache/counters/transactions_test.exs +++ b/apps/explorer/test/explorer/chain/cache/counters/transactions_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.TransactionsTest do use Explorer.DataCase alias Explorer.Chain.Cache.Counters.TransactionsCount diff --git a/apps/explorer/test/explorer/chain/cache/counters/verified_contracts_test.exs b/apps/explorer/test/explorer/chain/cache/counters/verified_contracts_test.exs index d5aa381ec08c..407c72faa32d 100644 --- a/apps/explorer/test/explorer/chain/cache/counters/verified_contracts_test.exs +++ b/apps/explorer/test/explorer/chain/cache/counters/verified_contracts_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.Counters.VerifiedContractsCountTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/gas_price_oracle_test.exs b/apps/explorer/test/explorer/chain/cache/gas_price_oracle_test.exs index 94797d77d887..9156ab096c14 100644 --- a/apps/explorer/test/explorer/chain/cache/gas_price_oracle_test.exs +++ b/apps/explorer/test/explorer/chain/cache/gas_price_oracle_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.GasPriceOracleTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/chain/cache/transactions_test.exs b/apps/explorer/test/explorer/chain/cache/transactions_test.exs index ae80c3077270..a95b051889bb 100644 --- a/apps/explorer/test/explorer/chain/cache/transactions_test.exs +++ b/apps/explorer/test/explorer/chain/cache/transactions_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.TransactionsTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/cache/uncles_test.exs b/apps/explorer/test/explorer/chain/cache/uncles_test.exs index 7b89718e752e..7e972b107047 100644 --- a/apps/explorer/test/explorer/chain/cache/uncles_test.exs +++ b/apps/explorer/test/explorer/chain/cache/uncles_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Cache.UnclesTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/celo/helper_test.exs b/apps/explorer/test/explorer/chain/celo/helper_test.exs index f4062cd6ad26..2612316b999b 100644 --- a/apps/explorer/test/explorer/chain/celo/helper_test.exs +++ b/apps/explorer/test/explorer/chain/celo/helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Celo.HelperTest do use ExUnit.Case, async: true doctest Explorer.Chain.Celo.Helper, import: true diff --git a/apps/explorer/test/explorer/chain/csv_export/address/logs_test.exs b/apps/explorer/test/explorer/chain/csv_export/address/logs_test.exs index cd7e6dc593d1..5a5cd0bfd089 100644 --- a/apps/explorer/test/explorer/chain/csv_export/address/logs_test.exs +++ b/apps/explorer/test/explorer/chain/csv_export/address/logs_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.LogsTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/csv_export/address/token_transfers_test.exs b/apps/explorer/test/explorer/chain/csv_export/address/token_transfers_test.exs index 336ebf3d1f9d..1f4e8ca41291 100644 --- a/apps/explorer/test/explorer/chain/csv_export/address/token_transfers_test.exs +++ b/apps/explorer/test/explorer/chain/csv_export/address/token_transfers_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.TokenTransfersTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/csv_export/address/transactions_test.exs b/apps/explorer/test/explorer/chain/csv_export/address/transactions_test.exs index 985a9f7ed68d..27a0c9c6ccb2 100644 --- a/apps/explorer/test/explorer/chain/csv_export/address/transactions_test.exs +++ b/apps/explorer/test/explorer/chain/csv_export/address/transactions_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Address.TransactionsTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/csv_export/async_helper_test.exs b/apps/explorer/test/explorer/chain/csv_export/async_helper_test.exs index fd78b59d6c10..0419d178cc8c 100644 --- a/apps/explorer/test/explorer/chain/csv_export/async_helper_test.exs +++ b/apps/explorer/test/explorer/chain/csv_export/async_helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.AsyncHelperTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/chain/csv_export/helper_test.exs b/apps/explorer/test/explorer/chain/csv_export/helper_test.exs index c3b84f1a2994..777c1f3299ae 100644 --- a/apps/explorer/test/explorer/chain/csv_export/helper_test.exs +++ b/apps/explorer/test/explorer/chain/csv_export/helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.HelperTest do use Explorer.DataCase, async: true diff --git a/apps/explorer/test/explorer/chain/csv_export/request_test.exs b/apps/explorer/test/explorer/chain/csv_export/request_test.exs index 761bbb1e5f1b..06bd2dcf2bfd 100644 --- a/apps/explorer/test/explorer/chain/csv_export/request_test.exs +++ b/apps/explorer/test/explorer/chain/csv_export/request_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.RequestTest do use Explorer.DataCase, async: false use Oban.Testing, repo: Explorer.Repo diff --git a/apps/explorer/test/explorer/chain/csv_export/requests_sanitizer_test.exs b/apps/explorer/test/explorer/chain/csv_export/requests_sanitizer_test.exs index c6df33166939..030c7be667e9 100644 --- a/apps/explorer/test/explorer/chain/csv_export/requests_sanitizer_test.exs +++ b/apps/explorer/test/explorer/chain/csv_export/requests_sanitizer_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.RequestsSanitizerTest do use Explorer.DataCase, async: false use Oban.Testing, repo: Explorer.Repo diff --git a/apps/explorer/test/explorer/chain/csv_export/token/holders_test.exs b/apps/explorer/test/explorer/chain/csv_export/token/holders_test.exs index 3244add51924..430a967bd9fe 100644 --- a/apps/explorer/test/explorer/chain/csv_export/token/holders_test.exs +++ b/apps/explorer/test/explorer/chain/csv_export/token/holders_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.Token.HoldersTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/csv_export/worker_test.exs b/apps/explorer/test/explorer/chain/csv_export/worker_test.exs index 655d622aaab9..4b05c2706cba 100644 --- a/apps/explorer/test/explorer/chain/csv_export/worker_test.exs +++ b/apps/explorer/test/explorer/chain/csv_export/worker_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CsvExport.WorkerTest do use Explorer.DataCase, async: false use Oban.Testing, repo: Explorer.Repo diff --git a/apps/explorer/test/explorer/chain/currency_helper_text.exs b/apps/explorer/test/explorer/chain/currency_helper_text.exs index 8ce8282911d2..68829ad79b80 100644 --- a/apps/explorer/test/explorer/chain/currency_helper_text.exs +++ b/apps/explorer/test/explorer/chain/currency_helper_text.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.CurrencyHelperTest do use ExUnit.Case diff --git a/apps/explorer/test/explorer/chain/data_test.exs b/apps/explorer/test/explorer/chain/data_test.exs index 95691f4bf161..54e8f9b87aeb 100644 --- a/apps/explorer/test/explorer/chain/data_test.exs +++ b/apps/explorer/test/explorer/chain/data_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.DataTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/chain/events/publisher_test.exs b/apps/explorer/test/explorer/chain/events/publisher_test.exs index 3a4822e66d35..1c03bdbf260b 100644 --- a/apps/explorer/test/explorer/chain/events/publisher_test.exs +++ b/apps/explorer/test/explorer/chain/events/publisher_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Events.PublisherTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/chain/events/subscriber_test.exs b/apps/explorer/test/explorer/chain/events/subscriber_test.exs index b26841d0efec..7ce16984d86e 100644 --- a/apps/explorer/test/explorer/chain/events/subscriber_test.exs +++ b/apps/explorer/test/explorer/chain/events/subscriber_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Events.SubscriberTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/chain/fhe/fhe_contract_checker_test.exs b/apps/explorer/test/explorer/chain/fhe/fhe_contract_checker_test.exs index 69834a64902e..76ba14b04313 100644 --- a/apps/explorer/test/explorer/chain/fhe/fhe_contract_checker_test.exs +++ b/apps/explorer/test/explorer/chain/fhe/fhe_contract_checker_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.FheContractCheckerTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/fhe/fhe_operation_test.exs b/apps/explorer/test/explorer/chain/fhe/fhe_operation_test.exs index 12428f9e09ee..76152b03606f 100644 --- a/apps/explorer/test/explorer/chain/fhe/fhe_operation_test.exs +++ b/apps/explorer/test/explorer/chain/fhe/fhe_operation_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.FheOperationTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/fhe/fhe_operator_prices_test.exs b/apps/explorer/test/explorer/chain/fhe/fhe_operator_prices_test.exs index 5caf03dac5cc..17ba13a2b467 100644 --- a/apps/explorer/test/explorer/chain/fhe/fhe_operator_prices_test.exs +++ b/apps/explorer/test/explorer/chain/fhe/fhe_operator_prices_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.FheOperatorPricesTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/chain/fhe/parser_test.exs b/apps/explorer/test/explorer/chain/fhe/parser_test.exs index b3e83bd636ba..908d1dcf8a47 100644 --- a/apps/explorer/test/explorer/chain/fhe/parser_test.exs +++ b/apps/explorer/test/explorer/chain/fhe/parser_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Fhe.ParserTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/filecoin/native_address_test.exs b/apps/explorer/test/explorer/chain/filecoin/native_address_test.exs index c8d2dcaa1966..55b35ba09cc5 100644 --- a/apps/explorer/test/explorer/chain/filecoin/native_address_test.exs +++ b/apps/explorer/test/explorer/chain/filecoin/native_address_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Filecoin.NativeAddressTest do use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/explorer/test/explorer/chain/hash/address_test.exs b/apps/explorer/test/explorer/chain/hash/address_test.exs index d603c14d38e9..500a1f72389d 100644 --- a/apps/explorer/test/explorer/chain/hash/address_test.exs +++ b/apps/explorer/test/explorer/chain/hash/address_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Hash.AddressTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/chain/hash/full_test.exs b/apps/explorer/test/explorer/chain/hash/full_test.exs index 00d02d83adde..c79b4ecaca44 100644 --- a/apps/explorer/test/explorer/chain/hash/full_test.exs +++ b/apps/explorer/test/explorer/chain/hash/full_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Hash.FullTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/chain/hash/nonce_test.exs b/apps/explorer/test/explorer/chain/hash/nonce_test.exs index 31793c3d90b9..0b3f510f4312 100644 --- a/apps/explorer/test/explorer/chain/hash/nonce_test.exs +++ b/apps/explorer/test/explorer/chain/hash/nonce_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Hash.NonceTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/chain/hash_test.exs b/apps/explorer/test/explorer/chain/hash_test.exs index 7565e9d067f5..9ed8c357111c 100644 --- a/apps/explorer/test/explorer/chain/hash_test.exs +++ b/apps/explorer/test/explorer/chain/hash_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.HashTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/chain/health/helper_test.exs b/apps/explorer/test/explorer/chain/health/helper_test.exs index a12e4f9026d0..8e6cb7e228fa 100644 --- a/apps/explorer/test/explorer/chain/health/helper_test.exs +++ b/apps/explorer/test/explorer/chain/health/helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Health.HelperTest do use Explorer.DataCase alias Explorer.Chain.Health.Helper, as: HealthHelper diff --git a/apps/explorer/test/explorer/chain/import/runner/address/current_token_balances_test.exs b/apps/explorer/test/explorer/chain/import/runner/address/current_token_balances_test.exs index c5317f83114d..fc5442235195 100644 --- a/apps/explorer/test/explorer/chain/import/runner/address/current_token_balances_test.exs +++ b/apps/explorer/test/explorer/chain/import/runner/address/current_token_balances_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Address.CurrentTokenBalancesTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/import/runner/address/token_balances_test.exs b/apps/explorer/test/explorer/chain/import/runner/address/token_balances_test.exs index 4d7f24eec8d0..0412df419194 100644 --- a/apps/explorer/test/explorer/chain/import/runner/address/token_balances_test.exs +++ b/apps/explorer/test/explorer/chain/import/runner/address/token_balances_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.Address.TokenBalancesTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/import/runner/addresses_test.exs b/apps/explorer/test/explorer/chain/import/runner/addresses_test.exs index 7ef8292ee80e..ced45b16296a 100644 --- a/apps/explorer/test/explorer/chain/import/runner/addresses_test.exs +++ b/apps/explorer/test/explorer/chain/import/runner/addresses_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.AddressesTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/import/runner/blocks_test.exs b/apps/explorer/test/explorer/chain/import/runner/blocks_test.exs index 386fdf963c78..f316123d7c71 100644 --- a/apps/explorer/test/explorer/chain/import/runner/blocks_test.exs +++ b/apps/explorer/test/explorer/chain/import/runner/blocks_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.BlocksTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/import/runner/fhe_operations_test.exs b/apps/explorer/test/explorer/chain/import/runner/fhe_operations_test.exs index ac86ecd6666e..7811c4868f24 100644 --- a/apps/explorer/test/explorer/chain/import/runner/fhe_operations_test.exs +++ b/apps/explorer/test/explorer/chain/import/runner/fhe_operations_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.FheOperationsTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/import/runner/internal_transactions_test.exs b/apps/explorer/test/explorer/chain/import/runner/internal_transactions_test.exs index 5e28f547f221..87eefa036cd6 100644 --- a/apps/explorer/test/explorer/chain/import/runner/internal_transactions_test.exs +++ b/apps/explorer/test/explorer/chain/import/runner/internal_transactions_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.InternalTransactionsTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/import/runner/stability/validators_test.exs b/apps/explorer/test/explorer/chain/import/runner/stability/validators_test.exs index e58ebd744b92..d1caff9a5d22 100644 --- a/apps/explorer/test/explorer/chain/import/runner/stability/validators_test.exs +++ b/apps/explorer/test/explorer/chain/import/runner/stability/validators_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout if Application.compile_env(:explorer, :chain_type) == :stability do defmodule Explorer.Chain.Import.Runner.Stability.ValidatorsTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/import/runner/tokens_test.exs b/apps/explorer/test/explorer/chain/import/runner/tokens_test.exs index 67d6e47ad4aa..208c1d6e7f63 100644 --- a/apps/explorer/test/explorer/chain/import/runner/tokens_test.exs +++ b/apps/explorer/test/explorer/chain/import/runner/tokens_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.TokensTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/import/runner/transactions_test.exs b/apps/explorer/test/explorer/chain/import/runner/transactions_test.exs index a6ab5af0a21e..64a50d2b7b46 100644 --- a/apps/explorer/test/explorer/chain/import/runner/transactions_test.exs +++ b/apps/explorer/test/explorer/chain/import/runner/transactions_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.Runner.TransactionsTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/import_test.exs b/apps/explorer/test/explorer/chain/import_test.exs index 42427f239515..16c161aa877f 100644 --- a/apps/explorer/test/explorer/chain/import_test.exs +++ b/apps/explorer/test/explorer/chain/import_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.ImportTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/internal_transaction/call_type_test.exs b/apps/explorer/test/explorer/chain/internal_transaction/call_type_test.exs index 85a44a58c642..5ed95a008c3c 100644 --- a/apps/explorer/test/explorer/chain/internal_transaction/call_type_test.exs +++ b/apps/explorer/test/explorer/chain/internal_transaction/call_type_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.InternalTransaction.CallTypeTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/chain/internal_transaction/type_test.exs b/apps/explorer/test/explorer/chain/internal_transaction/type_test.exs index 8c3cf56f486d..0db59bcc570b 100644 --- a/apps/explorer/test/explorer/chain/internal_transaction/type_test.exs +++ b/apps/explorer/test/explorer/chain/internal_transaction/type_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.InternalTransaction.TypeTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/chain/internal_transaction_test.exs b/apps/explorer/test/explorer/chain/internal_transaction_test.exs index 859f50316e13..12f00dc2f596 100644 --- a/apps/explorer/test/explorer/chain/internal_transaction_test.exs +++ b/apps/explorer/test/explorer/chain/internal_transaction_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.InternalTransactionTest do use Explorer.DataCase use EthereumJSONRPC.Case diff --git a/apps/explorer/test/explorer/chain/log_test.exs b/apps/explorer/test/explorer/chain/log_test.exs index cbf620a6d9dc..306a727f6311 100644 --- a/apps/explorer/test/explorer/chain/log_test.exs +++ b/apps/explorer/test/explorer/chain/log_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.LogTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/metrics/indexer_metrics_test.exs b/apps/explorer/test/explorer/chain/metrics/indexer_metrics_test.exs index aa1d3f7e3d4e..09d6cdc5b56a 100644 --- a/apps/explorer/test/explorer/chain/metrics/indexer_metrics_test.exs +++ b/apps/explorer/test/explorer/chain/metrics/indexer_metrics_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Metrics.Queries.IndexerMetricsTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/chain/smart_contract/proxy/clone_with_immutable_arguments_test.exs b/apps/explorer/test/explorer/chain/smart_contract/proxy/clone_with_immutable_arguments_test.exs index 5240329a3587..1092228ca407 100644 --- a/apps/explorer/test/explorer/chain/smart_contract/proxy/clone_with_immutable_arguments_test.exs +++ b/apps/explorer/test/explorer/chain/smart_contract/proxy/clone_with_immutable_arguments_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy.CloneWithImmutableArgumentsTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/smart_contract/proxy/erc_7760_test.exs b/apps/explorer/test/explorer/chain/smart_contract/proxy/erc_7760_test.exs index 14f4daaae324..8ad1a86e6814 100644 --- a/apps/explorer/test/explorer/chain/smart_contract/proxy/erc_7760_test.exs +++ b/apps/explorer/test/explorer/chain/smart_contract/proxy/erc_7760_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy.ERC7760Test do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/smart_contract/proxy/models/implementation_test.exs b/apps/explorer/test/explorer/chain/smart_contract/proxy/models/implementation_test.exs index 818a6b5d7f1f..804d8670aee9 100644 --- a/apps/explorer/test/explorer/chain/smart_contract/proxy/models/implementation_test.exs +++ b/apps/explorer/test/explorer/chain/smart_contract/proxy/models/implementation_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.Proxy.Models.Implementation.Test do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/chain/smart_contract/proxy_test.exs b/apps/explorer/test/explorer/chain/smart_contract/proxy_test.exs index faa57ae70c04..bad2b1622334 100644 --- a/apps/explorer/test/explorer/chain/smart_contract/proxy_test.exs +++ b/apps/explorer/test/explorer/chain/smart_contract/proxy_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.ProxyTest do use Explorer.DataCase, async: false import Mox diff --git a/apps/explorer/test/explorer/chain/smart_contract/verified_contract_addresses_query_test.exs b/apps/explorer/test/explorer/chain/smart_contract/verified_contract_addresses_query_test.exs index 9b50443049fc..d50baae13af9 100644 --- a/apps/explorer/test/explorer/chain/smart_contract/verified_contract_addresses_query_test.exs +++ b/apps/explorer/test/explorer/chain/smart_contract/verified_contract_addresses_query_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContract.VerifiedContractAddressesQueryTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/chain/smart_contract_test.exs b/apps/explorer/test/explorer/chain/smart_contract_test.exs index 35a80a44673c..783c2054c427 100644 --- a/apps/explorer/test/explorer/chain/smart_contract_test.exs +++ b/apps/explorer/test/explorer/chain/smart_contract_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.SmartContractTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/chain/supply/proof_of_authority_test.exs b/apps/explorer/test/explorer/chain/supply/proof_of_authority_test.exs index 2b3968d7bc8e..d5931695598b 100644 --- a/apps/explorer/test/explorer/chain/supply/proof_of_authority_test.exs +++ b/apps/explorer/test/explorer/chain/supply/proof_of_authority_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Supply.ProofOfAuthorityTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/supply/rsk_test.exs b/apps/explorer/test/explorer/chain/supply/rsk_test.exs index 35e50cd0acd6..f142f7ad6726 100644 --- a/apps/explorer/test/explorer/chain/supply/rsk_test.exs +++ b/apps/explorer/test/explorer/chain/supply/rsk_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Supply.RSKTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/token/instance_test.exs b/apps/explorer/test/explorer/chain/token/instance_test.exs index 88d8c2d97668..ffaf92926aee 100644 --- a/apps/explorer/test/explorer/chain/token/instance_test.exs +++ b/apps/explorer/test/explorer/chain/token/instance_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Token.InstanceTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/token_test.exs b/apps/explorer/test/explorer/chain/token_test.exs index ea5eb8a3331f..29a2251cf726 100644 --- a/apps/explorer/test/explorer/chain/token_test.exs +++ b/apps/explorer/test/explorer/chain/token_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.TokenTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/token_transfer_test.exs b/apps/explorer/test/explorer/chain/token_transfer_test.exs index 08617f36896e..bd4b67a2c63b 100644 --- a/apps/explorer/test/explorer/chain/token_transfer_test.exs +++ b/apps/explorer/test/explorer/chain/token_transfer_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.TokenTransferTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/transaction/fork_test.exs b/apps/explorer/test/explorer/chain/transaction/fork_test.exs index f0ad0b1c4318..f097e59f8624 100644 --- a/apps/explorer/test/explorer/chain/transaction/fork_test.exs +++ b/apps/explorer/test/explorer/chain/transaction/fork_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Transaction.ForkTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/transaction/history/historian_test.exs b/apps/explorer/test/explorer/chain/transaction/history/historian_test.exs index 6a8015dda77e..c11cf3870c01 100644 --- a/apps/explorer/test/explorer/chain/transaction/history/historian_test.exs +++ b/apps/explorer/test/explorer/chain/transaction/history/historian_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Transaction.History.HistorianTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/chain/transaction/history/transaction_stats_test.exs b/apps/explorer/test/explorer/chain/transaction/history/transaction_stats_test.exs index 72401440fd02..7f2e415ca79b 100644 --- a/apps/explorer/test/explorer/chain/transaction/history/transaction_stats_test.exs +++ b/apps/explorer/test/explorer/chain/transaction/history/transaction_stats_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Transaction.History.TransactionStatsTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/chain/transaction/status_test.exs b/apps/explorer/test/explorer/chain/transaction/status_test.exs index 566f6d35a358..4c0b0ca2994c 100644 --- a/apps/explorer/test/explorer/chain/transaction/status_test.exs +++ b/apps/explorer/test/explorer/chain/transaction/status_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Transaction.StatusTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/chain/transaction_test.exs b/apps/explorer/test/explorer/chain/transaction_test.exs index 2831969391fe..394396b90d76 100644 --- a/apps/explorer/test/explorer/chain/transaction_test.exs +++ b/apps/explorer/test/explorer/chain/transaction_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.TransactionTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain/wei_test.exs b/apps/explorer/test/explorer/chain/wei_test.exs index 1dd94e53f27e..280e6a845320 100644 --- a/apps/explorer/test/explorer/chain/wei_test.exs +++ b/apps/explorer/test/explorer/chain/wei_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.WeiTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/chain/withdrawal_test.exs b/apps/explorer/test/explorer/chain/withdrawal_test.exs index ab797f617219..d1715dc89354 100644 --- a/apps/explorer/test/explorer/chain/withdrawal_test.exs +++ b/apps/explorer/test/explorer/chain/withdrawal_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.WithdrawalTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain_spec/genesis_data_test.exs b/apps/explorer/test/explorer/chain_spec/genesis_data_test.exs index db408148f587..3470e18aa934 100644 --- a/apps/explorer/test/explorer/chain_spec/genesis_data_test.exs +++ b/apps/explorer/test/explorer/chain_spec/genesis_data_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # apps/explorer/test/explorer/chain_spec/geth/genesis_data.exs defmodule Explorer.ChainSpec.GenesisDataTest do use ExUnit.Case, async: false diff --git a/apps/explorer/test/explorer/chain_spec/geth/importer_test.exs b/apps/explorer/test/explorer/chain_spec/geth/importer_test.exs index af9329a09bc0..4916ada1c426 100644 --- a/apps/explorer/test/explorer/chain_spec/geth/importer_test.exs +++ b/apps/explorer/test/explorer/chain_spec/geth/importer_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ChainSpec.Geth.ImporterTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain_spec/parity/importer_test.exs b/apps/explorer/test/explorer/chain_spec/parity/importer_test.exs index 07ee04d65db9..d711dcb2e088 100644 --- a/apps/explorer/test/explorer/chain_spec/parity/importer_test.exs +++ b/apps/explorer/test/explorer/chain_spec/parity/importer_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ChainSpec.Parity.ImporterTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/chain_test.exs b/apps/explorer/test/explorer/chain_test.exs index ba3deeebda23..2d8a318b9750 100644 --- a/apps/explorer/test/explorer/chain_test.exs +++ b/apps/explorer/test/explorer/chain_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ChainTest do use Explorer.DataCase use EthereumJSONRPC.Case diff --git a/apps/explorer/test/explorer/config_helper_test.exs b/apps/explorer/test/explorer/config_helper_test.exs index 017473298b69..d7ac340b59bc 100644 --- a/apps/explorer/test/explorer/config_helper_test.exs +++ b/apps/explorer/test/explorer/config_helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule ConfigHelperTest do use ExUnit.Case diff --git a/apps/explorer/test/explorer/etherscan/logs_test.exs b/apps/explorer/test/explorer/etherscan/logs_test.exs index 2df2a32b15c1..558e9d13a93b 100644 --- a/apps/explorer/test/explorer/etherscan/logs_test.exs +++ b/apps/explorer/test/explorer/etherscan/logs_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Etherscan.LogsTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/etherscan_test.exs b/apps/explorer/test/explorer/etherscan_test.exs index 6b97051c878a..0c9763bf2592 100644 --- a/apps/explorer/test/explorer/etherscan_test.exs +++ b/apps/explorer/test/explorer/etherscan_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.EtherscanTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/graphql_test.exs b/apps/explorer/test/explorer/graphql_test.exs index 3d47d5296b6f..eb61e51872b4 100644 --- a/apps/explorer/test/explorer/graphql_test.exs +++ b/apps/explorer/test/explorer/graphql_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.GraphQLTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/helper_test.exs b/apps/explorer/test/explorer/helper_test.exs index 9791a52d6e9d..6b6673afe3a4 100644 --- a/apps/explorer/test/explorer/helper_test.exs +++ b/apps/explorer/test/explorer/helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.HelperTest do use ExUnit.Case alias Explorer.Helper diff --git a/apps/explorer/test/explorer/history/process_test.exs b/apps/explorer/test/explorer/history/process_test.exs index f2fbf7983e1b..2f6782cc4674 100644 --- a/apps/explorer/test/explorer/history/process_test.exs +++ b/apps/explorer/test/explorer/history/process_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.History.ProcessTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/market/fetcher/coin_test.exs b/apps/explorer/test/explorer/market/fetcher/coin_test.exs index 669af3cc4244..49fd90fdb349 100644 --- a/apps/explorer/test/explorer/market/fetcher/coin_test.exs +++ b/apps/explorer/test/explorer/market/fetcher/coin_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Fetcher.CoinTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/market/fetcher/history_test.exs b/apps/explorer/test/explorer/market/fetcher/history_test.exs index 4b37903ef410..4acc1dab4fae 100644 --- a/apps/explorer/test/explorer/market/fetcher/history_test.exs +++ b/apps/explorer/test/explorer/market/fetcher/history_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Fetcher.HistoryTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/market/fetcher/token_list_test.exs b/apps/explorer/test/explorer/market/fetcher/token_list_test.exs index 114ad46d17d1..1d9293f86fae 100644 --- a/apps/explorer/test/explorer/market/fetcher/token_list_test.exs +++ b/apps/explorer/test/explorer/market/fetcher/token_list_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Fetcher.TokenListTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/market/fetcher/token_test.exs b/apps/explorer/test/explorer/market/fetcher/token_test.exs index b8e1115e10cf..c8ab66da1fd9 100644 --- a/apps/explorer/test/explorer/market/fetcher/token_test.exs +++ b/apps/explorer/test/explorer/market/fetcher/token_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Fetcher.TokenTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/market/market_history_cache_test.exs b/apps/explorer/test/explorer/market/market_history_cache_test.exs index bbc0b49db971..adb7266fc201 100644 --- a/apps/explorer/test/explorer/market/market_history_cache_test.exs +++ b/apps/explorer/test/explorer/market/market_history_cache_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.MarketHistoryCacheTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/market/market_history_test.exs b/apps/explorer/test/explorer/market/market_history_test.exs index 7bf700d93065..1c18bcc9dbac 100644 --- a/apps/explorer/test/explorer/market/market_history_test.exs +++ b/apps/explorer/test/explorer/market/market_history_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.MarketHistoryTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/market/market_test.exs b/apps/explorer/test/explorer/market/market_test.exs index e27d0d326545..140c1260faaf 100644 --- a/apps/explorer/test/explorer/market/market_test.exs +++ b/apps/explorer/test/explorer/market/market_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.MarketTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/market/source/coin_gecko_test.exs b/apps/explorer/test/explorer/market/source/coin_gecko_test.exs index 59658884e17c..43d0239d7670 100644 --- a/apps/explorer/test/explorer/market/source/coin_gecko_test.exs +++ b/apps/explorer/test/explorer/market/source/coin_gecko_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # cspell:disable defmodule Explorer.Market.Source.CoinGeckoTest do use ExUnit.Case diff --git a/apps/explorer/test/explorer/market/source/coin_market_cap_test.exs b/apps/explorer/test/explorer/market/source/coin_market_cap_test.exs index 093247811e8b..ba272f298c79 100644 --- a/apps/explorer/test/explorer/market/source/coin_market_cap_test.exs +++ b/apps/explorer/test/explorer/market/source/coin_market_cap_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Source.CoinMarketCapTest do use ExUnit.Case diff --git a/apps/explorer/test/explorer/market/source/crypto_compare_test.exs b/apps/explorer/test/explorer/market/source/crypto_compare_test.exs index 713ccdf8004e..edd6226fbcac 100644 --- a/apps/explorer/test/explorer/market/source/crypto_compare_test.exs +++ b/apps/explorer/test/explorer/market/source/crypto_compare_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Source.CryptoCompareTest do use ExUnit.Case, async: false diff --git a/apps/explorer/test/explorer/market/source/crypto_rank_test.exs b/apps/explorer/test/explorer/market/source/crypto_rank_test.exs index db24d0634681..940412081c84 100644 --- a/apps/explorer/test/explorer/market/source/crypto_rank_test.exs +++ b/apps/explorer/test/explorer/market/source/crypto_rank_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Source.CryptoRankTest do use ExUnit.Case diff --git a/apps/explorer/test/explorer/market/source/defillama_test.exs b/apps/explorer/test/explorer/market/source/defillama_test.exs index d707863c69f9..5c9ef01fe042 100644 --- a/apps/explorer/test/explorer/market/source/defillama_test.exs +++ b/apps/explorer/test/explorer/market/source/defillama_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Source.DefiLlamaTest do use ExUnit.Case diff --git a/apps/explorer/test/explorer/market/source/dia_test.exs b/apps/explorer/test/explorer/market/source/dia_test.exs index cae7d5fd0d4e..890a42e5035b 100644 --- a/apps/explorer/test/explorer/market/source/dia_test.exs +++ b/apps/explorer/test/explorer/market/source/dia_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Source.DIATest do use ExUnit.Case diff --git a/apps/explorer/test/explorer/market/source/mobula_test.exs b/apps/explorer/test/explorer/market/source/mobula_test.exs index 062c06c45deb..4c90396c0970 100644 --- a/apps/explorer/test/explorer/market/source/mobula_test.exs +++ b/apps/explorer/test/explorer/market/source/mobula_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # cspell:disable defmodule Explorer.Market.Source.MobulaTest do use ExUnit.Case diff --git a/apps/explorer/test/explorer/market/source_test.exs b/apps/explorer/test/explorer/market/source_test.exs index 9444d57e1386..2d81e315b677 100644 --- a/apps/explorer/test/explorer/market/source_test.exs +++ b/apps/explorer/test/explorer/market/source_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.SourceTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/market/token_test.exs b/apps/explorer/test/explorer/market/token_test.exs index 44ab1b68f925..0bc1392aae43 100644 --- a/apps/explorer/test/explorer/market/token_test.exs +++ b/apps/explorer/test/explorer/market/token_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.TokenTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/microservice_interfaces/bens_test.exs b/apps/explorer/test/explorer/microservice_interfaces/bens_test.exs index 44b3de7b7da2..48605bd57300 100644 --- a/apps/explorer/test/explorer/microservice_interfaces/bens_test.exs +++ b/apps/explorer/test/explorer/microservice_interfaces/bens_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.MicroserviceInterfaces.BENSTest do use ExUnit.Case, async: false diff --git a/apps/explorer/test/explorer/microservice_interfaces/multichain_search_test.exs b/apps/explorer/test/explorer/microservice_interfaces/multichain_search_test.exs index d85883bd6684..1ce2643cbe6f 100644 --- a/apps/explorer/test/explorer/microservice_interfaces/multichain_search_test.exs +++ b/apps/explorer/test/explorer/microservice_interfaces/multichain_search_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.MicroserviceInterfaces.MultichainSearchTest do use ExUnit.Case use Explorer.DataCase diff --git a/apps/explorer/test/explorer/migrator/address_current_token_balance_token_type_test.exs b/apps/explorer/test/explorer/migrator/address_current_token_balance_token_type_test.exs index 27591d9c52c1..09600b384e65 100644 --- a/apps/explorer/test/explorer/migrator/address_current_token_balance_token_type_test.exs +++ b/apps/explorer/test/explorer/migrator/address_current_token_balance_token_type_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.AddressCurrentTokenBalanceTokenTypeTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/address_token_balance_token_type_test.exs b/apps/explorer/test/explorer/migrator/address_token_balance_token_type_test.exs index 4bf09c57122c..60ac4506da11 100644 --- a/apps/explorer/test/explorer/migrator/address_token_balance_token_type_test.exs +++ b/apps/explorer/test/explorer/migrator/address_token_balance_token_type_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.AddressTokenBalanceTokenTypeTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/backfill_metadata_url_test.exs b/apps/explorer/test/explorer/migrator/backfill_metadata_url_test.exs index 1ad32f349dcb..765ec77e289b 100644 --- a/apps/explorer/test/explorer/migrator/backfill_metadata_url_test.exs +++ b/apps/explorer/test/explorer/migrator/backfill_metadata_url_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.BackfillMetadataURLTest do use Explorer.DataCase, async: false use EthereumJSONRPC.Case, async: false diff --git a/apps/explorer/test/explorer/migrator/celo_accounts_test.exs b/apps/explorer/test/explorer/migrator/celo_accounts_test.exs index ebe19a8a38a7..fa131c91210c 100644 --- a/apps/explorer/test/explorer/migrator/celo_accounts_test.exs +++ b/apps/explorer/test/explorer/migrator/celo_accounts_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.CeloAccountsTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/celo_aggregated_election_rewards_test.exs b/apps/explorer/test/explorer/migrator/celo_aggregated_election_rewards_test.exs index 74a647de848c..50e95e4ce0c1 100644 --- a/apps/explorer/test/explorer/migrator/celo_aggregated_election_rewards_test.exs +++ b/apps/explorer/test/explorer/migrator/celo_aggregated_election_rewards_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.CeloAggregatedElectionRewardsTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/celo_l2_epochs_test.exs b/apps/explorer/test/explorer/migrator/celo_l2_epochs_test.exs index 6a00bcd6cc05..26182247f12c 100644 --- a/apps/explorer/test/explorer/migrator/celo_l2_epochs_test.exs +++ b/apps/explorer/test/explorer/migrator/celo_l2_epochs_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.CeloL2EpochsTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/delete_zero_value_internal_transactions_test.exs b/apps/explorer/test/explorer/migrator/delete_zero_value_internal_transactions_test.exs index 5447e4ee0745..5073d7a3d1b9 100644 --- a/apps/explorer/test/explorer/migrator/delete_zero_value_internal_transactions_test.exs +++ b/apps/explorer/test/explorer/migrator/delete_zero_value_internal_transactions_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.DeleteZeroValueInternalTransactionsTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/empty_bytecode_for_selfdestructed_smart_contracts_test.exs b/apps/explorer/test/explorer/migrator/empty_bytecode_for_selfdestructed_smart_contracts_test.exs index 2c050aa47b65..bccff5a851da 100644 --- a/apps/explorer/test/explorer/migrator/empty_bytecode_for_selfdestructed_smart_contracts_test.exs +++ b/apps/explorer/test/explorer/migrator/empty_bytecode_for_selfdestructed_smart_contracts_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.EmptyBytecodeForSelfdestructedSmartContractsTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/fill_internal_transactions_address_ids_test.exs b/apps/explorer/test/explorer/migrator/fill_internal_transactions_address_ids_test.exs index 512fa996a78e..bc9da6774221 100644 --- a/apps/explorer/test/explorer/migrator/fill_internal_transactions_address_ids_test.exs +++ b/apps/explorer/test/explorer/migrator/fill_internal_transactions_address_ids_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.FillInternalTransactionsAddressIdsTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/heavy_db_index_operation/create_logs_address_hash_block_number_desc_index_desc_index_test.exs b/apps/explorer/test/explorer/migrator/heavy_db_index_operation/create_logs_address_hash_block_number_desc_index_desc_index_test.exs index f83dbc634ba7..89e696a67e79 100644 --- a/apps/explorer/test/explorer/migrator/heavy_db_index_operation/create_logs_address_hash_block_number_desc_index_desc_index_test.exs +++ b/apps/explorer/test/explorer/migrator/heavy_db_index_operation/create_logs_address_hash_block_number_desc_index_desc_index_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateLogsAddressHashBlockNumberDescIndexDescIndexTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/heavy_db_index_operation/create_transactions_created_contract_address_hash_w_pending_index_test.exs b/apps/explorer/test/explorer/migrator/heavy_db_index_operation/create_transactions_created_contract_address_hash_w_pending_index_test.exs index 95b4af955989..a9b109de9043 100644 --- a/apps/explorer/test/explorer/migrator/heavy_db_index_operation/create_transactions_created_contract_address_hash_w_pending_index_test.exs +++ b/apps/explorer/test/explorer/migrator/heavy_db_index_operation/create_transactions_created_contract_address_hash_w_pending_index_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.CreateTransactionsCreatedContractAddressHashWPendingIndexTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/heavy_db_index_operation/drop_logs_block_number_asc_index_asc_index_test.exs b/apps/explorer/test/explorer/migrator/heavy_db_index_operation/drop_logs_block_number_asc_index_asc_index_test.exs index 8664a1c5c875..889e71eab652 100644 --- a/apps/explorer/test/explorer/migrator/heavy_db_index_operation/drop_logs_block_number_asc_index_asc_index_test.exs +++ b/apps/explorer/test/explorer/migrator/heavy_db_index_operation/drop_logs_block_number_asc_index_asc_index_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.DropLogsBlockNumberAscIndexAscIndexTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/heavy_db_index_operation/drop_transactions_created_contract_address_hash_with_pending_index_a_test.exs b/apps/explorer/test/explorer/migrator/heavy_db_index_operation/drop_transactions_created_contract_address_hash_with_pending_index_a_test.exs index 6819e39bc10c..0e5f98fb5d51 100644 --- a/apps/explorer/test/explorer/migrator/heavy_db_index_operation/drop_transactions_created_contract_address_hash_with_pending_index_a_test.exs +++ b/apps/explorer/test/explorer/migrator/heavy_db_index_operation/drop_transactions_created_contract_address_hash_with_pending_index_a_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.HeavyDbIndexOperation.DropTransactionsCreatedContractAddressHashWithPendingIndexATest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/merge_adjacent_missing_block_ranges_test.exs b/apps/explorer/test/explorer/migrator/merge_adjacent_missing_block_ranges_test.exs index 2f8ac7afa7f3..e986e0454b56 100644 --- a/apps/explorer/test/explorer/migrator/merge_adjacent_missing_block_ranges_test.exs +++ b/apps/explorer/test/explorer/migrator/merge_adjacent_missing_block_ranges_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.MergeAdjacentMissingBlockRangesTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/reindex_blocks_with_missing_transactions_test.exs b/apps/explorer/test/explorer/migrator/reindex_blocks_with_missing_transactions_test.exs index b68b9a105b17..d8058538eb46 100644 --- a/apps/explorer/test/explorer/migrator/reindex_blocks_with_missing_transactions_test.exs +++ b/apps/explorer/test/explorer/migrator/reindex_blocks_with_missing_transactions_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.ReindexBlocksWithMissingTransactionsTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/reindex_internal_transactions_with_incompatible_status_test.exs b/apps/explorer/test/explorer/migrator/reindex_internal_transactions_with_incompatible_status_test.exs index 94dcce6a6574..5d53dbab48f1 100644 --- a/apps/explorer/test/explorer/migrator/reindex_internal_transactions_with_incompatible_status_test.exs +++ b/apps/explorer/test/explorer/migrator/reindex_internal_transactions_with_incompatible_status_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.ReindexInternalTransactionsWithIncompatibleStatusTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/sanitize_duplicate_smart_contract_additional_sources_test.exs b/apps/explorer/test/explorer/migrator/sanitize_duplicate_smart_contract_additional_sources_test.exs index ee9fcbbcda71..717ce86dd6a6 100644 --- a/apps/explorer/test/explorer/migrator/sanitize_duplicate_smart_contract_additional_sources_test.exs +++ b/apps/explorer/test/explorer/migrator/sanitize_duplicate_smart_contract_additional_sources_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SanitizeDuplicateSmartContractAdditionalSourcesTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/sanitize_duplicated_log_index_logs_test.exs b/apps/explorer/test/explorer/migrator/sanitize_duplicated_log_index_logs_test.exs index c17b092e6be4..0c6749b05cfc 100644 --- a/apps/explorer/test/explorer/migrator/sanitize_duplicated_log_index_logs_test.exs +++ b/apps/explorer/test/explorer/migrator/sanitize_duplicated_log_index_logs_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SanitizeDuplicatedLogIndexLogsTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/sanitize_empty_contract_code_addresses_test.exs b/apps/explorer/test/explorer/migrator/sanitize_empty_contract_code_addresses_test.exs index 14fa500d579f..700f150fcf89 100644 --- a/apps/explorer/test/explorer/migrator/sanitize_empty_contract_code_addresses_test.exs +++ b/apps/explorer/test/explorer/migrator/sanitize_empty_contract_code_addresses_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SanitizeEmptyContractCodeAddressesTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/sanitize_incorrect_nft_token_transfers_test.exs b/apps/explorer/test/explorer/migrator/sanitize_incorrect_nft_token_transfers_test.exs index 8ede4a09c853..5f51fc103ffe 100644 --- a/apps/explorer/test/explorer/migrator/sanitize_incorrect_nft_token_transfers_test.exs +++ b/apps/explorer/test/explorer/migrator/sanitize_incorrect_nft_token_transfers_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SanitizeIncorrectNFTTokenTransfersTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/sanitize_incorrect_weth_token_transfers_test.exs b/apps/explorer/test/explorer/migrator/sanitize_incorrect_weth_token_transfers_test.exs index 03bbed36dc88..d0d4daacaf34 100644 --- a/apps/explorer/test/explorer/migrator/sanitize_incorrect_weth_token_transfers_test.exs +++ b/apps/explorer/test/explorer/migrator/sanitize_incorrect_weth_token_transfers_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SanitizeIncorrectWETHTokenTransfersTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/sanitize_missing_token_balances_test.exs b/apps/explorer/test/explorer/migrator/sanitize_missing_token_balances_test.exs index e8c990e2011e..869a16c5bfea 100644 --- a/apps/explorer/test/explorer/migrator/sanitize_missing_token_balances_test.exs +++ b/apps/explorer/test/explorer/migrator/sanitize_missing_token_balances_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SanitizeMissingTokenBalancesTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/switch_pending_operations_test.exs b/apps/explorer/test/explorer/migrator/switch_pending_operations_test.exs index 1ce2a33ce0db..47ae88ddc32e 100644 --- a/apps/explorer/test/explorer/migrator/switch_pending_operations_test.exs +++ b/apps/explorer/test/explorer/migrator/switch_pending_operations_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.SwitchPendingOperationsTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/token_transfer_token_type_test.exs b/apps/explorer/test/explorer/migrator/token_transfer_token_type_test.exs index b6cc0ee1c372..7ead866769b0 100644 --- a/apps/explorer/test/explorer/migrator/token_transfer_token_type_test.exs +++ b/apps/explorer/test/explorer/migrator/token_transfer_token_type_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.TokenTransferTokenTypeTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/transactions_denormalization_migrator_test.exs b/apps/explorer/test/explorer/migrator/transactions_denormalization_migrator_test.exs index a1d437a6f1e8..ed50852b84f5 100644 --- a/apps/explorer/test/explorer/migrator/transactions_denormalization_migrator_test.exs +++ b/apps/explorer/test/explorer/migrator/transactions_denormalization_migrator_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.TransactionsDenormalizationTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/unescape_ampersands_in_tokens_test.exs b/apps/explorer/test/explorer/migrator/unescape_ampersands_in_tokens_test.exs index c4ee3993b99d..0d6086bfdc98 100644 --- a/apps/explorer/test/explorer/migrator/unescape_ampersands_in_tokens_test.exs +++ b/apps/explorer/test/explorer/migrator/unescape_ampersands_in_tokens_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.UnescapeAmpersandsInTokensTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/migrator/unescape_quotes_in_tokens_test.exs b/apps/explorer/test/explorer/migrator/unescape_quotes_in_tokens_test.exs index ec550478036f..8c4df7efbac2 100644 --- a/apps/explorer/test/explorer/migrator/unescape_quotes_in_tokens_test.exs +++ b/apps/explorer/test/explorer/migrator/unescape_quotes_in_tokens_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Migrator.UnescapeQuotesInTokensTest do use Explorer.DataCase, async: false diff --git a/apps/explorer/test/explorer/module_queue_registry_test.exs b/apps/explorer/test/explorer/module_queue_registry_test.exs index ff138e85ba5f..0ccb2efcb224 100644 --- a/apps/explorer/test/explorer/module_queue_registry_test.exs +++ b/apps/explorer/test/explorer/module_queue_registry_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ModuleQueueRegistryTest do use ExUnit.Case, async: false diff --git a/apps/explorer/test/explorer/promo/autoscout_test.exs b/apps/explorer/test/explorer/promo/autoscout_test.exs index 53c6aca5613b..99f2e1c54e1d 100644 --- a/apps/explorer/test/explorer/promo/autoscout_test.exs +++ b/apps/explorer/test/explorer/promo/autoscout_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Promo.AutoscoutTest do use ExUnit.Case, async: false diff --git a/apps/explorer/test/explorer/repo/config_helper_test.exs b/apps/explorer/test/explorer/repo/config_helper_test.exs index a9942975e6c3..768dde53ae4c 100644 --- a/apps/explorer/test/explorer/repo/config_helper_test.exs +++ b/apps/explorer/test/explorer/repo/config_helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Repo.ConfigHelperTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/repo_test.exs b/apps/explorer/test/explorer/repo_test.exs index bff654d4a734..5ff7bd31e8ed 100644 --- a/apps/explorer/test/explorer/repo_test.exs +++ b/apps/explorer/test/explorer/repo_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.RepoTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/smart_contract/certified_smart_contract_cataloger_test.exs b/apps/explorer/test/explorer/smart_contract/certified_smart_contract_cataloger_test.exs index b3cd088914a1..40a8e2ebd2ff 100644 --- a/apps/explorer/test/explorer/smart_contract/certified_smart_contract_cataloger_test.exs +++ b/apps/explorer/test/explorer/smart_contract/certified_smart_contract_cataloger_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.CertifiedSmartContractCatalogerTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/smart_contract/compiler_version_test.exs b/apps/explorer/test/explorer/smart_contract/compiler_version_test.exs index c07ab7f85c95..02906ca0b670 100644 --- a/apps/explorer/test/explorer/smart_contract/compiler_version_test.exs +++ b/apps/explorer/test/explorer/smart_contract/compiler_version_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.CompilerVersionTest do use ExUnit.Case diff --git a/apps/explorer/test/explorer/smart_contract/geas/publisher_test.exs b/apps/explorer/test/explorer/smart_contract/geas/publisher_test.exs index 1f2672b6783d..52d4ab33fbca 100644 --- a/apps/explorer/test/explorer/smart_contract/geas/publisher_test.exs +++ b/apps/explorer/test/explorer/smart_contract/geas/publisher_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Geas.PublisherTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/smart_contract/helper_test.exs b/apps/explorer/test/explorer/smart_contract/helper_test.exs index 9b105cf263e3..ed6b38f1490b 100644 --- a/apps/explorer/test/explorer/smart_contract/helper_test.exs +++ b/apps/explorer/test/explorer/smart_contract/helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.HelperTest do use ExUnit.Case, async: true use Explorer.DataCase diff --git a/apps/explorer/test/explorer/smart_contract/reader_test.exs b/apps/explorer/test/explorer/smart_contract/reader_test.exs index 184a28cbd861..dd98ec5f8696 100644 --- a/apps/explorer/test/explorer/smart_contract/reader_test.exs +++ b/apps/explorer/test/explorer/smart_contract/reader_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.ReaderTest do use EthereumJSONRPC.Case use Explorer.DataCase diff --git a/apps/explorer/test/explorer/smart_contract/solidity/code_compiler_test.exs b/apps/explorer/test/explorer/smart_contract/solidity/code_compiler_test.exs index 0dea7eff290c..bb8f0bfb16dc 100644 --- a/apps/explorer/test/explorer/smart_contract/solidity/code_compiler_test.exs +++ b/apps/explorer/test/explorer/smart_contract/solidity/code_compiler_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Solidity.CodeCompilerTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/smart_contract/solidity/publisher_test.exs b/apps/explorer/test/explorer/smart_contract/solidity/publisher_test.exs index 8dfa6e1ac767..480596708e67 100644 --- a/apps/explorer/test/explorer/smart_contract/solidity/publisher_test.exs +++ b/apps/explorer/test/explorer/smart_contract/solidity/publisher_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Solidity.PublisherTest do use ExUnit.Case, async: true use Explorer.DataCase diff --git a/apps/explorer/test/explorer/smart_contract/solidity/verifier_test.exs b/apps/explorer/test/explorer/smart_contract/solidity/verifier_test.exs index 5a8a78fcdd96..2b4f4248d1d2 100644 --- a/apps/explorer/test/explorer/smart_contract/solidity/verifier_test.exs +++ b/apps/explorer/test/explorer/smart_contract/solidity/verifier_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.Solidity.VerifierTest do use ExUnit.Case, async: true use Explorer.DataCase diff --git a/apps/explorer/test/explorer/smart_contract/vyper/publisher_test.exs b/apps/explorer/test/explorer/smart_contract/vyper/publisher_test.exs index 42e96719d2fe..f1ef4d2ccf04 100644 --- a/apps/explorer/test/explorer/smart_contract/vyper/publisher_test.exs +++ b/apps/explorer/test/explorer/smart_contract/vyper/publisher_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout if Application.compile_env(:explorer, :chain_type) !== :zksync do defmodule Explorer.SmartContract.Vyper.PublisherTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/smart_contract/writer_test.exs b/apps/explorer/test/explorer/smart_contract/writer_test.exs index 5239df67ca54..ade1dafa7b85 100644 --- a/apps/explorer/test/explorer/smart_contract/writer_test.exs +++ b/apps/explorer/test/explorer/smart_contract/writer_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.SmartContract.WriterTest do use EthereumJSONRPC.Case use Explorer.DataCase diff --git a/apps/explorer/test/explorer/tags/address_to_tag_test.exs b/apps/explorer/test/explorer/tags/address_to_tag_test.exs index c77230b52605..5c0b75eb8585 100644 --- a/apps/explorer/test/explorer/tags/address_to_tag_test.exs +++ b/apps/explorer/test/explorer/tags/address_to_tag_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Tags.AddressToTagTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/third_party_integrations/universal_proxy_test.exs b/apps/explorer/test/explorer/third_party_integrations/universal_proxy_test.exs index 438db1ceee6e..93c4ccdf44a0 100644 --- a/apps/explorer/test/explorer/third_party_integrations/universal_proxy_test.exs +++ b/apps/explorer/test/explorer/third_party_integrations/universal_proxy_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.ThirdPartyIntegrations.UniversalProxyTest do use ExUnit.Case diff --git a/apps/explorer/test/explorer/token/balance_reader_test.exs b/apps/explorer/test/explorer/token/balance_reader_test.exs index 126e903cde3c..c77edf352308 100644 --- a/apps/explorer/test/explorer/token/balance_reader_test.exs +++ b/apps/explorer/test/explorer/token/balance_reader_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Token.BalanceReaderTest do use EthereumJSONRPC.Case use Explorer.DataCase diff --git a/apps/explorer/test/explorer/token/metadata_retriever_test.exs b/apps/explorer/test/explorer/token/metadata_retriever_test.exs index ab74cfef9bb3..377debf0c1dc 100644 --- a/apps/explorer/test/explorer/token/metadata_retriever_test.exs +++ b/apps/explorer/test/explorer/token/metadata_retriever_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Token.MetadataRetrieverTest do use EthereumJSONRPC.Case use Explorer.DataCase diff --git a/apps/explorer/test/explorer/token_instance_owner_address_migration/helper_test.exs b/apps/explorer/test/explorer/token_instance_owner_address_migration/helper_test.exs index 355d161259bb..fe33dcabd1c5 100644 --- a/apps/explorer/test/explorer/token_instance_owner_address_migration/helper_test.exs +++ b/apps/explorer/test/explorer/token_instance_owner_address_migration/helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.TokenInstanceOwnerAddressMigration.HelperTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/utility/missing_block_range_test.exs b/apps/explorer/test/explorer/utility/missing_block_range_test.exs index 433b30de4587..2b6ddd503cbb 100644 --- a/apps/explorer/test/explorer/utility/missing_block_range_test.exs +++ b/apps/explorer/test/explorer/utility/missing_block_range_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Utility.MissingBlockRangeTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/utility/rate_limiter_test.exs b/apps/explorer/test/explorer/utility/rate_limiter_test.exs index 5df982ec73f0..b66a044fbd2b 100644 --- a/apps/explorer/test/explorer/utility/rate_limiter_test.exs +++ b/apps/explorer/test/explorer/utility/rate_limiter_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Utility.RateLimiterTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/explorer/validator/metadata_importer_test.exs b/apps/explorer/test/explorer/validator/metadata_importer_test.exs index c30e719856c4..ccba88f7ad0b 100644 --- a/apps/explorer/test/explorer/validator/metadata_importer_test.exs +++ b/apps/explorer/test/explorer/validator/metadata_importer_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Validator.MetadataImporterTest do use Explorer.DataCase diff --git a/apps/explorer/test/explorer/validator/metadata_retriever_test.exs b/apps/explorer/test/explorer/validator/metadata_retriever_test.exs index 7bcc9040d462..ac82ee341ab5 100644 --- a/apps/explorer/test/explorer/validator/metadata_retriever_test.exs +++ b/apps/explorer/test/explorer/validator/metadata_retriever_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Validator.MetadataRetrieverTest do use EthereumJSONRPC.Case diff --git a/apps/explorer/test/string/chars/explorer/chain/address_test.exs b/apps/explorer/test/string/chars/explorer/chain/address_test.exs index 5d08c3e03c11..4eac2287bd69 100644 --- a/apps/explorer/test/string/chars/explorer/chain/address_test.exs +++ b/apps/explorer/test/string/chars/explorer/chain/address_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule String.Chars.Explorer.Chain.AddressTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/string/chars/explorer/chain/data_test.exs b/apps/explorer/test/string/chars/explorer/chain/data_test.exs index 01f830a83c8d..d29131ae7b83 100644 --- a/apps/explorer/test/string/chars/explorer/chain/data_test.exs +++ b/apps/explorer/test/string/chars/explorer/chain/data_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule String.Chars.Explorer.Chain.DataTest do use ExUnit.Case, async: true diff --git a/apps/explorer/test/support/benchmark_case.ex b/apps/explorer/test/support/benchmark_case.ex index fa65f511164e..25baee18aab1 100644 --- a/apps/explorer/test/support/benchmark_case.ex +++ b/apps/explorer/test/support/benchmark_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.BenchmarkCase do @moduledoc """ This module defines the benchmark case to be used by benchmarks. diff --git a/apps/explorer/test/support/chain/import/runner_case.ex b/apps/explorer/test/support/chain/import/runner_case.ex index a73e395e4ded..1640f9943e84 100644 --- a/apps/explorer/test/support/chain/import/runner_case.ex +++ b/apps/explorer/test/support/chain/import/runner_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Chain.Import.RunnerCase do import Explorer.Factory, only: [insert: 2] import Ecto.Query, only: [from: 2] diff --git a/apps/explorer/test/support/data_case.ex b/apps/explorer/test/support/data_case.ex index cba03414bdf4..2a67c2630c4a 100644 --- a/apps/explorer/test/support/data_case.ex +++ b/apps/explorer/test/support/data_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.DataCase do @moduledoc """ This module defines the setup for tests requiring diff --git a/apps/explorer/test/support/factory.ex b/apps/explorer/test/support/factory.ex index 9f84c806080e..f88567275e7d 100644 --- a/apps/explorer/test/support/factory.ex +++ b/apps/explorer/test/support/factory.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Factory do use ExMachina.Ecto, repo: Explorer.Repo use Utils.CompileTimeEnvHelper, chain_type: [:explorer, :chain_type] diff --git a/apps/explorer/test/support/fakes/one_coin_source.ex b/apps/explorer/test/support/fakes/one_coin_source.ex index 06ad5c0005f9..a53327b04c1d 100644 --- a/apps/explorer/test/support/fakes/one_coin_source.ex +++ b/apps/explorer/test/support/fakes/one_coin_source.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Explorer.Market.Source.OneCoinSource do @moduledoc false diff --git a/apps/explorer/test/test_helper.exs b/apps/explorer/test/test_helper.exs index b20646b462ff..50bfec9620bd 100644 --- a/apps/explorer/test/test_helper.exs +++ b/apps/explorer/test/test_helper.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # https://github.com/CircleCI-Public/circleci-demo-elixir-phoenix/blob/a89de33a01df67b6773ac90adc74c34367a4a2d6/test/test_helper.exs#L1-L3 junit_folder = Mix.Project.build_path() <> "/junit/#{Mix.Project.config()[:app]}" File.mkdir_p!(junit_folder) diff --git a/apps/indexer/config/config.exs b/apps/indexer/config/config.exs index 0b3d40c7aef7..8ce64418d856 100644 --- a/apps/indexer/config/config.exs +++ b/apps/indexer/config/config.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # This file is responsible for configuring your application # and its dependencies with the aid of the Config module. import Config diff --git a/apps/indexer/config/dev.exs b/apps/indexer/config/dev.exs index bd3644a7bc24..e7b2bf272181 100644 --- a/apps/indexer/config/dev.exs +++ b/apps/indexer/config/dev.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :indexer, Indexer.Tracer, env: "dev", disabled?: true diff --git a/apps/indexer/config/dev/anvil.exs b/apps/indexer/config/dev/anvil.exs index 7b5ba51fa874..84108c0aa73f 100644 --- a/apps/indexer/config/dev/anvil.exs +++ b/apps/indexer/config/dev/anvil.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/indexer/config/dev/besu.exs b/apps/indexer/config/dev/besu.exs index d75cf4074def..0bc3bbd80e25 100644 --- a/apps/indexer/config/dev/besu.exs +++ b/apps/indexer/config/dev/besu.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/indexer/config/dev/erigon.exs b/apps/indexer/config/dev/erigon.exs index 8670d834cffe..3c2f8ca49d5d 100644 --- a/apps/indexer/config/dev/erigon.exs +++ b/apps/indexer/config/dev/erigon.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/indexer/config/dev/filecoin.exs b/apps/indexer/config/dev/filecoin.exs index 2b89cf37b4b3..a3cbdd7f2ed7 100644 --- a/apps/indexer/config/dev/filecoin.exs +++ b/apps/indexer/config/dev/filecoin.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/indexer/config/dev/geth.exs b/apps/indexer/config/dev/geth.exs index 055bf8726c45..b465878a4af7 100644 --- a/apps/indexer/config/dev/geth.exs +++ b/apps/indexer/config/dev/geth.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/indexer/config/dev/nethermind.exs b/apps/indexer/config/dev/nethermind.exs index 49b742043e1d..d64560d7279f 100644 --- a/apps/indexer/config/dev/nethermind.exs +++ b/apps/indexer/config/dev/nethermind.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/indexer/config/dev/rsk.exs b/apps/indexer/config/dev/rsk.exs index 9797c51cd7d9..1d30f393d1c4 100644 --- a/apps/indexer/config/dev/rsk.exs +++ b/apps/indexer/config/dev/rsk.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/indexer/config/prod.exs b/apps/indexer/config/prod.exs index f34c981a8d40..a4a766bb00df 100644 --- a/apps/indexer/config/prod.exs +++ b/apps/indexer/config/prod.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :indexer, Indexer.Tracer, env: "production", disabled?: true diff --git a/apps/indexer/config/prod/anvil.exs b/apps/indexer/config/prod/anvil.exs index 7b5ba51fa874..84108c0aa73f 100644 --- a/apps/indexer/config/prod/anvil.exs +++ b/apps/indexer/config/prod/anvil.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/indexer/config/prod/besu.exs b/apps/indexer/config/prod/besu.exs index 645d8a38320e..906816f6fe84 100644 --- a/apps/indexer/config/prod/besu.exs +++ b/apps/indexer/config/prod/besu.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/indexer/config/prod/erigon.exs b/apps/indexer/config/prod/erigon.exs index d6b20a513b73..d3da29b20c80 100644 --- a/apps/indexer/config/prod/erigon.exs +++ b/apps/indexer/config/prod/erigon.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/indexer/config/prod/filecoin.exs b/apps/indexer/config/prod/filecoin.exs index c1ac0d94d6b6..de1fdcc317a5 100644 --- a/apps/indexer/config/prod/filecoin.exs +++ b/apps/indexer/config/prod/filecoin.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/indexer/config/prod/geth.exs b/apps/indexer/config/prod/geth.exs index 014992d687bb..93e9f94e5929 100644 --- a/apps/indexer/config/prod/geth.exs +++ b/apps/indexer/config/prod/geth.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/indexer/config/prod/nethermind.exs b/apps/indexer/config/prod/nethermind.exs index d58dcff04fae..0285a055df60 100644 --- a/apps/indexer/config/prod/nethermind.exs +++ b/apps/indexer/config/prod/nethermind.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/indexer/config/prod/rsk.exs b/apps/indexer/config/prod/rsk.exs index 9797c51cd7d9..1d30f393d1c4 100644 --- a/apps/indexer/config/prod/rsk.exs +++ b/apps/indexer/config/prod/rsk.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config ~w(config config_helper.exs) diff --git a/apps/indexer/config/runtime/test.exs b/apps/indexer/config/runtime/test.exs index 0eb6e7a598d1..fdb1d1c59535 100644 --- a/apps/indexer/config/runtime/test.exs +++ b/apps/indexer/config/runtime/test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config alias EthereumJSONRPC.Variant diff --git a/apps/indexer/config/test.exs b/apps/indexer/config/test.exs index ed8adef277fc..21b84f01b0b2 100644 --- a/apps/indexer/config/test.exs +++ b/apps/indexer/config/test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :indexer, Indexer.Tracer, disabled?: false diff --git a/apps/indexer/config/test/anvil.exs b/apps/indexer/config/test/anvil.exs index d5870672f919..00ef8931765a 100644 --- a/apps/indexer/config/test/anvil.exs +++ b/apps/indexer/config/test/anvil.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :indexer, diff --git a/apps/indexer/config/test/besu.exs b/apps/indexer/config/test/besu.exs index 2d388f17026e..871a005dcd8d 100644 --- a/apps/indexer/config/test/besu.exs +++ b/apps/indexer/config/test/besu.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :indexer, diff --git a/apps/indexer/config/test/erigon.exs b/apps/indexer/config/test/erigon.exs index 5f15cc7a8531..ad9215510a7f 100644 --- a/apps/indexer/config/test/erigon.exs +++ b/apps/indexer/config/test/erigon.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :indexer, diff --git a/apps/indexer/config/test/filecoin.exs b/apps/indexer/config/test/filecoin.exs index a7509d5e827e..c83199412680 100644 --- a/apps/indexer/config/test/filecoin.exs +++ b/apps/indexer/config/test/filecoin.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :indexer, diff --git a/apps/indexer/config/test/geth.exs b/apps/indexer/config/test/geth.exs index c70674d063c2..847740a778ca 100644 --- a/apps/indexer/config/test/geth.exs +++ b/apps/indexer/config/test/geth.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :indexer, diff --git a/apps/indexer/config/test/nethermind.exs b/apps/indexer/config/test/nethermind.exs index 7ef74da67bc9..134fb8ca2217 100644 --- a/apps/indexer/config/test/nethermind.exs +++ b/apps/indexer/config/test/nethermind.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :indexer, diff --git a/apps/indexer/config/test/rsk.exs b/apps/indexer/config/test/rsk.exs index 998275b2dfe4..de7f3501f7d9 100644 --- a/apps/indexer/config/test/rsk.exs +++ b/apps/indexer/config/test/rsk.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :indexer, diff --git a/apps/indexer/lib/indexer.ex b/apps/indexer/lib/indexer.ex index 34335d12aac0..f53484c25475 100644 --- a/apps/indexer/lib/indexer.ex +++ b/apps/indexer/lib/indexer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer do @moduledoc """ Indexes an Ethereum-based chain using JSONRPC. diff --git a/apps/indexer/lib/indexer/application.ex b/apps/indexer/lib/indexer/application.ex index e533f603bf53..86f593b22e6f 100644 --- a/apps/indexer/lib/indexer/application.ex +++ b/apps/indexer/lib/indexer/application.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Application do @moduledoc """ This is the `Application` module for `Indexer`. diff --git a/apps/indexer/lib/indexer/block/catchup/bound_interval_supervisor.ex b/apps/indexer/lib/indexer/block/catchup/bound_interval_supervisor.ex index 8f3d18dac5e8..d5b83c0e0f74 100644 --- a/apps/indexer/lib/indexer/block/catchup/bound_interval_supervisor.ex +++ b/apps/indexer/lib/indexer/block/catchup/bound_interval_supervisor.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.Catchup.BoundIntervalSupervisor do @moduledoc """ Supervises the `Indexer.BlockerFetcher.Catchup` with exponential backoff for restarts. diff --git a/apps/indexer/lib/indexer/block/catchup/fetcher.ex b/apps/indexer/lib/indexer/block/catchup/fetcher.ex index 5c1e14b74770..e3288ee192b4 100644 --- a/apps/indexer/lib/indexer/block/catchup/fetcher.ex +++ b/apps/indexer/lib/indexer/block/catchup/fetcher.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.Catchup.Fetcher do @moduledoc """ Fetches and indexes block ranges from the block before the latest block to genesis (0) that are missing. diff --git a/apps/indexer/lib/indexer/block/catchup/massive_blocks_fetcher.ex b/apps/indexer/lib/indexer/block/catchup/massive_blocks_fetcher.ex index 6236ee1e4271..fa7308ac0c8d 100644 --- a/apps/indexer/lib/indexer/block/catchup/massive_blocks_fetcher.ex +++ b/apps/indexer/lib/indexer/block/catchup/massive_blocks_fetcher.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.Catchup.MassiveBlocksFetcher do @moduledoc """ Fetches and indexes blocks by numbers from massive_blocks table. diff --git a/apps/indexer/lib/indexer/block/catchup/missing_ranges_collector.ex b/apps/indexer/lib/indexer/block/catchup/missing_ranges_collector.ex index 1a1f87439752..15dc99c4f2e5 100644 --- a/apps/indexer/lib/indexer/block/catchup/missing_ranges_collector.ex +++ b/apps/indexer/lib/indexer/block/catchup/missing_ranges_collector.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.Catchup.MissingRangesCollector do @moduledoc """ Collects and manages missing block ranges in the blockchain. diff --git a/apps/indexer/lib/indexer/block/catchup/supervisor.ex b/apps/indexer/lib/indexer/block/catchup/supervisor.ex index f11e4252e162..26164d5e4092 100644 --- a/apps/indexer/lib/indexer/block/catchup/supervisor.ex +++ b/apps/indexer/lib/indexer/block/catchup/supervisor.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.Catchup.Supervisor do @moduledoc """ Supervises `Indexer.Block.Catchup.TaskSupervisor` and `Indexer.Block.Catchup.BoundIntervalSupervisor` diff --git a/apps/indexer/lib/indexer/block/fetcher.ex b/apps/indexer/lib/indexer/block/fetcher.ex index be62c3673ad4..ad5a79852303 100644 --- a/apps/indexer/lib/indexer/block/fetcher.ex +++ b/apps/indexer/lib/indexer/block/fetcher.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.Fetcher do @moduledoc """ Fetches and indexes block ranges. diff --git a/apps/indexer/lib/indexer/block/fetcher/receipts.ex b/apps/indexer/lib/indexer/block/fetcher/receipts.ex index 4e6d1590ffb1..274944ca7d23 100644 --- a/apps/indexer/lib/indexer/block/fetcher/receipts.ex +++ b/apps/indexer/lib/indexer/block/fetcher/receipts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.Fetcher.Receipts do @moduledoc """ Fetches and processes transaction receipts and logs for block indexing. diff --git a/apps/indexer/lib/indexer/block/realtime/fetcher.ex b/apps/indexer/lib/indexer/block/realtime/fetcher.ex index 24109152246f..7b415a255c98 100644 --- a/apps/indexer/lib/indexer/block/realtime/fetcher.ex +++ b/apps/indexer/lib/indexer/block/realtime/fetcher.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.Realtime.Fetcher do @moduledoc """ Fetches and indexes block ranges from latest block forward using a WebSocket. diff --git a/apps/indexer/lib/indexer/block/realtime/supervisor.ex b/apps/indexer/lib/indexer/block/realtime/supervisor.ex index 3d6e77b50262..8795b4a8665b 100644 --- a/apps/indexer/lib/indexer/block/realtime/supervisor.ex +++ b/apps/indexer/lib/indexer/block/realtime/supervisor.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.Realtime.Supervisor do @moduledoc """ Supervises realtime block fetcher. diff --git a/apps/indexer/lib/indexer/bound_interval.ex b/apps/indexer/lib/indexer/bound_interval.ex index 3ccfdfd2969c..79dd3847f881 100644 --- a/apps/indexer/lib/indexer/bound_interval.ex +++ b/apps/indexer/lib/indexer/bound_interval.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.BoundInterval do @moduledoc """ An interval for `Process.send_after` that is restricted to being between a `minimum` and `maximum` value diff --git a/apps/indexer/lib/indexer/bridged_tokens/calc_lp_tokens_total_liquidity.ex b/apps/indexer/lib/indexer/bridged_tokens/calc_lp_tokens_total_liquidity.ex index fabf22e75dcf..5c4842f057e5 100644 --- a/apps/indexer/lib/indexer/bridged_tokens/calc_lp_tokens_total_liquidity.ex +++ b/apps/indexer/lib/indexer/bridged_tokens/calc_lp_tokens_total_liquidity.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.BridgedTokens.CalcLpTokensTotalLiquidity do @moduledoc """ Periodically updates LP tokens total liquidity diff --git a/apps/indexer/lib/indexer/bridged_tokens/set_amb_bridged_metadata_for_tokens.ex b/apps/indexer/lib/indexer/bridged_tokens/set_amb_bridged_metadata_for_tokens.ex index 02fcaa970502..86bd88e6a7a5 100644 --- a/apps/indexer/lib/indexer/bridged_tokens/set_amb_bridged_metadata_for_tokens.ex +++ b/apps/indexer/lib/indexer/bridged_tokens/set_amb_bridged_metadata_for_tokens.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.BridgedTokens.SetAmbBridgedMetadataForTokens do @moduledoc """ Sets token metadata for bridged tokens from AMB extensions. diff --git a/apps/indexer/lib/indexer/bridged_tokens/set_omni_bridged_metadata_for_tokens.ex b/apps/indexer/lib/indexer/bridged_tokens/set_omni_bridged_metadata_for_tokens.ex index e6ba7afc3cb2..b55a97f47053 100644 --- a/apps/indexer/lib/indexer/bridged_tokens/set_omni_bridged_metadata_for_tokens.ex +++ b/apps/indexer/lib/indexer/bridged_tokens/set_omni_bridged_metadata_for_tokens.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.BridgedTokens.SetOmniBridgedMetadataForTokens do @moduledoc """ Periodically checks unprocessed tokens and sets bridged status. diff --git a/apps/indexer/lib/indexer/buffered_task.ex b/apps/indexer/lib/indexer/buffered_task.ex index 5bded9b8abf0..9e82aa307e01 100644 --- a/apps/indexer/lib/indexer/buffered_task.ex +++ b/apps/indexer/lib/indexer/buffered_task.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.BufferedTask do @moduledoc """ Provides a behaviour for batched task running with retries and memory-aware buffering. diff --git a/apps/indexer/lib/indexer/fetcher.ex b/apps/indexer/lib/indexer/fetcher.ex index fc9851da862e..dc7e6c70af35 100644 --- a/apps/indexer/lib/indexer/fetcher.ex +++ b/apps/indexer/lib/indexer/fetcher.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher do @moduledoc """ General fetcher infrastructure. diff --git a/apps/indexer/lib/indexer/fetcher/address_nonce_updater.ex b/apps/indexer/lib/indexer/fetcher/address_nonce_updater.ex index 64db707459de..a03d56be7eb5 100644 --- a/apps/indexer/lib/indexer/fetcher/address_nonce_updater.ex +++ b/apps/indexer/lib/indexer/fetcher/address_nonce_updater.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.AddressNonceUpdater do @moduledoc """ Periodically updates addresses nonce diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/da/anytrust.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/da/anytrust.ex index 6566cab480e1..1f1c0b3a17aa 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/da/anytrust.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/da/anytrust.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.DA.Anytrust do @moduledoc """ Provides functionality for handling AnyTrust data availability information diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/da/celestia.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/da/celestia.ex index 6f20ded63a59..0cdfd3bc55be 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/da/celestia.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/da/celestia.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.DA.Celestia do @moduledoc """ Provides functionality for parsing and preparing Celestia data availability diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/da/common.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/da/common.ex index 40d6b7521841..a373c572b0b7 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/da/common.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/da/common.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.DA.Common do @moduledoc """ This module provides common functionalities for handling data availability (DA) diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/da/eigenda.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/da/eigenda.ex index 01596f9e3755..8ed92a3c2f0c 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/da/eigenda.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/da/eigenda.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.DA.Eigenda do @moduledoc """ Provides functionality for parsing EigenDA data availability information diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/data_backfill.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/data_backfill.ex index 11cd87de837f..b1c9b66a1540 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/data_backfill.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/data_backfill.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.DataBackfill do @moduledoc """ Manages the backfilling process for Arbitrum-specific block data in a controlled manner diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/messages_to_l2_matcher.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/messages_to_l2_matcher.ex index 49cfa23c9ee4..afb9f36211e2 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/messages_to_l2_matcher.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/messages_to_l2_matcher.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.MessagesToL2Matcher do @moduledoc """ Matches and processes L1-to-L2 messages in the Arbitrum protocol. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/messaging.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/messaging.ex index 662a35784cce..286e58313406 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/messaging.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/messaging.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Messaging do @moduledoc """ Provides functionality for filtering and handling messaging between Layer 1 (L1) and Layer 2 (L2) in the Arbitrum protocol. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/rollup_messages_catchup.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/rollup_messages_catchup.ex index e228068814e9..b2349ccaa11c 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/rollup_messages_catchup.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/rollup_messages_catchup.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.RollupMessagesCatchup do @moduledoc """ Manages the catch-up process for historical rollup messages between Layer 1 (L1) diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/tracking_batches_statuses.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/tracking_batches_statuses.ex index a8818761d166..25d7033e053d 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/tracking_batches_statuses.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/tracking_batches_statuses.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.TrackingBatchesStatuses do @moduledoc """ Manages the tracking and updating of the statuses of rollup batches, diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/tracking_messages_on_l1.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/tracking_messages_on_l1.ex index 6f80a5e9bae6..725eece520a4 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/tracking_messages_on_l1.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/tracking_messages_on_l1.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.TrackingMessagesOnL1 do @moduledoc """ Manages the tracking and processing of new and historical cross-chain messages initiated on L1 for an Arbitrum rollup. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/common.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/common.ex index ef6f42e0a99e..a72f710e1cac 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/common.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/common.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Utils.Db.Common do @moduledoc """ Provides chain-agnostic database utility functions for block-related operations. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/messages.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/messages.ex index 49833e9cedae..bac56a06c01c 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/messages.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/messages.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Utils.Db.Messages do @moduledoc """ Provides utility functions for querying Arbitrum cross-chain message data. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/parent_chain_transactions.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/parent_chain_transactions.ex index 744b8dfcf902..1d58c638cd9a 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/parent_chain_transactions.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/parent_chain_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Utils.Db.ParentChainTransactions do @moduledoc """ Manages database operations for Arbitrum L1 (parent chain) lifecycle transactions. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/settlement.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/settlement.ex index e0bca6a885d4..8fb49904257a 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/settlement.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/settlement.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Utils.Db.Settlement do @moduledoc """ Provides utility functions for querying Arbitrum rollup settlement data. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/tools.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/tools.ex index e3eb7cf4c587..0e3c01041d99 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/tools.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/utils/db/tools.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Utils.Db.Tools do @moduledoc """ Internal database utility functions for Arbitrum-related data processing. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/utils/helper.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/utils/helper.ex index fc0f9e33cae5..ee20b9caa220 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/utils/helper.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/utils/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Utils.Helper do alias Explorer.Chain.Arbitrum.LifecycleTransaction alias Explorer.Chain.Cache.BackgroundMigrations diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/utils/logging.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/utils/logging.ex index 1dd8da71d9cf..7f21e60ac068 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/utils/logging.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/utils/logging.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Utils.Logging do @moduledoc """ Common logging functions for Indexer.Fetcher.Arbitrum fetchers diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/utils/rpc.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/utils/rpc.ex index f9dfca0fd801..2c1b54d6746f 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/utils/rpc.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/utils/rpc.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Utils.Rpc do @moduledoc """ Common functions to simplify RPC routines for Indexer.Fetcher.Arbitrum fetchers diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/backfill.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/backfill.ex index 214c7762fd67..27fd4be601f1 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/backfill.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/backfill.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Workers.Backfill do @moduledoc """ Handles backfilling of missing Arbitrum-specific data for indexed blocks and their diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/discovery.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/discovery.ex index 87a369f990ce..901a1ef8e74e 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/discovery.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/discovery.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Workers.Batches.Discovery do @moduledoc """ Implements core batch discovery functionality for the Arbitrum rollup indexer. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/discovery_utils.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/discovery_utils.ex index 001dadaa8a92..4cff31bbb041 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/discovery_utils.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/discovery_utils.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Workers.Batches.DiscoveryUtils do @moduledoc """ Provides utility functions for batch discovery in Arbitrum rollups. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/events.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/events.ex index 56c6e7572142..857c1c4460ea 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/events.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/events.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Workers.Batches.Events do @moduledoc """ Provides functionality for retrieving Arbitrum `SequencerBatchDelivered` event logs. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/rollup_entities.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/rollup_entities.ex index a64358af1c4d..39a708118c79 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/rollup_entities.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/rollup_entities.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Workers.Batches.RollupEntities do @moduledoc """ The module associates rollup blocks and transactions with their corresponding batches in the Arbitrum blockchain. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/tasks.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/tasks.ex index 1eee3223434b..233506db3ab8 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/tasks.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/batches/tasks.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Workers.Batches.Tasks do @moduledoc """ Manages the discovery and importation of new and historical batches of transactions for an Arbitrum rollup. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/confirmations/discovery.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/confirmations/discovery.ex index b5f710fc04d7..59f3850bbd7c 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/confirmations/discovery.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/confirmations/discovery.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Workers.Confirmations.Discovery do @moduledoc """ Handles the discovery and processing of rollup block confirmations in Arbitrum. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/confirmations/events.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/confirmations/events.ex index 9ea7ef973c97..8b72daeb0a48 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/confirmations/events.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/confirmations/events.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Workers.Confirmations.Events do @moduledoc """ Provides functionality for fetching and parsing Arbitrum's SendRootUpdated events. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/confirmations/rollup_blocks.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/confirmations/rollup_blocks.ex index bac843231d4e..f7a6a2e1a313 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/confirmations/rollup_blocks.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/confirmations/rollup_blocks.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Workers.Confirmations.RollupBlocks do @moduledoc """ Handles the discovery and marking of confirmed rollup blocks in Arbitrum. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/confirmations/tasks.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/confirmations/tasks.ex index 5c06a333224b..b00212ded9bc 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/confirmations/tasks.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/confirmations/tasks.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Workers.Confirmations.Tasks do @moduledoc """ Handles the discovery and processing of new and historical confirmations of rollup blocks for an Arbitrum rollup. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/historical_messages_on_l2.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/historical_messages_on_l2.ex index 7273c37b3f88..ace97ac08eb1 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/historical_messages_on_l2.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/historical_messages_on_l2.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Workers.HistoricalMessagesOnL2 do @moduledoc """ Handles the discovery and processing of historical messages between Layer 1 (L1) and Layer 2 (L2) within an Arbitrum rollup. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/l1_finalization.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/l1_finalization.ex index 7e99868ebd38..b7b35691ca90 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/l1_finalization.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/l1_finalization.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Workers.L1Finalization do @moduledoc """ Oversees the finalization of lifecycle transactions on Layer 1 (L1) for Arbitrum rollups. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/new_l1_executions.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/new_l1_executions.ex index 9232c4b3b9d3..4aa04c6c881d 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/new_l1_executions.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/new_l1_executions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Workers.NewL1Executions do @moduledoc """ Coordinates the discovery and processing of new and historical L2-to-L1 message executions for an Arbitrum rollup. diff --git a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/new_messages_to_l2.ex b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/new_messages_to_l2.ex index edff8365c098..a68cbb04d776 100644 --- a/apps/indexer/lib/indexer/fetcher/arbitrum/workers/new_messages_to_l2.ex +++ b/apps/indexer/lib/indexer/fetcher/arbitrum/workers/new_messages_to_l2.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Arbitrum.Workers.NewMessagesToL2 do @moduledoc """ Manages the discovery and processing of new and historical L1-to-L2 messages initiated on L1 for an Arbitrum rollup. diff --git a/apps/indexer/lib/indexer/fetcher/beacon/blob.ex b/apps/indexer/lib/indexer/fetcher/beacon/blob.ex index 88e7067f2bd5..9909f52c7b60 100644 --- a/apps/indexer/lib/indexer/fetcher/beacon/blob.ex +++ b/apps/indexer/lib/indexer/fetcher/beacon/blob.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Beacon.Blob do @moduledoc """ Fills beacon_blobs DB table. diff --git a/apps/indexer/lib/indexer/fetcher/beacon/client.ex b/apps/indexer/lib/indexer/fetcher/beacon/client.ex index fd62ab60f952..e3adc07e793f 100644 --- a/apps/indexer/lib/indexer/fetcher/beacon/client.ex +++ b/apps/indexer/lib/indexer/fetcher/beacon/client.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Beacon.Client do @moduledoc """ HTTP Client for Beacon Chain RPC diff --git a/apps/indexer/lib/indexer/fetcher/beacon/deposit.ex b/apps/indexer/lib/indexer/fetcher/beacon/deposit.ex index d698db9d7808..354997151854 100644 --- a/apps/indexer/lib/indexer/fetcher/beacon/deposit.ex +++ b/apps/indexer/lib/indexer/fetcher/beacon/deposit.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Beacon.Deposit do @moduledoc """ Fetches deposit data from the beacon chain. diff --git a/apps/indexer/lib/indexer/fetcher/beacon/deposit/status.ex b/apps/indexer/lib/indexer/fetcher/beacon/deposit/status.ex index 53774b379a75..359e357f567e 100644 --- a/apps/indexer/lib/indexer/fetcher/beacon/deposit/status.ex +++ b/apps/indexer/lib/indexer/fetcher/beacon/deposit/status.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Beacon.Deposit.Status do @moduledoc """ Fetches the status of beacon deposits. diff --git a/apps/indexer/lib/indexer/fetcher/blackfort/validator.ex b/apps/indexer/lib/indexer/fetcher/blackfort/validator.ex index bd7715d52e4b..f18c9c4a0c0c 100644 --- a/apps/indexer/lib/indexer/fetcher/blackfort/validator.ex +++ b/apps/indexer/lib/indexer/fetcher/blackfort/validator.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Blackfort.Validator do @moduledoc """ GenServer responsible for updating the list of blackfort validators in the database. diff --git a/apps/indexer/lib/indexer/fetcher/block_reward.ex b/apps/indexer/lib/indexer/fetcher/block_reward.ex index 75b1b65351c2..f4de839d894d 100644 --- a/apps/indexer/lib/indexer/fetcher/block_reward.ex +++ b/apps/indexer/lib/indexer/fetcher/block_reward.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.BlockReward do @moduledoc """ Fetches `t:Explorer.Chain.Block.Reward.t/0` for a given `t:Explorer.Chain.Block.block_number/0`. diff --git a/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations.ex b/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations.ex index 1b5d75affcd6..2b1d70cef6a9 100644 --- a/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations.ex +++ b/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Celo.EpochBlockOperations do @moduledoc """ Tracks epoch blocks awaiting processing by the epoch fetcher. diff --git a/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/core_contract_version.ex b/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/core_contract_version.ex index 9b3a5d237048..b23ad15a8c4d 100644 --- a/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/core_contract_version.ex +++ b/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/core_contract_version.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Celo.EpochBlockOperations.CoreContractVersion do @moduledoc """ Fetches the version of the celo core contract. diff --git a/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/delegated_payments_prior_l2_migration.ex b/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/delegated_payments_prior_l2_migration.ex index 1d8d1832abc1..58ebfd553ff4 100644 --- a/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/delegated_payments_prior_l2_migration.ex +++ b/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/delegated_payments_prior_l2_migration.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Celo.EpochBlockOperations.DelegatedPaymentsPriorL2Migration do @moduledoc """ Fetches delegated validator payments for the epoch block. diff --git a/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/distributions.ex b/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/distributions.ex index 1ddef78beb34..8a4019209baf 100644 --- a/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/distributions.ex +++ b/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/distributions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Celo.EpochBlockOperations.Distributions do @moduledoc """ Fetches Reserve bolster, Community, and Carbon offsetting distributions for diff --git a/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/validator_and_group_payments_post_l2_migration.ex b/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/validator_and_group_payments_post_l2_migration.ex index 3feb70abace2..574574498c34 100644 --- a/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/validator_and_group_payments_post_l2_migration.ex +++ b/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/validator_and_group_payments_post_l2_migration.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Celo.EpochBlockOperations.ValidatorAndGroupPaymentsPostL2Migration do @moduledoc """ Fetches validator and group payments for the epoch post L2 migration. diff --git a/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/validator_and_group_payments_prior_l2_migration.ex b/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/validator_and_group_payments_prior_l2_migration.ex index 23f7eb25634a..4636e723dc77 100644 --- a/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/validator_and_group_payments_prior_l2_migration.ex +++ b/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/validator_and_group_payments_prior_l2_migration.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Celo.EpochBlockOperations.ValidatorAndGroupPaymentsPriorL2Migration do @moduledoc """ Fetches validator and group payments for the epoch block. diff --git a/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/voter_payments.ex b/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/voter_payments.ex index 684840bb596c..2c2928a465a5 100644 --- a/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/voter_payments.ex +++ b/apps/indexer/lib/indexer/fetcher/celo/epoch_block_operations/voter_payments.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Celo.EpochBlockOperations.VoterPayments do @moduledoc """ Fetches voter payments for the epoch block. diff --git a/apps/indexer/lib/indexer/fetcher/celo/epoch_logs.ex b/apps/indexer/lib/indexer/fetcher/celo/epoch_logs.ex index aea0faba42e8..d6c5cc9b4b40 100644 --- a/apps/indexer/lib/indexer/fetcher/celo/epoch_logs.ex +++ b/apps/indexer/lib/indexer/fetcher/celo/epoch_logs.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Celo.EpochLogs do @moduledoc """ Fetches logs that are not linked to transaction, but to the block. diff --git a/apps/indexer/lib/indexer/fetcher/celo/legacy/account.ex b/apps/indexer/lib/indexer/fetcher/celo/legacy/account.ex index 2d84e6fb3925..7a15ed786a61 100644 --- a/apps/indexer/lib/indexer/fetcher/celo/legacy/account.ex +++ b/apps/indexer/lib/indexer/fetcher/celo/legacy/account.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Celo.Legacy.Account do @moduledoc """ Asynchronously fetches Celo blockchain account data from event logs and diff --git a/apps/indexer/lib/indexer/fetcher/celo/legacy/account/reader.ex b/apps/indexer/lib/indexer/fetcher/celo/legacy/account/reader.ex index a1663b45c061..c11d7b53ea2b 100644 --- a/apps/indexer/lib/indexer/fetcher/celo/legacy/account/reader.ex +++ b/apps/indexer/lib/indexer/fetcher/celo/legacy/account/reader.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Celo.Legacy.Account.Reader do @moduledoc """ Reads Celo account data from core smart contracts. diff --git a/apps/indexer/lib/indexer/fetcher/celo/validator_group_votes.ex b/apps/indexer/lib/indexer/fetcher/celo/validator_group_votes.ex index d45d0e25ff18..2f4b038d5523 100644 --- a/apps/indexer/lib/indexer/fetcher/celo/validator_group_votes.ex +++ b/apps/indexer/lib/indexer/fetcher/celo/validator_group_votes.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Celo.ValidatorGroupVotes do @moduledoc """ Fetches validator group votes from the Celo blockchain. diff --git a/apps/indexer/lib/indexer/fetcher/coin_balance/catchup.ex b/apps/indexer/lib/indexer/fetcher/coin_balance/catchup.ex index f063137d586c..dad25014b870 100644 --- a/apps/indexer/lib/indexer/fetcher/coin_balance/catchup.ex +++ b/apps/indexer/lib/indexer/fetcher/coin_balance/catchup.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.CoinBalance.Catchup do @moduledoc """ Fetches `t:Explorer.Chain.Address.CoinBalance.t/0` and updates `t:Explorer.Chain.Address.t/0` `fetched_coin_balance` and diff --git a/apps/indexer/lib/indexer/fetcher/coin_balance/helper.ex b/apps/indexer/lib/indexer/fetcher/coin_balance/helper.ex index dc6bfc77fd5d..31e6bbbcca6e 100644 --- a/apps/indexer/lib/indexer/fetcher/coin_balance/helper.ex +++ b/apps/indexer/lib/indexer/fetcher/coin_balance/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.CoinBalance.Helper do @moduledoc """ Common functions for `Indexer.Fetcher.CoinBalance.Catchup` and `Indexer.Fetcher.CoinBalance.Realtime` modules diff --git a/apps/indexer/lib/indexer/fetcher/coin_balance/realtime.ex b/apps/indexer/lib/indexer/fetcher/coin_balance/realtime.ex index 91c6611d4eac..f56498f55f55 100644 --- a/apps/indexer/lib/indexer/fetcher/coin_balance/realtime.ex +++ b/apps/indexer/lib/indexer/fetcher/coin_balance/realtime.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.CoinBalance.Realtime do @moduledoc """ Separate version of `Indexer.Fetcher.CoinBalance.Catchup` for fetching balances from realtime block fetcher diff --git a/apps/indexer/lib/indexer/fetcher/contract_code.ex b/apps/indexer/lib/indexer/fetcher/contract_code.ex index 60170d5768ed..54fe4afaf829 100644 --- a/apps/indexer/lib/indexer/fetcher/contract_code.ex +++ b/apps/indexer/lib/indexer/fetcher/contract_code.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ContractCode do @moduledoc """ Fetches `contract_code` `t:Explorer.Chain.Address.t/0`. diff --git a/apps/indexer/lib/indexer/fetcher/empty_blocks_sanitizer.ex b/apps/indexer/lib/indexer/fetcher/empty_blocks_sanitizer.ex index 32d82fc48766..83466e703a7f 100644 --- a/apps/indexer/lib/indexer/fetcher/empty_blocks_sanitizer.ex +++ b/apps/indexer/lib/indexer/fetcher/empty_blocks_sanitizer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.EmptyBlocksSanitizer do @moduledoc """ Periodically checks empty blocks starting from the head of the chain, detects for which blocks transactions should be refetched diff --git a/apps/indexer/lib/indexer/fetcher/filecoin/address_info.ex b/apps/indexer/lib/indexer/fetcher/filecoin/address_info.ex index 3c2bbf75e29a..eac3322e407f 100644 --- a/apps/indexer/lib/indexer/fetcher/filecoin/address_info.ex +++ b/apps/indexer/lib/indexer/fetcher/filecoin/address_info.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Filecoin.AddressInfo do @moduledoc """ A task for fetching Filecoin addresses info in the Address table using the diff --git a/apps/indexer/lib/indexer/fetcher/filecoin/beryx_api.ex b/apps/indexer/lib/indexer/fetcher/filecoin/beryx_api.ex index 0d2515b266f8..f2f035a14096 100644 --- a/apps/indexer/lib/indexer/fetcher/filecoin/beryx_api.ex +++ b/apps/indexer/lib/indexer/fetcher/filecoin/beryx_api.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Filecoin.BeryxAPI do @moduledoc """ Interacts with the Beryx API to fetch account information based on an Ethereum diff --git a/apps/indexer/lib/indexer/fetcher/filecoin/filfox_api.ex b/apps/indexer/lib/indexer/fetcher/filecoin/filfox_api.ex index bcfb59de4b0b..62144be656ba 100644 --- a/apps/indexer/lib/indexer/fetcher/filecoin/filfox_api.ex +++ b/apps/indexer/lib/indexer/fetcher/filecoin/filfox_api.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Filecoin.FilfoxAPI do @moduledoc """ Interacts with the Filfox API to fetch account information based on an Ethereum diff --git a/apps/indexer/lib/indexer/fetcher/internal_transaction.ex b/apps/indexer/lib/indexer/fetcher/internal_transaction.ex index 7b0d60365841..7783ae26810c 100644 --- a/apps/indexer/lib/indexer/fetcher/internal_transaction.ex +++ b/apps/indexer/lib/indexer/fetcher/internal_transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.InternalTransaction do @moduledoc """ Fetches and indexes `t:Explorer.Chain.InternalTransaction.t/0`. diff --git a/apps/indexer/lib/indexer/fetcher/internal_transaction/delete_queue.ex b/apps/indexer/lib/indexer/fetcher/internal_transaction/delete_queue.ex index b20384d148da..e7d6ae19a813 100644 --- a/apps/indexer/lib/indexer/fetcher/internal_transaction/delete_queue.ex +++ b/apps/indexer/lib/indexer/fetcher/internal_transaction/delete_queue.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.InternalTransaction.DeleteQueue do @moduledoc """ Deletes internal transactions for block from the queue and inserts new pending operations for them. diff --git a/apps/indexer/lib/indexer/fetcher/multichain_search_db/balances_export_queue.ex b/apps/indexer/lib/indexer/fetcher/multichain_search_db/balances_export_queue.ex index a8ae9e2fcb69..c9ba1afe4f89 100644 --- a/apps/indexer/lib/indexer/fetcher/multichain_search_db/balances_export_queue.ex +++ b/apps/indexer/lib/indexer/fetcher/multichain_search_db/balances_export_queue.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.MultichainSearchDb.BalancesExportQueue do @moduledoc """ Exports token and coin balances to Multichain Search DB service from the queue. diff --git a/apps/indexer/lib/indexer/fetcher/multichain_search_db/counters_export_queue.ex b/apps/indexer/lib/indexer/fetcher/multichain_search_db/counters_export_queue.ex index 42a64451c9ea..ece10ba86655 100644 --- a/apps/indexer/lib/indexer/fetcher/multichain_search_db/counters_export_queue.ex +++ b/apps/indexer/lib/indexer/fetcher/multichain_search_db/counters_export_queue.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.MultichainSearchDb.CountersExportQueue do @moduledoc """ Exports blockchain data to Multichain Search DB service from the queue. diff --git a/apps/indexer/lib/indexer/fetcher/multichain_search_db/counters_fetcher.ex b/apps/indexer/lib/indexer/fetcher/multichain_search_db/counters_fetcher.ex index 29815353a29b..8680cea12d14 100644 --- a/apps/indexer/lib/indexer/fetcher/multichain_search_db/counters_fetcher.ex +++ b/apps/indexer/lib/indexer/fetcher/multichain_search_db/counters_fetcher.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.MultichainSearchDb.CountersFetcher do @moduledoc """ Fetches counters and adds them to a queue to send to Multichain Search DB service. diff --git a/apps/indexer/lib/indexer/fetcher/multichain_search_db/main_export_queue.ex b/apps/indexer/lib/indexer/fetcher/multichain_search_db/main_export_queue.ex index d9ced6aea750..e8809cab5d77 100644 --- a/apps/indexer/lib/indexer/fetcher/multichain_search_db/main_export_queue.ex +++ b/apps/indexer/lib/indexer/fetcher/multichain_search_db/main_export_queue.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.MultichainSearchDb.MainExportQueue do @moduledoc """ Exports blockchain data to Multichain Search DB service from the queue. diff --git a/apps/indexer/lib/indexer/fetcher/multichain_search_db/token_info_export_queue.ex b/apps/indexer/lib/indexer/fetcher/multichain_search_db/token_info_export_queue.ex index 66378b80bdef..5d933572896a 100644 --- a/apps/indexer/lib/indexer/fetcher/multichain_search_db/token_info_export_queue.ex +++ b/apps/indexer/lib/indexer/fetcher/multichain_search_db/token_info_export_queue.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.MultichainSearchDb.TokenInfoExportQueue do @moduledoc """ Exports blockchain data to Multichain Search DB service from the queue. diff --git a/apps/indexer/lib/indexer/fetcher/on_demand/coin_balance.ex b/apps/indexer/lib/indexer/fetcher/on_demand/coin_balance.ex index d67f106e56a4..59e621c0ac01 100644 --- a/apps/indexer/lib/indexer/fetcher/on_demand/coin_balance.ex +++ b/apps/indexer/lib/indexer/fetcher/on_demand/coin_balance.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.CoinBalance do @moduledoc """ Ensures that we have a reasonably up to date coin balance for a given address. diff --git a/apps/indexer/lib/indexer/fetcher/on_demand/contract_code.ex b/apps/indexer/lib/indexer/fetcher/on_demand/contract_code.ex index 77fd227317e1..246d943389db 100644 --- a/apps/indexer/lib/indexer/fetcher/on_demand/contract_code.ex +++ b/apps/indexer/lib/indexer/fetcher/on_demand/contract_code.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.ContractCode do @moduledoc """ Ensures that we have a smart-contract bytecode indexed. diff --git a/apps/indexer/lib/indexer/fetcher/on_demand/contract_creator.ex b/apps/indexer/lib/indexer/fetcher/on_demand/contract_creator.ex index 9dda8e4a00a4..add2388bc2d4 100644 --- a/apps/indexer/lib/indexer/fetcher/on_demand/contract_creator.ex +++ b/apps/indexer/lib/indexer/fetcher/on_demand/contract_creator.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.ContractCreator do @moduledoc """ Ensures that we have a smart-contract creator address indexed. diff --git a/apps/indexer/lib/indexer/fetcher/on_demand/first_trace.ex b/apps/indexer/lib/indexer/fetcher/on_demand/first_trace.ex index 129566ea0627..36043b7c7181 100644 --- a/apps/indexer/lib/indexer/fetcher/on_demand/first_trace.ex +++ b/apps/indexer/lib/indexer/fetcher/on_demand/first_trace.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.FirstTrace do @moduledoc """ On demand fetcher of first transaction's trace diff --git a/apps/indexer/lib/indexer/fetcher/on_demand/internal_transaction.ex b/apps/indexer/lib/indexer/fetcher/on_demand/internal_transaction.ex index c89ab446f741..ec606f2653ea 100644 --- a/apps/indexer/lib/indexer/fetcher/on_demand/internal_transaction.ex +++ b/apps/indexer/lib/indexer/fetcher/on_demand/internal_transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # credo:disable-for-this-file defmodule Indexer.Fetcher.OnDemand.InternalTransaction do @moduledoc """ diff --git a/apps/indexer/lib/indexer/fetcher/on_demand/neon_solana_transactions.ex b/apps/indexer/lib/indexer/fetcher/on_demand/neon_solana_transactions.ex index bbbb870a1d45..881917fb3ef4 100644 --- a/apps/indexer/lib/indexer/fetcher/on_demand/neon_solana_transactions.ex +++ b/apps/indexer/lib/indexer/fetcher/on_demand/neon_solana_transactions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.NeonSolanaTransactions do @moduledoc """ A caching proxy service getting linked solana transactions from NeonEVM Node. diff --git a/apps/indexer/lib/indexer/fetcher/on_demand/nft_collection_metadata_refetch.ex b/apps/indexer/lib/indexer/fetcher/on_demand/nft_collection_metadata_refetch.ex index ef4d084d4f6f..9d1def96ad8b 100644 --- a/apps/indexer/lib/indexer/fetcher/on_demand/nft_collection_metadata_refetch.ex +++ b/apps/indexer/lib/indexer/fetcher/on_demand/nft_collection_metadata_refetch.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.NFTCollectionMetadataRefetch do @moduledoc """ Re-fetches token metadata. diff --git a/apps/indexer/lib/indexer/fetcher/on_demand/token_balance.ex b/apps/indexer/lib/indexer/fetcher/on_demand/token_balance.ex index ddc4cf9a7dab..20f9120914d5 100644 --- a/apps/indexer/lib/indexer/fetcher/on_demand/token_balance.ex +++ b/apps/indexer/lib/indexer/fetcher/on_demand/token_balance.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.TokenBalance do @moduledoc """ Ensures that we have a reasonably up to date address tokens balance. diff --git a/apps/indexer/lib/indexer/fetcher/on_demand/token_instance_metadata_refetch.ex b/apps/indexer/lib/indexer/fetcher/on_demand/token_instance_metadata_refetch.ex index 7d0128f36eb2..c59a16237b75 100644 --- a/apps/indexer/lib/indexer/fetcher/on_demand/token_instance_metadata_refetch.ex +++ b/apps/indexer/lib/indexer/fetcher/on_demand/token_instance_metadata_refetch.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.TokenInstanceMetadataRefetch do @moduledoc """ Re-fetches token instance metadata. diff --git a/apps/indexer/lib/indexer/fetcher/on_demand/token_total_supply.ex b/apps/indexer/lib/indexer/fetcher/on_demand/token_total_supply.ex index ca1406b71253..80dc1e4b539c 100644 --- a/apps/indexer/lib/indexer/fetcher/on_demand/token_total_supply.ex +++ b/apps/indexer/lib/indexer/fetcher/on_demand/token_total_supply.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.TokenTotalSupply do @moduledoc """ Ensures that we have a reasonably up to date token supply. diff --git a/apps/indexer/lib/indexer/fetcher/optimism.ex b/apps/indexer/lib/indexer/fetcher/optimism.ex index e854d6db5632..cf125c05e0b9 100644 --- a/apps/indexer/lib/indexer/fetcher/optimism.ex +++ b/apps/indexer/lib/indexer/fetcher/optimism.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Optimism do @moduledoc """ Contains common functions for Optimism* fetchers. diff --git a/apps/indexer/lib/indexer/fetcher/optimism/deposit.ex b/apps/indexer/lib/indexer/fetcher/optimism/deposit.ex index d5b51ad8498d..da6caa654589 100644 --- a/apps/indexer/lib/indexer/fetcher/optimism/deposit.ex +++ b/apps/indexer/lib/indexer/fetcher/optimism/deposit.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Optimism.Deposit do @moduledoc """ Fills op_deposits DB table. diff --git a/apps/indexer/lib/indexer/fetcher/optimism/dispute_game.ex b/apps/indexer/lib/indexer/fetcher/optimism/dispute_game.ex index 3295dcffa89f..80676562136f 100644 --- a/apps/indexer/lib/indexer/fetcher/optimism/dispute_game.ex +++ b/apps/indexer/lib/indexer/fetcher/optimism/dispute_game.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Optimism.DisputeGame do @moduledoc """ Fills op_dispute_games DB table. diff --git a/apps/indexer/lib/indexer/fetcher/optimism/eip1559_config_update.ex b/apps/indexer/lib/indexer/fetcher/optimism/eip1559_config_update.ex index ae41da57b2b5..9a3f209bc52b 100644 --- a/apps/indexer/lib/indexer/fetcher/optimism/eip1559_config_update.ex +++ b/apps/indexer/lib/indexer/fetcher/optimism/eip1559_config_update.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Optimism.EIP1559ConfigUpdate do @moduledoc """ Fills op_eip1559_config_updates DB table. diff --git a/apps/indexer/lib/indexer/fetcher/optimism/interop/helper.ex b/apps/indexer/lib/indexer/fetcher/optimism/interop/helper.ex index 3df02dbaf1dd..eb4a1d19ef69 100644 --- a/apps/indexer/lib/indexer/fetcher/optimism/interop/helper.ex +++ b/apps/indexer/lib/indexer/fetcher/optimism/interop/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Optimism.Interop.Helper do @moduledoc """ Auxiliary common functions for OP Interop indexers. diff --git a/apps/indexer/lib/indexer/fetcher/optimism/interop/message.ex b/apps/indexer/lib/indexer/fetcher/optimism/interop/message.ex index 9de880a79049..1ef0084f0837 100644 --- a/apps/indexer/lib/indexer/fetcher/optimism/interop/message.ex +++ b/apps/indexer/lib/indexer/fetcher/optimism/interop/message.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Optimism.Interop.Message do @moduledoc """ Fills op_interop_messages DB table by catching `SentMessage` and `RelayedMessage` events. diff --git a/apps/indexer/lib/indexer/fetcher/optimism/interop/message_failed.ex b/apps/indexer/lib/indexer/fetcher/optimism/interop/message_failed.ex index d62c6ca39a0e..9b2a01459776 100644 --- a/apps/indexer/lib/indexer/fetcher/optimism/interop/message_failed.ex +++ b/apps/indexer/lib/indexer/fetcher/optimism/interop/message_failed.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Optimism.Interop.MessageFailed do @moduledoc """ Fills op_interop_messages DB table with failed messages. diff --git a/apps/indexer/lib/indexer/fetcher/optimism/interop/message_queue.ex b/apps/indexer/lib/indexer/fetcher/optimism/interop/message_queue.ex index 71b058c1dc0a..db1961af02b7 100644 --- a/apps/indexer/lib/indexer/fetcher/optimism/interop/message_queue.ex +++ b/apps/indexer/lib/indexer/fetcher/optimism/interop/message_queue.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Optimism.Interop.MessageQueue do @moduledoc """ Searches for incomplete messages in the `op_interop_messages` database table and sends message's data to the diff --git a/apps/indexer/lib/indexer/fetcher/optimism/interop/multichain_export.ex b/apps/indexer/lib/indexer/fetcher/optimism/interop/multichain_export.ex index 938e021628aa..24981a315ae2 100644 --- a/apps/indexer/lib/indexer/fetcher/optimism/interop/multichain_export.ex +++ b/apps/indexer/lib/indexer/fetcher/optimism/interop/multichain_export.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Optimism.Interop.MultichainExport do @moduledoc """ Finds messages without `sent_to_multichain` flag in the `op_interop_messages` database table and diff --git a/apps/indexer/lib/indexer/fetcher/optimism/operator_fee.ex b/apps/indexer/lib/indexer/fetcher/optimism/operator_fee.ex index 841404005550..5d86b15e9424 100644 --- a/apps/indexer/lib/indexer/fetcher/optimism/operator_fee.ex +++ b/apps/indexer/lib/indexer/fetcher/optimism/operator_fee.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Optimism.OperatorFee do @moduledoc """ Retrieves and saves operator fee for historic transactions from their receipts using RPC calls diff --git a/apps/indexer/lib/indexer/fetcher/optimism/output_root.ex b/apps/indexer/lib/indexer/fetcher/optimism/output_root.ex index dd4b4bb2ff13..50358de6b4c0 100644 --- a/apps/indexer/lib/indexer/fetcher/optimism/output_root.ex +++ b/apps/indexer/lib/indexer/fetcher/optimism/output_root.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Optimism.OutputRoot do @moduledoc """ Fills op_output_roots DB table. diff --git a/apps/indexer/lib/indexer/fetcher/optimism/transaction_batch.ex b/apps/indexer/lib/indexer/fetcher/optimism/transaction_batch.ex index 9eb13562a270..bab88c859496 100644 --- a/apps/indexer/lib/indexer/fetcher/optimism/transaction_batch.ex +++ b/apps/indexer/lib/indexer/fetcher/optimism/transaction_batch.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Optimism.TransactionBatch do @moduledoc """ Fills op_transaction_batches, op_frame_sequence, and op_frame_sequence_blobs DB tables. diff --git a/apps/indexer/lib/indexer/fetcher/optimism/withdrawal.ex b/apps/indexer/lib/indexer/fetcher/optimism/withdrawal.ex index 7ee631d006b8..e8d9b46c4eb6 100644 --- a/apps/indexer/lib/indexer/fetcher/optimism/withdrawal.ex +++ b/apps/indexer/lib/indexer/fetcher/optimism/withdrawal.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Optimism.Withdrawal do @moduledoc """ Fills op_withdrawals DB table. diff --git a/apps/indexer/lib/indexer/fetcher/optimism/withdrawal_event.ex b/apps/indexer/lib/indexer/fetcher/optimism/withdrawal_event.ex index 1e6fd42a8934..40b037b54413 100644 --- a/apps/indexer/lib/indexer/fetcher/optimism/withdrawal_event.ex +++ b/apps/indexer/lib/indexer/fetcher/optimism/withdrawal_event.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Optimism.WithdrawalEvent do @moduledoc """ Fills op_withdrawal_events DB table. diff --git a/apps/indexer/lib/indexer/fetcher/pending_block_operations_sanitizer.ex b/apps/indexer/lib/indexer/fetcher/pending_block_operations_sanitizer.ex index d7a4c046594c..911bfc679c4e 100644 --- a/apps/indexer/lib/indexer/fetcher/pending_block_operations_sanitizer.ex +++ b/apps/indexer/lib/indexer/fetcher/pending_block_operations_sanitizer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.PendingBlockOperationsSanitizer do @moduledoc """ Set block_number for pending block operations that have it empty diff --git a/apps/indexer/lib/indexer/fetcher/pending_transaction.ex b/apps/indexer/lib/indexer/fetcher/pending_transaction.ex index 7ac5628efbec..95acce2db1dd 100644 --- a/apps/indexer/lib/indexer/fetcher/pending_transaction.ex +++ b/apps/indexer/lib/indexer/fetcher/pending_transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.PendingTransaction do @moduledoc """ Fetches pending transactions and imports them. diff --git a/apps/indexer/lib/indexer/fetcher/replaced_transaction.ex b/apps/indexer/lib/indexer/fetcher/replaced_transaction.ex index 47af51e90697..fa02738e8aa6 100644 --- a/apps/indexer/lib/indexer/fetcher/replaced_transaction.ex +++ b/apps/indexer/lib/indexer/fetcher/replaced_transaction.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ReplacedTransaction do @moduledoc """ Finds and updates replaced transactions. diff --git a/apps/indexer/lib/indexer/fetcher/rollup_l1_reorg_monitor.ex b/apps/indexer/lib/indexer/fetcher/rollup_l1_reorg_monitor.ex index 157ea0d75691..24917ca9ecd6 100644 --- a/apps/indexer/lib/indexer/fetcher/rollup_l1_reorg_monitor.ex +++ b/apps/indexer/lib/indexer/fetcher/rollup_l1_reorg_monitor.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.RollupL1ReorgMonitor do @moduledoc """ A module to monitor and catch L1 reorgs and make queue of the reorg blocks diff --git a/apps/indexer/lib/indexer/fetcher/rootstock_data.ex b/apps/indexer/lib/indexer/fetcher/rootstock_data.ex index 552804dd0039..4e44995f4160 100644 --- a/apps/indexer/lib/indexer/fetcher/rootstock_data.ex +++ b/apps/indexer/lib/indexer/fetcher/rootstock_data.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.RootstockData do @moduledoc """ Refetch `minimum_gas_price`, `bitcoin_merged_mining_header`, `bitcoin_merged_mining_coinbase_transaction`, diff --git a/apps/indexer/lib/indexer/fetcher/scroll/batch.ex b/apps/indexer/lib/indexer/fetcher/scroll/batch.ex index fdbee99be7fe..68bf0362c111 100644 --- a/apps/indexer/lib/indexer/fetcher/scroll/batch.ex +++ b/apps/indexer/lib/indexer/fetcher/scroll/batch.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Scroll.Batch do @moduledoc """ The module for scanning L1 RPC node for the `CommitBatch` and `FinalizeBatch` events diff --git a/apps/indexer/lib/indexer/fetcher/scroll/bridge.ex b/apps/indexer/lib/indexer/fetcher/scroll/bridge.ex index 78e83f4ba22f..c5840ac6a17c 100644 --- a/apps/indexer/lib/indexer/fetcher/scroll/bridge.ex +++ b/apps/indexer/lib/indexer/fetcher/scroll/bridge.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Scroll.Bridge do @moduledoc """ Contains common functions for Indexer.Fetcher.Scroll.Bridge* modules. diff --git a/apps/indexer/lib/indexer/fetcher/scroll/bridge_l1.ex b/apps/indexer/lib/indexer/fetcher/scroll/bridge_l1.ex index 408cc72b8464..760fc9985b8d 100644 --- a/apps/indexer/lib/indexer/fetcher/scroll/bridge_l1.ex +++ b/apps/indexer/lib/indexer/fetcher/scroll/bridge_l1.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Scroll.BridgeL1 do @moduledoc """ The module for scanning Scroll RPC node on L1 for the message logs (events), parsing them, diff --git a/apps/indexer/lib/indexer/fetcher/scroll/bridge_l2.ex b/apps/indexer/lib/indexer/fetcher/scroll/bridge_l2.ex index 8da454cba29e..49a106112972 100644 --- a/apps/indexer/lib/indexer/fetcher/scroll/bridge_l2.ex +++ b/apps/indexer/lib/indexer/fetcher/scroll/bridge_l2.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Scroll.BridgeL2 do @moduledoc """ The module for scanning Scroll RPC node on L2 for the message logs (events), parsing them, diff --git a/apps/indexer/lib/indexer/fetcher/scroll/helper.ex b/apps/indexer/lib/indexer/fetcher/scroll/helper.ex index 574ff1aa4634..728027b75104 100644 --- a/apps/indexer/lib/indexer/fetcher/scroll/helper.ex +++ b/apps/indexer/lib/indexer/fetcher/scroll/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Scroll.Helper do @moduledoc """ A module to define common Scroll indexer functions. diff --git a/apps/indexer/lib/indexer/fetcher/scroll/l1_fee_param.ex b/apps/indexer/lib/indexer/fetcher/scroll/l1_fee_param.ex index c0b8d0c23bb7..f4c2d6c36570 100644 --- a/apps/indexer/lib/indexer/fetcher/scroll/l1_fee_param.ex +++ b/apps/indexer/lib/indexer/fetcher/scroll/l1_fee_param.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Scroll.L1FeeParam do @moduledoc """ Fills scroll_l1_fee_params DB table. diff --git a/apps/indexer/lib/indexer/fetcher/shibarium/helper.ex b/apps/indexer/lib/indexer/fetcher/shibarium/helper.ex index 592880d957a1..526b03c93301 100644 --- a/apps/indexer/lib/indexer/fetcher/shibarium/helper.ex +++ b/apps/indexer/lib/indexer/fetcher/shibarium/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Shibarium.Helper do @moduledoc """ Common functions for Indexer.Fetcher.Shibarium.* modules. diff --git a/apps/indexer/lib/indexer/fetcher/shibarium/l1.ex b/apps/indexer/lib/indexer/fetcher/shibarium/l1.ex index 4e13d9667860..a02c2c409da0 100644 --- a/apps/indexer/lib/indexer/fetcher/shibarium/l1.ex +++ b/apps/indexer/lib/indexer/fetcher/shibarium/l1.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Shibarium.L1 do @moduledoc """ Fills shibarium_bridge DB table. diff --git a/apps/indexer/lib/indexer/fetcher/shibarium/l2.ex b/apps/indexer/lib/indexer/fetcher/shibarium/l2.ex index 3aa2d42826c6..6872ae5a06d8 100644 --- a/apps/indexer/lib/indexer/fetcher/shibarium/l2.ex +++ b/apps/indexer/lib/indexer/fetcher/shibarium/l2.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Shibarium.L2 do @moduledoc """ Fills shibarium_bridge DB table. diff --git a/apps/indexer/lib/indexer/fetcher/signed_authorization_status.ex b/apps/indexer/lib/indexer/fetcher/signed_authorization_status.ex index c8470d3dd1f1..0af51bc556ee 100644 --- a/apps/indexer/lib/indexer/fetcher/signed_authorization_status.ex +++ b/apps/indexer/lib/indexer/fetcher/signed_authorization_status.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.SignedAuthorizationStatus do @moduledoc """ Fetches `status` `t:Explorer.Chain.SignedAuthorization.t/0`. diff --git a/apps/indexer/lib/indexer/fetcher/stability/validator.ex b/apps/indexer/lib/indexer/fetcher/stability/validator.ex index c8fe6a1d8fb4..f764b931c6e7 100644 --- a/apps/indexer/lib/indexer/fetcher/stability/validator.ex +++ b/apps/indexer/lib/indexer/fetcher/stability/validator.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Stability.Validator do @moduledoc """ GenServer responsible for updating the list of stability validators in the database. diff --git a/apps/indexer/lib/indexer/fetcher/stats/hot_smart_contracts.ex b/apps/indexer/lib/indexer/fetcher/stats/hot_smart_contracts.ex index 47f1b556d5b5..7a416e2db7c2 100644 --- a/apps/indexer/lib/indexer/fetcher/stats/hot_smart_contracts.ex +++ b/apps/indexer/lib/indexer/fetcher/stats/hot_smart_contracts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Stats.HotSmartContracts do @moduledoc """ This module defines the HotSmartContracts fetcher for indexing hot contracts. diff --git a/apps/indexer/lib/indexer/fetcher/token.ex b/apps/indexer/lib/indexer/fetcher/token.ex index b8c083d4a202..e715929ee9ff 100644 --- a/apps/indexer/lib/indexer/fetcher/token.ex +++ b/apps/indexer/lib/indexer/fetcher/token.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Token do @moduledoc """ Fetches information about a token. diff --git a/apps/indexer/lib/indexer/fetcher/token_balance/current.ex b/apps/indexer/lib/indexer/fetcher/token_balance/current.ex index 161f9265b76b..41343754eb4f 100644 --- a/apps/indexer/lib/indexer/fetcher/token_balance/current.ex +++ b/apps/indexer/lib/indexer/fetcher/token_balance/current.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenBalance.Current do @moduledoc """ Fetches current token balances and sends the ones that were fetched to be imported in `Address.CurrentTokenBalance`. diff --git a/apps/indexer/lib/indexer/fetcher/token_balance/helper.ex b/apps/indexer/lib/indexer/fetcher/token_balance/helper.ex index dc3374946844..0bdf0a87a947 100644 --- a/apps/indexer/lib/indexer/fetcher/token_balance/helper.ex +++ b/apps/indexer/lib/indexer/fetcher/token_balance/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenBalance.Helper do @moduledoc """ Common functions for `Indexer.Fetcher.TokenBalance.Historical` and `Indexer.Fetcher.TokenBalance.Current` modules diff --git a/apps/indexer/lib/indexer/fetcher/token_balance/historical.ex b/apps/indexer/lib/indexer/fetcher/token_balance/historical.ex index 4d333b6c6683..38ab79cf0db6 100644 --- a/apps/indexer/lib/indexer/fetcher/token_balance/historical.ex +++ b/apps/indexer/lib/indexer/fetcher/token_balance/historical.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenBalance.Historical do @moduledoc """ Fetches historical token balances and sends the ones that were fetched to be imported in `Address.TokenBalance`. diff --git a/apps/indexer/lib/indexer/fetcher/token_counters_updater.ex b/apps/indexer/lib/indexer/fetcher/token_counters_updater.ex index 3bae7f6bf194..91960a0cdfa7 100644 --- a/apps/indexer/lib/indexer/fetcher/token_counters_updater.ex +++ b/apps/indexer/lib/indexer/fetcher/token_counters_updater.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenCountersUpdater do @moduledoc """ Updates counters for cataloged tokens. diff --git a/apps/indexer/lib/indexer/fetcher/token_instance/helper.ex b/apps/indexer/lib/indexer/fetcher/token_instance/helper.ex index 4f0023a8e690..0a6497da5dfa 100644 --- a/apps/indexer/lib/indexer/fetcher/token_instance/helper.ex +++ b/apps/indexer/lib/indexer/fetcher/token_instance/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenInstance.Helper do @moduledoc """ Common functions for Indexer.Fetcher.TokenInstance fetchers diff --git a/apps/indexer/lib/indexer/fetcher/token_instance/realtime.ex b/apps/indexer/lib/indexer/fetcher/token_instance/realtime.ex index e79243cf57ab..6b4eaaee4522 100644 --- a/apps/indexer/lib/indexer/fetcher/token_instance/realtime.ex +++ b/apps/indexer/lib/indexer/fetcher/token_instance/realtime.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenInstance.Realtime do @moduledoc """ Fetches information about a token instance. diff --git a/apps/indexer/lib/indexer/fetcher/token_instance/refetch.ex b/apps/indexer/lib/indexer/fetcher/token_instance/refetch.ex index a23883f63d54..fdf5be69349c 100644 --- a/apps/indexer/lib/indexer/fetcher/token_instance/refetch.ex +++ b/apps/indexer/lib/indexer/fetcher/token_instance/refetch.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenInstance.Refetch do @moduledoc """ Fetches information about a token instance, which is marked to be re-fetched. diff --git a/apps/indexer/lib/indexer/fetcher/token_instance/retry.ex b/apps/indexer/lib/indexer/fetcher/token_instance/retry.ex index 6f47c68534e4..158f123abc1a 100644 --- a/apps/indexer/lib/indexer/fetcher/token_instance/retry.ex +++ b/apps/indexer/lib/indexer/fetcher/token_instance/retry.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenInstance.Retry do @moduledoc """ Fetches information about a token instance. diff --git a/apps/indexer/lib/indexer/fetcher/token_instance/sanitize.ex b/apps/indexer/lib/indexer/fetcher/token_instance/sanitize.ex index ae18d9bdb232..7f650044ce9a 100644 --- a/apps/indexer/lib/indexer/fetcher/token_instance/sanitize.ex +++ b/apps/indexer/lib/indexer/fetcher/token_instance/sanitize.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenInstance.Sanitize do @moduledoc """ Fetches information about a token instance. diff --git a/apps/indexer/lib/indexer/fetcher/token_instance/sanitize_erc1155.ex b/apps/indexer/lib/indexer/fetcher/token_instance/sanitize_erc1155.ex index 9cbea8da889d..a175b44079d5 100644 --- a/apps/indexer/lib/indexer/fetcher/token_instance/sanitize_erc1155.ex +++ b/apps/indexer/lib/indexer/fetcher/token_instance/sanitize_erc1155.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenInstance.SanitizeERC1155 do @moduledoc """ This fetcher is stands for creating token instances which wasn't inserted yet and index meta for them. diff --git a/apps/indexer/lib/indexer/fetcher/token_instance/sanitize_erc721.ex b/apps/indexer/lib/indexer/fetcher/token_instance/sanitize_erc721.ex index f203f753b6b5..823e207a0e07 100644 --- a/apps/indexer/lib/indexer/fetcher/token_instance/sanitize_erc721.ex +++ b/apps/indexer/lib/indexer/fetcher/token_instance/sanitize_erc721.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenInstance.SanitizeERC721 do @moduledoc """ This fetcher is stands for creating token instances which wasn't inserted yet and index meta for them. diff --git a/apps/indexer/lib/indexer/fetcher/token_total_supply_updater.ex b/apps/indexer/lib/indexer/fetcher/token_total_supply_updater.ex index a3a66ba1fd88..e6738d347441 100644 --- a/apps/indexer/lib/indexer/fetcher/token_total_supply_updater.ex +++ b/apps/indexer/lib/indexer/fetcher/token_total_supply_updater.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenTotalSupplyUpdater do @moduledoc """ Periodically updates tokens total_supply diff --git a/apps/indexer/lib/indexer/fetcher/token_updater.ex b/apps/indexer/lib/indexer/fetcher/token_updater.ex index 91502c8d897e..f9fdfd3e1f2a 100644 --- a/apps/indexer/lib/indexer/fetcher/token_updater.ex +++ b/apps/indexer/lib/indexer/fetcher/token_updater.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenUpdater do @moduledoc """ Updates metadata for cataloged tokens diff --git a/apps/indexer/lib/indexer/fetcher/uncle_block.ex b/apps/indexer/lib/indexer/fetcher/uncle_block.ex index 649abae3fedd..6ab0712166fc 100644 --- a/apps/indexer/lib/indexer/fetcher/uncle_block.ex +++ b/apps/indexer/lib/indexer/fetcher/uncle_block.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.UncleBlock do @moduledoc """ Fetches `t:Explorer.Chain.Block.t/0` by `hash` and updates `t:Explorer.Chain.Block.SecondDegreeRelation.t/0` diff --git a/apps/indexer/lib/indexer/fetcher/withdrawal.ex b/apps/indexer/lib/indexer/fetcher/withdrawal.ex index 6cd99ad9c060..058e82cca3bd 100644 --- a/apps/indexer/lib/indexer/fetcher/withdrawal.ex +++ b/apps/indexer/lib/indexer/fetcher/withdrawal.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Withdrawal do @moduledoc """ Reindexes withdrawals from blocks that were indexed before app update. diff --git a/apps/indexer/lib/indexer/fetcher/zilliqa/scilla_smart_contracts.ex b/apps/indexer/lib/indexer/fetcher/zilliqa/scilla_smart_contracts.ex index 2a022db6de8c..d6a2571c0cb2 100644 --- a/apps/indexer/lib/indexer/fetcher/zilliqa/scilla_smart_contracts.ex +++ b/apps/indexer/lib/indexer/fetcher/zilliqa/scilla_smart_contracts.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Zilliqa.ScillaSmartContracts do @moduledoc """ Marks Scilla smart contracts as verified on the Zilliqa blockchain. These diff --git a/apps/indexer/lib/indexer/fetcher/zilliqa/zrc2_tokens.ex b/apps/indexer/lib/indexer/fetcher/zilliqa/zrc2_tokens.ex index 5bd10be22b2e..09a9361e55f4 100644 --- a/apps/indexer/lib/indexer/fetcher/zilliqa/zrc2_tokens.ex +++ b/apps/indexer/lib/indexer/fetcher/zilliqa/zrc2_tokens.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Zilliqa.Zrc2Tokens do @moduledoc """ Fills `zilliqa_zrc2_token_transfers` (or `token_transfers`) and `zilliqa_zrc2_token_adapters` table diff --git a/apps/indexer/lib/indexer/fetcher/zksync/batches_status_tracker.ex b/apps/indexer/lib/indexer/fetcher/zksync/batches_status_tracker.ex index 2149bcd61cd2..0d60692d7baa 100644 --- a/apps/indexer/lib/indexer/fetcher/zksync/batches_status_tracker.ex +++ b/apps/indexer/lib/indexer/fetcher/zksync/batches_status_tracker.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ZkSync.BatchesStatusTracker do @moduledoc """ Updates batches statuses and imports historical batches to the `zksync_transaction_batches` table. diff --git a/apps/indexer/lib/indexer/fetcher/zksync/discovery/batches_data.ex b/apps/indexer/lib/indexer/fetcher/zksync/discovery/batches_data.ex index 36a816674beb..bcfa6bf387f9 100644 --- a/apps/indexer/lib/indexer/fetcher/zksync/discovery/batches_data.ex +++ b/apps/indexer/lib/indexer/fetcher/zksync/discovery/batches_data.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ZkSync.Discovery.BatchesData do @moduledoc """ Provides main functionality to extract data for batches and associated with them diff --git a/apps/indexer/lib/indexer/fetcher/zksync/discovery/workers.ex b/apps/indexer/lib/indexer/fetcher/zksync/discovery/workers.ex index bd0bde1ef959..0dc559c8d881 100644 --- a/apps/indexer/lib/indexer/fetcher/zksync/discovery/workers.ex +++ b/apps/indexer/lib/indexer/fetcher/zksync/discovery/workers.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ZkSync.Discovery.Workers do @moduledoc """ Provides functions to download a set of batches from RPC and import them to DB. diff --git a/apps/indexer/lib/indexer/fetcher/zksync/status_tracking/committed.ex b/apps/indexer/lib/indexer/fetcher/zksync/status_tracking/committed.ex index 85ed1f9cbd45..b51a64c59a86 100644 --- a/apps/indexer/lib/indexer/fetcher/zksync/status_tracking/committed.ex +++ b/apps/indexer/lib/indexer/fetcher/zksync/status_tracking/committed.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ZkSync.StatusTracking.Committed do @moduledoc """ Functionality to discover committed batches diff --git a/apps/indexer/lib/indexer/fetcher/zksync/status_tracking/common.ex b/apps/indexer/lib/indexer/fetcher/zksync/status_tracking/common.ex index a5133d97bc2f..563476365325 100644 --- a/apps/indexer/lib/indexer/fetcher/zksync/status_tracking/common.ex +++ b/apps/indexer/lib/indexer/fetcher/zksync/status_tracking/common.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ZkSync.StatusTracking.CommonUtils do @moduledoc """ Common functions for status changes trackers diff --git a/apps/indexer/lib/indexer/fetcher/zksync/status_tracking/executed.ex b/apps/indexer/lib/indexer/fetcher/zksync/status_tracking/executed.ex index 03538bd82e9a..2b397318e941 100644 --- a/apps/indexer/lib/indexer/fetcher/zksync/status_tracking/executed.ex +++ b/apps/indexer/lib/indexer/fetcher/zksync/status_tracking/executed.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ZkSync.StatusTracking.Executed do @moduledoc """ Functionality to discover executed batches diff --git a/apps/indexer/lib/indexer/fetcher/zksync/status_tracking/proven.ex b/apps/indexer/lib/indexer/fetcher/zksync/status_tracking/proven.ex index 19497c1e3b0d..b1e202aef01f 100644 --- a/apps/indexer/lib/indexer/fetcher/zksync/status_tracking/proven.ex +++ b/apps/indexer/lib/indexer/fetcher/zksync/status_tracking/proven.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ZkSync.StatusTracking.Proven do @moduledoc """ Functionality to discover proven batches diff --git a/apps/indexer/lib/indexer/fetcher/zksync/transaction_batch.ex b/apps/indexer/lib/indexer/fetcher/zksync/transaction_batch.ex index dac1b1d84304..4ba2a821e4f9 100644 --- a/apps/indexer/lib/indexer/fetcher/zksync/transaction_batch.ex +++ b/apps/indexer/lib/indexer/fetcher/zksync/transaction_batch.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ZkSync.TransactionBatch do @moduledoc """ Discovers new batches and populates the `zksync_transaction_batches` table. diff --git a/apps/indexer/lib/indexer/fetcher/zksync/utils/db.ex b/apps/indexer/lib/indexer/fetcher/zksync/utils/db.ex index eee7f470b442..563e9a7a5428 100644 --- a/apps/indexer/lib/indexer/fetcher/zksync/utils/db.ex +++ b/apps/indexer/lib/indexer/fetcher/zksync/utils/db.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ZkSync.Utils.Db do @moduledoc """ Common functions to simplify DB routines for Indexer.Fetcher.ZkSync fetchers diff --git a/apps/indexer/lib/indexer/fetcher/zksync/utils/logging.ex b/apps/indexer/lib/indexer/fetcher/zksync/utils/logging.ex index eb7fe6058797..4ea940713a17 100644 --- a/apps/indexer/lib/indexer/fetcher/zksync/utils/logging.ex +++ b/apps/indexer/lib/indexer/fetcher/zksync/utils/logging.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ZkSync.Utils.Logging do @moduledoc """ Common logging functions for Indexer.Fetcher.ZkSync fetchers diff --git a/apps/indexer/lib/indexer/fetcher/zksync/utils/rpc.ex b/apps/indexer/lib/indexer/fetcher/zksync/utils/rpc.ex index 55afa4fb3d54..9338904fa18f 100644 --- a/apps/indexer/lib/indexer/fetcher/zksync/utils/rpc.ex +++ b/apps/indexer/lib/indexer/fetcher/zksync/utils/rpc.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ZkSync.Utils.Rpc do @moduledoc """ Common functions to handle RPC calls for Indexer.Fetcher.ZkSync fetchers diff --git a/apps/indexer/lib/indexer/helper.ex b/apps/indexer/lib/indexer/helper.ex index 4270574fc88a..4620e72aa6c2 100644 --- a/apps/indexer/lib/indexer/helper.ex +++ b/apps/indexer/lib/indexer/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Helper do @moduledoc """ Auxiliary common functions for indexers. diff --git a/apps/indexer/lib/indexer/logger.ex b/apps/indexer/lib/indexer/logger.ex index ee762b1f4598..89ae7254353a 100644 --- a/apps/indexer/lib/indexer/logger.ex +++ b/apps/indexer/lib/indexer/logger.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Logger do @moduledoc """ Helper for `Logger`. diff --git a/apps/indexer/lib/indexer/memory/monitor.ex b/apps/indexer/lib/indexer/memory/monitor.ex index c78898fd539a..d41dafb025be 100644 --- a/apps/indexer/lib/indexer/memory/monitor.ex +++ b/apps/indexer/lib/indexer/memory/monitor.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Memory.Monitor do @moduledoc """ Monitors memory usage of Erlang VM. diff --git a/apps/indexer/lib/indexer/memory/shrinkable.ex b/apps/indexer/lib/indexer/memory/shrinkable.ex index 274c72ace0db..74ea4d080042 100644 --- a/apps/indexer/lib/indexer/memory/shrinkable.ex +++ b/apps/indexer/lib/indexer/memory/shrinkable.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Memory.Shrinkable do @moduledoc """ A process that can shrink its memory usage when asked by `Indexer.Memory.Monitor`. diff --git a/apps/indexer/lib/indexer/migrator/recovery_weth_token_transfers.ex b/apps/indexer/lib/indexer/migrator/recovery_weth_token_transfers.ex index 964e6fbedd2f..01e563bf7ce6 100644 --- a/apps/indexer/lib/indexer/migrator/recovery_weth_token_transfers.ex +++ b/apps/indexer/lib/indexer/migrator/recovery_weth_token_transfers.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Migrator.RecoveryWETHTokenTransfers do @moduledoc """ Recovers WETH token transfers that were accidentally deleted from the database by previous version of Explorer.Migrator.SanitizeIncorrectWETHTokenTransfers. diff --git a/apps/indexer/lib/indexer/nft_media_handler/backfiller.ex b/apps/indexer/lib/indexer/nft_media_handler/backfiller.ex index b8ebea6b81df..6fe2963f6104 100644 --- a/apps/indexer/lib/indexer/nft_media_handler/backfiller.ex +++ b/apps/indexer/lib/indexer/nft_media_handler/backfiller.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.NFTMediaHandler.Backfiller do @moduledoc """ Module fetches from DB token instances which wasn't processed via NFTMediaHandler yet. Then put it to the queue. diff --git a/apps/indexer/lib/indexer/nft_media_handler/queue.ex b/apps/indexer/lib/indexer/nft_media_handler/queue.ex index 84f95087576a..11bd18d27d96 100644 --- a/apps/indexer/lib/indexer/nft_media_handler/queue.ex +++ b/apps/indexer/lib/indexer/nft_media_handler/queue.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.NFTMediaHandler.Queue do @moduledoc """ Queue for fetching media diff --git a/apps/indexer/lib/indexer/pending_ops_cleaner.ex b/apps/indexer/lib/indexer/pending_ops_cleaner.ex index a3de1b80bb2f..d25aaaf0db0b 100644 --- a/apps/indexer/lib/indexer/pending_ops_cleaner.ex +++ b/apps/indexer/lib/indexer/pending_ops_cleaner.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.PendingOpsCleaner do @moduledoc """ Periodically cleans non-consensus pending ops. diff --git a/apps/indexer/lib/indexer/pending_transactions_sanitizer.ex b/apps/indexer/lib/indexer/pending_transactions_sanitizer.ex index 1163360483b1..319a02fb3bf5 100644 --- a/apps/indexer/lib/indexer/pending_transactions_sanitizer.ex +++ b/apps/indexer/lib/indexer/pending_transactions_sanitizer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.PendingTransactionsSanitizer do @moduledoc """ Periodically checks pending transactions status in order to detect that transaction already included to the block diff --git a/apps/indexer/lib/indexer/prometheus/collector/filecoin_pending_address_operations_collector.ex b/apps/indexer/lib/indexer/prometheus/collector/filecoin_pending_address_operations_collector.ex index 6e8341bdf5d3..9f402f681052 100644 --- a/apps/indexer/lib/indexer/prometheus/collector/filecoin_pending_address_operations_collector.ex +++ b/apps/indexer/lib/indexer/prometheus/collector/filecoin_pending_address_operations_collector.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Prometheus.Collector.FilecoinPendingAddressOperations do @moduledoc """ Custom collector to count number of records in filecoin_pending_address_operations table. diff --git a/apps/indexer/lib/indexer/prometheus/collector/pending_block_operations_collector.ex b/apps/indexer/lib/indexer/prometheus/collector/pending_block_operations_collector.ex index 56f7f48408de..92008f3b1ed4 100644 --- a/apps/indexer/lib/indexer/prometheus/collector/pending_block_operations_collector.ex +++ b/apps/indexer/lib/indexer/prometheus/collector/pending_block_operations_collector.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Prometheus.Collector.PendingBlockOperations do @moduledoc """ Custom collector to count number of records in pending_block_operations table. diff --git a/apps/indexer/lib/indexer/prometheus/collector/pending_transaction_operations_collector.ex b/apps/indexer/lib/indexer/prometheus/collector/pending_transaction_operations_collector.ex index 38f022186b6d..d50542a437a0 100644 --- a/apps/indexer/lib/indexer/prometheus/collector/pending_transaction_operations_collector.ex +++ b/apps/indexer/lib/indexer/prometheus/collector/pending_transaction_operations_collector.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Prometheus.Collector.PendingTransactionOperations do @moduledoc """ Custom collector to count number of records in pending_transaction_operations table. diff --git a/apps/indexer/lib/indexer/prometheus/instrumenter.ex b/apps/indexer/lib/indexer/prometheus/instrumenter.ex index ee733654f2de..78fe32aa87fd 100644 --- a/apps/indexer/lib/indexer/prometheus/instrumenter.ex +++ b/apps/indexer/lib/indexer/prometheus/instrumenter.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Prometheus.Instrumenter do @moduledoc """ Blockchain data fetch and import metrics for `Prometheus`. diff --git a/apps/indexer/lib/indexer/prometheus/metrics.ex b/apps/indexer/lib/indexer/prometheus/metrics.ex index c0dfa1d2c6ea..81e38bed9c1c 100644 --- a/apps/indexer/lib/indexer/prometheus/metrics.ex +++ b/apps/indexer/lib/indexer/prometheus/metrics.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Prometheus.Metrics do @moduledoc """ Module responsible for periodically setting indexer metrics. diff --git a/apps/indexer/lib/indexer/rollup_reorg_monitor_queue.ex b/apps/indexer/lib/indexer/rollup_reorg_monitor_queue.ex index bba5fe79646c..ba69a4316e22 100644 --- a/apps/indexer/lib/indexer/rollup_reorg_monitor_queue.ex +++ b/apps/indexer/lib/indexer/rollup_reorg_monitor_queue.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.RollupReorgMonitorQueue do @moduledoc """ Queue registry used by rollup reorg monitoring fetchers. diff --git a/apps/indexer/lib/indexer/supervisor.ex b/apps/indexer/lib/indexer/supervisor.ex index da48465bb5bb..a3940babdafa 100644 --- a/apps/indexer/lib/indexer/supervisor.ex +++ b/apps/indexer/lib/indexer/supervisor.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Supervisor do @moduledoc """ Supervisor of all indexer worker supervision trees diff --git a/apps/indexer/lib/indexer/temporary/uncataloged_token_transfers.ex b/apps/indexer/lib/indexer/temporary/uncataloged_token_transfers.ex index bcd5b3839dd9..a6cca831def5 100644 --- a/apps/indexer/lib/indexer/temporary/uncataloged_token_transfers.ex +++ b/apps/indexer/lib/indexer/temporary/uncataloged_token_transfers.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Temporary.UncatalogedTokenTransfers do @moduledoc """ Catalogs token transfer logs missing an accompanying token transfer record. diff --git a/apps/indexer/lib/indexer/temporary/uncles_without_index.ex b/apps/indexer/lib/indexer/temporary/uncles_without_index.ex index 3b759306e66a..937f1b5efc0d 100644 --- a/apps/indexer/lib/indexer/temporary/uncles_without_index.ex +++ b/apps/indexer/lib/indexer/temporary/uncles_without_index.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Temporary.UnclesWithoutIndex do @moduledoc """ Fetches `index`es for unfetched `t:Explorer.Chain.Block.SecondDegreeRelation.t/0`. diff --git a/apps/indexer/lib/indexer/token_balances.ex b/apps/indexer/lib/indexer/token_balances.ex index 9cfba6eac721..970537ce262a 100644 --- a/apps/indexer/lib/indexer/token_balances.ex +++ b/apps/indexer/lib/indexer/token_balances.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.TokenBalances do @moduledoc """ Reads Token's balances using Smart Contract functions from the blockchain. diff --git a/apps/indexer/lib/indexer/token_transfer_block_consensus_sanitizer.ex b/apps/indexer/lib/indexer/token_transfer_block_consensus_sanitizer.ex index 9299ee8ca06b..f3cb4466bc2d 100644 --- a/apps/indexer/lib/indexer/token_transfer_block_consensus_sanitizer.ex +++ b/apps/indexer/lib/indexer/token_transfer_block_consensus_sanitizer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.TokenTransferBlockConsensusSanitizer do @moduledoc """ Periodically find token transfers with incorrect block_consensus and set refetch_needed for their blocks. diff --git a/apps/indexer/lib/indexer/tracer.ex b/apps/indexer/lib/indexer/tracer.ex index 7e123b99cdcf..f1b87701c5ed 100644 --- a/apps/indexer/lib/indexer/tracer.ex +++ b/apps/indexer/lib/indexer/tracer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Tracer do @moduledoc false diff --git a/apps/indexer/lib/indexer/transform/address_coin_balances.ex b/apps/indexer/lib/indexer/transform/address_coin_balances.ex index 77201eeb5481..a1c8dd3aa2c1 100644 --- a/apps/indexer/lib/indexer/transform/address_coin_balances.ex +++ b/apps/indexer/lib/indexer/transform/address_coin_balances.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.AddressCoinBalances do @moduledoc """ Extracts `Explorer.Chain.Address.CoinBalance` params from other schema's params. diff --git a/apps/indexer/lib/indexer/transform/address_coin_balances_daily.ex b/apps/indexer/lib/indexer/transform/address_coin_balances_daily.ex index 72e3dfa4ca3e..f0dbce17481f 100644 --- a/apps/indexer/lib/indexer/transform/address_coin_balances_daily.ex +++ b/apps/indexer/lib/indexer/transform/address_coin_balances_daily.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.AddressCoinBalancesDaily do @moduledoc """ Extracts `Explorer.Chain.Address.CoinBalanceDaily` params from other schema's params. diff --git a/apps/indexer/lib/indexer/transform/address_token_balances.ex b/apps/indexer/lib/indexer/transform/address_token_balances.ex index 288757d313c4..cccbf52a5d76 100644 --- a/apps/indexer/lib/indexer/transform/address_token_balances.ex +++ b/apps/indexer/lib/indexer/transform/address_token_balances.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.AddressTokenBalances do @moduledoc """ Extracts `Explorer.Address.TokenBalance` params from other schema's params. diff --git a/apps/indexer/lib/indexer/transform/addresses.ex b/apps/indexer/lib/indexer/transform/addresses.ex index 8fe3893f04bf..29ba4f3af06a 100644 --- a/apps/indexer/lib/indexer/transform/addresses.ex +++ b/apps/indexer/lib/indexer/transform/addresses.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Addresses do @moduledoc """ Extract Addresses from data fetched from the Blockchain and structured as Blocks, InternalTransactions, diff --git a/apps/indexer/lib/indexer/transform/arbitrum/messaging.ex b/apps/indexer/lib/indexer/transform/arbitrum/messaging.ex index e8c328f5bc2d..e4fd6003a902 100644 --- a/apps/indexer/lib/indexer/transform/arbitrum/messaging.ex +++ b/apps/indexer/lib/indexer/transform/arbitrum/messaging.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Arbitrum.Messaging do @moduledoc """ Helper functions for transforming data for Arbitrum cross-chain messages. diff --git a/apps/indexer/lib/indexer/transform/blocks.ex b/apps/indexer/lib/indexer/transform/blocks.ex index 195e3642765e..dccee1ad6202 100644 --- a/apps/indexer/lib/indexer/transform/blocks.ex +++ b/apps/indexer/lib/indexer/transform/blocks.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Blocks do @moduledoc """ Protocol for transforming blocks. diff --git a/apps/indexer/lib/indexer/transform/blocks/base.ex b/apps/indexer/lib/indexer/transform/blocks/base.ex index 815a9fe177df..cd68ff5f3652 100644 --- a/apps/indexer/lib/indexer/transform/blocks/base.ex +++ b/apps/indexer/lib/indexer/transform/blocks/base.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Blocks.Base do @moduledoc """ Default block transformer to be used. diff --git a/apps/indexer/lib/indexer/transform/blocks/clique.ex b/apps/indexer/lib/indexer/transform/blocks/clique.ex index 664d49f8c9c4..5805889038b4 100644 --- a/apps/indexer/lib/indexer/transform/blocks/clique.ex +++ b/apps/indexer/lib/indexer/transform/blocks/clique.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Blocks.Clique do @moduledoc """ Handles block transforms for Clique chain. diff --git a/apps/indexer/lib/indexer/transform/celo/l1_epochs.ex b/apps/indexer/lib/indexer/transform/celo/l1_epochs.ex index c73b9f820bed..426a9c9ea4f8 100644 --- a/apps/indexer/lib/indexer/transform/celo/l1_epochs.ex +++ b/apps/indexer/lib/indexer/transform/celo/l1_epochs.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Celo.L1Epochs do @moduledoc """ Transformer for Celo L1 epoch data from blockchain blocks. diff --git a/apps/indexer/lib/indexer/transform/celo/l2_epochs.ex b/apps/indexer/lib/indexer/transform/celo/l2_epochs.ex index c4a11ef604e6..7112765ec2af 100644 --- a/apps/indexer/lib/indexer/transform/celo/l2_epochs.ex +++ b/apps/indexer/lib/indexer/transform/celo/l2_epochs.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Celo.L2Epochs do @moduledoc """ Transformer for Celo L2 epoch data from blockchain logs. diff --git a/apps/indexer/lib/indexer/transform/celo/transaction_gas_tokens.ex b/apps/indexer/lib/indexer/transform/celo/transaction_gas_tokens.ex index ef31255dcb59..408c9d36ce2e 100644 --- a/apps/indexer/lib/indexer/transform/celo/transaction_gas_tokens.ex +++ b/apps/indexer/lib/indexer/transform/celo/transaction_gas_tokens.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Celo.TransactionGasTokens do @moduledoc """ Helper functions for extracting tokens specified as gas fee currency. diff --git a/apps/indexer/lib/indexer/transform/celo/transaction_token_transfers.ex b/apps/indexer/lib/indexer/transform/celo/transaction_token_transfers.ex index 8e94efacf5f7..6a3ae014e6cd 100644 --- a/apps/indexer/lib/indexer/transform/celo/transaction_token_transfers.ex +++ b/apps/indexer/lib/indexer/transform/celo/transaction_token_transfers.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Celo.TransactionTokenTransfers do @moduledoc """ Helper functions for generating ERC20 token transfers from native Celo coin diff --git a/apps/indexer/lib/indexer/transform/celo/validator_epoch_payment_distributions.ex b/apps/indexer/lib/indexer/transform/celo/validator_epoch_payment_distributions.ex index 9a265b4e1e7b..ff92d64ee5fd 100644 --- a/apps/indexer/lib/indexer/transform/celo/validator_epoch_payment_distributions.ex +++ b/apps/indexer/lib/indexer/transform/celo/validator_epoch_payment_distributions.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Celo.ValidatorEpochPaymentDistributions do @moduledoc """ Extracts data from `ValidatorEpochPaymentDistributed` event logs of the diff --git a/apps/indexer/lib/indexer/transform/fhe_operations.ex b/apps/indexer/lib/indexer/transform/fhe_operations.ex index fb9812f1f778..8be2e0e98332 100644 --- a/apps/indexer/lib/indexer/transform/fhe_operations.ex +++ b/apps/indexer/lib/indexer/transform/fhe_operations.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.FheOperations do @moduledoc """ Parses FHE (Fully Homomorphic Encryption) operations from transaction logs during indexing. diff --git a/apps/indexer/lib/indexer/transform/mint_transfers.ex b/apps/indexer/lib/indexer/transform/mint_transfers.ex index c53dde7a5387..bac796b78d6a 100644 --- a/apps/indexer/lib/indexer/transform/mint_transfers.ex +++ b/apps/indexer/lib/indexer/transform/mint_transfers.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.MintTransfers do @moduledoc """ Helper functions to parse addresses from mint transfers. diff --git a/apps/indexer/lib/indexer/transform/optimism/withdrawals.ex b/apps/indexer/lib/indexer/transform/optimism/withdrawals.ex index df023a86f9a6..82c8a7df9672 100644 --- a/apps/indexer/lib/indexer/transform/optimism/withdrawals.ex +++ b/apps/indexer/lib/indexer/transform/optimism/withdrawals.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Optimism.Withdrawals do @moduledoc """ Helper functions for transforming data for Optimism withdrawals. diff --git a/apps/indexer/lib/indexer/transform/scroll/l1_fee_params.ex b/apps/indexer/lib/indexer/transform/scroll/l1_fee_params.ex index 4615266a7519..cb0010f38fd6 100644 --- a/apps/indexer/lib/indexer/transform/scroll/l1_fee_params.ex +++ b/apps/indexer/lib/indexer/transform/scroll/l1_fee_params.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Scroll.L1FeeParams do @moduledoc """ Helper functions for transforming data for Scroll L1 fee parameters diff --git a/apps/indexer/lib/indexer/transform/shibarium/bridge.ex b/apps/indexer/lib/indexer/transform/shibarium/bridge.ex index 6d867c5f67b5..cb8922e29987 100644 --- a/apps/indexer/lib/indexer/transform/shibarium/bridge.ex +++ b/apps/indexer/lib/indexer/transform/shibarium/bridge.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Shibarium.Bridge do @moduledoc """ Helper functions for transforming data for Shibarium Bridge operations. diff --git a/apps/indexer/lib/indexer/transform/signed_authorizations.ex b/apps/indexer/lib/indexer/transform/signed_authorizations.ex index be85fbc3dcff..0ab0f4dbe9f8 100644 --- a/apps/indexer/lib/indexer/transform/signed_authorizations.ex +++ b/apps/indexer/lib/indexer/transform/signed_authorizations.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.SignedAuthorizations do @moduledoc """ Helper functions for extracting signed authorizations from EIP-7702 transactions. diff --git a/apps/indexer/lib/indexer/transform/stability/validators.ex b/apps/indexer/lib/indexer/transform/stability/validators.ex index 58624b5eaa3d..cda15a066d59 100644 --- a/apps/indexer/lib/indexer/transform/stability/validators.ex +++ b/apps/indexer/lib/indexer/transform/stability/validators.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Stability.Validators do @moduledoc """ Helper functions for transforming blocks into stability validator counter updates. diff --git a/apps/indexer/lib/indexer/transform/token_instances.ex b/apps/indexer/lib/indexer/transform/token_instances.ex index 1b9374318b7d..7a593e7eea08 100644 --- a/apps/indexer/lib/indexer/transform/token_instances.ex +++ b/apps/indexer/lib/indexer/transform/token_instances.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.TokenInstances do @moduledoc """ Module extracts token instances from token transfers diff --git a/apps/indexer/lib/indexer/transform/token_transfers.ex b/apps/indexer/lib/indexer/transform/token_transfers.ex index 98b15caece16..f5f363291f89 100644 --- a/apps/indexer/lib/indexer/transform/token_transfers.ex +++ b/apps/indexer/lib/indexer/transform/token_transfers.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.TokenTransfers do @moduledoc """ Helper functions for transforming data for known token standards (ERC-20, ERC-721, ERC-1155, ERC-404, ERC-7984) transfers. diff --git a/apps/indexer/lib/indexer/utils/event_notifications_cleaner.ex b/apps/indexer/lib/indexer/utils/event_notifications_cleaner.ex index 3b19e34d1843..f697e1ed6752 100644 --- a/apps/indexer/lib/indexer/utils/event_notifications_cleaner.ex +++ b/apps/indexer/lib/indexer/utils/event_notifications_cleaner.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Utils.EventNotificationsCleaner do @moduledoc """ Module is responsible for cleaning up event notifications from the database. diff --git a/apps/indexer/mix.exs b/apps/indexer/mix.exs index 6332a075c358..f0b3ea6a72bd 100644 --- a/apps/indexer/mix.exs +++ b/apps/indexer/mix.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.MixProject do use Mix.Project diff --git a/apps/indexer/test/indexer/block/catchup/bound_interval_supervisor_test.exs b/apps/indexer/test/indexer/block/catchup/bound_interval_supervisor_test.exs index 915953c370df..d194381317ba 100644 --- a/apps/indexer/test/indexer/block/catchup/bound_interval_supervisor_test.exs +++ b/apps/indexer/test/indexer/block/catchup/bound_interval_supervisor_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.Catchup.BoundIntervalSupervisorTest do # `async: false` due to use of named GenServer use EthereumJSONRPC.Case, async: false diff --git a/apps/indexer/test/indexer/block/catchup/fetcher_test.exs b/apps/indexer/test/indexer/block/catchup/fetcher_test.exs index 468285e6a495..983f8a29875b 100644 --- a/apps/indexer/test/indexer/block/catchup/fetcher_test.exs +++ b/apps/indexer/test/indexer/block/catchup/fetcher_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.Catchup.FetcherTest do use EthereumJSONRPC.Case, async: false use Explorer.DataCase diff --git a/apps/indexer/test/indexer/block/catchup/massive_blocks_fetcher_test.exs b/apps/indexer/test/indexer/block/catchup/massive_blocks_fetcher_test.exs index a2540e13166b..41f926074969 100644 --- a/apps/indexer/test/indexer/block/catchup/massive_blocks_fetcher_test.exs +++ b/apps/indexer/test/indexer/block/catchup/massive_blocks_fetcher_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.Catchup.MassiveBlocksFetcherTest do use EthereumJSONRPC.Case, async: false use Explorer.DataCase diff --git a/apps/indexer/test/indexer/block/catchup/missing_ranges_collector_test.exs b/apps/indexer/test/indexer/block/catchup/missing_ranges_collector_test.exs index 41f1ac05fa0c..fd86c68826ce 100644 --- a/apps/indexer/test/indexer/block/catchup/missing_ranges_collector_test.exs +++ b/apps/indexer/test/indexer/block/catchup/missing_ranges_collector_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.Catchup.MissingRangesCollectorTest do use Explorer.DataCase, async: false diff --git a/apps/indexer/test/indexer/block/fetcher/receipts_test.exs b/apps/indexer/test/indexer/block/fetcher/receipts_test.exs index f8ed67281f36..9bc1f4adc384 100644 --- a/apps/indexer/test/indexer/block/fetcher/receipts_test.exs +++ b/apps/indexer/test/indexer/block/fetcher/receipts_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.Fetcher.ReceiptsTest do use EthereumJSONRPC.Case, async: false diff --git a/apps/indexer/test/indexer/block/fetcher_test.exs b/apps/indexer/test/indexer/block/fetcher_test.exs index 396960aa4856..948172f107f9 100644 --- a/apps/indexer/test/indexer/block/fetcher_test.exs +++ b/apps/indexer/test/indexer/block/fetcher_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.FetcherTest do # `async: false` due to use of named GenServer use EthereumJSONRPC.Case, async: false diff --git a/apps/indexer/test/indexer/block/realtime/fetcher_test.exs b/apps/indexer/test/indexer/block/realtime/fetcher_test.exs index b94454abfdad..44ad6c2d0fc9 100644 --- a/apps/indexer/test/indexer/block/realtime/fetcher_test.exs +++ b/apps/indexer/test/indexer/block/realtime/fetcher_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.Realtime.FetcherTest do use EthereumJSONRPC.Case, async: false use Explorer.DataCase diff --git a/apps/indexer/test/indexer/buffered_task_test.exs b/apps/indexer/test/indexer/buffered_task_test.exs index 01cdc6e58313..f1613cd0831f 100644 --- a/apps/indexer/test/indexer/buffered_task_test.exs +++ b/apps/indexer/test/indexer/buffered_task_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.BufferedTaskTest do use ExUnit.Case diff --git a/apps/indexer/test/indexer/fetcher/beacon/blob_test.exs b/apps/indexer/test/indexer/fetcher/beacon/blob_test.exs index ac95ef1e34cc..6496c3a3e082 100644 --- a/apps/indexer/test/indexer/fetcher/beacon/blob_test.exs +++ b/apps/indexer/test/indexer/fetcher/beacon/blob_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Beacon.BlobTest do use Explorer.DataCase, async: false diff --git a/apps/indexer/test/indexer/fetcher/beacon/deposit/status_test.exs b/apps/indexer/test/indexer/fetcher/beacon/deposit/status_test.exs index e127e660e616..7ad7909b8c44 100644 --- a/apps/indexer/test/indexer/fetcher/beacon/deposit/status_test.exs +++ b/apps/indexer/test/indexer/fetcher/beacon/deposit/status_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Beacon.Deposit.StatusTest do use Explorer.DataCase, async: false diff --git a/apps/indexer/test/indexer/fetcher/beacon/deposit_test.exs b/apps/indexer/test/indexer/fetcher/beacon/deposit_test.exs index 98fc0eb92ff1..75ee23b37534 100644 --- a/apps/indexer/test/indexer/fetcher/beacon/deposit_test.exs +++ b/apps/indexer/test/indexer/fetcher/beacon/deposit_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Beacon.DepositTest do use EthereumJSONRPC.Case use Explorer.DataCase, async: false diff --git a/apps/indexer/test/indexer/fetcher/block_reward_test.exs b/apps/indexer/test/indexer/fetcher/block_reward_test.exs index 6e11bc773713..a058989815e5 100644 --- a/apps/indexer/test/indexer/fetcher/block_reward_test.exs +++ b/apps/indexer/test/indexer/fetcher/block_reward_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.BlockRewardTest do # MUST be `async: false` so that {:shared, pid} is set for connection to allow CoinBalanceFetcher's self-send to have # connection allowed immediately. diff --git a/apps/indexer/test/indexer/fetcher/coin_balance/catchup_test.exs b/apps/indexer/test/indexer/fetcher/coin_balance/catchup_test.exs index 5308d218d975..1bab44862090 100644 --- a/apps/indexer/test/indexer/fetcher/coin_balance/catchup_test.exs +++ b/apps/indexer/test/indexer/fetcher/coin_balance/catchup_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.CoinBalance.CatchupTest do # MUST be `async: false` so that {:shared, pid} is set for connection to allow CoinBalanceFetcher's self-send to have # connection allowed immediately. diff --git a/apps/indexer/test/indexer/fetcher/contract_code_test.exs b/apps/indexer/test/indexer/fetcher/contract_code_test.exs index a0213504ad14..9dd0f9dbbec3 100644 --- a/apps/indexer/test/indexer/fetcher/contract_code_test.exs +++ b/apps/indexer/test/indexer/fetcher/contract_code_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ContractCodeTest do use EthereumJSONRPC.Case, async: false use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/empty_blocks_sanitizer_test.exs b/apps/indexer/test/indexer/fetcher/empty_blocks_sanitizer_test.exs index 6b575c2896d2..31c39adbdec2 100644 --- a/apps/indexer/test/indexer/fetcher/empty_blocks_sanitizer_test.exs +++ b/apps/indexer/test/indexer/fetcher/empty_blocks_sanitizer_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.EmptyBlocksSanitizerTest do # `async: false` due to use of named GenServer use EthereumJSONRPC.Case, async: false diff --git a/apps/indexer/test/indexer/fetcher/internal_transaction/delete_queue_test.exs b/apps/indexer/test/indexer/fetcher/internal_transaction/delete_queue_test.exs index 68654bdfea4f..0d0fbc816c9b 100644 --- a/apps/indexer/test/indexer/fetcher/internal_transaction/delete_queue_test.exs +++ b/apps/indexer/test/indexer/fetcher/internal_transaction/delete_queue_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.InternalTransaction.DeleteQueueTest do use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/internal_transaction_test.exs b/apps/indexer/test/indexer/fetcher/internal_transaction_test.exs index 072a5e91cb01..00846fdb95ed 100644 --- a/apps/indexer/test/indexer/fetcher/internal_transaction_test.exs +++ b/apps/indexer/test/indexer/fetcher/internal_transaction_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.InternalTransactionTest do use EthereumJSONRPC.Case, async: false use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/multichain_search_db/balances_export_queue_test.exs b/apps/indexer/test/indexer/fetcher/multichain_search_db/balances_export_queue_test.exs index a04cbd0aa05e..13c993a0dfc2 100644 --- a/apps/indexer/test/indexer/fetcher/multichain_search_db/balances_export_queue_test.exs +++ b/apps/indexer/test/indexer/fetcher/multichain_search_db/balances_export_queue_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.MultichainSearchDb.BalancesExportQueueTest do use ExUnit.Case use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/multichain_search_db/counters_export_queue_test.exs b/apps/indexer/test/indexer/fetcher/multichain_search_db/counters_export_queue_test.exs index 9499a25ada69..9b5ed4e50216 100644 --- a/apps/indexer/test/indexer/fetcher/multichain_search_db/counters_export_queue_test.exs +++ b/apps/indexer/test/indexer/fetcher/multichain_search_db/counters_export_queue_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.MultichainSearchDb.CountersExportQueueTest do use ExUnit.Case use Explorer.DataCase, async: false diff --git a/apps/indexer/test/indexer/fetcher/multichain_search_db/counters_fetcher_test.exs b/apps/indexer/test/indexer/fetcher/multichain_search_db/counters_fetcher_test.exs index 95aebef3ef9f..7eabfedf1337 100644 --- a/apps/indexer/test/indexer/fetcher/multichain_search_db/counters_fetcher_test.exs +++ b/apps/indexer/test/indexer/fetcher/multichain_search_db/counters_fetcher_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.MultichainSearchDb.CountersFetcherTest do use ExUnit.Case use Explorer.DataCase, async: false diff --git a/apps/indexer/test/indexer/fetcher/multichain_search_db/main_export_queue_test.exs b/apps/indexer/test/indexer/fetcher/multichain_search_db/main_export_queue_test.exs index 7747e1d358fc..7702ddedbfc2 100644 --- a/apps/indexer/test/indexer/fetcher/multichain_search_db/main_export_queue_test.exs +++ b/apps/indexer/test/indexer/fetcher/multichain_search_db/main_export_queue_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.MultichainSearchDb.MainExportQueueTest do use ExUnit.Case use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/multichain_search_db/token_info_export_queue_test.exs b/apps/indexer/test/indexer/fetcher/multichain_search_db/token_info_export_queue_test.exs index bf3b2aa5ca24..629689cd2fe8 100644 --- a/apps/indexer/test/indexer/fetcher/multichain_search_db/token_info_export_queue_test.exs +++ b/apps/indexer/test/indexer/fetcher/multichain_search_db/token_info_export_queue_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.MultichainSearchDb.TokenInfoExportQueueTest do use ExUnit.Case use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/on_demand/coin_balance_test.exs b/apps/indexer/test/indexer/fetcher/on_demand/coin_balance_test.exs index 199973e53e63..5514b6bbae89 100644 --- a/apps/indexer/test/indexer/fetcher/on_demand/coin_balance_test.exs +++ b/apps/indexer/test/indexer/fetcher/on_demand/coin_balance_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.CoinBalanceTest do # MUST be `async: false` so that {:shared, pid} is set for connection to allow CoinBalanceFetcher's self-send to have # connection allowed immediately. diff --git a/apps/indexer/test/indexer/fetcher/on_demand/contract_code_test.exs b/apps/indexer/test/indexer/fetcher/on_demand/contract_code_test.exs index 5a9f49906574..6a1de39ee4dc 100644 --- a/apps/indexer/test/indexer/fetcher/on_demand/contract_code_test.exs +++ b/apps/indexer/test/indexer/fetcher/on_demand/contract_code_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.ContractCodeTest do use EthereumJSONRPC.Case, async: false use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/on_demand/contract_creator_test.exs b/apps/indexer/test/indexer/fetcher/on_demand/contract_creator_test.exs index 5b4739abf829..2b0f35e17e43 100644 --- a/apps/indexer/test/indexer/fetcher/on_demand/contract_creator_test.exs +++ b/apps/indexer/test/indexer/fetcher/on_demand/contract_creator_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.ContractCreatorTest do use EthereumJSONRPC.Case, async: false use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/on_demand/internal_transaction_test.exs b/apps/indexer/test/indexer/fetcher/on_demand/internal_transaction_test.exs index 0e44ee9c5d50..856ee8c762b4 100644 --- a/apps/indexer/test/indexer/fetcher/on_demand/internal_transaction_test.exs +++ b/apps/indexer/test/indexer/fetcher/on_demand/internal_transaction_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.InternalTransactionTest do use EthereumJSONRPC.Case, async: false use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/on_demand/token_balance_test.exs b/apps/indexer/test/indexer/fetcher/on_demand/token_balance_test.exs index 8e23757d914f..ecbc0e5cd01d 100644 --- a/apps/indexer/test/indexer/fetcher/on_demand/token_balance_test.exs +++ b/apps/indexer/test/indexer/fetcher/on_demand/token_balance_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.TokenBalanceTest do use EthereumJSONRPC.Case, async: false use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/on_demand/token_instance_metadata_refetch_test.exs b/apps/indexer/test/indexer/fetcher/on_demand/token_instance_metadata_refetch_test.exs index 8188b7e1a6ca..9573d40ddf06 100644 --- a/apps/indexer/test/indexer/fetcher/on_demand/token_instance_metadata_refetch_test.exs +++ b/apps/indexer/test/indexer/fetcher/on_demand/token_instance_metadata_refetch_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.TokenInstanceMetadataRefetchTest do use EthereumJSONRPC.Case, async: false use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/optimism/dispute_game_test.exs b/apps/indexer/test/indexer/fetcher/optimism/dispute_game_test.exs index d2b6581227cd..0751aa271468 100644 --- a/apps/indexer/test/indexer/fetcher/optimism/dispute_game_test.exs +++ b/apps/indexer/test/indexer/fetcher/optimism/dispute_game_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout if Application.get_env(:explorer, :chain_type) == :optimism do defmodule Indexer.Fetcher.Optimism.DisputeGameTest do use EthereumJSONRPC.Case, async: false diff --git a/apps/indexer/test/indexer/fetcher/optimism/interop/message_queue_test.exs b/apps/indexer/test/indexer/fetcher/optimism/interop/message_queue_test.exs index d835b41d3fee..fab687e41332 100644 --- a/apps/indexer/test/indexer/fetcher/optimism/interop/message_queue_test.exs +++ b/apps/indexer/test/indexer/fetcher/optimism/interop/message_queue_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Optimism.Interop.MessageQueueTest do use EthereumJSONRPC.Case use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/optimism/transaction_batch_test.exs b/apps/indexer/test/indexer/fetcher/optimism/transaction_batch_test.exs index fd13ad80dc5b..3733d20624ad 100644 --- a/apps/indexer/test/indexer/fetcher/optimism/transaction_batch_test.exs +++ b/apps/indexer/test/indexer/fetcher/optimism/transaction_batch_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout if Application.get_env(:explorer, :chain_type) == :optimism do defmodule Indexer.Fetcher.Optimism.TransactionBatchTest do use EthereumJSONRPC.Case, async: false diff --git a/apps/indexer/test/indexer/fetcher/pending_block_operations_sanitizer_test.exs b/apps/indexer/test/indexer/fetcher/pending_block_operations_sanitizer_test.exs index a3d9e41fdb3b..c08c490ff220 100644 --- a/apps/indexer/test/indexer/fetcher/pending_block_operations_sanitizer_test.exs +++ b/apps/indexer/test/indexer/fetcher/pending_block_operations_sanitizer_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.PendingBlockOperationsSanitizerTest do use Explorer.DataCase, async: false diff --git a/apps/indexer/test/indexer/fetcher/pending_transaction_test.exs b/apps/indexer/test/indexer/fetcher/pending_transaction_test.exs index 22d00e48c99a..6076bce9a8dc 100644 --- a/apps/indexer/test/indexer/fetcher/pending_transaction_test.exs +++ b/apps/indexer/test/indexer/fetcher/pending_transaction_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.PendingTransactionTest do # `async: false` due to use of named GenServer use EthereumJSONRPC.Case, async: false diff --git a/apps/indexer/test/indexer/fetcher/replaced_transaction_test.exs b/apps/indexer/test/indexer/fetcher/replaced_transaction_test.exs index ea4ac2d2194c..7486a6bd228c 100644 --- a/apps/indexer/test/indexer/fetcher/replaced_transaction_test.exs +++ b/apps/indexer/test/indexer/fetcher/replaced_transaction_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ReplacedTransactionTest do use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/rootstock_data_test.exs b/apps/indexer/test/indexer/fetcher/rootstock_data_test.exs index 7ab9b9162dbc..53712efa210c 100644 --- a/apps/indexer/test/indexer/fetcher/rootstock_data_test.exs +++ b/apps/indexer/test/indexer/fetcher/rootstock_data_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout if Application.compile_env(:explorer, :chain_type) == :rsk do defmodule Indexer.Fetcher.RootstockDataTest do use EthereumJSONRPC.Case diff --git a/apps/indexer/test/indexer/fetcher/signed_authorization_status_test.exs b/apps/indexer/test/indexer/fetcher/signed_authorization_status_test.exs index 06721805cdb0..0821b69bec07 100644 --- a/apps/indexer/test/indexer/fetcher/signed_authorization_status_test.exs +++ b/apps/indexer/test/indexer/fetcher/signed_authorization_status_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.SignedAuthorizationStatusTest do use EthereumJSONRPC.Case, async: false use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/stability/validator_test.exs b/apps/indexer/test/indexer/fetcher/stability/validator_test.exs index 5af711e4d3d9..b1c9240fbfe5 100644 --- a/apps/indexer/test/indexer/fetcher/stability/validator_test.exs +++ b/apps/indexer/test/indexer/fetcher/stability/validator_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Stability.ValidatorTest do use EthereumJSONRPC.Case use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/stats/hot_smart_contracts_test.exs b/apps/indexer/test/indexer/fetcher/stats/hot_smart_contracts_test.exs index e7b8df52521a..2afecaa73379 100644 --- a/apps/indexer/test/indexer/fetcher/stats/hot_smart_contracts_test.exs +++ b/apps/indexer/test/indexer/fetcher/stats/hot_smart_contracts_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Stats.HotSmartContractsTest do # MUST be `async: false` due to use of named GenServer use EthereumJSONRPC.Case, async: false diff --git a/apps/indexer/test/indexer/fetcher/token_balance/historical_test.exs b/apps/indexer/test/indexer/fetcher/token_balance/historical_test.exs index 5f82295bf3ee..0b4152e90ff0 100644 --- a/apps/indexer/test/indexer/fetcher/token_balance/historical_test.exs +++ b/apps/indexer/test/indexer/fetcher/token_balance/historical_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenBalance.HistoricalTest do use EthereumJSONRPC.Case use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/token_instance/helper_test.exs b/apps/indexer/test/indexer/fetcher/token_instance/helper_test.exs index ee7da342f8b1..277dfecbf1a1 100644 --- a/apps/indexer/test/indexer/fetcher/token_instance/helper_test.exs +++ b/apps/indexer/test/indexer/fetcher/token_instance/helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenInstance.HelperTest do use EthereumJSONRPC.Case use Explorer.DataCase, async: false diff --git a/apps/indexer/test/indexer/fetcher/token_instance/realtime_test.exs b/apps/indexer/test/indexer/fetcher/token_instance/realtime_test.exs index 47878311c5b6..a9a86b5c71ed 100644 --- a/apps/indexer/test/indexer/fetcher/token_instance/realtime_test.exs +++ b/apps/indexer/test/indexer/fetcher/token_instance/realtime_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenInstance.RealtimeTest do use EthereumJSONRPC.Case use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/token_instance/refetch_test.exs b/apps/indexer/test/indexer/fetcher/token_instance/refetch_test.exs index 84e0c7cf8ecb..c24c72556bcf 100644 --- a/apps/indexer/test/indexer/fetcher/token_instance/refetch_test.exs +++ b/apps/indexer/test/indexer/fetcher/token_instance/refetch_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenInstance.RefetchTest do use Explorer.DataCase use EthereumJSONRPC.Case, async: false diff --git a/apps/indexer/test/indexer/fetcher/token_instance/sanitize_erc1155_test.exs b/apps/indexer/test/indexer/fetcher/token_instance/sanitize_erc1155_test.exs index cdf55e8d6026..77ffc38eb663 100644 --- a/apps/indexer/test/indexer/fetcher/token_instance/sanitize_erc1155_test.exs +++ b/apps/indexer/test/indexer/fetcher/token_instance/sanitize_erc1155_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenInstance.SanitizeERC1155Test do use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/token_instance/sanitize_erc721_test.exs b/apps/indexer/test/indexer/fetcher/token_instance/sanitize_erc721_test.exs index 5783173a12cf..7a91b43a09a6 100644 --- a/apps/indexer/test/indexer/fetcher/token_instance/sanitize_erc721_test.exs +++ b/apps/indexer/test/indexer/fetcher/token_instance/sanitize_erc721_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenInstance.SanitizeERC721Test do use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/token_test.exs b/apps/indexer/test/indexer/fetcher/token_test.exs index d9494d097fd9..a9de82b02bcf 100644 --- a/apps/indexer/test/indexer/fetcher/token_test.exs +++ b/apps/indexer/test/indexer/fetcher/token_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenTest do use EthereumJSONRPC.Case use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/token_updater_test.exs b/apps/indexer/test/indexer/fetcher/token_updater_test.exs index 28826604e1f0..8943f33e6a89 100644 --- a/apps/indexer/test/indexer/fetcher/token_updater_test.exs +++ b/apps/indexer/test/indexer/fetcher/token_updater_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenUpdaterTest do use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/uncle_block_test.exs b/apps/indexer/test/indexer/fetcher/uncle_block_test.exs index 768bdd7ae5bb..f1fdf16f8b99 100644 --- a/apps/indexer/test/indexer/fetcher/uncle_block_test.exs +++ b/apps/indexer/test/indexer/fetcher/uncle_block_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.UncleBlockTest do # MUST be `async: false` so that {:shared, pid} is set for connection to allow CoinBalanceFetcher's self-send to have # connection allowed immediately. diff --git a/apps/indexer/test/indexer/fetcher/withdrawal_test.exs b/apps/indexer/test/indexer/fetcher/withdrawal_test.exs index f3b13f783af8..bee0dd08bc4b 100644 --- a/apps/indexer/test/indexer/fetcher/withdrawal_test.exs +++ b/apps/indexer/test/indexer/fetcher/withdrawal_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.WithdrawalTest do use EthereumJSONRPC.Case use Explorer.DataCase diff --git a/apps/indexer/test/indexer/fetcher/zksync/utils/rpc_test.exs b/apps/indexer/test/indexer/fetcher/zksync/utils/rpc_test.exs index 76bea9c80258..d79eb1ed708e 100644 --- a/apps/indexer/test/indexer/fetcher/zksync/utils/rpc_test.exs +++ b/apps/indexer/test/indexer/fetcher/zksync/utils/rpc_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ZkSync.Utils.RpcTest do use EthereumJSONRPC.Case use Explorer.DataCase diff --git a/apps/indexer/test/indexer/helper_test.exs b/apps/indexer/test/indexer/helper_test.exs index 076fbf79bf80..298cc5f7a7ed 100644 --- a/apps/indexer/test/indexer/helper_test.exs +++ b/apps/indexer/test/indexer/helper_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.HelperTest do use ExUnit.Case, async: true diff --git a/apps/indexer/test/indexer/migrator/recovery_weth_token_transfers_test.exs b/apps/indexer/test/indexer/migrator/recovery_weth_token_transfers_test.exs index f77a51d81f9e..f5edb0f649c8 100644 --- a/apps/indexer/test/indexer/migrator/recovery_weth_token_transfers_test.exs +++ b/apps/indexer/test/indexer/migrator/recovery_weth_token_transfers_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Migrator.RecoveryWETHTokenTransfersTest do use Explorer.DataCase, async: false diff --git a/apps/indexer/test/indexer/pending_ops_cleaner_test.exs b/apps/indexer/test/indexer/pending_ops_cleaner_test.exs index 51c251b3f62f..4756c4f3d41e 100644 --- a/apps/indexer/test/indexer/pending_ops_cleaner_test.exs +++ b/apps/indexer/test/indexer/pending_ops_cleaner_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.PendingOpsCleanerTest do use Explorer.DataCase diff --git a/apps/indexer/test/indexer/pending_transactions_sanitizer_test.exs b/apps/indexer/test/indexer/pending_transactions_sanitizer_test.exs index 5b3a523d1156..b4a0f59ddcfe 100644 --- a/apps/indexer/test/indexer/pending_transactions_sanitizer_test.exs +++ b/apps/indexer/test/indexer/pending_transactions_sanitizer_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.PendingTransactionsSanitizerTest do use EthereumJSONRPC.Case use Explorer.DataCase diff --git a/apps/indexer/test/indexer/temporary/uncataloged_token_transfers_test.exs b/apps/indexer/test/indexer/temporary/uncataloged_token_transfers_test.exs index d5176747577a..830196857a61 100644 --- a/apps/indexer/test/indexer/temporary/uncataloged_token_transfers_test.exs +++ b/apps/indexer/test/indexer/temporary/uncataloged_token_transfers_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Temporary.UncatalogedTokenTransfersTest do use Explorer.DataCase diff --git a/apps/indexer/test/indexer/token_balances_test.exs b/apps/indexer/test/indexer/token_balances_test.exs index ac53efebf537..6a9a0e887723 100644 --- a/apps/indexer/test/indexer/token_balances_test.exs +++ b/apps/indexer/test/indexer/token_balances_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.TokenBalancesTest do use EthereumJSONRPC.Case use Explorer.DataCase diff --git a/apps/indexer/test/indexer/transform/address_coin_balances_test.exs b/apps/indexer/test/indexer/transform/address_coin_balances_test.exs index 92a84c670ce6..4a1fcda790e3 100644 --- a/apps/indexer/test/indexer/transform/address_coin_balances_test.exs +++ b/apps/indexer/test/indexer/transform/address_coin_balances_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.AddressCoinBalancesTest do use Explorer.DataCase, async: true diff --git a/apps/indexer/test/indexer/transform/address_token_balances_test.exs b/apps/indexer/test/indexer/transform/address_token_balances_test.exs index 28b67ac2ffa7..235b6d7d8937 100644 --- a/apps/indexer/test/indexer/transform/address_token_balances_test.exs +++ b/apps/indexer/test/indexer/transform/address_token_balances_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.AddressTokenBalancesTest do use ExUnit.Case, async: true diff --git a/apps/indexer/test/indexer/transform/addresses.exs b/apps/indexer/test/indexer/transform/addresses.exs index d1f21d74553d..adad66f8b6f7 100644 --- a/apps/indexer/test/indexer/transform/addresses.exs +++ b/apps/indexer/test/indexer/transform/addresses.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.AddressesTest do use Explorer.DataCase, async: true diff --git a/apps/indexer/test/indexer/transform/blocks/base_test.exs b/apps/indexer/test/indexer/transform/blocks/base_test.exs index c58800f8a443..431a727724a0 100644 --- a/apps/indexer/test/indexer/transform/blocks/base_test.exs +++ b/apps/indexer/test/indexer/transform/blocks/base_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Blocks.BaseTest do use ExUnit.Case diff --git a/apps/indexer/test/indexer/transform/blocks/clique_test.exs b/apps/indexer/test/indexer/transform/blocks/clique_test.exs index 60d0824584b4..a947ca6375f1 100644 --- a/apps/indexer/test/indexer/transform/blocks/clique_test.exs +++ b/apps/indexer/test/indexer/transform/blocks/clique_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Blocks.CliqueTest do use ExUnit.Case diff --git a/apps/indexer/test/indexer/transform/blocks_test.exs b/apps/indexer/test/indexer/transform/blocks_test.exs index 8f0e7cb44b72..0e8507fe08fa 100644 --- a/apps/indexer/test/indexer/transform/blocks_test.exs +++ b/apps/indexer/test/indexer/transform/blocks_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.BlocksTest do use ExUnit.Case diff --git a/apps/indexer/test/indexer/transform/celo/validator_epoch_payment_distributions_test.exs b/apps/indexer/test/indexer/transform/celo/validator_epoch_payment_distributions_test.exs index edd4db17981b..076a9200ccb3 100644 --- a/apps/indexer/test/indexer/transform/celo/validator_epoch_payment_distributions_test.exs +++ b/apps/indexer/test/indexer/transform/celo/validator_epoch_payment_distributions_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.Celo.ValidatorEpochPaymentDistributionsTest do use EthereumJSONRPC.Case use Explorer.DataCase diff --git a/apps/indexer/test/indexer/transform/mint_transfers_test.exs b/apps/indexer/test/indexer/transform/mint_transfers_test.exs index 4670e983a272..e58ffa98e643 100644 --- a/apps/indexer/test/indexer/transform/mint_transfers_test.exs +++ b/apps/indexer/test/indexer/transform/mint_transfers_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.MintTransfersTest do use ExUnit.Case, async: true diff --git a/apps/indexer/test/indexer/transform/stability/validators_test.exs b/apps/indexer/test/indexer/transform/stability/validators_test.exs index b135a9f5be87..e78068d3a231 100644 --- a/apps/indexer/test/indexer/transform/stability/validators_test.exs +++ b/apps/indexer/test/indexer/transform/stability/validators_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout if Application.compile_env(:explorer, :chain_type) == :stability do defmodule Indexer.Transform.Stability.ValidatorsTest do use ExUnit.Case, async: true diff --git a/apps/indexer/test/indexer/transform/token_transfers_test.exs b/apps/indexer/test/indexer/transform/token_transfers_test.exs index 981ffe9fb063..9bf74d3dac87 100644 --- a/apps/indexer/test/indexer/transform/token_transfers_test.exs +++ b/apps/indexer/test/indexer/transform/token_transfers_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Transform.TokenTransfersTest do use Explorer.DataCase diff --git a/apps/indexer/test/indexer/utils/event_notifications_cleaner_test.exs b/apps/indexer/test/indexer/utils/event_notifications_cleaner_test.exs index d1352dbbd012..12e9b5cc39ce 100644 --- a/apps/indexer/test/indexer/utils/event_notifications_cleaner_test.exs +++ b/apps/indexer/test/indexer/utils/event_notifications_cleaner_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Utils.EventNotificationsCleanerTest do use Explorer.DataCase diff --git a/apps/indexer/test/indexer_test.exs b/apps/indexer/test/indexer_test.exs index 78a92fdea849..6109a26caa1e 100644 --- a/apps/indexer/test/indexer_test.exs +++ b/apps/indexer/test/indexer_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule IndexerTest do use Explorer.DataCase, async: true diff --git a/apps/indexer/test/support/indexer/block/catchup_supervisor_case.ex b/apps/indexer/test/support/indexer/block/catchup_supervisor_case.ex index 543e093cea59..00d8dec98372 100644 --- a/apps/indexer/test/support/indexer/block/catchup_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/block/catchup_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Block.Catchup.Supervisor.Case do alias Indexer.Block.Catchup diff --git a/apps/indexer/test/support/indexer/fetcher/beacon_blob_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/beacon_blob_supervisor_case.ex index 661b7ce3133d..03b16fdf4891 100644 --- a/apps/indexer/test/support/indexer/fetcher/beacon_blob_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/beacon_blob_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Beacon.Blob.Supervisor.Case do alias Indexer.Fetcher.Beacon.Blob diff --git a/apps/indexer/test/support/indexer/fetcher/beacon_deposit_status_supervisor_test.ex b/apps/indexer/test/support/indexer/fetcher/beacon_deposit_status_supervisor_test.ex index c23e6d61607c..90de10afd29a 100644 --- a/apps/indexer/test/support/indexer/fetcher/beacon_deposit_status_supervisor_test.ex +++ b/apps/indexer/test/support/indexer/fetcher/beacon_deposit_status_supervisor_test.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Beacon.Deposit.Status.Supervisor.Case do alias Indexer.Fetcher.Beacon.Deposit.Status diff --git a/apps/indexer/test/support/indexer/fetcher/beacon_deposit_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/beacon_deposit_supervisor_case.ex index ef525dcc7650..15de8a05f911 100644 --- a/apps/indexer/test/support/indexer/fetcher/beacon_deposit_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/beacon_deposit_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Beacon.Deposit.Supervisor.Case do alias Indexer.Fetcher.Beacon.Deposit diff --git a/apps/indexer/test/support/indexer/fetcher/block_reward_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/block_reward_supervisor_case.ex index f6678cc715c7..2a25748f0832 100644 --- a/apps/indexer/test/support/indexer/fetcher/block_reward_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/block_reward_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.BlockReward.Supervisor.Case do alias Indexer.Fetcher.BlockReward diff --git a/apps/indexer/test/support/indexer/fetcher/celo_epoch_rewards_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/celo_epoch_rewards_supervisor_case.ex index 507981237dd2..6e4843e71b16 100644 --- a/apps/indexer/test/support/indexer/fetcher/celo_epoch_rewards_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/celo_epoch_rewards_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Celo.EpochBlockOperations.Supervisor.Case do alias Indexer.Fetcher.Celo.EpochBlockOperations diff --git a/apps/indexer/test/support/indexer/fetcher/coin_balance_catchup_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/coin_balance_catchup_supervisor_case.ex index 69ec7825616f..028d42d43326 100644 --- a/apps/indexer/test/support/indexer/fetcher/coin_balance_catchup_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/coin_balance_catchup_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.CoinBalance.Catchup.Supervisor.Case do alias Indexer.Fetcher.CoinBalance.Catchup diff --git a/apps/indexer/test/support/indexer/fetcher/coin_balance_realtime_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/coin_balance_realtime_supervisor_case.ex index 878f6ea7f3f0..db063546de10 100644 --- a/apps/indexer/test/support/indexer/fetcher/coin_balance_realtime_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/coin_balance_realtime_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.CoinBalance.Realtime.Supervisor.Case do alias Indexer.Fetcher.CoinBalance.Realtime diff --git a/apps/indexer/test/support/indexer/fetcher/contract_code_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/contract_code_supervisor_case.ex index e7cffcc33afe..145145153729 100644 --- a/apps/indexer/test/support/indexer/fetcher/contract_code_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/contract_code_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ContractCode.Supervisor.Case do alias Indexer.Fetcher.ContractCode diff --git a/apps/indexer/test/support/indexer/fetcher/empty_blocks_sanitizer_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/empty_blocks_sanitizer_supervisor_case.ex index c0a01ef5e6fd..e995f5166b14 100644 --- a/apps/indexer/test/support/indexer/fetcher/empty_blocks_sanitizer_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/empty_blocks_sanitizer_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.EmptyBlocksSanitizer.Supervisor.Case do alias Indexer.Fetcher.EmptyBlocksSanitizer diff --git a/apps/indexer/test/support/indexer/fetcher/filecoin_native_address_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/filecoin_native_address_supervisor_case.ex index 6f46db11c5cd..ff825f1912ea 100644 --- a/apps/indexer/test/support/indexer/fetcher/filecoin_native_address_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/filecoin_native_address_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Filecoin.AddressInfo.Supervisor.Case do alias Indexer.Fetcher.Filecoin.AddressInfo diff --git a/apps/indexer/test/support/indexer/fetcher/internal_transaction_delete_queue_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/internal_transaction_delete_queue_supervisor_case.ex index 734cc34d5e6b..ce7435b87b6d 100644 --- a/apps/indexer/test/support/indexer/fetcher/internal_transaction_delete_queue_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/internal_transaction_delete_queue_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.InternalTransaction.DeleteQueue.Supervisor.Case do alias Indexer.Fetcher.InternalTransaction.DeleteQueue diff --git a/apps/indexer/test/support/indexer/fetcher/internal_transaction_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/internal_transaction_supervisor_case.ex index 0c3ba2be7358..4498c57047ea 100644 --- a/apps/indexer/test/support/indexer/fetcher/internal_transaction_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/internal_transaction_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.InternalTransaction.Supervisor.Case do alias Indexer.Fetcher.InternalTransaction diff --git a/apps/indexer/test/support/indexer/fetcher/on_demand/coin_balance_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/on_demand/coin_balance_supervisor_case.ex index 4108763d3db8..a41a62836022 100644 --- a/apps/indexer/test/support/indexer/fetcher/on_demand/coin_balance_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/on_demand/coin_balance_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.CoinBalance.Supervisor.Case do alias Indexer.Fetcher.OnDemand.CoinBalance diff --git a/apps/indexer/test/support/indexer/fetcher/on_demand/token_balance_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/on_demand/token_balance_supervisor_case.ex index b4f017f03b27..902c981b789e 100644 --- a/apps/indexer/test/support/indexer/fetcher/on_demand/token_balance_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/on_demand/token_balance_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.OnDemand.TokenBalance.Supervisor.Case do alias Indexer.Fetcher.OnDemand.TokenBalance diff --git a/apps/indexer/test/support/indexer/fetcher/pending_transaction_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/pending_transaction_supervisor_case.ex index afaa15df1722..0bc38df14a39 100644 --- a/apps/indexer/test/support/indexer/fetcher/pending_transaction_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/pending_transaction_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.PendingTransaction.Supervisor.Case do alias Indexer.Fetcher.PendingTransaction diff --git a/apps/indexer/test/support/indexer/fetcher/replaced_transaction_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/replaced_transaction_supervisor_case.ex index c95dbbd79f50..0893057fc2b9 100644 --- a/apps/indexer/test/support/indexer/fetcher/replaced_transaction_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/replaced_transaction_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.ReplacedTransaction.Supervisor.Case do alias Indexer.Fetcher.ReplacedTransaction diff --git a/apps/indexer/test/support/indexer/fetcher/rootstock_data_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/rootstock_data_supervisor_case.ex index d58f3c5f10cd..0a1fb59444f8 100644 --- a/apps/indexer/test/support/indexer/fetcher/rootstock_data_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/rootstock_data_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.RootstockData.Supervisor.Case do alias Indexer.Fetcher.RootstockData diff --git a/apps/indexer/test/support/indexer/fetcher/signed_authorization_status_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/signed_authorization_status_supervisor_case.ex index 371f9e49b32d..29fcf00bd717 100644 --- a/apps/indexer/test/support/indexer/fetcher/signed_authorization_status_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/signed_authorization_status_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.SignedAuthorizationStatus.Supervisor.Case do alias Indexer.Fetcher.SignedAuthorizationStatus diff --git a/apps/indexer/test/support/indexer/fetcher/token_balance_current_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/token_balance_current_supervisor_case.ex index 7830b7c2ebe2..3d2da821a0e4 100644 --- a/apps/indexer/test/support/indexer/fetcher/token_balance_current_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/token_balance_current_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenBalance.Current.Supervisor.Case do alias Indexer.Fetcher.TokenBalance.Current, as: TokenBalanceCurrent diff --git a/apps/indexer/test/support/indexer/fetcher/token_balance_historical_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/token_balance_historical_supervisor_case.ex index b1243e51c0d2..1873ca032c34 100644 --- a/apps/indexer/test/support/indexer/fetcher/token_balance_historical_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/token_balance_historical_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenBalance.Historical.Supervisor.Case do alias Indexer.Fetcher.TokenBalance.Historical, as: TokenBalanceHistorical diff --git a/apps/indexer/test/support/indexer/fetcher/token_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/token_supervisor_case.ex index 97983d3d6311..e482778ede32 100644 --- a/apps/indexer/test/support/indexer/fetcher/token_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/token_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Token.Supervisor.Case do alias Indexer.Fetcher.Token diff --git a/apps/indexer/test/support/indexer/fetcher/token_updater_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/token_updater_supervisor_case.ex index 9f8a70b74f2b..092885c1163a 100644 --- a/apps/indexer/test/support/indexer/fetcher/token_updater_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/token_updater_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.TokenUpdater.Supervisor.Case do alias Indexer.Fetcher.TokenUpdater diff --git a/apps/indexer/test/support/indexer/fetcher/uncle_block_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/uncle_block_supervisor_case.ex index 1de336427184..878c7ee9d35a 100644 --- a/apps/indexer/test/support/indexer/fetcher/uncle_block_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/uncle_block_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.UncleBlock.Supervisor.Case do alias Indexer.Fetcher.UncleBlock diff --git a/apps/indexer/test/support/indexer/fetcher/withdrawal_supervisor_case.ex b/apps/indexer/test/support/indexer/fetcher/withdrawal_supervisor_case.ex index 2f419efcc852..322047f4e02d 100644 --- a/apps/indexer/test/support/indexer/fetcher/withdrawal_supervisor_case.ex +++ b/apps/indexer/test/support/indexer/fetcher/withdrawal_supervisor_case.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Indexer.Fetcher.Withdrawal.Supervisor.Case do alias Indexer.Fetcher.Withdrawal diff --git a/apps/indexer/test/test_helper.exs b/apps/indexer/test/test_helper.exs index 4b2f51050ce1..5b7f5acdd07e 100644 --- a/apps/indexer/test/test_helper.exs +++ b/apps/indexer/test/test_helper.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # https://github.com/CircleCI-Public/circleci-demo-elixir-phoenix/blob/a89de33a01df67b6773ac90adc74c34367a4a2d6/test/test_helper.exs#L1-L3 junit_folder = Mix.Project.build_path() <> "/junit/#{Mix.Project.config()[:app]}" File.mkdir_p!(junit_folder) diff --git a/apps/nft_media_handler/lib/nft_media_handler.ex b/apps/nft_media_handler/lib/nft_media_handler.ex index 12bdc5e91d41..df92f576ff5e 100644 --- a/apps/nft_media_handler/lib/nft_media_handler.ex +++ b/apps/nft_media_handler/lib/nft_media_handler.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule NFTMediaHandler do @moduledoc """ Module resizes and uploads images to R2/S3 bucket. diff --git a/apps/nft_media_handler/lib/nft_media_handler/application.ex b/apps/nft_media_handler/lib/nft_media_handler/application.ex index a037dd2bfde3..2e6ac1851be9 100644 --- a/apps/nft_media_handler/lib/nft_media_handler/application.ex +++ b/apps/nft_media_handler/lib/nft_media_handler/application.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule NFTMediaHandler.Application do @moduledoc """ This is the `Application` module for `NFTMediaHandler`. diff --git a/apps/nft_media_handler/lib/nft_media_handler/dispatcher.ex b/apps/nft_media_handler/lib/nft_media_handler/dispatcher.ex index aae38745ca5f..6a5b2df65237 100644 --- a/apps/nft_media_handler/lib/nft_media_handler/dispatcher.ex +++ b/apps/nft_media_handler/lib/nft_media_handler/dispatcher.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule NFTMediaHandler.Dispatcher do @moduledoc """ Module responsible for spawning tasks for uploading image diff --git a/apps/nft_media_handler/lib/nft_media_handler/dispatcher_interface.ex b/apps/nft_media_handler/lib/nft_media_handler/dispatcher_interface.ex index cff45a22c31b..3e5469ad839c 100644 --- a/apps/nft_media_handler/lib/nft_media_handler/dispatcher_interface.ex +++ b/apps/nft_media_handler/lib/nft_media_handler/dispatcher_interface.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule NFTMediaHandler.DispatcherInterface do @moduledoc """ Interface to call the Indexer.NFTMediaHandler.Queue. diff --git a/apps/nft_media_handler/lib/nft_media_handler/image/resizer.ex b/apps/nft_media_handler/lib/nft_media_handler/image/resizer.ex index 659e4c9f0fb4..7a651383f816 100644 --- a/apps/nft_media_handler/lib/nft_media_handler/image/resizer.ex +++ b/apps/nft_media_handler/lib/nft_media_handler/image/resizer.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule NFTMediaHandler.Image.Resizer do @moduledoc """ Resizes an image diff --git a/apps/nft_media_handler/lib/nft_media_handler/media/fetcher.ex b/apps/nft_media_handler/lib/nft_media_handler/media/fetcher.ex index 05d3e44da4d5..9f2c13c819ab 100644 --- a/apps/nft_media_handler/lib/nft_media_handler/media/fetcher.ex +++ b/apps/nft_media_handler/lib/nft_media_handler/media/fetcher.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule NFTMediaHandler.Media.Fetcher do @moduledoc """ Module fetches media from various sources diff --git a/apps/nft_media_handler/lib/nft_media_handler/r2/uploader.ex b/apps/nft_media_handler/lib/nft_media_handler/r2/uploader.ex index 5ecebf44bc05..b6fcaf2c5c28 100644 --- a/apps/nft_media_handler/lib/nft_media_handler/r2/uploader.ex +++ b/apps/nft_media_handler/lib/nft_media_handler/r2/uploader.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule NFTMediaHandler.R2.Uploader do @moduledoc """ Uploads an image to R2/S3 diff --git a/apps/nft_media_handler/mix.exs b/apps/nft_media_handler/mix.exs index aae57c0f42f0..11c01054d8b1 100644 --- a/apps/nft_media_handler/mix.exs +++ b/apps/nft_media_handler/mix.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule NFTMediaHandler.MixProject do use Mix.Project diff --git a/apps/utils/lib/credo/checks/compile_env_usage.ex b/apps/utils/lib/credo/checks/compile_env_usage.ex index 13ea0441dbf4..16407d8fdc66 100644 --- a/apps/utils/lib/credo/checks/compile_env_usage.ex +++ b/apps/utils/lib/credo/checks/compile_env_usage.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Utils.Credo.Checks.CompileEnvUsage do @moduledoc """ Disallows usage of Application.compile_env throughout the codebase, diff --git a/apps/utils/lib/utils/compile_time_env_helper.ex b/apps/utils/lib/utils/compile_time_env_helper.ex index d5f50191cd1b..8c041eba213f 100644 --- a/apps/utils/lib/utils/compile_time_env_helper.ex +++ b/apps/utils/lib/utils/compile_time_env_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Utils.CompileTimeEnvHelper do @moduledoc """ A module that helps with compile time environment variable handling and automatic diff --git a/apps/utils/lib/utils/config_helper.ex b/apps/utils/lib/utils/config_helper.ex index 49f0dd1d0de1..4a905be451c9 100644 --- a/apps/utils/lib/utils/config_helper.ex +++ b/apps/utils/lib/utils/config_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Utils.ConfigHelper do @moduledoc """ Helper functions for parsing config values. diff --git a/apps/utils/lib/utils/helper.ex b/apps/utils/lib/utils/helper.ex index bf891ec462b9..ae3ee64784c4 100644 --- a/apps/utils/lib/utils/helper.ex +++ b/apps/utils/lib/utils/helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Utils.Helper do @moduledoc """ This module contains helper functions for the entire application. diff --git a/apps/utils/lib/utils/http_client/httpoison_helper.ex b/apps/utils/lib/utils/http_client/httpoison_helper.ex index c4dcd9f4ccb3..fc034f75c20b 100644 --- a/apps/utils/lib/utils/http_client/httpoison_helper.ex +++ b/apps/utils/lib/utils/http_client/httpoison_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Utils.HttpClient.HTTPoisonHelper do @moduledoc """ Helper module for building HTTPoison request options. diff --git a/apps/utils/lib/utils/http_client/tesla_helper.ex b/apps/utils/lib/utils/http_client/tesla_helper.ex index 74b1c8d35939..5349ac357704 100644 --- a/apps/utils/lib/utils/http_client/tesla_helper.ex +++ b/apps/utils/lib/utils/http_client/tesla_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Utils.HttpClient.TeslaHelper do @moduledoc """ Helper module for building Tesla HTTP clients and adapter options. diff --git a/apps/utils/lib/utils/runtime_env_helper.ex b/apps/utils/lib/utils/runtime_env_helper.ex index 5beaef30fb8a..56b2964371b0 100644 --- a/apps/utils/lib/utils/runtime_env_helper.ex +++ b/apps/utils/lib/utils/runtime_env_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Utils.RuntimeEnvHelper do @moduledoc """ A module that provides runtime access to environment variables with a similar diff --git a/apps/utils/lib/utils/token_instance_helper.ex b/apps/utils/lib/utils/token_instance_helper.ex index cd6f6bbe1588..f8a9ab1fc81d 100644 --- a/apps/utils/lib/utils/token_instance_helper.ex +++ b/apps/utils/lib/utils/token_instance_helper.ex @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Utils.TokenInstanceHelper do @moduledoc """ Auxiliary functions for NFTs diff --git a/apps/utils/mix.exs b/apps/utils/mix.exs index b3abc85b878a..0b9a623847bd 100644 --- a/apps/utils/mix.exs +++ b/apps/utils/mix.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Utils.MixProject do use Mix.Project diff --git a/apps/utils/test/checks/compile_env_usage_test.exs b/apps/utils/test/checks/compile_env_usage_test.exs index 3422a8ccb3e3..010a6721925c 100644 --- a/apps/utils/test/checks/compile_env_usage_test.exs +++ b/apps/utils/test/checks/compile_env_usage_test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule Utils.Credo.Checks.CompileEnvUsageTest do use Credo.Test.Case diff --git a/apps/utils/test/test_helper.exs b/apps/utils/test/test_helper.exs index 97950157e27c..cd32697e9249 100644 --- a/apps/utils/test/test_helper.exs +++ b/apps/utils/test/test_helper.exs @@ -1 +1,2 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout {:ok, _} = Application.ensure_all_started(:credo) diff --git a/config/config.exs b/config/config.exs index 47fe7d5ca619..7f77b099441d 100644 --- a/config/config.exs +++ b/config/config.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout # This file is responsible for configuring your application # and its dependencies with the aid of the Config module. import Config diff --git a/config/config_helper.exs b/config/config_helper.exs index 919ea14188a1..f75173788cd9 100644 --- a/config/config_helper.exs +++ b/config/config_helper.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule ConfigHelper do require Logger diff --git a/config/dev.exs b/config/dev.exs index 19ffbc7d4eb9..3dac7ba9a257 100644 --- a/config/dev.exs +++ b/config/dev.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :logger, level: :info diff --git a/config/prod.exs b/config/prod.exs index dc33ab1fb491..2c6d29f911d1 100644 --- a/config/prod.exs +++ b/config/prod.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config # Do not print debug messages in production diff --git a/config/runtime.exs b/config/runtime.exs index 4d69f9fda25b..eab0b4c52b5c 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config [__DIR__ | ~w(config_helper.exs)] diff --git a/config/runtime/dev.exs b/config/runtime/dev.exs index f592e844bc0a..f2f399c4ce88 100644 --- a/config/runtime/dev.exs +++ b/config/runtime/dev.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config alias EthereumJSONRPC.Variant diff --git a/config/runtime/prod.exs b/config/runtime/prod.exs index 6e0059edc881..38435f4337b8 100644 --- a/config/runtime/prod.exs +++ b/config/runtime/prod.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config alias EthereumJSONRPC.Variant diff --git a/config/runtime/test.exs b/config/runtime/test.exs index 8742c888a7c1..2145290a7871 100644 --- a/config/runtime/test.exs +++ b/config/runtime/test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config alias EthereumJSONRPC.Variant diff --git a/config/test.exs b/config/test.exs index f45b43d14630..dc7cca41856e 100644 --- a/config/test.exs +++ b/config/test.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config config :explorer, Oban, testing: :manual diff --git a/mix.exs b/mix.exs index f2bede6ad30f..ed75d6b94417 100644 --- a/mix.exs +++ b/mix.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout defmodule BlockScout.Mixfile do use Mix.Project diff --git a/rel/config.exs b/rel/config.exs index ce0b8eecffef..cee3ed75e736 100644 --- a/rel/config.exs +++ b/rel/config.exs @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout import Config # Import all plugins from `rel/plugins` From d9edfc30527a0e5d4ec86f923f20efcd8bfede01 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 17:25:28 +0300 Subject: [PATCH 16/31] chore(deps): bump mint from 1.7.1 to 1.8.0 (#14351) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- mix.exs | 2 +- mix.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mix.exs b/mix.exs index ed75d6b94417..6efea9368907 100644 --- a/mix.exs +++ b/mix.exs @@ -107,7 +107,7 @@ defmodule BlockScout.Mixfile do {:prometheus_ex, "~> 5.1.0", override: true}, {:absinthe_plug, git: "https://github.com/blockscout/absinthe_plug.git", tag: "1.5.8", override: true}, {:tesla, "~> 1.17.0"}, - {:mint, "~> 1.7.1"}, + {:mint, "~> 1.8.0"}, # Documentation {:ex_doc, "~> 0.40.1", only: :dev, runtime: false}, {:number, "~> 1.0.3"} diff --git a/mix.lock b/mix.lock index f14599c3e8a1..135c917d071b 100644 --- a/mix.lock +++ b/mix.lock @@ -112,7 +112,7 @@ "mime": {:hex, :mime, "2.0.7", "b8d739037be7cd402aee1ba0306edfdef982687ee7e9859bee6198c1e7e2f128", [:mix], [], "hexpm", "6171188e399ee16023ffc5b76ce445eb6d9672e2e241d2df6050f3c771e80ccd"}, "mimerl": {:hex, :mimerl, "1.5.0", "f35aca6f23242339b3666e0ac0702379e362b469d0aea167f6cc713547e777ed", [:rebar3], [], "hexpm", "db648ce065bae14ea84ca8b5dd123f42f49417cef693541110bf6f9e9be9ecc4"}, "mimetype_parser": {:hex, :mimetype_parser, "0.1.3", "628ac9fe56aa7edcedb534d68397dd66674ab82493c8ebe39acb9a19b666099d", [:mix], [], "hexpm", "7d8f80c567807ce78cd93c938e7f4b0a20b1aaaaab914bf286f68457d9f7a852"}, - "mint": {:hex, :mint, "1.7.1", "113fdb2b2f3b59e47c7955971854641c61f378549d73e829e1768de90fc1abf1", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1 or ~> 0.2.0 or ~> 1.0", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "fceba0a4d0f24301ddee3024ae116df1c3f4bb7a563a731f45fdfeb9d39a231b"}, + "mint": {:hex, :mint, "1.8.0", "b964eaf4416f2dee2ba88968d52239fca5621b0402b9c95f55a08eb9d74803e9", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1 or ~> 0.2.0 or ~> 1.0", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "f3c572c11355eccf00f22275e9b42463bc17bd28db13be1e28f8e0bb4adbc849"}, "mnemoniac": {:hex, :mnemoniac, "0.1.5", "d10bf14abb94adc1a98f6cee4d81d197e1b3986cad8ec43b2e21d2cd9f4d99b6", [:mix], [], "hexpm", "518ae4b6ddda5285a5c02bf83e1eb6ce1af7e4d65d3f7f5bff3270689a00bcc3"}, "mock": {:hex, :mock, "0.3.9", "10e44ad1f5962480c5c9b9fa779c6c63de9bd31997c8e04a853ec990a9d841af", [:mix], [{:meck, "~> 0.9.2", [hex: :meck, repo: "hexpm", optional: false]}], "hexpm", "9e1b244c4ca2551bb17bb8415eed89e40ee1308e0fbaed0a4fdfe3ec8a4adbd3"}, "mox": {:hex, :mox, "1.1.0", "0f5e399649ce9ab7602f72e718305c0f9cdc351190f72844599545e4996af73c", [:mix], [], "hexpm", "d44474c50be02d5b72131070281a5d3895c0e7a95c780e90bc0cfe712f633a13"}, From a695eccbb2852848709003725ab3f5a7cea52746 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 May 2026 11:39:39 +0300 Subject: [PATCH 17/31] chore(deps): bump postgrex from 0.22.1 to 0.22.2 (#14376) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- mix.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.lock b/mix.lock index 135c917d071b..590010ab6f27 100644 --- a/mix.lock +++ b/mix.lock @@ -145,7 +145,7 @@ "plug_crypto": {:hex, :plug_crypto, "1.2.5", "918772575e48e81e455818229bf719d4ab4181fcbf7f85b68a35620f78d89ced", [:mix], [], "hexpm", "26549a1d6345e2172eb1c233866756ae44a9609bd33ee6f99147ab3fd87fd842"}, "poison": {:hex, :poison, "5.0.0", "d2b54589ab4157bbb82ec2050757779bfed724463a544b6e20d79855a9e43b24", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "11dc6117c501b80c62a7594f941d043982a1bd05a1184280c0d9166eb4d8d3fc"}, "poolboy": {:hex, :poolboy, "1.5.2", "392b007a1693a64540cead79830443abf5762f5d30cf50bc95cb2c1aaafa006b", [:rebar3], [], "hexpm", "dad79704ce5440f3d5a3681c8590b9dc25d1a561e8f5a9c995281012860901e3"}, - "postgrex": {:hex, :postgrex, "0.22.1", "b3665ad17e15441557da8f45eeebfcd56e4a2b0b98538b855679a13d05e5cc5d", [:mix], [{:db_connection, "~> 2.9", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "df59f828b167b49a5853f645b65f57eb1bc5f3b230497ceaca7af5d8ac05afef"}, + "postgrex": {:hex, :postgrex, "0.22.2", "4aec14df2a72722aee92492566edbeeb44e233ecb86b1915d03136297ef1385d", [:mix], [{:db_connection, "~> 2.9", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "8946382ddb06294f56026ac4278b3cc212bac8a2c82ed68b4087819ed1abc53b"}, "prometheus": {:hex, :prometheus, "6.1.2", "e5c3c567cd8b0994425920763405635211183c15bdc47d0cd524807dde20ca1d", [:rebar3], [{:ddskerl, "0.4.3", [hex: :ddskerl, repo: "hexpm", optional: false]}], "hexpm", "109662001328112b860de112d49b575310be8ff33fe04bf0482eec4b1e5a1278"}, "prometheus_ecto": {:hex, :prometheus_ecto, "1.4.3", "3dd4da1812b8e0dbee81ea58bb3b62ed7588f2eae0c9e97e434c46807ff82311", [:mix], [{:ecto, "~> 2.0 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:prometheus_ex, "~> 1.1 or ~> 2.0 or ~> 3.0", [hex: :prometheus_ex, repo: "hexpm", optional: false]}], "hexpm", "8d66289f77f913b37eda81fd287340c17e61a447549deb28efc254532b2bed82"}, "prometheus_ex": {:hex, :prometheus_ex, "5.1.0", "a978945b4be5923b87edae3537e3fd61f8d04d755fae865ec4cbb1be7b5ec2e5", [:mix], [{:prometheus, "~> 6.1", [hex: :prometheus, repo: "hexpm", optional: false]}], "hexpm", "15d3cd752063a1b51ffcba727fc0276f62d2a4387b523963883d125ea5e0d9e7"}, From bc75c8e088bb797464812f9a6ad8c1b53560157c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 May 2026 11:43:37 +0300 Subject: [PATCH 18/31] chore(deps-dev): bump cowboy from 2.14.2 to 2.15.0 (#14377) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- mix.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mix.lock b/mix.lock index 590010ab6f27..e0e931bb6d73 100644 --- a/mix.lock +++ b/mix.lock @@ -29,9 +29,9 @@ "con_cache": {:hex, :con_cache, "1.1.1", "9f47a68dfef5ac3bbff8ce2c499869dbc5ba889dadde6ac4aff8eb78ddaf6d82", [:mix], [{:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "1def4d1bec296564c75b5bbc60a19f2b5649d81bfa345a2febcc6ae380e8ae15"}, "connection": {:hex, :connection, "1.1.0", "ff2a49c4b75b6fb3e674bfc5536451607270aac754ffd1bdfe175abe4a6d7a68", [:mix], [], "hexpm", "722c1eb0a418fbe91ba7bd59a47e28008a189d47e37e0e7bb85585a016b2869c"}, "cors_plug": {:hex, :cors_plug, "3.0.3", "7c3ac52b39624bc616db2e937c282f3f623f25f8d550068b6710e58d04a0e330", [:mix], [{:plug, "~> 1.13", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "3f2d759e8c272ed3835fab2ef11b46bddab8c1ab9528167bd463b6452edf830d"}, - "cowboy": {:hex, :cowboy, "2.14.2", "4008be1df6ade45e4f2a4e9e2d22b36d0b5aba4e20b0a0d7049e28d124e34847", [:make, :rebar3], [{:cowlib, ">= 2.16.0 and < 3.0.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, ">= 1.8.0 and < 3.0.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "569081da046e7b41b5df36aa359be71a0c8874e5b9cff6f747073fc57baf1ab9"}, + "cowboy": {:hex, :cowboy, "2.15.0", "9cfe86ed7117bf045e10adbedb0170af7be57f2a3637e7be143433d8dd267396", [:make, :rebar3], [{:cowlib, ">= 2.16.0 and < 3.0.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, ">= 1.8.0 and < 3.0.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "179fb65140fb440a17b767ad53b755081506f9596c4db5c49c0396d8c8643668"}, "cowboy_telemetry": {:hex, :cowboy_telemetry, "0.4.0", "f239f68b588efa7707abce16a84d0d2acf3a0f50571f8bb7f56a15865aae820c", [:rebar3], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7d98bac1ee4565d31b62d59f8823dfd8356a169e7fcbb83831b8a5397404c9de"}, - "cowlib": {:hex, :cowlib, "2.16.0", "54592074ebbbb92ee4746c8a8846e5605052f29309d3a873468d76cdf932076f", [:make, :rebar3], [], "hexpm", "7f478d80d66b747344f0ea7708c187645cfcc08b11aa424632f78e25bf05db51"}, + "cowlib": {:hex, :cowlib, "2.16.1", "318d385d55f657e9a5005838c4e426e13dcd724a691438384b6165a69687e531", [:make, :rebar3], [], "hexpm", "58f1e425a9e04176f1d30e20116f57c4e90ef0e187552e9741c465bdf4044f70"}, "credo": {:hex, :credo, "1.7.18", "5c5596bf7aedf9c8c227f13272ac499fe8eae6237bd326f2f07dfc173786f042", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "a189d164685fd945809e862fe76a7420c4398fa288d76257662aecb909d6b3e5"}, "csv": {:hex, :csv, "2.5.0", "c47b5a5221bf2e56d6e8eb79e77884046d7fd516280dc7d9b674251e0ae46246", [:mix], [{:parallel_stream, "~> 1.0.4 or ~> 1.1.0", [hex: :parallel_stream, repo: "hexpm", optional: false]}], "hexpm", "e821f541487045c7591a1963eeb42afff0dfa99bdcdbeb3410795a2f59c77d34"}, "dataloader": {:hex, :dataloader, "2.0.2", "c45075e0692e68638a315e14f747bd8d7065fb5f38705cf980f62d4cd344401f", [:mix], [{:ecto, ">= 3.4.3 and < 4.0.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:opentelemetry_process_propagator, "~> 0.2.1 or ~> 0.3", [hex: :opentelemetry_process_propagator, repo: "hexpm", optional: true]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "4c6cabc0b55e96e7de74d14bf37f4a5786f0ab69aa06764a1f39dda40079b098"}, From 7c162ce887f57d009a8970af7970ec704431e4e2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 May 2026 11:48:35 +0300 Subject: [PATCH 19/31] chore(deps): bump floki from 0.38.1 to 0.38.2 (#14378) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- mix.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.lock b/mix.lock index e0e931bb6d73..af119abd133a 100644 --- a/mix.lock +++ b/mix.lock @@ -78,7 +78,7 @@ "file_info": {:hex, :file_info, "0.0.4", "2e0e77f211e833f38ead22cb29ce53761d457d80b3ffe0ffe0eb93880b0963b2", [:mix], [{:mimetype_parser, "~> 0.1.2", [hex: :mimetype_parser, repo: "hexpm", optional: false]}], "hexpm", "50e7ad01c2c8b9339010675fe4dc4a113b8d6ca7eddce24d1d74fd0e762781a5"}, "file_system": {:hex, :file_system, "1.1.1", "31864f4685b0148f25bd3fbef2b1228457c0c89024ad67f7a81a3ffbc0bbad3a", [:mix], [], "hexpm", "7a15ff97dfe526aeefb090a7a9d3d03aa907e100e262a0f8f7746b78f8f87a5d"}, "finch": {:hex, :finch, "0.18.0", "944ac7d34d0bd2ac8998f79f7a811b21d87d911e77a786bc5810adb75632ada4", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.3", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2.6 or ~> 1.0", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "69f5045b042e531e53edc2574f15e25e735b522c37e2ddb766e15b979e03aa65"}, - "floki": {:hex, :floki, "0.38.1", "f002ccac94b3bcb21d40d9b34cc2cc9fd88a8311879120330075b5dde657ebee", [:mix], [], "hexpm", "e744bf0db7ee34b2c8b62767f04071107af0516a81144b9a2f73fe0494200e5b"}, + "floki": {:hex, :floki, "0.38.2", "7b80245ff877bbf04ff4149b0389f43b3e8596f380af18420bd087eeb43ff9c8", [:mix], [], "hexpm", "854183daf5cb5f42a2d6b7e33f12f823329d9d36c648714adfee3515940e9716"}, "flow": {:hex, :flow, "1.2.4", "1dd58918287eb286656008777cb32714b5123d3855956f29aa141ebae456922d", [:mix], [{:gen_stage, "~> 1.0", [hex: :gen_stage, repo: "hexpm", optional: false]}], "hexpm", "874adde96368e71870f3510b91e35bc31652291858c86c0e75359cbdd35eb211"}, "gen_stage": {:hex, :gen_stage, "1.2.1", "19d8b5e9a5996d813b8245338a28246307fd8b9c99d1237de199d21efc4c76a1", [:mix], [], "hexpm", "83e8be657fa05b992ffa6ac1e3af6d57aa50aace8f691fcf696ff02f8335b001"}, "gettext": {:hex, :gettext, "0.26.2", "5978aa7b21fada6deabf1f6341ddba50bc69c999e812211903b169799208f2a8", [:mix], [{:expo, "~> 0.5.1 or ~> 1.0", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "aa978504bcf76511efdc22d580ba08e2279caab1066b76bb9aa81c4a1e0a32a5"}, From 4673c5f9ce77999c25b1c64314fccd842c284723 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 May 2026 12:19:15 +0300 Subject: [PATCH 20/31] chore(deps): bump tesla from 1.17.0 to 1.18.2 (#14375) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- apps/ethereum_jsonrpc/mix.exs | 2 +- apps/explorer/mix.exs | 2 +- apps/utils/mix.exs | 2 +- mix.exs | 2 +- mix.lock | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/ethereum_jsonrpc/mix.exs b/apps/ethereum_jsonrpc/mix.exs index 20dbdca78ccc..9ea54e577161 100644 --- a/apps/ethereum_jsonrpc/mix.exs +++ b/apps/ethereum_jsonrpc/mix.exs @@ -76,7 +76,7 @@ defmodule EthereumJSONRPC.MixProject do {:spandex, "~> 3.0"}, # `:spandex` integration with Datadog {:spandex_datadog, "~> 1.0"}, - {:tesla, "~> 1.17.0"}, + {:tesla, "~> 1.18.2"}, # Convert unix timestamps in JSONRPC to DateTimes {:timex, "~> 3.7.1"}, # Encode/decode function names and arguments diff --git a/apps/explorer/mix.exs b/apps/explorer/mix.exs index a9f7705a7850..90bc3f8dbd5e 100644 --- a/apps/explorer/mix.exs +++ b/apps/explorer/mix.exs @@ -116,7 +116,7 @@ defmodule Explorer.Mixfile do # `Timex.Duration` for `Explorer.Chain.Cache.Counters.AverageBlockTime.average_block_time/0` {:timex, "~> 3.7.1"}, {:con_cache, "~> 1.0"}, - {:tesla, "~> 1.17.0"}, + {:tesla, "~> 1.18.2"}, {:cbor, "~> 1.0"}, {:cloak_ecto, "~> 1.3.0"}, {:redix, "~> 1.1"}, diff --git a/apps/utils/mix.exs b/apps/utils/mix.exs index 0b9a623847bd..4ea4bf346b25 100644 --- a/apps/utils/mix.exs +++ b/apps/utils/mix.exs @@ -34,7 +34,7 @@ defmodule Utils.MixProject do {:credo, "~> 1.5", only: [:test, :dev], runtime: false}, {:httpoison, "~> 2.0"}, {:mime, "~> 2.0"}, - {:tesla, "~> 1.17.0"} + {:tesla, "~> 1.18.2"} ] end diff --git a/mix.exs b/mix.exs index 6efea9368907..270e9b2657d8 100644 --- a/mix.exs +++ b/mix.exs @@ -106,7 +106,7 @@ defmodule BlockScout.Mixfile do [ {:prometheus_ex, "~> 5.1.0", override: true}, {:absinthe_plug, git: "https://github.com/blockscout/absinthe_plug.git", tag: "1.5.8", override: true}, - {:tesla, "~> 1.17.0"}, + {:tesla, "~> 1.18.2"}, {:mint, "~> 1.8.0"}, # Documentation {:ex_doc, "~> 0.40.1", only: :dev, runtime: false}, diff --git a/mix.lock b/mix.lock index af119abd133a..8a9c8848e7d5 100644 --- a/mix.lock +++ b/mix.lock @@ -16,7 +16,7 @@ "bypass": {:hex, :bypass, "2.1.0", "909782781bf8e20ee86a9cabde36b259d44af8b9f38756173e8f5e2e1fabb9b1", [:mix], [{:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.0", [hex: :plug_cowboy, repo: "hexpm", optional: false]}, {:ranch, "~> 1.3", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "d9b5df8fa5b7a6efa08384e9bbecfe4ce61c77d28a4282f79e02f1ef78d96b80"}, "cachex": {:hex, :cachex, "4.1.1", "574c5cd28473db313a0a76aac8c945fe44191659538ca6a1e8946ec300b1a19f", [:mix], [{:eternal, "~> 1.2", [hex: :eternal, repo: "hexpm", optional: false]}, {:ex_hash_ring, "~> 6.0", [hex: :ex_hash_ring, repo: "hexpm", optional: false]}, {:jumper, "~> 1.0", [hex: :jumper, repo: "hexpm", optional: false]}, {:sleeplocks, "~> 1.1", [hex: :sleeplocks, repo: "hexpm", optional: false]}, {:unsafe, "~> 1.0", [hex: :unsafe, repo: "hexpm", optional: false]}], "hexpm", "d6b7449ff98d6bb92dda58bd4fc3189cae9f99e7042054d669596f56dc503cd8"}, "cafezinho": {:hex, :cafezinho, "0.4.4", "36c31fc5456b1284180d8a9d968c7eaaf474782df5af023a8f8b66937c5b2785", [:mix], [{:rustler, ">= 0.0.0", [hex: :rustler, repo: "hexpm", optional: true]}, {:rustler_precompiled, "~> 0.8", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "3ca334f2a2992ec081868c39ad0487eb97d213292702aae6b197fd5e6f04fd58"}, - "castore": {:hex, :castore, "1.0.18", "5e43ef0ec7d31195dfa5a65a86e6131db999d074179d2ba5a8de11fe14570f55", [:mix], [], "hexpm", "f393e4fe6317829b158fb74d86eb681f737d2fe326aa61ccf6293c4104957e34"}, + "castore": {:hex, :castore, "1.0.19", "6903cabdfd9d1af46454126e7c8385186659dd33ecfb74a885cae52221ad6109", [:mix], [], "hexpm", "3669e6cab13f54c2df26b3e6833745d647f35b6e30d8ddd5975df0d5c842ca98"}, "cbor": {:hex, :cbor, "1.0.2", "9b0af85af291a556e10a0ffd48ba9a21a75e711828fafd3af193d56d95f0907f", [:mix], [], "hexpm", "edbc9b4a16eb93a582437b9b249c340a75af03958e338fb43d8c1be9fc65b864"}, "cc_precompiler": {:hex, :cc_precompiler, "0.1.11", "8c844d0b9fb98a3edea067f94f616b3f6b29b959b6b3bf25fee94ffe34364768", [:mix], [{:elixir_make, "~> 0.7", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "3427232caf0835f94680e5bcf082408a70b48ad68a5f5c0b02a3bea9f3a075b9"}, "certifi": {:hex, :certifi, "2.15.0", "0e6e882fcdaaa0a5a9f2b3db55b1394dba07e8d6d9bcad08318fb604c6839712", [:rebar3], [], "hexpm", "b147ed22ce71d72eafdad94f055165c1c182f61a2ff49df28bcc71d1d5b94a60"}, @@ -140,7 +140,7 @@ "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.2.0", "ff3a5616e1bed6804de7773b92cbccfc0b0f473faf1f63d7daf1206c7aeaaa6f", [:mix], [], "hexpm", "adc313a5bf7136039f63cfd9668fde73bba0765e0614cba80c06ac9460ff3e96"}, "phoenix_template": {:hex, :phoenix_template, "1.0.4", "e2092c132f3b5e5b2d49c96695342eb36d0ed514c5b252a77048d5969330d639", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "2c0c81f0e5c6753faf5cca2f229c9709919aba34fab866d3bc05060c9c444206"}, "phoenix_view": {:hex, :phoenix_view, "2.0.4", "b45c9d9cf15b3a1af5fb555c674b525391b6a1fe975f040fb4d913397b31abf4", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}], "hexpm", "4e992022ce14f31fe57335db27a28154afcc94e9983266835bb3040243eb620b"}, - "plug": {:hex, :plug, "1.19.1", "09bac17ae7a001a68ae393658aa23c7e38782be5c5c00c80be82901262c394c0", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "560a0017a8f6d5d30146916862aaf9300b7280063651dd7e532b8be168511e62"}, + "plug": {:hex, :plug, "1.19.2", "e4950525b22c6789dfb38a3f95d47171ba159da3fc5a33be9643b43d5e8adb98", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "b6fce20a56af5e60fa5dfecf3f907bb98ec981be43c79a3809a499bc3d133de0"}, "plug_cowboy": {:hex, :plug_cowboy, "2.8.1", "5aa391a5e8d1ac3192e36a3bcaff12b5fd6ef6c7e29b53a38e63a860783e77d0", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "4c200288673d5bc86a0ab7dc6a2a069176a74e5d573ef62740a1c517458a5f26"}, "plug_crypto": {:hex, :plug_crypto, "1.2.5", "918772575e48e81e455818229bf719d4ab4181fcbf7f85b68a35620f78d89ced", [:mix], [], "hexpm", "26549a1d6345e2172eb1c233866756ae44a9609bd33ee6f99147ab3fd87fd842"}, "poison": {:hex, :poison, "5.0.0", "d2b54589ab4157bbb82ec2050757779bfed724463a544b6e20d79855a9e43b24", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "11dc6117c501b80c62a7594f941d043982a1bd05a1184280c0d9166eb4d8d3fc"}, @@ -171,7 +171,7 @@ "statistex": {:hex, :statistex, "1.1.0", "7fec1eb2f580a0d2c1a05ed27396a084ab064a40cfc84246dbfb0c72a5c761e5", [:mix], [], "hexpm", "f5950ea26ad43246ba2cce54324ac394a4e7408fdcf98b8e230f503a0cba9cf5"}, "sweet_xml": {:hex, :sweet_xml, "0.7.5", "803a563113981aaac202a1dbd39771562d0ad31004ddbfc9b5090bdcd5605277", [:mix], [], "hexpm", "193b28a9b12891cae351d81a0cead165ffe67df1b73fe5866d10629f4faefb12"}, "telemetry": {:hex, :telemetry, "1.4.2", "a0cb522801dffb1c49fe6e30561badffc7b6d0e180db1300df759faa22062855", [:rebar3], [], "hexpm", "928f6495066506077862c0d1646609eed891a4326bee3126ba54b60af61febb1"}, - "tesla": {:hex, :tesla, "1.17.0", "fde23e9d1a237ccdafd5b0d5193769104dad2091e400242f1048f72d7a2d0c11", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:exjsx, ">= 3.0.0", [hex: :exjsx, repo: "hexpm", optional: true]}, {:finch, "~> 0.13", [hex: :finch, repo: "hexpm", optional: true]}, {:fuse, "~> 2.4", [hex: :fuse, repo: "hexpm", optional: true]}, {:gun, ">= 1.0.0", [hex: :gun, repo: "hexpm", optional: true]}, {:hackney, "~> 1.21", [hex: :hackney, repo: "hexpm", optional: true]}, {:ibrowse, "4.4.2", [hex: :ibrowse, repo: "hexpm", optional: true]}, {:jason, ">= 1.0.0", [hex: :jason, repo: "hexpm", optional: true]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.0", [hex: :mint, repo: "hexpm", optional: true]}, {:mox, "~> 1.0", [hex: :mox, repo: "hexpm", optional: true]}, {:msgpax, "~> 2.3", [hex: :msgpax, repo: "hexpm", optional: true]}, {:opentelemetry_semantic_conventions, "~> 1.27", [hex: :opentelemetry_semantic_conventions, repo: "hexpm", optional: true]}, {:poison, ">= 1.0.0", [hex: :poison, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm", "98c85e5e614dad082789835d9561e2534c9b5aa980d45e465b898b166c2f3b21"}, + "tesla": {:hex, :tesla, "1.18.2", "50651b403a466a4131f4b334df182dbe9f0d135ca5e05cb3dce2001be1bf3389", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:exjsx, ">= 3.0.0", [hex: :exjsx, repo: "hexpm", optional: true]}, {:finch, "~> 0.13", [hex: :finch, repo: "hexpm", optional: true]}, {:fuse, "~> 2.4", [hex: :fuse, repo: "hexpm", optional: true]}, {:gun, ">= 1.0.0", [hex: :gun, repo: "hexpm", optional: true]}, {:hackney, "~> 1.21", [hex: :hackney, repo: "hexpm", optional: true]}, {:ibrowse, "4.4.2", [hex: :ibrowse, repo: "hexpm", optional: true]}, {:jason, ">= 1.0.0", [hex: :jason, repo: "hexpm", optional: true]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.0", [hex: :mint, repo: "hexpm", optional: true]}, {:mox, "~> 1.0", [hex: :mox, repo: "hexpm", optional: true]}, {:msgpax, "~> 2.3", [hex: :msgpax, repo: "hexpm", optional: true]}, {:opentelemetry_semantic_conventions, "~> 1.27", [hex: :opentelemetry_semantic_conventions, repo: "hexpm", optional: true]}, {:poison, ">= 1.0.0", [hex: :poison, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm", "2566141071fd7f3a6b287f27444bc08cbb67677fc979eb400dfb8b2778c89044"}, "timex": {:hex, :timex, "3.7.13", "0688ce11950f5b65e154e42b47bf67b15d3bc0e0c3def62199991b8a8079a1e2", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.26", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 1.1", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm", "09588e0522669328e973b8b4fd8741246321b3f0d32735b589f78b136e6d4c54"}, "ton": {:hex, :ton, "0.5.1", "79745434a93e5f7de3572fdcf04feb048620f0edab9794fc412a73528672927d", [:mix], [{:cafezinho, "~> 0.4.4", [hex: :cafezinho, repo: "hexpm", optional: false]}, {:evil_crc32c, "~> 0.2.9", [hex: :evil_crc32c, repo: "hexpm", optional: false]}, {:ex_pbkdf2, "~> 0.8.4", [hex: :ex_pbkdf2, repo: "hexpm", optional: false]}, {:mnemoniac, "~> 0.1.4", [hex: :mnemoniac, repo: "hexpm", optional: false]}], "hexpm", "916f656c870902a61690347da9500c5ce27f04c02e02441363bac7b128030f07"}, "typed_ecto_schema": {:hex, :typed_ecto_schema, "0.4.3", "1e5f3b6c763f9b5725975d3ab7f1554525f1f1399b966f2425acf04f9d8dd4fe", [:mix], [{:ecto, "~> 3.5", [hex: :ecto, repo: "hexpm", optional: false]}], "hexpm", "dcbd9b35b9fda5fa9258e0ae629a99cf4473bd7adfb85785d3f71dfe7a9b2bc0"}, From 2a7db0b8217004c598dcdafcc3d9c47e4ea5db43 Mon Sep 17 00:00:00 2001 From: Qwerty5Uiop <105209995+Qwerty5Uiop@users.noreply.github.com> Date: Wed, 13 May 2026 14:53:15 +0400 Subject: [PATCH 21/31] chore: Partial async import (#14277) Co-authored-by: Victor Baranov --- .../lib/indexer/block/catchup/fetcher.ex | 6 +- apps/indexer/lib/indexer/block/fetcher.ex | 95 +++++++++----- .../lib/indexer/fetcher/address_importer.ex | 124 ++++++++++++++++++ .../fetcher/current_token_balance_importer.ex | 107 +++++++++++++++ .../indexer/fetcher/internal_transaction.ex | 11 +- .../fetcher/token_instance_importer.ex | 116 ++++++++++++++++ apps/indexer/lib/indexer/supervisor.ex | 12 ++ .../lib/indexer/transform/token_instances.ex | 4 +- config/runtime.exs | 1 + cspell.json | 1 + docker-compose/envs/common-blockscout.env | 1 + 11 files changed, 431 insertions(+), 47 deletions(-) create mode 100644 apps/indexer/lib/indexer/fetcher/address_importer.ex create mode 100644 apps/indexer/lib/indexer/fetcher/current_token_balance_importer.ex create mode 100644 apps/indexer/lib/indexer/fetcher/token_instance_importer.ex diff --git a/apps/indexer/lib/indexer/block/catchup/fetcher.ex b/apps/indexer/lib/indexer/block/catchup/fetcher.ex index e3288ee192b4..81962b7944ee 100644 --- a/apps/indexer/lib/indexer/block/catchup/fetcher.ex +++ b/apps/indexer/lib/indexer/block/catchup/fetcher.ex @@ -14,7 +14,7 @@ defmodule Indexer.Block.Catchup.Fetcher do async_import_block_rewards: 2, async_import_celo_epoch_block_operations: 2, async_import_celo_accounts: 2, - async_import_coin_balances: 2, + async_import_coin_balances: 1, async_import_created_contract_codes: 2, async_import_filecoin_addresses_info: 2, async_import_internal_transactions: 2, @@ -134,12 +134,12 @@ defmodule Indexer.Block.Catchup.Fetcher do defp async_import_remaining_block_data( imported, - %{block_rewards: %{errors: block_reward_errors}} = options + %{block_rewards: %{errors: block_reward_errors}} ) do realtime? = false async_import_block_rewards(block_reward_errors, realtime?) - async_import_coin_balances(imported, options) + async_import_coin_balances(imported) async_import_created_contract_codes(imported, realtime?) async_import_internal_transactions(imported, realtime?) async_import_tokens(imported, realtime?) diff --git a/apps/indexer/lib/indexer/block/fetcher.ex b/apps/indexer/lib/indexer/block/fetcher.ex index ad5a79852303..1626e9963218 100644 --- a/apps/indexer/lib/indexer/block/fetcher.ex +++ b/apps/indexer/lib/indexer/block/fetcher.ex @@ -16,7 +16,7 @@ defmodule Indexer.Block.Fetcher do alias EthereumJSONRPC.{Blocks, FetchedBeneficiaries} alias Explorer.{Chain, Repo} - alias Explorer.Chain.{Address, Block, Hash, Import, Transaction, Wei, Withdrawal} + alias Explorer.Chain.{Block, Hash, Import, Transaction, Wei, Withdrawal} alias Explorer.Chain.Block.Reward alias Explorer.Chain.Cache.{Accounts, BlockNumber, Transactions, Uncles} alias Explorer.Chain.Cache.Blocks, as: BlocksCache @@ -40,14 +40,17 @@ defmodule Indexer.Block.Fetcher do alias Indexer.{Prometheus, TokenBalances, Tracer} alias Indexer.Fetcher.{ + AddressImporter, AddressNonceUpdater, Beacon.Blob, BlockReward, ContractCode, + CurrentTokenBalanceImporter, InternalTransaction, ReplacedTransaction, SignedAuthorizationStatus, Token, + TokenInstanceImporter, UncleBlock } @@ -95,8 +98,8 @@ defmodule Indexer.Block.Fetcher do @callback import( t(module()), %{ - address_hash_to_fetched_balance_block_number: address_hash_to_fetched_balance_block_number, - addresses: Import.Runner.options(), + optional(:address_hash_to_fetched_balance_block_number) => address_hash_to_fetched_balance_block_number, + optional(:addresses) => Import.Runner.options(), address_coin_balances: Import.Runner.options(), address_coin_balances_daily: Import.Runner.options(), address_token_balances: Import.Runner.options(), @@ -237,25 +240,18 @@ defmodule Indexer.Block.Fetcher do token_transfers_with_token = token_transfers_merge_token(token_transfers, tokens), address_token_balances = AddressTokenBalances.params_set(%{token_transfers_params: token_transfers_with_token}), - token_instances = TokenInstances.params_set(%{token_transfers_params: token_transfers}), stability_validators = StabilityValidators.parse(blocks), - addresses_without_nonce = process_addresses_nonce(addresses), basic_import_options = %{ - addresses: %{params: addresses_without_nonce}, + addresses: %{params: addresses}, address_coin_balances: %{params: coin_balances_params_set}, address_token_balances: %{params: address_token_balances}, - address_current_token_balances: %{ - params: address_token_balances |> MapSet.to_list() |> TokenBalances.to_address_current_token_balances() - }, blocks: %{params: blocks}, block_second_degree_relations: %{params: block_second_degree_relations_params}, block_rewards: %{errors: beneficiaries_errors, params: beneficiaries_with_gas_payment}, logs: %{params: logs}, token_transfers: %{params: token_transfers}, - tokens: %{params: tokens}, transactions: %{params: transactions_with_receipts}, withdrawals: %{params: withdrawals_params}, - token_instances: %{params: token_instances}, signed_authorizations: %{params: SignedAuthorizations.parse(transactions_with_receipts)}, fhe_operations: %{params: fhe_operations} }, @@ -275,7 +271,10 @@ defmodule Indexer.Block.Fetcher do {:ok, inserted} <- __MODULE__.import( state, - basic_import_options |> Map.merge(additional_options) |> import_options(chain_type_import_options) + basic_import_options + |> Map.merge(additional_options) + |> import_options(chain_type_import_options) + |> extend_with_asyncable_import_options(tokens, token_transfers, address_token_balances) ) do Prometheus.Instrumenter.set_block_batch_fetch(fetch_time, callback_module) result = {:ok, %{inserted: inserted, errors: blocks_errors}} @@ -423,10 +422,14 @@ defmodule Indexer.Block.Fetcher do import_options |> Map.put_new(:celo_pending_account_operations, %{params: celo_pending_account_operations}) |> Map.put_new(:celo_epochs, %{params: celo_epochs}) - |> Map.put( - :tokens, - %{params: (tokens ++ celo_gas_tokens) |> Enum.uniq()} - ) + |> then(fn options -> + if enable_partial_async_import?() do + TokenInstanceImporter.add(celo_gas_tokens, []) + options + else + Map.put(options, :tokens, %{params: Enum.uniq(tokens ++ celo_gas_tokens)}) + end + end) end defp do_chain_identity_import_options(_, basic_import_options, _chain_specific_import_options) do @@ -442,6 +445,31 @@ defmodule Indexer.Block.Fetcher do }) end + defp extend_with_asyncable_import_options(import_options, tokens, token_transfers, token_balances) do + current_token_balances_params = + token_balances + |> MapSet.to_list() + |> TokenBalances.to_address_current_token_balances() + + if enable_partial_async_import?() do + TokenInstanceImporter.add(tokens, token_transfers) + CurrentTokenBalanceImporter.add(current_token_balances_params) + import_options + else + token_instances = TokenInstances.params_set(%{token_transfers_params: token_transfers}) + addresses_without_nonce = process_addresses_nonce(import_options[:addresses][:params]) + + Map.merge(import_options, %{ + addresses: %{params: addresses_without_nonce}, + address_current_token_balances: %{params: current_token_balances_params}, + tokens: Map.get(import_options, :tokens) || %{params: tokens}, + token_instances: %{params: token_instances} + }) + end + end + + defp enable_partial_async_import?, do: Application.get_env(:indexer, :enable_partial_async_import?) + defp update_block_cache([], _), do: :ok defp update_block_cache(blocks, inserted) when is_list(blocks) do @@ -515,13 +543,21 @@ defmodule Indexer.Block.Fetcher do pop_address_hash_to_fetched_balance_block_number(options) options_with_broadcast = - Map.merge( - import_options, - %{ - address_hash_to_fetched_balance_block_number: address_hash_to_fetched_balance_block_number, - broadcast: broadcast - } - ) + if enable_partial_async_import?() do + AddressImporter.add(import_options[:addresses][:params]) + + import_options + |> Map.merge(%{broadcast: broadcast}) + |> Map.delete(:addresses) + else + Map.merge( + import_options, + %{ + address_hash_to_fetched_balance_block_number: address_hash_to_fetched_balance_block_number, + broadcast: broadcast + } + ) + end {import_time, result} = :timer.tc(fn -> callback_module.import(state, options_with_broadcast) end) @@ -561,18 +597,11 @@ defmodule Indexer.Block.Fetcher do |> BlockReward.async_fetch(realtime?) end - def async_import_coin_balances(%{addresses: addresses}, %{ - address_hash_to_fetched_balance_block_number: address_hash_to_block_number - }) do - addresses - |> Enum.map(fn %Address{hash: address_hash} -> - block_number = Map.fetch!(address_hash_to_block_number, to_string(address_hash)) - %{address_hash: address_hash, block_number: block_number} - end) - |> CoinBalanceCatchup.async_fetch_balances() + def async_import_coin_balances(%{address_coin_balances: balances}) do + CoinBalanceCatchup.async_fetch_balances(balances) end - def async_import_coin_balances(_, _), do: :ok + def async_import_coin_balances(_), do: :ok def async_import_realtime_coin_balances(%{address_coin_balances: balances}) do CoinBalanceRealtime.async_fetch_balances(balances) diff --git a/apps/indexer/lib/indexer/fetcher/address_importer.ex b/apps/indexer/lib/indexer/fetcher/address_importer.ex new file mode 100644 index 000000000000..2cee702d0961 --- /dev/null +++ b/apps/indexer/lib/indexer/fetcher/address_importer.ex @@ -0,0 +1,124 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout +defmodule Indexer.Fetcher.AddressImporter do + @moduledoc """ + Periodically updates addresses accumulated from block fetcher + """ + + use GenServer + + require Logger + + alias Explorer.Chain + alias Explorer.Chain.Cache.Accounts + alias Indexer.Block.Fetcher + + @default_update_interval :timer.minutes(1) + + def child_spec(_) do + %{ + id: __MODULE__, + start: {__MODULE__, :start_link, []}, + type: :worker, + restart: :permanent, + shutdown: Application.get_env(:indexer, :graceful_shutdown_period) + } + end + + def start_link do + GenServer.start_link(__MODULE__, :ok, name: __MODULE__) + end + + def init(_) do + Process.flag(:trap_exit, true) + schedule_next_update() + + {:ok, %{}} + end + + def add(addresses_params) do + GenServer.cast(__MODULE__, {:add, addresses_params}) + end + + def handle_cast({:add, addresses_params}, state) do + result_state = + Enum.reduce(addresses_params, state, fn new_address, acc -> + Map.update(acc, new_address.hash, new_address, fn old_address -> + old_address + |> process_contract_code(new_address) + |> process_nonce(new_address) + end) + end) + + {:noreply, result_state} + end + + def handle_info(:update, addresses_map) do + Logger.info("AddressImporter importing #{Enum.count(addresses_map)} addresses") + result_state = do_update(addresses_map) + schedule_next_update() + {:noreply, result_state} + rescue + exception -> + error = Exception.format(:error, exception, __STACKTRACE__) + log_error(error) + schedule_next_update() + + {:noreply, addresses_map} + end + + def handle_info({_ref, _result}, state) do + {:noreply, state} + end + + def handle_info({:DOWN, _ref, :process, _pid, _reason}, state) do + {:noreply, state} + end + + def terminate(_reason, state) do + do_update(state) + end + + defp do_update(addresses_map) when addresses_map == %{}, do: addresses_map + + defp do_update(addresses_map) do + addresses_params = Map.values(addresses_map) + + case Chain.import(%{addresses: %{params: addresses_params}, timeout: :infinity}) do + {:ok, imported} -> + Accounts.drop(imported[:addresses]) + Fetcher.async_import_filecoin_addresses_info(imported, false) + Logger.info("AddressImporter imported #{Enum.count(addresses_map)} addresses") + + %{} + + error -> + log_error(inspect(error)) + addresses_map + end + end + + defp process_contract_code(old_address, %{contract_code: contract_code}) when not is_nil(contract_code) do + Map.put(old_address, :contract_code, contract_code) + end + + defp process_contract_code(old_address, _new_address), do: old_address + + defp process_nonce(old_address, new_address) do + old_nonce = old_address[:nonce] + new_nonce = new_address[:nonce] + + if not is_nil(new_nonce) and (is_nil(old_nonce) or new_nonce > old_nonce) do + Map.put(old_address, :nonce, new_nonce) + else + old_address + end + end + + defp schedule_next_update do + Process.send_after(self(), :update, @default_update_interval) + end + + defp log_error(error) do + Logger.error("Failed to update addresses: #{error}, retrying") + end +end diff --git a/apps/indexer/lib/indexer/fetcher/current_token_balance_importer.ex b/apps/indexer/lib/indexer/fetcher/current_token_balance_importer.ex new file mode 100644 index 000000000000..f1be447c0d0d --- /dev/null +++ b/apps/indexer/lib/indexer/fetcher/current_token_balance_importer.ex @@ -0,0 +1,107 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout +defmodule Indexer.Fetcher.CurrentTokenBalanceImporter do + @moduledoc """ + Periodically updates current token balances accumulated from block fetcher + """ + + use GenServer + + require Logger + + alias Explorer.Chain + + @default_update_interval :timer.minutes(1) + + def child_spec(_) do + %{ + id: __MODULE__, + start: {__MODULE__, :start_link, []}, + type: :worker, + restart: :permanent, + shutdown: Application.get_env(:indexer, :graceful_shutdown_period) + } + end + + def start_link do + GenServer.start_link(__MODULE__, :ok, name: __MODULE__) + end + + def init(_) do + Process.flag(:trap_exit, true) + schedule_next_update() + + {:ok, %{}} + end + + def add(ctb_params) do + GenServer.cast(__MODULE__, {:add, ctb_params}) + end + + def handle_cast({:add, ctb_params}, state) do + result_state = + Enum.reduce(ctb_params, state, fn params, acc -> + key = {params.address_hash, params.token_contract_address_hash, params.token_id} + existing_record = acc[key] + + if is_nil(existing_record) or existing_record.block_number <= params.block_number do + Map.put(acc, key, params) + else + acc + end + end) + + {:noreply, result_state} + end + + def handle_info(:update, ctb_map) do + Logger.info("[CurrentTokenBalanceImporter] importing #{Enum.count(ctb_map)} balances") + result_state = do_update(ctb_map) + schedule_next_update() + {:noreply, result_state} + rescue + exception -> + error = Exception.format(:error, exception, __STACKTRACE__) + log_error(error) + schedule_next_update() + + {:noreply, ctb_map} + end + + def handle_info({_ref, _result}, state) do + {:noreply, state} + end + + def handle_info({:DOWN, _ref, :process, _pid, _reason}, state) do + {:noreply, state} + end + + def terminate(reason, state) do + log_error(reason) + do_update(state) + end + + defp do_update(ctb_map) when ctb_map == %{}, do: ctb_map + + defp do_update(ctb_map) do + ctb_params = Map.values(ctb_map) + + case Chain.import(%{address_current_token_balances: %{params: ctb_params}, timeout: :infinity}) do + {:ok, _imported} -> + Logger.info("[CurrentTokenBalanceImporter] imported #{Enum.count(ctb_params)} balances") + + %{} + + error -> + log_error(inspect(error)) + ctb_map + end + end + + defp schedule_next_update do + Process.send_after(self(), :update, @default_update_interval) + end + + defp log_error(error) do + Logger.error("[CurrentTokenBalanceImporter] Failed to update current token balances: #{inspect(error)}, retrying") + end +end diff --git a/apps/indexer/lib/indexer/fetcher/internal_transaction.ex b/apps/indexer/lib/indexer/fetcher/internal_transaction.ex index 7783ae26810c..10ead4fd5826 100644 --- a/apps/indexer/lib/indexer/fetcher/internal_transaction.ex +++ b/apps/indexer/lib/indexer/fetcher/internal_transaction.ex @@ -16,7 +16,7 @@ defmodule Indexer.Fetcher.InternalTransaction do import Indexer.Block.Fetcher, only: [ - async_import_coin_balances: 2, + async_import_coin_balances: 1, async_import_token_balances: 2, token_transfers_merge_token: 2 ] @@ -319,11 +319,6 @@ defmodule Indexer.Fetcher.InternalTransaction do internal_transactions: internal_transactions_params_marked }) - address_hash_to_block_number = - Enum.into(addresses_params, %{}, fn %{fetched_coin_balance_block_number: block_number, hash: hash} -> - {String.downcase(hash), block_number} - end) - address_coin_balances_params_set = AddressCoinBalances.params_set(%{internal_transactions_params: internal_transactions_params_marked}) @@ -376,9 +371,7 @@ defmodule Indexer.Fetcher.InternalTransaction do Accounts.drop(imported[:addresses]) Blocks.drop_nonconsensus(imported[:remove_consensus_of_missing_transactions_blocks]) - async_import_coin_balances(imported, %{ - address_hash_to_fetched_balance_block_number: address_hash_to_block_number - }) + async_import_coin_balances(imported) async_import_celo_token_balances(celo_token_transfers_params) diff --git a/apps/indexer/lib/indexer/fetcher/token_instance_importer.ex b/apps/indexer/lib/indexer/fetcher/token_instance_importer.ex new file mode 100644 index 000000000000..1f15a417840f --- /dev/null +++ b/apps/indexer/lib/indexer/fetcher/token_instance_importer.ex @@ -0,0 +1,116 @@ +# SPDX-License-Identifier: LicenseRef-Blockscout +defmodule Indexer.Fetcher.TokenInstanceImporter do + @moduledoc """ + Periodically updates token instances accumulated from block fetcher + """ + + use GenServer + + require Logger + + alias Explorer.Chain + alias Indexer.Transform.TokenInstances + + @default_update_interval :timer.minutes(1) + + def child_spec(_) do + %{ + id: __MODULE__, + start: {__MODULE__, :start_link, []}, + type: :worker, + restart: :permanent, + shutdown: Application.get_env(:indexer, :graceful_shutdown_period) + } + end + + def start_link do + GenServer.start_link(__MODULE__, :ok, name: __MODULE__) + end + + def init(_) do + Process.flag(:trap_exit, true) + schedule_next_update() + + {:ok, %{tokens_map: %{}, token_instances_map: %{}}} + end + + def add(token_params, token_transfers_params) do + GenServer.cast(__MODULE__, {:add, {token_params, token_transfers_params}}) + end + + def handle_cast({:add, {token_params, token_transfers_params}}, state) do + token_instances_map = + %{token_transfers_params: token_transfers_params} + |> TokenInstances.params_set(state.token_instances_map) + |> Map.new(&{{&1.token_contract_address_hash, &1.token_id}, &1}) + + tokens_map = + Enum.reduce(token_params, state.tokens_map, fn %{contract_address_hash: contract_address_hash} = params, acc -> + Map.put(acc, contract_address_hash, Map.merge(acc[contract_address_hash] || %{}, params)) + end) + + {:noreply, %{tokens_map: tokens_map, token_instances_map: token_instances_map}} + end + + def handle_info(:update, state) do + Logger.info( + "TokenInstanceImporter importing #{Enum.count(state.tokens_map)} tokens and #{Enum.count(state.token_instances_map)} token instances" + ) + + result_state = do_update(state) + schedule_next_update() + {:noreply, result_state} + rescue + exception -> + error = Exception.format(:error, exception, __STACKTRACE__) + log_error(error) + schedule_next_update() + + {:noreply, state} + end + + def handle_info({_ref, _result}, state) do + {:noreply, state} + end + + def handle_info({:DOWN, _ref, :process, _pid, _reason}, state) do + {:noreply, state} + end + + def terminate(_reason, state) do + do_update(state) + end + + defp do_update(%{tokens_map: tokens_map, token_instances_map: token_instances_map} = state) + when tokens_map == %{} and token_instances_map == %{}, do: state + + defp do_update(%{tokens_map: tokens_map, token_instances_map: token_instances_map}) do + token_instances_params = Map.values(token_instances_map) + tokens_params = Map.values(tokens_map) + + case Chain.import(%{ + tokens: %{params: tokens_params}, + token_instances: %{params: token_instances_params}, + timeout: :infinity + }) do + {:ok, _imported} -> + Logger.info( + "TokenInstanceImporter imported #{Enum.count(tokens_params)} tokens and #{Enum.count(token_instances_params)} token instances" + ) + + %{tokens_map: %{}, token_instances_map: %{}} + + error -> + log_error(inspect(error)) + %{tokens_map: tokens_map, token_instances_map: token_instances_map} + end + end + + defp schedule_next_update do + Process.send_after(self(), :update, @default_update_interval) + end + + defp log_error(error) do + Logger.error("Failed to update token instances: #{error}, retrying") + end +end diff --git a/apps/indexer/lib/indexer/supervisor.ex b/apps/indexer/lib/indexer/supervisor.ex index a3940babdafa..642e15e5998b 100644 --- a/apps/indexer/lib/indexer/supervisor.ex +++ b/apps/indexer/lib/indexer/supervisor.ex @@ -42,9 +42,11 @@ defmodule Indexer.Supervisor do alias Indexer.Fetcher.TokenInstance.SanitizeERC721, as: TokenInstanceSanitizeERC721 alias Indexer.Fetcher.{ + AddressImporter, AddressNonceUpdater, BlockReward, ContractCode, + CurrentTokenBalanceImporter, EmptyBlocksSanitizer, InternalTransaction, PendingBlockOperationsSanitizer, @@ -53,6 +55,7 @@ defmodule Indexer.Supervisor do RootstockData, Token, TokenCountersUpdater, + TokenInstanceImporter, TokenTotalSupplyUpdater, TokenUpdater, UncleBlock, @@ -303,6 +306,7 @@ defmodule Indexer.Supervisor do all_fetchers = basic_fetchers + |> maybe_add_async_importers() |> maybe_add_bridged_tokens_fetchers() |> add_chain_type_dependent_fetchers() |> maybe_add_block_reward_fetcher( @@ -316,6 +320,14 @@ defmodule Indexer.Supervisor do ) end + defp maybe_add_async_importers(basic_fetchers) do + if Application.get_env(:indexer, :enable_partial_async_import?) do + [AddressImporter, TokenInstanceImporter, CurrentTokenBalanceImporter | basic_fetchers] + else + basic_fetchers + end + end + defp maybe_add_bridged_tokens_fetchers(basic_fetchers) do extended_fetchers = if BridgedToken.enabled?() && BridgedToken.necessary_envs_passed?() do diff --git a/apps/indexer/lib/indexer/transform/token_instances.ex b/apps/indexer/lib/indexer/transform/token_instances.ex index 7a593e7eea08..745cb91d3d54 100644 --- a/apps/indexer/lib/indexer/transform/token_instances.ex +++ b/apps/indexer/lib/indexer/transform/token_instances.ex @@ -4,8 +4,8 @@ defmodule Indexer.Transform.TokenInstances do Module extracts token instances from token transfers """ - def params_set(%{} = import_options) do - Enum.reduce(import_options, %{}, &reducer/2) + def params_set(%{} = import_options, initial \\ %{}) do + Enum.reduce(import_options, initial, &reducer/2) end defp reducer({:token_transfers_params, token_transfers_params}, initial) when is_list(token_transfers_params) do diff --git a/config/runtime.exs b/config/runtime.exs index eab0b4c52b5c..d4223a6e6484 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -1071,6 +1071,7 @@ config :indexer, trace_block_ranges: trace_block_ranges, trace_first_block: trace_first_block, trace_last_block: trace_last_block, + enable_partial_async_import?: ConfigHelper.parse_bool_env_var("INDEXER_ENABLE_PARTIAL_ASYNC_IMPORT", "false"), fetch_rewards_way: System.get_env("FETCH_REWARDS_WAY", "trace_block"), memory_limit: ConfigHelper.indexer_memory_limit(), system_memory_percentage: ConfigHelper.parse_integer_env_var("INDEXER_SYSTEM_MEMORY_PERCENTAGE", 60), diff --git a/cspell.json b/cspell.json index 9243a33197fd..501d5f3e5c61 100644 --- a/cspell.json +++ b/cspell.json @@ -57,6 +57,7 @@ "Asearch", "Asfpp", "Astar", + "asyncable", "atoken", "audix", "autodetectfalse", diff --git a/docker-compose/envs/common-blockscout.env b/docker-compose/envs/common-blockscout.env index 23ef4ea8fd40..a30f5aeb8559 100644 --- a/docker-compose/envs/common-blockscout.env +++ b/docker-compose/envs/common-blockscout.env @@ -473,6 +473,7 @@ RE_CAPTCHA_DISABLED=false # API_RATE_LIMIT_IS_BLOCKSCOUT_BEHIND_PROXY=false # API_RATE_LIMIT_UI_V2_TOKEN_TTL_IN_SECONDS=18000 # FETCH_REWARDS_WAY=trace_block +# INDEXER_ENABLE_PARTIAL_ASYNC_IMPORT= # MICROSERVICE_SC_VERIFIER_ENABLED=true # MICROSERVICE_SC_VERIFIER_URL=http://smart-contract-verifier:8050/ # MICROSERVICE_SC_VERIFIER_TYPE=sc_verifier From b0017f00a936fc6878de43fc08bed9d799c1117d Mon Sep 17 00:00:00 2001 From: Victor Baranov Date: Wed, 20 May 2026 13:42:55 +0300 Subject: [PATCH 22/31] 11.1.0 --- .github/workflows/generate-swagger.yml | 2 +- .github/workflows/pre-release-arbitrum.yml | 2 +- .github/workflows/pre-release-celo.yml | 2 +- .github/workflows/pre-release-eth.yml | 2 +- .github/workflows/pre-release-filecoin.yml | 2 +- .github/workflows/pre-release-fuse.yml | 2 +- .github/workflows/pre-release-gnosis.yml | 2 +- .github/workflows/pre-release-optimism.yml | 2 +- .github/workflows/pre-release-rootstock.yml | 2 +- .github/workflows/pre-release-scroll.yml | 2 +- .github/workflows/pre-release-zilliqa.yml | 2 +- .github/workflows/pre-release-zksync.yml | 2 +- .github/workflows/pre-release.yml | 2 +- .../publish-docker-image-custom-build.yml | 2 +- .../publish-docker-image-every-push.yml | 2 +- .../publish-docker-image-for-arbitrum.yml | 2 +- .../publish-docker-image-for-celo.yml | 2 +- .../publish-docker-image-for-eth-sepolia.yml | 2 +- .../publish-docker-image-for-eth.yml | 2 +- .../publish-docker-image-for-filecoin.yml | 2 +- .../publish-docker-image-for-fuse.yml | 2 +- .../publish-docker-image-for-gnosis-chain.yml | 2 +- ...ocker-image-for-optimism-exeperimental.yml | 2 +- .../publish-docker-image-for-optimism.yml | 2 +- .../publish-docker-image-for-rootstock.yml | 2 +- .../publish-docker-image-for-scroll.yml | 2 +- .../publish-docker-image-for-zetachain.yml | 2 +- .../publish-docker-image-for-zilliqa.yml | 2 +- .../publish-docker-image-for-zksync.yml | 2 +- .../workflows/publish-docker-image-old-ui.yml | 2 +- .github/workflows/release-arbitrum.yml | 2 +- .github/workflows/release-celo.yml | 2 +- .github/workflows/release-default.yml | 2 +- .github/workflows/release-eth.yml | 2 +- .github/workflows/release-filecoin.yml | 2 +- .github/workflows/release-fuse.yml | 2 +- .github/workflows/release-gnosis.yml | 2 +- .github/workflows/release-optimism.yml | 2 +- .github/workflows/release-rootstock.yml | 2 +- .github/workflows/release-scroll.yml | 2 +- .github/workflows/release-zetachain.yml | 2 +- .github/workflows/release-zilliqa.yml | 2 +- .github/workflows/release-zksync.yml | 2 +- CHANGELOG.md | 33 +++++++++++++++++++ apps/block_scout_web/mix.exs | 2 +- apps/ethereum_jsonrpc/mix.exs | 2 +- .../lib/explorer/token/metadata_retriever.ex | 2 +- apps/explorer/mix.exs | 2 +- apps/indexer/mix.exs | 2 +- apps/nft_media_handler/mix.exs | 2 +- apps/utils/mix.exs | 2 +- docker/Makefile | 2 +- mix.exs | 2 +- rel/config.exs | 2 +- 54 files changed, 86 insertions(+), 53 deletions(-) diff --git a/.github/workflows/generate-swagger.yml b/.github/workflows/generate-swagger.yml index 559dd975ae9e..932da476011d 100644 --- a/.github/workflows/generate-swagger.yml +++ b/.github/workflows/generate-swagger.yml @@ -17,7 +17,7 @@ on: env: OTP_VERSION: '27.3.4.6' ELIXIR_VERSION: '1.19.4' - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 jobs: matrix-builder: diff --git a/.github/workflows/pre-release-arbitrum.yml b/.github/workflows/pre-release-arbitrum.yml index 6d9a6b0c840b..175b2f81d6a3 100644 --- a/.github/workflows/pre-release-arbitrum.yml +++ b/.github/workflows/pre-release-arbitrum.yml @@ -21,7 +21,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/pre-release-celo.yml b/.github/workflows/pre-release-celo.yml index 220f6fd4a97a..3480a0a900c2 100644 --- a/.github/workflows/pre-release-celo.yml +++ b/.github/workflows/pre-release-celo.yml @@ -21,7 +21,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 API_GRAPHQL_MAX_COMPLEXITY: 10400 steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/pre-release-eth.yml b/.github/workflows/pre-release-eth.yml index 12adff9467b8..ab59f5a0551c 100644 --- a/.github/workflows/pre-release-eth.yml +++ b/.github/workflows/pre-release-eth.yml @@ -21,7 +21,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/pre-release-filecoin.yml b/.github/workflows/pre-release-filecoin.yml index de8464844b97..a9754cf2af81 100644 --- a/.github/workflows/pre-release-filecoin.yml +++ b/.github/workflows/pre-release-filecoin.yml @@ -21,7 +21,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/pre-release-fuse.yml b/.github/workflows/pre-release-fuse.yml index 2e291849b88f..11b9823480d5 100644 --- a/.github/workflows/pre-release-fuse.yml +++ b/.github/workflows/pre-release-fuse.yml @@ -21,7 +21,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/pre-release-gnosis.yml b/.github/workflows/pre-release-gnosis.yml index 673976169915..2b17af7127f1 100644 --- a/.github/workflows/pre-release-gnosis.yml +++ b/.github/workflows/pre-release-gnosis.yml @@ -21,7 +21,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/pre-release-optimism.yml b/.github/workflows/pre-release-optimism.yml index a635837cef7b..74c776df802a 100644 --- a/.github/workflows/pre-release-optimism.yml +++ b/.github/workflows/pre-release-optimism.yml @@ -21,7 +21,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/pre-release-rootstock.yml b/.github/workflows/pre-release-rootstock.yml index 966993f6bac8..e7b9f975a422 100644 --- a/.github/workflows/pre-release-rootstock.yml +++ b/.github/workflows/pre-release-rootstock.yml @@ -21,7 +21,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/pre-release-scroll.yml b/.github/workflows/pre-release-scroll.yml index 700d594c32d8..f0082b7db1fc 100644 --- a/.github/workflows/pre-release-scroll.yml +++ b/.github/workflows/pre-release-scroll.yml @@ -21,7 +21,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/pre-release-zilliqa.yml b/.github/workflows/pre-release-zilliqa.yml index 14ca29d4f9e6..ae499194a825 100644 --- a/.github/workflows/pre-release-zilliqa.yml +++ b/.github/workflows/pre-release-zilliqa.yml @@ -21,7 +21,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/pre-release-zksync.yml b/.github/workflows/pre-release-zksync.yml index dd0028063e32..b29bdbac2f49 100644 --- a/.github/workflows/pre-release-zksync.yml +++ b/.github/workflows/pre-release-zksync.yml @@ -21,7 +21,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index bfa386f366c3..360a5c1058bd 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -21,7 +21,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/publish-docker-image-custom-build.yml b/.github/workflows/publish-docker-image-custom-build.yml index 3e397b5ed4b5..c13c480efc4a 100644 --- a/.github/workflows/publish-docker-image-custom-build.yml +++ b/.github/workflows/publish-docker-image-custom-build.yml @@ -14,7 +14,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/publish-docker-image-every-push.yml b/.github/workflows/publish-docker-image-every-push.yml index 7dfe45fca07a..fcca698e6779 100644 --- a/.github/workflows/publish-docker-image-every-push.yml +++ b/.github/workflows/publish-docker-image-every-push.yml @@ -12,7 +12,7 @@ on: env: OTP_VERSION: '27.3.4.6' ELIXIR_VERSION: '1.19.4' - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 permissions: contents: read diff --git a/.github/workflows/publish-docker-image-for-arbitrum.yml b/.github/workflows/publish-docker-image-for-arbitrum.yml index 88fc137a5480..c09f57d2dc0e 100644 --- a/.github/workflows/publish-docker-image-for-arbitrum.yml +++ b/.github/workflows/publish-docker-image-for-arbitrum.yml @@ -14,7 +14,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 DOCKER_CHAIN_NAME: arbitrum steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/publish-docker-image-for-celo.yml b/.github/workflows/publish-docker-image-for-celo.yml index 6060caad3c1e..9499c5e08f64 100644 --- a/.github/workflows/publish-docker-image-for-celo.yml +++ b/.github/workflows/publish-docker-image-for-celo.yml @@ -14,7 +14,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 DOCKER_CHAIN_NAME: optimism-celo API_GRAPHQL_MAX_COMPLEXITY: 10400 steps: diff --git a/.github/workflows/publish-docker-image-for-eth-sepolia.yml b/.github/workflows/publish-docker-image-for-eth-sepolia.yml index fff3bf367297..d37bbc0a7312 100644 --- a/.github/workflows/publish-docker-image-for-eth-sepolia.yml +++ b/.github/workflows/publish-docker-image-for-eth-sepolia.yml @@ -14,7 +14,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 DOCKER_CHAIN_NAME: eth-sepolia steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/publish-docker-image-for-eth.yml b/.github/workflows/publish-docker-image-for-eth.yml index f2b98033b148..4b6c1cf991e4 100644 --- a/.github/workflows/publish-docker-image-for-eth.yml +++ b/.github/workflows/publish-docker-image-for-eth.yml @@ -14,7 +14,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 DOCKER_CHAIN_NAME: ethereum steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/publish-docker-image-for-filecoin.yml b/.github/workflows/publish-docker-image-for-filecoin.yml index 5b9cbd1cce15..6b5f51aa2424 100644 --- a/.github/workflows/publish-docker-image-for-filecoin.yml +++ b/.github/workflows/publish-docker-image-for-filecoin.yml @@ -13,7 +13,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 DOCKER_CHAIN_NAME: filecoin steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/publish-docker-image-for-fuse.yml b/.github/workflows/publish-docker-image-for-fuse.yml index 859d61ae5c66..9bdd130faa7b 100644 --- a/.github/workflows/publish-docker-image-for-fuse.yml +++ b/.github/workflows/publish-docker-image-for-fuse.yml @@ -14,7 +14,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 DOCKER_CHAIN_NAME: fuse steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/publish-docker-image-for-gnosis-chain.yml b/.github/workflows/publish-docker-image-for-gnosis-chain.yml index 8848d32250cc..8acf3f00e2e5 100644 --- a/.github/workflows/publish-docker-image-for-gnosis-chain.yml +++ b/.github/workflows/publish-docker-image-for-gnosis-chain.yml @@ -14,7 +14,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 DOCKER_CHAIN_NAME: xdai steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/publish-docker-image-for-optimism-exeperimental.yml b/.github/workflows/publish-docker-image-for-optimism-exeperimental.yml index c00d7e9bf59b..7adbc180644a 100644 --- a/.github/workflows/publish-docker-image-for-optimism-exeperimental.yml +++ b/.github/workflows/publish-docker-image-for-optimism-exeperimental.yml @@ -14,7 +14,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 DOCKER_CHAIN_NAME: optimism steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/publish-docker-image-for-optimism.yml b/.github/workflows/publish-docker-image-for-optimism.yml index 67e2d1887084..0b38e581776a 100644 --- a/.github/workflows/publish-docker-image-for-optimism.yml +++ b/.github/workflows/publish-docker-image-for-optimism.yml @@ -14,7 +14,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 DOCKER_CHAIN_NAME: optimism steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/publish-docker-image-for-rootstock.yml b/.github/workflows/publish-docker-image-for-rootstock.yml index 22bca8af26e9..083db14af62d 100644 --- a/.github/workflows/publish-docker-image-for-rootstock.yml +++ b/.github/workflows/publish-docker-image-for-rootstock.yml @@ -14,7 +14,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 DOCKER_CHAIN_NAME: rsk steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/publish-docker-image-for-scroll.yml b/.github/workflows/publish-docker-image-for-scroll.yml index 010f7bfb3fcd..644d92939d2d 100644 --- a/.github/workflows/publish-docker-image-for-scroll.yml +++ b/.github/workflows/publish-docker-image-for-scroll.yml @@ -14,7 +14,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 DOCKER_CHAIN_NAME: scroll steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/publish-docker-image-for-zetachain.yml b/.github/workflows/publish-docker-image-for-zetachain.yml index 3bbf62cdf441..9b18a2b4236d 100644 --- a/.github/workflows/publish-docker-image-for-zetachain.yml +++ b/.github/workflows/publish-docker-image-for-zetachain.yml @@ -14,7 +14,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 DOCKER_CHAIN_NAME: zetachain steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/publish-docker-image-for-zilliqa.yml b/.github/workflows/publish-docker-image-for-zilliqa.yml index c61e97a61706..f56814320cf4 100644 --- a/.github/workflows/publish-docker-image-for-zilliqa.yml +++ b/.github/workflows/publish-docker-image-for-zilliqa.yml @@ -14,7 +14,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 DOCKER_CHAIN_NAME: zilliqa steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/publish-docker-image-for-zksync.yml b/.github/workflows/publish-docker-image-for-zksync.yml index 0c5bdf81deac..a4d5a46d5ffa 100644 --- a/.github/workflows/publish-docker-image-for-zksync.yml +++ b/.github/workflows/publish-docker-image-for-zksync.yml @@ -13,7 +13,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 DOCKER_CHAIN_NAME: zksync steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/publish-docker-image-old-ui.yml b/.github/workflows/publish-docker-image-old-ui.yml index dbcb88bba155..371808ce8b72 100644 --- a/.github/workflows/publish-docker-image-old-ui.yml +++ b/.github/workflows/publish-docker-image-old-ui.yml @@ -16,7 +16,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/release-arbitrum.yml b/.github/workflows/release-arbitrum.yml index 2133cf5a8f48..f560678b7e69 100644 --- a/.github/workflows/release-arbitrum.yml +++ b/.github/workflows/release-arbitrum.yml @@ -18,7 +18,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/release-celo.yml b/.github/workflows/release-celo.yml index 00eaf9fad988..5b8fcfe1f9b3 100644 --- a/.github/workflows/release-celo.yml +++ b/.github/workflows/release-celo.yml @@ -18,7 +18,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 API_GRAPHQL_MAX_COMPLEXITY: 10400 steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/release-default.yml b/.github/workflows/release-default.yml index 2b670fc91413..44a60f6bb4e2 100644 --- a/.github/workflows/release-default.yml +++ b/.github/workflows/release-default.yml @@ -18,7 +18,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/release-eth.yml b/.github/workflows/release-eth.yml index 75ca0bc63176..9222936ab988 100644 --- a/.github/workflows/release-eth.yml +++ b/.github/workflows/release-eth.yml @@ -18,7 +18,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/release-filecoin.yml b/.github/workflows/release-filecoin.yml index 5e39bb20d68d..1549cb2344ba 100644 --- a/.github/workflows/release-filecoin.yml +++ b/.github/workflows/release-filecoin.yml @@ -18,7 +18,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/release-fuse.yml b/.github/workflows/release-fuse.yml index eb087b94fc7d..64bd54dc9933 100644 --- a/.github/workflows/release-fuse.yml +++ b/.github/workflows/release-fuse.yml @@ -18,7 +18,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/release-gnosis.yml b/.github/workflows/release-gnosis.yml index b239df257219..1f03c35be796 100644 --- a/.github/workflows/release-gnosis.yml +++ b/.github/workflows/release-gnosis.yml @@ -18,7 +18,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/release-optimism.yml b/.github/workflows/release-optimism.yml index 2dddeada8b71..7fcaff281244 100644 --- a/.github/workflows/release-optimism.yml +++ b/.github/workflows/release-optimism.yml @@ -18,7 +18,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/release-rootstock.yml b/.github/workflows/release-rootstock.yml index 50748a3bf1b5..ee53bf9aaaef 100644 --- a/.github/workflows/release-rootstock.yml +++ b/.github/workflows/release-rootstock.yml @@ -18,7 +18,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/release-scroll.yml b/.github/workflows/release-scroll.yml index 0d27e67a1f48..90824712f51c 100644 --- a/.github/workflows/release-scroll.yml +++ b/.github/workflows/release-scroll.yml @@ -18,7 +18,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/release-zetachain.yml b/.github/workflows/release-zetachain.yml index ab3a2cd22a02..49656c0812c7 100644 --- a/.github/workflows/release-zetachain.yml +++ b/.github/workflows/release-zetachain.yml @@ -18,7 +18,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/release-zilliqa.yml b/.github/workflows/release-zilliqa.yml index 0f35ed1fb8dd..f3bbafa11cfa 100644 --- a/.github/workflows/release-zilliqa.yml +++ b/.github/workflows/release-zilliqa.yml @@ -18,7 +18,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/.github/workflows/release-zksync.yml b/.github/workflows/release-zksync.yml index 8c37762ff2cc..a576d917f5c4 100644 --- a/.github/workflows/release-zksync.yml +++ b/.github/workflows/release-zksync.yml @@ -18,7 +18,7 @@ jobs: name: Push Docker image to GitHub Container Registry runs-on: build env: - RELEASE_VERSION: 11.0.3 + RELEASE_VERSION: 11.1.0 steps: - uses: actions/checkout@v5 - name: Setup repo diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e62267ed071..5b080f5bf044 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,38 @@ # Changelog +## 11.1.0 + +### 🚀 Features + +- Fetch token circulating supply along with circulating market cap ([#11969](https://github.com/blockscout/blockscout/issues/11969)) +- Support token lists import ([#11801](https://github.com/blockscout/blockscout/issues/11801)) +- transform ECTO_USE_SSL to sslmode param ([#8818](https://github.com/blockscout/blockscout/issues/8818)) + +### 🐛 Bug Fixes + +- MissingBalanceOfToken fixes ([#14267](https://github.com/blockscout/blockscout/pull/14267)) +- Improvements of OpenAPI specification for `/v2/blocks` ([#14251](https://github.com/blockscout/blockscout/issues/14251)) +- Normalize Tesla timeout middleware exceptions ([#14059](https://github.com/blockscout/blockscout/issues/14059)) + +### 🚜 Refactor + +- Change multichain_search_db_export_token_info_queue.address_hash field type from :binary to Hash.Address ([#12894](https://github.com/blockscout/blockscout/issues/12894)) +- Refactor json rpc response parsers to ignore unknown fields ([#10334](https://github.com/blockscout/blockscout/issues/10334)) + +### 📚 Documentation + +- Add verification websocket subscription guide ([#14259](https://github.com/blockscout/blockscout/issues/14259)) + +### ⚙️ Miscellaneous Tasks + +- Add SPDX attribution ([#14360](https://github.com/blockscout/blockscout/issues/14360)) +- Eliminate horizontal scroll in the main LICENSE file ([#14359](https://github.com/blockscout/blockscout/issues/14359)) +- Partial async import ([#14277](https://github.com/blockscout/blockscout/issues/14277)) +- OpenAPI specifications for all `/api/v2/advanced-filters` endpoints ([#14227](https://github.com/blockscout/blockscout/issues/14227)) +- OpenAPI spec for Arbitrum-related endpoints ([#14169](https://github.com/blockscout/blockscout/issues/14169)) +- Audit mode dependent processes ([#13925](https://github.com/blockscout/blockscout/issues/13925)) +- Delete fiat_value for token if it disappears in coingecko ([#8932](https://github.com/blockscout/blockscout/issues/8932)) + ## 11.0.3 ### 🐛 Bug Fixes diff --git a/apps/block_scout_web/mix.exs b/apps/block_scout_web/mix.exs index d25ad5ce9ca0..fd174e2d925c 100644 --- a/apps/block_scout_web/mix.exs +++ b/apps/block_scout_web/mix.exs @@ -20,7 +20,7 @@ defmodule BlockScoutWeb.Mixfile do lockfile: "../../mix.lock", package: package(), start_permanent: Mix.env() == :prod, - version: "11.0.3", + version: "11.1.0", xref: [ exclude: [ Explorer.Chain.Beacon.Reader, diff --git a/apps/ethereum_jsonrpc/mix.exs b/apps/ethereum_jsonrpc/mix.exs index 9ea54e577161..81b6e3c690fc 100644 --- a/apps/ethereum_jsonrpc/mix.exs +++ b/apps/ethereum_jsonrpc/mix.exs @@ -20,7 +20,7 @@ defmodule EthereumJSONRPC.MixProject do elixirc_paths: elixirc_paths(Mix.env()), lockfile: "../../mix.lock", start_permanent: Mix.env() == :prod, - version: "11.0.3" + version: "11.1.0" ] end diff --git a/apps/explorer/lib/explorer/token/metadata_retriever.ex b/apps/explorer/lib/explorer/token/metadata_retriever.ex index de83e55105bc..e8a1239c4e2d 100644 --- a/apps/explorer/lib/explorer/token/metadata_retriever.ex +++ b/apps/explorer/lib/explorer/token/metadata_retriever.ex @@ -15,7 +15,7 @@ defmodule Explorer.Token.MetadataRetriever do @vm_execution_error "VM execution error" @invalid_base64_data "invalid data:application/json;base64" @invalid_ipfs_path "invalid ipfs path" - @default_headers [{"User-Agent", "blockscout-11.0.3"}] + @default_headers [{"User-Agent", "blockscout-11.1.0"}] # https://eips.ethereum.org/EIPS/eip-1155#metadata @erc1155_token_id_placeholder "{id}" diff --git a/apps/explorer/mix.exs b/apps/explorer/mix.exs index 90bc3f8dbd5e..3e4f07b67a9a 100644 --- a/apps/explorer/mix.exs +++ b/apps/explorer/mix.exs @@ -21,7 +21,7 @@ defmodule Explorer.Mixfile do lockfile: "../../mix.lock", package: package(), start_permanent: Mix.env() == :prod, - version: "11.0.3", + version: "11.1.0", xref: [exclude: [BlockScoutWeb.Routers.WebRouter.Helpers, Indexer.Helper, Indexer.Fetcher.InternalTransaction]] ] end diff --git a/apps/indexer/mix.exs b/apps/indexer/mix.exs index f0b3ea6a72bd..8014141a6aa8 100644 --- a/apps/indexer/mix.exs +++ b/apps/indexer/mix.exs @@ -15,7 +15,7 @@ defmodule Indexer.MixProject do elixirc_paths: elixirc_paths(Mix.env()), lockfile: "../../mix.lock", start_permanent: Mix.env() == :prod, - version: "11.0.3", + version: "11.1.0", xref: [ exclude: [ Explorer.Chain.Optimism.Deposit, diff --git a/apps/nft_media_handler/mix.exs b/apps/nft_media_handler/mix.exs index 11c01054d8b1..451bf2c49c2e 100644 --- a/apps/nft_media_handler/mix.exs +++ b/apps/nft_media_handler/mix.exs @@ -5,7 +5,7 @@ defmodule NFTMediaHandler.MixProject do def project do [ app: :nft_media_handler, - version: "11.0.3", + version: "11.1.0", build_path: "../../_build", config_path: "../../config/config.exs", deps_path: "../../deps", diff --git a/apps/utils/mix.exs b/apps/utils/mix.exs index 4ea4bf346b25..1f1c1d05420d 100644 --- a/apps/utils/mix.exs +++ b/apps/utils/mix.exs @@ -5,7 +5,7 @@ defmodule Utils.MixProject do def project do [ app: :utils, - version: "11.0.3", + version: "11.1.0", build_path: "../../_build", # config_path: "../../config/config.exs", deps_path: "../../deps", diff --git a/docker/Makefile b/docker/Makefile index 482cbbd02ee1..c51ef4b1384e 100644 --- a/docker/Makefile +++ b/docker/Makefile @@ -10,7 +10,7 @@ STATS_CONTAINER_NAME := stats STATS_DB_CONTAINER_NAME := stats-db PROXY_CONTAINER_NAME := proxy PG_CONTAINER_NAME := postgres -RELEASE_VERSION ?= '11.0.3' +RELEASE_VERSION ?= '11.1.0' TAG := $(RELEASE_VERSION)-commit-$(shell git log -1 --pretty=format:"%h") STABLE_TAG := $(RELEASE_VERSION) diff --git a/mix.exs b/mix.exs index 270e9b2657d8..b54834fd38f9 100644 --- a/mix.exs +++ b/mix.exs @@ -8,7 +8,7 @@ defmodule BlockScout.Mixfile do [ # app: :block_scout, # aliases: aliases(config_env()), - version: "11.0.3", + version: "11.1.0", apps_path: "apps", deps: deps(), dialyzer: dialyzer(), diff --git a/rel/config.exs b/rel/config.exs index cee3ed75e736..cfac57431961 100644 --- a/rel/config.exs +++ b/rel/config.exs @@ -72,7 +72,7 @@ end # will be used by default release :blockscout do - set version: "11.0.3" + set version: "11.1.0" set applications: [ :runtime_tools, block_scout_web: :permanent, From d38b2ef1a67e2c7dd19900ae44e6bde9fe970281 Mon Sep 17 00:00:00 2001 From: Qwerty5Uiop <105209995+Qwerty5Uiop@users.noreply.github.com> Date: Wed, 20 May 2026 19:09:13 +0400 Subject: [PATCH 23/31] fix: Return repo replica to indexer (#14383) --- apps/explorer/lib/explorer/application.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/explorer/lib/explorer/application.ex b/apps/explorer/lib/explorer/application.ex index 149c0e0f1f5e..58e6f233c6ad 100644 --- a/apps/explorer/lib/explorer/application.ex +++ b/apps/explorer/lib/explorer/application.ex @@ -62,6 +62,7 @@ defmodule Explorer.Application do # Children to start in all environments base_children = [ Explorer.Repo, + Explorer.Repo.Replica1, Explorer.Vault, Supervisor.child_spec({SpandexDatadog.ApiServer, datadog_opts()}, id: SpandexDatadog.ApiServer), Supervisor.child_spec({Task.Supervisor, name: Explorer.HistoryTaskSupervisor}, @@ -119,7 +120,6 @@ defmodule Explorer.Application do defp configurable_children do configurable_children_set = [ - only_in_mode(Explorer.Repo.Replica1, :api), only_in_mode(Explorer.SmartContract.SolcDownloader, :api), only_in_mode(Explorer.SmartContract.VyperDownloader, :api), only_in_mode({Admin.Recovery, [[], [name: Admin.Recovery]]}, :api), From 2a3dc18cfefa2a8a5c2ea92e4f80b78e3aca17b7 Mon Sep 17 00:00:00 2001 From: Victor Baranov Date: Thu, 21 May 2026 13:26:54 +0300 Subject: [PATCH 24/31] chore: Close linked issues when PRs merge into dev (#14384) Co-authored-by: Cursor --- .../workflows/close-issues-on-dev-merge.yml | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 .github/workflows/close-issues-on-dev-merge.yml diff --git a/.github/workflows/close-issues-on-dev-merge.yml b/.github/workflows/close-issues-on-dev-merge.yml new file mode 100644 index 000000000000..7c8cdc84a030 --- /dev/null +++ b/.github/workflows/close-issues-on-dev-merge.yml @@ -0,0 +1,123 @@ +name: Close issues on dev merge + +on: + pull_request: + types: [closed] + branches: [dev] + +permissions: + issues: write + pull-requests: read + +jobs: + close-linked-issues: + if: github.event.pull_request.merged == true + runs-on: ubuntu-latest + steps: + - name: Close issues linked via closing keywords + uses: actions/github-script@v7 + with: + script: | + const ISSUE_REF_PATTERN = + /(?:^|[\s(])(?:close|closes|closed|fix|fixes|fixed|resolve|resolves|resolved)\s+((?:[\w.-]+\/[\w.-]+)?#\d+(?:\s*(?:,\s*|\s+and\s+)(?:[\w.-]+\/[\w.-]+)?#\d+)*)/gi; + + const parseIssueNumbers = (text, { owner, repo }) => { + if (!text) return []; + + const issueNumbers = new Set(); + let match; + + ISSUE_REF_PATTERN.lastIndex = 0; + + while ((match = ISSUE_REF_PATTERN.exec(text)) !== null) { + const refs = match[1]; + const refPattern = /(?:(?[\w.-]+\/[\w.-]+))?#(?\d+)/g; + let refMatch; + + while ((refMatch = refPattern.exec(refs)) !== null) { + const { repo: refRepo, number } = refMatch.groups; + + if (refRepo && refRepo.toLowerCase() !== `${owner}/${repo}`.toLowerCase()) { + continue; + } + + issueNumbers.add(Number(number)); + } + } + + return [...issueNumbers]; + }; + + const { owner, repo } = context.repo; + const pull_number = context.payload.pull_request.number; + const pr = context.payload.pull_request; + + const commits = await github.paginate( + github.rest.pulls.listCommits, + { owner, repo, pull_number } + ); + + const commitMessages = commits + .map((commit) => commit.commit.message) + .join("\n"); + + const texts = [pr.title, pr.body, commitMessages].filter(Boolean); + const repoContext = { owner, repo }; + const issueNumbers = [ + ...new Set( + texts.flatMap((text) => parseIssueNumbers(text, repoContext)) + ), + ]; + + if (issueNumbers.length === 0) { + core.info("No issues to close (no closing keywords found)."); + return; + } + + core.info(`Closing issues: ${issueNumbers.join(", ")}`); + + for (const issue_number of issueNumbers) { + try { + const { data: issue } = await github.rest.issues.get({ + owner, + repo, + issue_number, + }); + + if (issue.state === "closed") { + core.info(`Issue #${issue_number} is already closed.`); + continue; + } + + if (issue.pull_request) { + core.info(`Skipping #${issue_number}: not an issue.`); + continue; + } + + await github.rest.issues.update({ + owner, + repo, + issue_number, + state: "closed", + state_reason: "completed", + }); + + await github.rest.issues.createComment({ + owner, + repo, + issue_number, + body: + `Closed by merge of #${pull_number} into \`dev\`.\n\n` + + `GitHub closes linked issues automatically only when merging into the default branch. ` + + `This comment was added by the [\`close-issues-on-dev-merge\`](${context.serverUrl}/${owner}/${repo}/actions/workflows/close-issues-on-dev-merge.yml) workflow.`, + }); + + core.info(`Closed issue #${issue_number}.`); + } catch (error) { + if (error.status === 404) { + core.warning(`Issue #${issue_number} not found in ${owner}/${repo}.`); + } else { + core.setFailed(`Failed to close issue #${issue_number}: ${error.message}`); + } + } + } From b53c1ace6aeb4c10c6f8bea29c83715093392de4 Mon Sep 17 00:00:00 2001 From: Victor Baranov Date: Thu, 21 May 2026 14:59:15 +0300 Subject: [PATCH 25/31] fix: Parse GitHub issue URLs in dev-merge close workflow (#14385) Co-authored-by: Cursor --- .../workflows/close-issues-on-dev-merge.yml | 40 ++++++++++++++----- CHANGELOG.md | 3 +- 2 files changed, 33 insertions(+), 10 deletions(-) diff --git a/.github/workflows/close-issues-on-dev-merge.yml b/.github/workflows/close-issues-on-dev-merge.yml index 7c8cdc84a030..4124c3a92c3e 100644 --- a/.github/workflows/close-issues-on-dev-merge.yml +++ b/.github/workflows/close-issues-on-dev-merge.yml @@ -18,8 +18,26 @@ jobs: uses: actions/github-script@v7 with: script: | - const ISSUE_REF_PATTERN = - /(?:^|[\s(])(?:close|closes|closed|fix|fixes|fixed|resolve|resolves|resolved)\s+((?:[\w.-]+\/[\w.-]+)?#\d+(?:\s*(?:,\s*|\s+and\s+)(?:[\w.-]+\/[\w.-]+)?#\d+)*)/gi; + const SINGLE_ISSUE_REF = + "(?:[\\w.-]+\\/[\\w.-]+)?#\\d+" + + "|https?:\\/\\/github\\.com\\/[\\w.-]+\\/[\\w.-]+\\/issues\\/\\d+"; + + const ISSUE_REF_PATTERN = new RegExp( + `(?:^|[\\s(])(?:close|closes|closed|fix|fixes|fixed|resolve|resolves|resolved)\\s+((?:${SINGLE_ISSUE_REF})(?:\\s*(?:,\\s*|\\s+and\\s+)(?:${SINGLE_ISSUE_REF}))*)`, + "gi" + ); + + const HASH_REF_PATTERN = /(?:(?[\w.-]+\/[\w.-]+))?#(?\d+)/g; + const URL_REF_PATTERN = + /https?:\/\/github\.com\/(?[\w.-]+)\/(?[\w.-]+)\/issues\/(?\d+)/gi; + + const addIssueFromRef = (issueNumbers, { refRepo, number }, { owner, repo }) => { + if (refRepo && refRepo.toLowerCase() !== `${owner}/${repo}`.toLowerCase()) { + return; + } + + issueNumbers.add(Number(number)); + }; const parseIssueNumbers = (text, { owner, repo }) => { if (!text) return []; @@ -31,17 +49,21 @@ jobs: while ((match = ISSUE_REF_PATTERN.exec(text)) !== null) { const refs = match[1]; - const refPattern = /(?:(?[\w.-]+\/[\w.-]+))?#(?\d+)/g; let refMatch; - while ((refMatch = refPattern.exec(refs)) !== null) { - const { repo: refRepo, number } = refMatch.groups; + HASH_REF_PATTERN.lastIndex = 0; + + while ((refMatch = HASH_REF_PATTERN.exec(refs)) !== null) { + addIssueFromRef(issueNumbers, refMatch.groups, { owner, repo }); + } + + URL_REF_PATTERN.lastIndex = 0; - if (refRepo && refRepo.toLowerCase() !== `${owner}/${repo}`.toLowerCase()) { - continue; - } + while ((refMatch = URL_REF_PATTERN.exec(refs)) !== null) { + const { owner: refOwner, repoName, number } = refMatch.groups; + const refRepo = `${refOwner}/${repoName}`; - issueNumbers.add(Number(number)); + addIssueFromRef(issueNumbers, { refRepo, number }, { owner, repo }); } } diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b080f5bf044..072129d1acb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,12 +25,13 @@ ### ⚙️ Miscellaneous Tasks +- Close linked issues when PRs merge into dev ([#14384](https://github.com/blockscout/blockscout/pull/14384), [#14385](https://github.com/blockscout/blockscout/pull/14385)) - Add SPDX attribution ([#14360](https://github.com/blockscout/blockscout/issues/14360)) - Eliminate horizontal scroll in the main LICENSE file ([#14359](https://github.com/blockscout/blockscout/issues/14359)) - Partial async import ([#14277](https://github.com/blockscout/blockscout/issues/14277)) - OpenAPI specifications for all `/api/v2/advanced-filters` endpoints ([#14227](https://github.com/blockscout/blockscout/issues/14227)) - OpenAPI spec for Arbitrum-related endpoints ([#14169](https://github.com/blockscout/blockscout/issues/14169)) -- Audit mode dependent processes ([#13925](https://github.com/blockscout/blockscout/issues/13925)) +- Audit mode dependent processes ([#13925](https://github.com/blockscout/blockscout/issues/13925), [#14383](https://github.com/blockscout/blockscout/pull/14383)) - Delete fiat_value for token if it disappears in coingecko ([#8932](https://github.com/blockscout/blockscout/issues/8932)) ## 11.0.3 From 798296281bc552397bf5d29455468872e00a45b7 Mon Sep 17 00:00:00 2001 From: Victor Baranov Date: Thu, 21 May 2026 15:53:12 +0300 Subject: [PATCH 26/31] Update CHANGELOG --- CHANGELOG.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 072129d1acb1..6d209b684e17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,21 @@ - Audit mode dependent processes ([#13925](https://github.com/blockscout/blockscout/issues/13925), [#14383](https://github.com/blockscout/blockscout/pull/14383)) - Delete fiat_value for token if it disappears in coingecko ([#8932](https://github.com/blockscout/blockscout/issues/8932)) +### New ENV variables + +| Variable | Description | Parameters | +|-----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------| +| `TOKEN_LIST_URL` | URL for token list standard https://tokenlists.org/. Implemented in [#14206](https://github.com/blockscout/blockscout/pull/14206). | Version: v11.1.0\+
Default: (empty)
Applications: Indexer | +| `TOKEN_LIST_REFETCH_INTERVAL` | Interval to update data from token list. Implemented in [#14206](https://github.com/blockscout/blockscout/pull/14206). | Version: v11.1.0\+
Default: (empty)
Applications: Indexer | +| `ECTO_SSL_MODE` | SSL mode for Ecto DB connections. Supported values: `disable`, `allow`, `prefer`, `require`, `verify-ca`, `verify-full`. Resolution order: `ECTO_SSL_MODE` has highest priority, then `sslmode` in `DATABASE_URL`, otherwise defaults to `require`. | Version: v11.1.0\++
Default: `require`
Applications: API, Indexer | +| `INDEXER_ENABLE_PARTIAL_ASYNC_IMPORT` | If `true`, addresses, current token balances, tokens and token instances are imported asynchronously. Implemented in [#14277](https://github.com/blockscout/blockscout/pull/14277). | Version: v11.1.0\+
Default: `false`
Applications: Indexer | + +### Deprecated ENV variables + +| Variable | Description | Default | Version | Need recompile | Deprecated in Version | +| -------- | ----------- | ------- | ------- | -------------- | --------------------- | +| Deprecated `ECTO_USE_SSL` | Boolean SSL toggle for Ecto DB connections. Replaced with `ECTO_SSL_MODE`. | `TRUE` | All | | v11.1.0+ | + ## 11.0.3 ### 🐛 Bug Fixes From c77f6fe838e057e474357164814badff6e9f31a2 Mon Sep 17 00:00:00 2001 From: nikitosing <32202610+nikitosing@users.noreply.github.com> Date: Fri, 22 May 2026 13:29:12 +0300 Subject: [PATCH 27/31] feat: Forward new BENS fields to search (#14389) --- .../api/v2/search_controller_test.exs | 16 ++++++++-- apps/explorer/lib/explorer/chain/search.ex | 4 ++- .../explorer/microservice_interfaces/bens.ex | 31 +++++++++++++------ 3 files changed, 38 insertions(+), 13 deletions(-) diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/search_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/search_controller_test.exs index 553af9eb8464..9d6053bef926 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/search_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/search_controller_test.exs @@ -737,7 +737,9 @@ defmodule BlockScoutWeb.API.V2.SearchControllerTest do ], "icon_url": "https://i.imgur.com/GOfUwCb.jpeg", "docs_url": "https://docs.ens.domains/" - } + }, + "protocol_dapp_url": "https://app.ens.domains/", + "protocol_dapp_logo": "https://i.imgur.com/ens-logo.png" } ], "next_page_params": null @@ -847,6 +849,8 @@ defmodule BlockScoutWeb.API.V2.SearchControllerTest do ens = Enum.at(response["items"], 0) assert ens["address_hash"] == to_string(ens_address) assert ens["ens_info"]["name"] == name + assert ens["ens_info"]["protocol_dapp_url"] == "https://app.ens.domains/" + assert ens["ens_info"]["protocol_dapp_logo"] == "https://i.imgur.com/ens-logo.png" end test "check pagination #4 (ens and metadata tags (complex case) added)", %{conn: conn} do @@ -1091,7 +1095,9 @@ defmodule BlockScoutWeb.API.V2.SearchControllerTest do ], "icon_url": "https://i.imgur.com/GOfUwCb.jpeg", "docs_url": "https://docs.ens.domains/" - } + }, + "protocol_dapp_url": "https://app.ens.domains/", + "protocol_dapp_logo": "https://i.imgur.com/ens-logo.png" } ], "next_page_params": null @@ -1201,6 +1207,8 @@ defmodule BlockScoutWeb.API.V2.SearchControllerTest do ens = Enum.at(response["items"], 0) assert ens["address_hash"] == to_string(ens_address) assert ens["ens_info"]["name"] == name + assert ens["ens_info"]["protocol_dapp_url"] == "https://app.ens.domains/" + assert ens["ens_info"]["protocol_dapp_logo"] == "https://i.imgur.com/ens-logo.png" end if @chain_type == :default do @@ -2153,7 +2161,9 @@ defmodule BlockScoutWeb.API.V2.SearchControllerTest do ], "icon_url": "https://i.imgur.com/GOfUwCb.jpeg", "docs_url": "https://docs.ens.domains/" - } + }, + "protocol_dapp_url": "https://app.ens.domains/", + "protocol_dapp_logo": "https://i.imgur.com/ens-logo.png" } ], "next_page_params": null diff --git a/apps/explorer/lib/explorer/chain/search.ex b/apps/explorer/lib/explorer/chain/search.ex index 5dc02b6beb2f..7e6e719b2f91 100644 --- a/apps/explorer/lib/explorer/chain/search.ex +++ b/apps/explorer/lib/explorer/chain/search.ex @@ -1028,7 +1028,9 @@ defmodule Explorer.Chain.Search do expiry_date: any(), name: any(), names_count: non_neg_integer(), - protocol: any() + protocol: any(), + protocol_dapp_url: binary() | nil, + protocol_dapp_logo: binary() | nil }, Hash.Address.t() | nil} def search_ens_name_in_bens(search_query) do trimmed_query = String.trim(search_query) diff --git a/apps/explorer/lib/explorer/microservice_interfaces/bens.ex b/apps/explorer/lib/explorer/microservice_interfaces/bens.ex index c757d89d71e7..618f211a5fba 100644 --- a/apps/explorer/lib/explorer/microservice_interfaces/bens.ex +++ b/apps/explorer/lib/explorer/microservice_interfaces/bens.ex @@ -99,7 +99,15 @@ defmodule Explorer.MicroserviceInterfaces.BENS do """ @spec ens_domain_name_lookup(binary()) :: nil - | %{address_hash: binary() | nil, expiry_date: any(), name: any(), names_count: integer(), protocol: any()} + | %{ + address_hash: binary() | nil, + expiry_date: any(), + name: any(), + names_count: integer(), + protocol: any(), + protocol_dapp_url: binary() | nil, + protocol_dapp_logo: binary() | nil + } def ens_domain_name_lookup(domain) do domain |> ens_domain_lookup() |> parse_lookup_response() end @@ -245,7 +253,7 @@ defmodule Explorer.MicroserviceInterfaces.BENS do "expiry_date" => expiry_date, "resolved_address" => resolved_address, "protocol" => protocol - } + } = first_item | _other ] = items }} @@ -258,7 +266,9 @@ defmodule Explorer.MicroserviceInterfaces.BENS do expiry_date: expiry_date, names_count: Enum.count(items), address_hash: address_hash, - protocol: protocol + protocol: protocol, + protocol_dapp_url: first_item["protocol_dapp_url"], + protocol_dapp_logo: first_item["protocol_dapp_logo"] } end @@ -267,11 +277,12 @@ defmodule Explorer.MicroserviceInterfaces.BENS do defp parse_get_address_response( {:ok, %{ - "domain" => %{ - "name" => name, - "expiry_date" => expiry_date, - "resolved_address" => %{"hash" => address_hash_string} - }, + "domain" => + %{ + "name" => name, + "expiry_date" => expiry_date, + "resolved_address" => %{"hash" => address_hash_string} + } = domain, "resolved_domains_count" => resolved_domains_count }} ) do @@ -281,7 +292,9 @@ defmodule Explorer.MicroserviceInterfaces.BENS do name: name, expiry_date: expiry_date, names_count: resolved_domains_count, - address_hash: Address.checksum(hash) + address_hash: Address.checksum(hash), + protocol_dapp_url: domain["protocol_dapp_url"], + protocol_dapp_logo: domain["protocol_dapp_logo"] } end From 69c310230a202ac030b4f98b90bd6bf8d17b1c0b Mon Sep 17 00:00:00 2001 From: Victor Baranov Date: Fri, 22 May 2026 13:31:29 +0300 Subject: [PATCH 28/31] Update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d209b684e17..d31aa095b754 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ### 🚀 Features +- Forward new BENS fields to search ([#14389](https://github.com/blockscout/blockscout/pull/14389)) - Fetch token circulating supply along with circulating market cap ([#11969](https://github.com/blockscout/blockscout/issues/11969)) - Support token lists import ([#11801](https://github.com/blockscout/blockscout/issues/11801)) - transform ECTO_USE_SSL to sslmode param ([#8818](https://github.com/blockscout/blockscout/issues/8818)) From 6075b61997781aa948b798729f8082aa2b2ade0e Mon Sep 17 00:00:00 2001 From: Qwerty5Uiop <105209995+Qwerty5Uiop@users.noreply.github.com> Date: Fri, 22 May 2026 15:23:32 +0400 Subject: [PATCH 29/31] chore: Add MIGRATION_FILL_INTERNAL_TRANSACTIONS_ADDRESS_IDS_CONCURRENCY (#14390) Co-authored-by: Victor Baranov --- CHANGELOG.md | 2 ++ config/runtime.exs | 1 + docker-compose/envs/common-blockscout.env | 1 + 3 files changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d31aa095b754..6dccd45467e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ ### ⚙️ Miscellaneous Tasks +- Add MIGRATION_FILL_INTERNAL_TRANSACTIONS_ADDRESS_IDS_CONCURRENCY ([#14390](https://github.com/blockscout/blockscout/pull/14390)) - Close linked issues when PRs merge into dev ([#14384](https://github.com/blockscout/blockscout/pull/14384), [#14385](https://github.com/blockscout/blockscout/pull/14385)) - Add SPDX attribution ([#14360](https://github.com/blockscout/blockscout/issues/14360)) - Eliminate horizontal scroll in the main LICENSE file ([#14359](https://github.com/blockscout/blockscout/issues/14359)) @@ -43,6 +44,7 @@ | `TOKEN_LIST_REFETCH_INTERVAL` | Interval to update data from token list. Implemented in [#14206](https://github.com/blockscout/blockscout/pull/14206). | Version: v11.1.0\+
Default: (empty)
Applications: Indexer | | `ECTO_SSL_MODE` | SSL mode for Ecto DB connections. Supported values: `disable`, `allow`, `prefer`, `require`, `verify-ca`, `verify-full`. Resolution order: `ECTO_SSL_MODE` has highest priority, then `sslmode` in `DATABASE_URL`, otherwise defaults to `require`. | Version: v11.1.0\++
Default: `require`
Applications: API, Indexer | | `INDEXER_ENABLE_PARTIAL_ASYNC_IMPORT` | If `true`, addresses, current token balances, tokens and token instances are imported asynchronously. Implemented in [#14277](https://github.com/blockscout/blockscout/pull/14277). | Version: v11.1.0\+
Default: `false`
Applications: Indexer | +| `MIGRATION_FILL_INTERNAL_TRANSACTIONS_ADDRESS_IDS_CONCURRENCY` | Number of parallel processes filling internal transactions address ids. Implemented in [#14390](https://github.com/blockscout/blockscout/pull/14390). | Version: v11.1.0\+
Default: `10`
Applications: Indexer | ### Deprecated ENV variables diff --git a/config/runtime.exs b/config/runtime.exs index d4223a6e6484..cf8b9418f23c 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -914,6 +914,7 @@ config :explorer, Explorer.Migrator.DeleteZeroValueInternalTransactions, config :explorer, Explorer.Migrator.FillInternalTransactionsAddressIds, batch_size: ConfigHelper.parse_integer_env_var("MIGRATION_FILL_INTERNAL_TRANSACTIONS_ADDRESS_IDS_BATCH_SIZE", 30), + concurrency: ConfigHelper.parse_integer_env_var("MIGRATION_FILL_INTERNAL_TRANSACTIONS_ADDRESS_IDS_CONCURRENCY", 10), timeout: ConfigHelper.parse_time_env_var("MIGRATION_FILL_INTERNAL_TRANSACTIONS_ADDRESS_IDS_TIMEOUT", "5s") config :explorer, Explorer.Chain.BridgedToken, diff --git a/docker-compose/envs/common-blockscout.env b/docker-compose/envs/common-blockscout.env index a30f5aeb8559..ca567cdaa053 100644 --- a/docker-compose/envs/common-blockscout.env +++ b/docker-compose/envs/common-blockscout.env @@ -600,6 +600,7 @@ ACCOUNT_REDIS_URL=redis://redis-db:6379 # MIGRATION_DELETE_ZERO_VALUE_INTERNAL_TRANSACTIONS_STORAGE_PERIOD= # MIGRATION_DELETE_ZERO_VALUE_INTERNAL_TRANSACTIONS_CHECK_INTERVAL= # MIGRATION_FILL_INTERNAL_TRANSACTIONS_ADDRESS_IDS_BATCH_SIZE= +# MIGRATION_FILL_INTERNAL_TRANSACTIONS_ADDRESS_IDS_CONCURRENCY= # MIGRATION_FILL_INTERNAL_TRANSACTIONS_ADDRESS_IDS_TIMEOUT= # MIGRATION_EMPTY_INTERNAL_TRANSACTIONS_DATA_BATCH_SIZE= # MIGRATION_EMPTY_INTERNAL_TRANSACTIONS_DATA_CONCURRENCY= From ec21659cd07c674e4192d2d1c3a131b660540c7c Mon Sep 17 00:00:00 2001 From: Victor Baranov Date: Fri, 22 May 2026 14:25:31 +0300 Subject: [PATCH 30/31] chore: publish OpenAPI specs on dev branch pushes (#14391) Co-authored-by: Cursor --- .github/workflows/generate-swagger.yml | 4 ++-- CHANGELOG.md | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/generate-swagger.yml b/.github/workflows/generate-swagger.yml index 932da476011d..a73b9087cfe2 100644 --- a/.github/workflows/generate-swagger.yml +++ b/.github/workflows/generate-swagger.yml @@ -4,7 +4,7 @@ on: push: branches: - master - - np-integrate-open-api-spex + - dev paths-ignore: - "CHANGELOG.md" - "**/README.md" @@ -248,7 +248,7 @@ jobs: - name: Create specs directory structure run: | - VERSION=${{ github.event_name == 'release' && env.RELEASE_VERSION || 'master' }} + VERSION=${{ github.event_name == 'release' && env.RELEASE_VERSION || (github.ref_name == 'dev' && 'dev' || 'master') }} for SPEC_FILE in temp-specs/*; do if [ -f "$SPEC_FILE" ]; then diff --git a/CHANGELOG.md b/CHANGELOG.md index 6dccd45467e4..9c9fe5a7c441 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ ### ⚙️ Miscellaneous Tasks +- Publish OpenAPI specs on dev branch pushes ([#14391](https://github.com/blockscout/blockscout/pull/14391)) - Add MIGRATION_FILL_INTERNAL_TRANSACTIONS_ADDRESS_IDS_CONCURRENCY ([#14390](https://github.com/blockscout/blockscout/pull/14390)) - Close linked issues when PRs merge into dev ([#14384](https://github.com/blockscout/blockscout/pull/14384), [#14385](https://github.com/blockscout/blockscout/pull/14385)) - Add SPDX attribution ([#14360](https://github.com/blockscout/blockscout/issues/14360)) From b3e806474f33d3cbbd84534ae7e12f0f56ff1df4 Mon Sep 17 00:00:00 2001 From: Qwerty5Uiop <105209995+Qwerty5Uiop@users.noreply.github.com> Date: Mon, 25 May 2026 13:34:33 +0400 Subject: [PATCH 31/31] fix: Properly start VersionUpgrade on application launch (#14396) Co-authored-by: Victor Baranov --- CHANGELOG.md | 2 ++ apps/explorer/config/config.exs | 2 ++ apps/explorer/config/test.exs | 1 + .../explorer/lib/explorer/utility/version_upgrade.ex | 12 ++++++++++++ bin/install_chrome_headless.sh | 4 ++-- 5 files changed, 19 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c9fe5a7c441..39393a26bc1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ ### 🐛 Bug Fixes +- Properly start VersionUpgrade on application launch ([#14396](https://github.com/blockscout/blockscout/pull/14396)) - MissingBalanceOfToken fixes ([#14267](https://github.com/blockscout/blockscout/pull/14267)) - Improvements of OpenAPI specification for `/v2/blocks` ([#14251](https://github.com/blockscout/blockscout/issues/14251)) - Normalize Tesla timeout middleware exceptions ([#14059](https://github.com/blockscout/blockscout/issues/14059)) @@ -26,6 +27,7 @@ ### ⚙️ Miscellaneous Tasks +- Add SPDX license identifier to Elixir source and test files ([#14393](https://github.com/blockscout/blockscout/pull/14393)) - Publish OpenAPI specs on dev branch pushes ([#14391](https://github.com/blockscout/blockscout/pull/14391)) - Add MIGRATION_FILL_INTERNAL_TRANSACTIONS_ADDRESS_IDS_CONCURRENCY ([#14390](https://github.com/blockscout/blockscout/pull/14390)) - Close linked issues when PRs merge into dev ([#14384](https://github.com/blockscout/blockscout/pull/14384), [#14385](https://github.com/blockscout/blockscout/pull/14385)) diff --git a/apps/explorer/config/config.exs b/apps/explorer/config/config.exs index 267b1cd0abe2..00e5fad44103 100644 --- a/apps/explorer/config/config.exs +++ b/apps/explorer/config/config.exs @@ -114,6 +114,8 @@ config :explorer, Explorer.Chain.Mud, enabled: ConfigHelper.parse_bool_env_var(" config :explorer, Explorer.Utility.VersionConstantsUpdater, enabled: true +config :explorer, Explorer.Utility.VersionUpgrade, enabled: true + for migrator <- [ # Background migrations Explorer.Migrator.TransactionsDenormalization, diff --git a/apps/explorer/config/test.exs b/apps/explorer/config/test.exs index 5295d8ae9b3c..4672eb0cf155 100644 --- a/apps/explorer/config/test.exs +++ b/apps/explorer/config/test.exs @@ -104,5 +104,6 @@ config :logger, :explorer, path: Path.absname("logs/test/explorer.log") config :explorer, Explorer.Chain.Fetcher.CheckBytecodeMatchingOnDemand, enabled: false config :explorer, Explorer.Chain.Fetcher.FetchValidatorInfoOnDemand, enabled: false config :explorer, Explorer.Tags.AddressTag.Cataloger, enabled: false +config :explorer, Explorer.Utility.VersionUpgrade, enabled: false config :tesla, adapter: Explorer.Mock.TeslaAdapter diff --git a/apps/explorer/lib/explorer/utility/version_upgrade.ex b/apps/explorer/lib/explorer/utility/version_upgrade.ex index c085f37dcdf4..dbad92f9330a 100644 --- a/apps/explorer/lib/explorer/utility/version_upgrade.ex +++ b/apps/explorer/lib/explorer/utility/version_upgrade.ex @@ -24,6 +24,8 @@ defmodule Explorer.Utility.VersionUpgrade do If no rule matches the target version, the upgrade is allowed by default. """ + use GenServer + alias Explorer.Application.Constants alias Explorer.Chain.Block alias Explorer.Migrator.HeavyDbIndexOperation.UpdateInternalTransactionsPrimaryKey @@ -38,6 +40,16 @@ defmodule Explorer.Utility.VersionUpgrade do } ] + @spec start_link(term()) :: GenServer.on_start() + def start_link(_) do + GenServer.start_link(__MODULE__, :ok, name: __MODULE__) + end + + def init(_) do + validate_current_upgrade() + :ignore + end + def validate_current_upgrade do previous_version = Constants.get_previous_backend_version() current_version = Constants.get_current_backend_version() diff --git a/bin/install_chrome_headless.sh b/bin/install_chrome_headless.sh index 1be34b17cc5c..cf2ed670c959 100755 --- a/bin/install_chrome_headless.sh +++ b/bin/install_chrome_headless.sh @@ -1,8 +1,8 @@ export DISPLAY=:99.0 sh -e /etc/init.d/xvfb start -export CHROMEDRIVER_VERSION=$(curl -s "https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions.json" | jq -r '.channels' | jq -r '.Stable' | jq -r '.version') -#export CHROMEDRIVER_VERSION=146.0.7680.178 +#export CHROMEDRIVER_VERSION=$(curl -s "https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions.json" | jq -r '.channels' | jq -r '.Stable' | jq -r '.version') +export CHROMEDRIVER_VERSION=148.0.7778.179 curl -L -O "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/${CHROMEDRIVER_VERSION}/linux64/chromedriver-linux64.zip" unzip -j chromedriver-linux64.zip sudo chmod +x chromedriver