Skip to content

Commit e3eeaef

Browse files
backward let event indexing scaffolding
1 parent 8fa0567 commit e3eeaef

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

bridgesync/downloader.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ var (
5252
setClaimEventSignature = crypto.Keccak256Hash([]byte(
5353
"SetClaim(bytes32)",
5454
))
55+
backwardLETEventSignature = crypto.Keccak256Hash([]byte("BackwardLET(uint256,bytes32,uint256,bytes32)"))
5556

5657
claimAssetEtrogMethodID = common.Hex2Bytes("ccaa2d11")
5758
claimMessageEtrogMethodID = common.Hex2Bytes("f5efcd79")
@@ -110,6 +111,10 @@ func buildAppender(
110111
appender[removeLegacySovereignTokenEventSignature] = buildRemoveLegacyTokenHandler(bridgeDeployment.agglayerBridgeL2)
111112
appender[unsetClaimEventSignature] = buildUnsetClaimEventHandler(bridgeDeployment.agglayerBridgeL2)
112113
appender[setClaimEventSignature] = buildSetClaimEventHandler(bridgeDeployment.agglayerBridgeL2)
114+
appender[backwardLETEventSignature] = buildBackwardLETEventHandler(bridgeDeployment.agglayerBridgeL2)
115+
116+
default:
117+
return nil, fmt.Errorf("unsupported bridge deployment kind: %d", bridgeDeployment.kind)
113118
}
114119

115120
return appender, nil
@@ -419,6 +424,26 @@ func buildSetClaimEventHandler(contract *agglayerbridgel2.Agglayerbridgel2) func
419424
}
420425
}
421426

427+
// buildBackwardLETEventHandler creates a handler for the BackwardLET event log
428+
func buildBackwardLETEventHandler(contract *agglayerbridgel2.Agglayerbridgel2) func(*sync.EVMBlock, types.Log) error {
429+
return func(b *sync.EVMBlock, l types.Log) error {
430+
event, err := contract.ParseBackwardLET(l)
431+
if err != nil {
432+
return fmt.Errorf("error parsing BackwardLET event log %+v: %w", l, err)
433+
}
434+
435+
b.Events = append(b.Events, Event{BackwardLET: &BackwardLET{
436+
BlockNum: b.Num,
437+
BlockPos: uint64(l.Index),
438+
PreviousDepositCount: event.PreviousDepositCount,
439+
PreviousRoot: event.PreviousRoot,
440+
NewDepositCount: event.NewDepositCount,
441+
NewRoot: event.NewRoot,
442+
}})
443+
return nil
444+
}
445+
}
446+
422447
type Call struct {
423448
From common.Address `json:"from"`
424449
To common.Address `json:"to"`

bridgesync/processor.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ func (u *UnsetClaim) String() string {
484484
}
485485

486486
// SetClaim representation of a SetClaim event,
487-
// that is emitted by the bridge contract when a claim is set.
487+
// that is emitted by the L2 bridge contract when a claim is set.
488488
type SetClaim struct {
489489
BlockNum uint64 `meddler:"block_num"`
490490
BlockPos uint64 `meddler:"block_pos"`
@@ -504,6 +504,17 @@ func (s *SetClaim) String() string {
504504
globalIndexStr, s.CreatedAt)
505505
}
506506

507+
// BackwardLET representation of a BackwardLET event,
508+
// that is emitted by the L2 bridge contract when a LET is rolled back.
509+
type BackwardLET struct {
510+
BlockNum uint64 `meddler:"block_num"`
511+
BlockPos uint64 `meddler:"block_pos"`
512+
PreviousDepositCount *big.Int `meddler:"previous_deposit_count,bigint"`
513+
PreviousRoot common.Hash `meddler:"previous_root,hash"`
514+
NewDepositCount *big.Int `meddler:"new_deposit_count,bigint"`
515+
NewRoot common.Hash `meddler:"new_root,hash"`
516+
}
517+
507518
// Event combination of bridge, claim, token mapping and legacy token migration events
508519
type Event struct {
509520
Bridge *Bridge
@@ -513,6 +524,7 @@ type Event struct {
513524
RemoveLegacyToken *RemoveLegacyToken
514525
UnsetClaim *UnsetClaim
515526
SetClaim *SetClaim
527+
BackwardLET *BackwardLET
516528
}
517529

518530
func (e Event) String() string {

0 commit comments

Comments
 (0)