diff --git a/explorer/lib/explorer/contract_managers/batcher_payment_service_manager.ex b/explorer/lib/explorer/contract_managers/batcher_payment_service_manager.ex index 1926310fa2..8adf887f33 100644 --- a/explorer/lib/explorer/contract_managers/batcher_payment_service_manager.ex +++ b/explorer/lib/explorer/contract_managers/batcher_payment_service_manager.ex @@ -68,4 +68,28 @@ defmodule BatcherPaymentServiceManager do raise("Unexpected response on fee per proof events.") end end + + def get_latest_activity() do + # event TaskCreated(bytes32 indexed batchMerkleRoot, uint256 feePerProof); + + event_filters = [ + BatcherPaymentServiceManager.EventFilters.payment_received(nil), + BatcherPaymentServiceManager.EventFilters.funds_withdrawn(nil), + BatcherPaymentServiceManager.EventFilters.balance_locked(nil), + BatcherPaymentServiceManager.EventFilters.balance_unlocked(nil) + # BatcherPaymentServiceManager.EventFilters.task_created(nil) // We don't need this event for this feature + ] + + events = + event_filters + |> Enum.map(fn filter -> + filter |> Ethers.get_logs(fromBlock: @first_block) + end) + |> Enum.flat_map(fn + {:ok, logs} -> logs + {:error, _} -> [] # Handle errors by skipping them + end) + + events |> dbg + end end diff --git a/explorer/lib/explorer_web/live/pages/home/index.ex b/explorer/lib/explorer_web/live/pages/home/index.ex index a28f1c937e..916ffb4c5d 100644 --- a/explorer/lib/explorer_web/live/pages/home/index.ex +++ b/explorer/lib/explorer_web/live/pages/home/index.ex @@ -46,6 +46,8 @@ defmodule ExplorerWeb.Home.Index do restaked_amount_eth = Restakings.get_restaked_amount_eth() restaked_amount_usd = Restakings.get_restaked_amount_usd() + latest_batcher_payment_movements = BatcherPaymentServiceManager.get_latest_activity() + if connected?(socket), do: Phoenix.PubSub.subscribe(Explorer.PubSub, "update_views") {:ok,