diff --git a/.github/workflows/send-proofs-docker.yml b/.github/workflows/send-proofs-docker.yml index 90baf786f8..84641479c1 100644 --- a/.github/workflows/send-proofs-docker.yml +++ b/.github/workflows/send-proofs-docker.yml @@ -10,7 +10,7 @@ on: - '**.md' concurrency: - group: pull_request-${{ github.event.pull_request.number }} + group: ${{ github.event_name == 'merge_group' && format('merge_group-{0}', github.event.merge_group.head_sha) || format('pull_request-{0}', github.event.pull_request.number) }} cancel-in-progress: true jobs: diff --git a/aggregator/pkg/server.go b/aggregator/pkg/server.go index 9138e188d5..9df00304b5 100644 --- a/aggregator/pkg/server.go +++ b/aggregator/pkg/server.go @@ -81,7 +81,7 @@ func (agg *Aggregator) ProcessOperatorSignedTaskResponseV2(signedTaskResponse *t defer cancel() // Ensure the cancel function is called to release resources // Create a channel to signal when the task is done - done := make(chan struct{}) + done := make(chan uint8) agg.logger.Info("Starting bls signature process") go func() { @@ -92,9 +92,11 @@ func (agg *Aggregator) ProcessOperatorSignedTaskResponseV2(signedTaskResponse *t if err != nil { agg.logger.Warnf("BLS aggregation service error: %s", err) + done<- 1 // todo shouldn't we here close the channel with a reply = 1? } else { agg.logger.Info("BLS process succeeded") + done<- 0 } close(done) @@ -106,10 +108,10 @@ func (agg *Aggregator) ProcessOperatorSignedTaskResponseV2(signedTaskResponse *t case <-ctx.Done(): // The context's deadline was exceeded or it was canceled agg.logger.Info("Bls process timed out, operator signature will be lost. Batch may not reach quorum") - case <-done: + case res := <-done: // The task completed successfully - agg.logger.Info("Bls context finished correctly") - *reply = 0 + agg.logger.Info("Bls context finished on time") + *reply = res } return nil diff --git a/explorer/lib/explorer_web/router.ex b/explorer/lib/explorer_web/router.ex index 02bcd34522..ca855d46ca 100644 --- a/explorer/lib/explorer_web/router.ex +++ b/explorer/lib/explorer_web/router.ex @@ -29,6 +29,7 @@ defmodule ExplorerWeb.Router do end pipeline :api do + plug CORSPlug, origin: "*" plug :accepts, ["json"] end diff --git a/explorer/mix.exs b/explorer/mix.exs index 9e0a79854f..9f6eb0adae 100644 --- a/explorer/mix.exs +++ b/explorer/mix.exs @@ -62,7 +62,8 @@ defmodule Explorer.MixProject do {:postgrex, ">= 0.0.0"}, {:cachex, "~> 3.6"}, {:mutex, "~> 2.0"}, - {:tails, "~> 0.1.5"} + {:tails, "~> 0.1.5"}, + {:cors_plug, "~> 3.0"}, ] end diff --git a/go.mod b/go.mod index 5fb347c132..8583be5e31 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/Layr-Labs/eigensdk-go v0.1.13 github.com/ethereum/go-ethereum v1.14.0 github.com/prometheus/client_golang v1.19.1 - github.com/urfave/cli/v2 v2.27.1 + github.com/urfave/cli/v2 v2.27.5 golang.org/x/crypto v0.22.0 ) @@ -44,7 +44,7 @@ require ( github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/consensys/bavard v0.1.13 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect github.com/crate-crypto/go-kzg-4844 v1.0.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/deckarep/golang-set/v2 v2.6.0 // indirect @@ -81,7 +81,7 @@ require ( github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/x448/float16 v0.8.4 // indirect - github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 // indirect diff --git a/go.sum b/go.sum index ec49688fb8..35a91de3e7 100644 --- a/go.sum +++ b/go.sum @@ -88,6 +88,8 @@ github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoY github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc= +github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= github.com/crate-crypto/go-kzg-4844 v1.0.0 h1:TsSgHwrkTKecKJ4kadtHi4b3xHW5dCFUDFnUp1TsawI= @@ -313,10 +315,14 @@ github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65E github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho= github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= +github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= +github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= +github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= diff --git a/telemetry_api/lib/telemetry_api/operators.ex b/telemetry_api/lib/telemetry_api/operators.ex index 21ea013b22..19de008220 100644 --- a/telemetry_api/lib/telemetry_api/operators.ex +++ b/telemetry_api/lib/telemetry_api/operators.ex @@ -1,4 +1,6 @@ defmodule TelemetryApi.Operators do + require Logger + @moduledoc """ The Operators context. """ @@ -130,6 +132,7 @@ defmodule TelemetryApi.Operators do # {:error, string} # defp add_operator_metadata(op_data) do + Logger.info("Fetching metadata for operator: #{op_data.address}") with {:ok, url} <- DelegationManager.get_operator_url(op_data.address), {:ok, metadata} <- TelemetryApi.Utils.fetch_json_data(url) do operator = %{ @@ -140,6 +143,17 @@ defmodule TelemetryApi.Operators do } {:ok, operator} + else + {:error, reason} -> + Logger.error("Failed to fetch metadata for operator: #{op_data.address}. Reason: #{inspect(reason)}") + operator = %{ + id: op_data.id, + address: op_data.address, + stake: op_data.stake, + name: op_data.address + } + + {:ok, operator} end end diff --git a/telemetry_api/lib/telemetry_api/utils.ex b/telemetry_api/lib/telemetry_api/utils.ex index 46443d7743..136402f39d 100644 --- a/telemetry_api/lib/telemetry_api/utils.ex +++ b/telemetry_api/lib/telemetry_api/utils.ex @@ -1,4 +1,6 @@ defmodule TelemetryApi.Utils do + require Logger + @moduledoc """ Some utility functions """ @@ -15,6 +17,7 @@ defmodule TelemetryApi.Utils do {:error, message} """ def fetch_json_data(url) do + Logger.info("Fetching data from #{url}") with {:ok, %HTTPoison.Response{status_code: 200, body: body}} <- HTTPoison.get(url) do Jason.decode(body) else