Skip to content

Commit 5a07a16

Browse files
committed
WIP
1 parent 64ef0f4 commit 5a07a16

File tree

4 files changed

+121
-0
lines changed

4 files changed

+121
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package proxy
2+
3+
import (
4+
"fmt"
5+
6+
"github.com/gin-gonic/gin"
7+
8+
"scroll-tech/coordinator/internal/config"
9+
"scroll-tech/coordinator/internal/controller/api"
10+
"scroll-tech/coordinator/internal/logic/auth"
11+
"scroll-tech/coordinator/internal/logic/verifier"
12+
"scroll-tech/coordinator/internal/types"
13+
)
14+
15+
// AuthController is login API
16+
type AuthController struct {
17+
*api.AuthController
18+
clients Clients
19+
}
20+
21+
// NewAuthController returns an LoginController instance
22+
func NewAuthController(cfg *config.ProxyConfig, clients Clients, vf *verifier.Verifier) *AuthController {
23+
24+
loginLogic := auth.NewLoginLogicWithSimpleDEduplicator(cfg.ProxyManager.Verifier, vf)
25+
auth := api.NewAuthControllerWithLogic(loginLogic)
26+
return &AuthController{
27+
AuthController: auth,
28+
clients: clients,
29+
}
30+
}
31+
32+
// Login extended the Login hander in api controller
33+
func (a *AuthController) Login(c *gin.Context) (interface{}, error) {
34+
35+
ret, err := a.AuthController.Login(c)
36+
if err != nil {
37+
return nil, err
38+
}
39+
loginParam := ret.(types.LoginParameterWithHardForkName)
40+
// band recursive proxy now ...
41+
if loginParam.Message.ProverProviderType == types.ProverProviderTypeProxy {
42+
return nil, fmt.Errorf("do not allow recursive proxy for login %v", loginParam.Message)
43+
}
44+
45+
return loginParam, nil
46+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package proxy
2+
3+
import (
4+
"github.com/gin-gonic/gin"
5+
"github.com/prometheus/client_golang/prometheus"
6+
"github.com/scroll-tech/go-ethereum/params"
7+
"gorm.io/gorm"
8+
9+
"scroll-tech/common/types/message"
10+
11+
"scroll-tech/coordinator/internal/config"
12+
"scroll-tech/coordinator/internal/logic/provertask"
13+
"scroll-tech/coordinator/internal/logic/verifier"
14+
coordinatorType "scroll-tech/coordinator/internal/types"
15+
)
16+
17+
// GetTaskController the get prover task api controller
18+
type GetTaskController struct {
19+
proverTasks map[message.ProofType]provertask.ProverTask
20+
21+
getTaskAccessCounter *prometheus.CounterVec
22+
}
23+
24+
// NewGetTaskController create a get prover task controller
25+
func NewGetTaskController(cfg *config.Config, chainCfg *params.ChainConfig, db *gorm.DB, verifier *verifier.Verifier, reg prometheus.Registerer) *GetTaskController {
26+
// TODO: implement proxy get task controller initialization
27+
return &GetTaskController{
28+
proverTasks: make(map[message.ProofType]provertask.ProverTask),
29+
}
30+
}
31+
32+
func (ptc *GetTaskController) incGetTaskAccessCounter(ctx *gin.Context) error {
33+
// TODO: implement proxy get task access counter
34+
return nil
35+
}
36+
37+
// GetTasks get assigned chunk/batch task
38+
func (ptc *GetTaskController) GetTasks(ctx *gin.Context) {
39+
// TODO: implement proxy get tasks logic
40+
}
41+
42+
func (ptc *GetTaskController) proofType(para *coordinatorType.GetTaskParameter) message.ProofType {
43+
// TODO: implement proxy proof type logic
44+
return message.ProofTypeChunk
45+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package proxy
2+
3+
import (
4+
"github.com/gin-gonic/gin"
5+
"github.com/prometheus/client_golang/prometheus"
6+
"github.com/scroll-tech/go-ethereum/params"
7+
"gorm.io/gorm"
8+
9+
"scroll-tech/coordinator/internal/config"
10+
"scroll-tech/coordinator/internal/logic/submitproof"
11+
"scroll-tech/coordinator/internal/logic/verifier"
12+
)
13+
14+
// SubmitProofController the submit proof api controller
15+
type SubmitProofController struct {
16+
submitProofReceiverLogic *submitproof.ProofReceiverLogic
17+
}
18+
19+
// NewSubmitProofController create the submit proof api controller instance
20+
func NewSubmitProofController(cfg *config.Config, chainCfg *params.ChainConfig, db *gorm.DB, vf *verifier.Verifier, reg prometheus.Registerer) *SubmitProofController {
21+
return &SubmitProofController{
22+
submitProofReceiverLogic: submitproof.NewSubmitProofReceiverLogic(cfg.ProverManager, chainCfg, db, vf, reg),
23+
}
24+
}
25+
26+
// SubmitProof prover submit the proof to coordinator
27+
func (spc *SubmitProofController) SubmitProof(ctx *gin.Context) {
28+
// TODO: implement proxy submit proof logic
29+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package middleware

0 commit comments

Comments
 (0)