mirror of
https://github.com/scroll-tech/scroll.git
synced 2026-01-13 16:08:04 -05:00
Co-authored-by: georgehao <georgehao@users.noreply.github.com> Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
37 lines
876 B
Go
37 lines
876 B
Go
package api
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
"gorm.io/gorm"
|
|
|
|
"scroll-tech/coordinator/internal/config"
|
|
"scroll-tech/coordinator/internal/logic/verifier"
|
|
)
|
|
|
|
var (
|
|
// GetTask the prover task controller
|
|
GetTask *GetTaskController
|
|
// SubmitProof the submit proof controller
|
|
SubmitProof *SubmitProofController
|
|
// Auth the auth controller
|
|
Auth *AuthController
|
|
|
|
initControllerOnce sync.Once
|
|
)
|
|
|
|
// InitController inits Controller with database
|
|
func InitController(cfg *config.Config, db *gorm.DB, reg prometheus.Registerer) {
|
|
initControllerOnce.Do(func() {
|
|
vf, err := verifier.NewVerifier(cfg.ProverManager.Verifier)
|
|
if err != nil {
|
|
panic("proof receiver new verifier failure")
|
|
}
|
|
|
|
Auth = NewAuthController(db)
|
|
GetTask = NewGetTaskController(cfg, db, vf, reg)
|
|
SubmitProof = NewSubmitProofController(cfg, db, vf, reg)
|
|
})
|
|
}
|