Skip to content

Commit 65a624b

Browse files
fix: copilot comments
1 parent 7a66015 commit 65a624b

File tree

3 files changed

+33
-9
lines changed

3 files changed

+33
-9
lines changed

aggsender/query/ger_query.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ import (
1313
"github.com/ethereum/go-ethereum/common"
1414
)
1515

16-
var createAgglayerGERL1func = func(gerAddr common.Address, l1Client aggkittypes.BaseEthereumClienter) (types.AgglayerGER, error) {
16+
var createAgglayerGERL1func = func(gerAddr common.Address,
17+
l1Client aggkittypes.BaseEthereumClienter) (types.AgglayerGER, error) {
1718
return agglayerger.NewAgglayerger(gerAddr, l1Client)
1819
}
1920

@@ -124,7 +125,7 @@ func NewL1GERDataQuerier(
124125
) (types.L1GERQuerier, error) {
125126
agglayerGER, err := createAgglayerGERL1func(l1AgglayerGERAddr, l1Client)
126127
if err != nil {
127-
return nil, fmt.Errorf("failed to initialize L1 GER manager contract: %v", err)
128+
return nil, fmt.Errorf("failed to initialize L1 GER manager contract: %w", err)
128129
}
129130

130131
return &l1GERDataQuerier{
@@ -136,7 +137,8 @@ func NewL1GERDataQuerier(
136137

137138
// DoesGERExistOnContract checks if the given GER exists on the Agglayer GER contract
138139
func (g *l1GERDataQuerier) DoesGERExistOnContract(ctx context.Context, ger common.Hash) (bool, error) {
139-
blockNum, err := g.blockFinality.BlockNumber(ctx, g.l1Client) // TODO - maybe get the header and use block hash instead?
140+
// TODO - maybe get the header and use block hash instead?
141+
blockNum, err := g.blockFinality.BlockNumber(ctx, g.l1Client)
140142
if err != nil {
141143
return false, fmt.Errorf("error getting block number for finality %s: %w", g.blockFinality.String(), err)
142144
}

aggsender/validator/validate_certificate.go

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
var (
1717
ErrNilCertificate = errors.New("aggsender-validator nil certificate")
1818
ErrMetadataNotCompatible = errors.New("aggsender-validator metadata not compatible with the current version")
19+
errGERNotExists = errors.New("GER does not exist on L1 GER contract")
1920
)
2021

2122
// CertificateValidator is a object to validate a certificate
@@ -29,6 +30,20 @@ type CertificateValidator struct {
2930
l1GERQuerier types.L1GERQuerier
3031
}
3132

33+
// NewAggsenderValidator creates a new CertificateValidator instance with the provided dependencies.
34+
// It initializes the validator with a logger, verification flow, and various data queriers
35+
// needed for certificate validation operations.
36+
//
37+
// Parameters:
38+
// - logger: Logger instance for recording validation operations and errors
39+
// - flow: AggsenderVerifierFlow that defines the verification workflow
40+
// - l1InfoTreeDataQuerier: Querier for L1 info tree data
41+
// - certQuerier: Querier for certificate data
42+
// - lerQuerier: Querier for LER (Local Exit Root) data
43+
// - l1GERQuerier: Querier for L1 GER (Global Exit Root) data
44+
//
45+
// Returns:
46+
// - *CertificateValidator: A new validator instance ready for certificate validation
3247
func NewAggsenderValidator(logger aggkitcommon.Logger,
3348
flow types.AggsenderVerifierFlow,
3449
l1InfoTreeDataQuerier types.L1InfoTreeDataQuerier,
@@ -53,7 +68,7 @@ func (a *CertificateValidator) ValidateGER(ctx context.Context, ger common.Hash)
5368
}
5469

5570
if !doesExist {
56-
return fmt.Errorf("global exit root %s does not exist on L1 GER contract", ger.String())
71+
return fmt.Errorf("%w: %s", errGERNotExists, ger.String())
5772
}
5873

5974
return nil

aggsender/validator/validator_service.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package validator
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67

78
v1types "buf.build/gen/go/agglayer/interop/protocolbuffers/go/agglayer/interop/types/v1"
@@ -66,8 +67,8 @@ func (s *ValidatorService) ValidateGER(
6667
) (*v1.ValidateGERResponse, error) {
6768
if req == nil || req.Ger == nil {
6869
return nil, grpc.GRPCError{
69-
Code: codes.NotFound,
70-
Message: "required a GlobalExitRoot",
70+
Code: codes.InvalidArgument,
71+
Message: "GlobalExitRoot is required",
7172
}
7273
}
7374

@@ -76,10 +77,16 @@ func (s *ValidatorService) ValidateGER(
7677

7778
err := s.validator.ValidateGER(ctx, ger)
7879
if err != nil {
79-
s.log.Errorf("Error signing GER: %v", err)
80+
s.log.Errorf("Error validating GER: %v", err)
81+
82+
code := codes.Internal
83+
if errors.Is(err, errGERNotExists) {
84+
code = codes.NotFound
85+
}
86+
8087
return nil, grpc.GRPCError{
81-
Code: codes.Internal,
82-
Message: "Error signing GER: " + err.Error(),
88+
Code: code,
89+
Message: "Error validating GER: " + err.Error(),
8390
}
8491
}
8592

0 commit comments

Comments
 (0)