package guardian import ( "github.com/gofiber/fiber/v2" govsvc "github.com/wormhole-foundation/wormhole-explorer/api/handlers/governor" heartbeatssvc "github.com/wormhole-foundation/wormhole-explorer/api/handlers/heartbeats" vaasvc "github.com/wormhole-foundation/wormhole-explorer/api/handlers/vaa" "github.com/wormhole-foundation/wormhole-explorer/api/internal/config" "github.com/wormhole-foundation/wormhole-explorer/api/routes/guardian/governor" "github.com/wormhole-foundation/wormhole-explorer/api/routes/guardian/guardian" "github.com/wormhole-foundation/wormhole-explorer/api/routes/guardian/heartbeats" "github.com/wormhole-foundation/wormhole-explorer/api/routes/guardian/vaa" "go.uber.org/zap" ) // RegisterRoutes sets up the handlers for the Guardian API. func RegisterRoutes( cfg *config.AppConfig, app *fiber.App, rootLogger *zap.Logger, vaaService *vaasvc.Service, governorService *govsvc.Service, heartbeatsService *heartbeatssvc.Service, ) { // Set up controllers vaaCtrl := vaa.NewController(vaaService, rootLogger) governorCtrl := governor.NewController(governorService, rootLogger) guardianCtrl := guardian.NewController(rootLogger, cfg.P2pNetwork) heartbeatsCtrl := heartbeats.NewController(heartbeatsService, rootLogger, cfg.P2pNetwork) // Set up route handlers apiV1 := app.Group("/v1") // signedVAA resource signedVAA := apiV1.Group("/signed_vaa") signedVAA.Get("/:chain/:emitter/:sequence", vaaCtrl.FindSignedVAAByID) signedBatchVAA := apiV1.Group("/signed_batch_vaa") signedBatchVAA.Get("/:chain/:trxID/:nonce", vaaCtrl.FindSignedBatchVAAByID) // guardianSet resource guardianSet := apiV1.Group("/guardianset") guardianSet.Get("/current", guardianCtrl.GetGuardianSet) // heartbeats resource heartbeats := apiV1.Group("/heartbeats") heartbeats.Get("", heartbeatsCtrl.GetLastHeartbeats) // governor resource gov := apiV1.Group("/governor") gov.Get("/available_notional_by_chain", governorCtrl.GetAvailNotionByChain) gov.Get("/enqueued_vaas", governorCtrl.GetEnqueuedVaas) gov.Get("/is_vaa_enqueued/:chain/:emitter/:sequence", governorCtrl.IsVaaEnqueued) gov.Get("/token_list", governorCtrl.GetTokenList) }