From 5f240e22395371bed5eb4c048e9c19e9cd8d4592 Mon Sep 17 00:00:00 2001 From: Julian Ventura Date: Mon, 6 Jan 2025 12:15:48 -0300 Subject: [PATCH 1/4] Add database query to fetch last 24 hours number of verified proofs --- explorer/lib/explorer/models/batches.ex | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/explorer/lib/explorer/models/batches.ex b/explorer/lib/explorer/models/batches.ex index b22dd7b68d..068ba20471 100644 --- a/explorer/lib/explorer/models/batches.ex +++ b/explorer/lib/explorer/models/batches.ex @@ -164,6 +164,20 @@ defmodule Batches do end end + def get_last_amount_of_verified_proofs() do + minutes_in_a_day = 1440 + threshold_datetime = DateTime.utc_now() |> DateTime.add(-1 * minutes_in_a_day, :minute) # Last 24 hours + + query = from(b in Batches, + where: b.is_verified == true and b.submission_timestamp > ^threshold_datetime, + select: sum(b.amount_of_proofs)) + + case Explorer.Repo.one(query) do + nil -> 0 + result -> result + end + end + def insert_or_update(batch_changeset, proofs) do merkle_root = batch_changeset.changes.merkle_root stored_proofs = Proofs.get_proofs_from_batch(%{merkle_root: merkle_root}) From b108cd4810ca83c5d03d9a010d73dbe00a3373b6 Mon Sep 17 00:00:00 2001 From: avilagaston9 Date: Mon, 6 Jan 2025 12:45:57 -0300 Subject: [PATCH 2/4] feat: add verified_proofs endpoint --- explorer/lib/explorer/models/batches.ex | 2 +- explorer/lib/explorer_web/controllers/data_controller.ex | 8 ++++++++ explorer/lib/explorer_web/controllers/data_json.ex | 7 +++++++ explorer/lib/explorer_web/router.ex | 7 ++++++- 4 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 explorer/lib/explorer_web/controllers/data_controller.ex create mode 100644 explorer/lib/explorer_web/controllers/data_json.ex diff --git a/explorer/lib/explorer/models/batches.ex b/explorer/lib/explorer/models/batches.ex index 068ba20471..7321a5b427 100644 --- a/explorer/lib/explorer/models/batches.ex +++ b/explorer/lib/explorer/models/batches.ex @@ -164,7 +164,7 @@ defmodule Batches do end end - def get_last_amount_of_verified_proofs() do + def get_last_verified_proofs_count() do minutes_in_a_day = 1440 threshold_datetime = DateTime.utc_now() |> DateTime.add(-1 * minutes_in_a_day, :minute) # Last 24 hours diff --git a/explorer/lib/explorer_web/controllers/data_controller.ex b/explorer/lib/explorer_web/controllers/data_controller.ex new file mode 100644 index 0000000000..ad91ad5ec8 --- /dev/null +++ b/explorer/lib/explorer_web/controllers/data_controller.ex @@ -0,0 +1,8 @@ +defmodule ExplorerWeb.DataController do + use ExplorerWeb, :controller + + def last_verified_proofs_count(conn, _params) do + last_verified_proofs_count = Batches.get_last_verified_proofs_count() + render(conn, :show, count: last_verified_proofs_count) + end +end diff --git a/explorer/lib/explorer_web/controllers/data_json.ex b/explorer/lib/explorer_web/controllers/data_json.ex new file mode 100644 index 0000000000..8f2752db28 --- /dev/null +++ b/explorer/lib/explorer_web/controllers/data_json.ex @@ -0,0 +1,7 @@ +defmodule ExplorerWeb.DataJSON do + def show(%{count: last_verified_proofs_count}) do + %{ + count: last_verified_proofs_count + } + end +end diff --git a/explorer/lib/explorer_web/router.ex b/explorer/lib/explorer_web/router.ex index e85cb7491f..92e119248e 100644 --- a/explorer/lib/explorer_web/router.ex +++ b/explorer/lib/explorer_web/router.ex @@ -32,11 +32,16 @@ defmodule ExplorerWeb.Router do plug :accepts, ["json"] end + scope "/data", ExplorerWeb do + pipe_through :api + get "/last_verified_proofs_count", DataController, :last_verified_proofs_count + end + scope "/", ExplorerWeb do pipe_through :browser # https://fly.io/phoenix-files/live-session/ - live_session :default, + live_session :default, on_mount: [{ExplorerWeb.Hooks, :add_host}, {ExplorerWeb.Hooks, :add_theme}] do live "/", Home.Index live "/batches/:merkle_root", Batch.Index From f350c77cd1961a73167208807f0be36c93ddf455 Mon Sep 17 00:00:00 2001 From: avilagaston9 Date: Mon, 6 Jan 2025 14:47:15 -0300 Subject: [PATCH 3/4] refactor: rename endpoint and functions --- explorer/lib/explorer/models/batches.ex | 2 +- explorer/lib/explorer_web/controllers/data_controller.ex | 6 +++--- explorer/lib/explorer_web/router.ex | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/explorer/lib/explorer/models/batches.ex b/explorer/lib/explorer/models/batches.ex index 7321a5b427..f92ae4d434 100644 --- a/explorer/lib/explorer/models/batches.ex +++ b/explorer/lib/explorer/models/batches.ex @@ -164,7 +164,7 @@ defmodule Batches do end end - def get_last_verified_proofs_count() do + def get_verified_proofs_in_last_24_hours() do minutes_in_a_day = 1440 threshold_datetime = DateTime.utc_now() |> DateTime.add(-1 * minutes_in_a_day, :minute) # Last 24 hours diff --git a/explorer/lib/explorer_web/controllers/data_controller.ex b/explorer/lib/explorer_web/controllers/data_controller.ex index ad91ad5ec8..df244a1197 100644 --- a/explorer/lib/explorer_web/controllers/data_controller.ex +++ b/explorer/lib/explorer_web/controllers/data_controller.ex @@ -1,8 +1,8 @@ defmodule ExplorerWeb.DataController do use ExplorerWeb, :controller - def last_verified_proofs_count(conn, _params) do - last_verified_proofs_count = Batches.get_last_verified_proofs_count() - render(conn, :show, count: last_verified_proofs_count) + def verified_proofs_in_last_24_hours(conn, _params) do + verified_proofs_in_last_24_hours = Batches.get_verified_proofs_in_last_24_hours() + render(conn, :show, count: verified_proofs_in_last_24_hours) end end diff --git a/explorer/lib/explorer_web/router.ex b/explorer/lib/explorer_web/router.ex index 92e119248e..5ec0705be6 100644 --- a/explorer/lib/explorer_web/router.ex +++ b/explorer/lib/explorer_web/router.ex @@ -34,7 +34,7 @@ defmodule ExplorerWeb.Router do scope "/data", ExplorerWeb do pipe_through :api - get "/last_verified_proofs_count", DataController, :last_verified_proofs_count + get "/verified_proofs_in_last_24_hours", DataController, :verified_proofs_in_last_24_hours end scope "/", ExplorerWeb do From 67ca1759854e5b2be3f63fdd7b1da58104ebe309 Mon Sep 17 00:00:00 2001 From: JuArce <52429267+JuArce@users.noreply.github.com> Date: Mon, 6 Jan 2025 16:23:56 -0300 Subject: [PATCH 4/4] fix: rename /data endpoint to /api --- explorer/lib/explorer_web/router.ex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/explorer/lib/explorer_web/router.ex b/explorer/lib/explorer_web/router.ex index 5ec0705be6..f8d90604e6 100644 --- a/explorer/lib/explorer_web/router.ex +++ b/explorer/lib/explorer_web/router.ex @@ -32,9 +32,9 @@ defmodule ExplorerWeb.Router do plug :accepts, ["json"] end - scope "/data", ExplorerWeb do + scope "/api", ExplorerWeb do pipe_through :api - get "/verified_proofs_in_last_24_hours", DataController, :verified_proofs_in_last_24_hours + get "/proofs_verified_last_24h", DataController, :verified_proofs_in_last_24_hours end scope "/", ExplorerWeb do