Skip to content

Commit 75f97d7

Browse files
committed
fix(op): nil-deref in pubkey syncer
1 parent c8a8300 commit 75f97d7

File tree

2 files changed

+16
-15
lines changed

2 files changed

+16
-15
lines changed

rolling-shutter/keyperimpl/optimism/sync/options.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,12 @@ func (o *options) apply(ctx context.Context, c *ShutterL2Client) error {
100100
return err
101101
}
102102
c.epksync = &syncer.EonPubKeySyncer{
103-
Client: client,
104-
Log: c.log,
105-
Contract: c.KeyBroadcast,
106-
Handler: o.handlerEonPublicKey,
107-
StartBlock: o.syncStart,
103+
Client: client,
104+
Log: c.log,
105+
KeyBroadcast: c.KeyBroadcast,
106+
KeyperSetManager: c.KeyperSetManager,
107+
Handler: o.handlerEonPublicKey,
108+
StartBlock: o.syncStart,
108109
}
109110
if o.handlerEonPublicKey != nil {
110111
c.services = append(c.services, c.epksync)

rolling-shutter/keyperimpl/optimism/sync/syncer/eonpubkey.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ import (
1616
)
1717

1818
type EonPubKeySyncer struct {
19-
Client client.Client
20-
Log log.Logger
21-
Contract *bindings.KeyBroadcastContract
22-
StartBlock *number.BlockNumber
23-
Handler event.EonPublicKeyHandler
19+
Client client.Client
20+
Log log.Logger
21+
KeyBroadcast *bindings.KeyBroadcastContract
22+
KeyperSetManager *bindings.KeyperSetManager
23+
StartBlock *number.BlockNumber
24+
Handler event.EonPublicKeyHandler
2425

2526
keyBroadcastCh chan *bindings.KeyBroadcastContractEonKeyBroadcast
26-
ksManager *bindings.KeyperSetManager
2727
}
2828

2929
func (s *EonPubKeySyncer) Start(ctx context.Context, runner service.Runner) error {
@@ -59,7 +59,7 @@ func (s *EonPubKeySyncer) Start(ctx context.Context, runner service.Runner) erro
5959
runner.Defer(func() {
6060
close(s.keyBroadcastCh)
6161
})
62-
subs, err := s.Contract.WatchEonKeyBroadcast(watchOpts, s.keyBroadcastCh)
62+
subs, err := s.KeyBroadcast.WatchEonKeyBroadcast(watchOpts, s.keyBroadcastCh)
6363
// FIXME: what to do on subs.Error()
6464
if err != nil {
6565
return err
@@ -79,13 +79,13 @@ func (s *EonPubKeySyncer) getInitialPubKeys(ctx context.Context) ([]*event.EonPu
7979
Context: ctx,
8080
BlockNumber: s.StartBlock.Int,
8181
}
82-
numKS, err := s.ksManager.GetNumKeyperSets(opts)
82+
numKS, err := s.KeyperSetManager.GetNumKeyperSets(opts)
8383
if err != nil {
8484
return nil, err
8585
}
8686
// this blocknumber specifies the argument to the contract
8787
// getter
88-
activeEon, err := s.ksManager.GetKeyperSetIndexByBlock(opts, s.StartBlock.Uint64())
88+
activeEon, err := s.KeyperSetManager.GetKeyperSetIndexByBlock(opts, s.StartBlock.Uint64())
8989
if err != nil {
9090
return nil, err
9191
}
@@ -118,7 +118,7 @@ func (s *EonPubKeySyncer) GetEonPubKeyForEon(ctx context.Context, opts *bind.Cal
118118
Context: ctx,
119119
}
120120
}
121-
key, err := s.Contract.GetEonKey(opts, eon)
121+
key, err := s.KeyBroadcast.GetEonKey(opts, eon)
122122
// XXX: can the key be a null byte?
123123
// I think we rather get a index out of bounds error.
124124
if err != nil {

0 commit comments

Comments
 (0)