Skip to content

Commit be3274e

Browse files
committed
fix: use log block number for refresh session iD
1 parent e264d1b commit be3274e

File tree

2 files changed

+10
-15
lines changed

2 files changed

+10
-15
lines changed

chains/evm/calls/events/listener.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010

1111
"github.com/ethereum/go-ethereum/accounts/abi"
1212
"github.com/ethereum/go-ethereum/common"
13+
"github.com/ethereum/go-ethereum/core/types"
1314
ethTypes "github.com/ethereum/go-ethereum/core/types"
1415
"github.com/rs/zerolog/log"
1516

@@ -45,12 +46,11 @@ func (l *Listener) FetchKeygenEvents(ctx context.Context, contractAddress common
4546
return logs, nil
4647
}
4748

48-
func (l *Listener) FetchRefreshEvents(ctx context.Context, contractAddress common.Address, startBlock *big.Int, endBlock *big.Int) ([]*Refresh, error) {
49+
func (l *Listener) FetchRefreshEvents(ctx context.Context, contractAddress common.Address, startBlock *big.Int, endBlock *big.Int) (*Refresh, types.Log, error) {
4950
logs, err := l.client.FetchEventLogs(ctx, contractAddress, string(KeyRefreshSig), startBlock, endBlock)
5051
if err != nil {
51-
return nil, err
52+
return nil, types.Log{}, err
5253
}
53-
refreshEvents := make([]*Refresh, 0)
5454

5555
for _, re := range logs {
5656
r, err := l.UnpackRefresh(l.abi, re.Data)
@@ -59,10 +59,10 @@ func (l *Listener) FetchRefreshEvents(ctx context.Context, contractAddress commo
5959
continue
6060
}
6161

62-
refreshEvents = append(refreshEvents, r)
62+
return r, re, nil
6363
}
6464

65-
return refreshEvents, nil
65+
return nil, types.Log{}, nil
6666
}
6767

6868
func (l *Listener) UnpackRefresh(abi abi.ABI, data []byte) (*Refresh, error) {

chains/evm/listener/tss.go

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import (
2626

2727
type EventListener interface {
2828
FetchKeygenEvents(ctx context.Context, address common.Address, startBlock *big.Int, endBlock *big.Int) ([]types.Log, error)
29-
FetchRefreshEvents(ctx context.Context, address common.Address, startBlock *big.Int, endBlock *big.Int) ([]*events.Refresh, error)
29+
FetchRefreshEvents(ctx context.Context, address common.Address, startBlock *big.Int, endBlock *big.Int) (*events.Refresh, types.Log, error)
3030
}
3131

3232
type KeygenEventHandler struct {
@@ -143,22 +143,17 @@ func (eh *RefreshEventHandler) HandleEvents(
143143
startBlock *big.Int,
144144
endBlock *big.Int,
145145
) error {
146-
refreshEvents, err := eh.eventListener.FetchRefreshEvents(
146+
refreshEvent, l, err := eh.eventListener.FetchRefreshEvents(
147147
context.Background(), eh.bridgeAddress, startBlock, endBlock,
148148
)
149149
if err != nil {
150150
return fmt.Errorf("unable to fetch keygen events because of: %+v", err)
151151
}
152-
if len(refreshEvents) == 0 {
152+
if refreshEvent == nil {
153153
return nil
154154
}
155155

156-
hash := refreshEvents[len(refreshEvents)-1].Hash
157-
if hash == "" {
158-
log.Error().Msgf("Hash cannot be empty string")
159-
return nil
160-
}
161-
topology, err := eh.topologyProvider.NetworkTopology(hash)
156+
topology, err := eh.topologyProvider.NetworkTopology(refreshEvent.Hash)
162157
if err != nil {
163158
log.Error().Err(err).Msgf("Failed fetching network topology")
164159
return nil
@@ -177,7 +172,7 @@ func (eh *RefreshEventHandler) HandleEvents(
177172
)
178173

179174
resharing := resharing.NewResharing(
180-
eh.sessionID(startBlock), topology.Threshold, eh.host, eh.communication, eh.ecdsaStorer,
175+
eh.sessionID(new(big.Int).SetUint64(l.BlockNumber)), topology.Threshold, eh.host, eh.communication, eh.ecdsaStorer,
181176
)
182177
err = eh.coordinator.Execute(context.Background(), []tss.TssProcess{resharing}, make(chan interface{}, 1), peer.ID(""))
183178
if err != nil {

0 commit comments

Comments
 (0)