Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
76b9fff7
Unverified
Commit
76b9fff7
authored
Sep 06, 2023
by
OptimismBot
Committed by
GitHub
Sep 06, 2023
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #7118 from ethereum-optimism/indexer.bridge.bugfix
fix(indexer): bridge l2 starting height & l1/l2 logs
parents
415537cf
0784b3b1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
9 additions
and
9 deletions
+9
-9
bridge_transactions.go
indexer/database/bridge_transactions.go
+1
-1
l1_bridge_processor.go
indexer/processors/bridge/l1_bridge_processor.go
+4
-4
l2_bridge_processor.go
indexer/processors/bridge/l2_bridge_processor.go
+4
-4
No files found.
indexer/database/bridge_transactions.go
View file @
76b9fff7
...
...
@@ -192,7 +192,7 @@ func (db *bridgeTransactionsDB) L2LatestBlockHeader() (*L2BlockHeader, error) {
l2Query
:=
db
.
gorm
.
Table
(
"(?) AS l1_deposit_events"
,
l1DepositQuery
)
l2Query
=
l2Query
.
Joins
(
"INNER JOIN l2_block_headers ON l2_block_headers.timestamp = l1_deposit_events.timestamp"
)
l2Query
=
l2Query
.
Select
(
"l2_block_headers.*"
)
l2Query
=
l2Query
.
Order
(
"l2_block_headers.timestamp DESC"
)
.
Select
(
"l2_block_headers.*"
)
var
l2Header
L2BlockHeader
result
:=
l2Query
.
Take
(
&
l2Header
)
...
...
indexer/processors/bridge/l1_bridge_processor.go
View file @
76b9fff7
...
...
@@ -64,7 +64,7 @@ func L1ProcessInitiatedBridgeEvents(log log.Logger, db *database.DB, chainConfig
// extract the deposit hash from the previous TransactionDepositedEvent
portalDeposit
,
ok
:=
portalDeposits
[
logKey
{
sentMessage
.
Event
.
BlockHash
,
sentMessage
.
Event
.
LogIndex
-
1
}]
if
!
ok
{
return
fmt
.
Errorf
(
"
missing expected preceding TransactionDeposit for SentMessage
. tx_hash = %s"
,
sentMessage
.
Event
.
TransactionHash
)
return
fmt
.
Errorf
(
"
expected TransactionDeposit preceding SentMessage event
. tx_hash = %s"
,
sentMessage
.
Event
.
TransactionHash
)
}
l1BridgeMessages
[
i
]
=
database
.
L1BridgeMessage
{
TransactionSourceHash
:
portalDeposit
.
DepositTx
.
SourceHash
,
BridgeMessage
:
sentMessage
.
BridgeMessage
}
...
...
@@ -93,11 +93,11 @@ func L1ProcessInitiatedBridgeEvents(log log.Logger, db *database.DB, chainConfig
// extract the cross domain message hash & deposit source hash from the following events
portalDeposit
,
ok
:=
portalDeposits
[
logKey
{
initiatedBridge
.
Event
.
BlockHash
,
initiatedBridge
.
Event
.
LogIndex
+
1
}]
if
!
ok
{
return
fmt
.
Errorf
(
"
missing expected following TransactionDeposit for BridgeInitiated
. tx_hash = %s"
,
initiatedBridge
.
Event
.
TransactionHash
)
return
fmt
.
Errorf
(
"
expected TransactionDeposit following BridgeInitiated event
. tx_hash = %s"
,
initiatedBridge
.
Event
.
TransactionHash
)
}
sentMessage
,
ok
:=
sentMessages
[
logKey
{
initiatedBridge
.
Event
.
BlockHash
,
initiatedBridge
.
Event
.
LogIndex
+
2
}]
if
!
ok
{
return
fmt
.
Errorf
(
"
missing expected following SentMessage for BridgeInitiated
. tx_hash = %s"
,
initiatedBridge
.
Event
.
TransactionHash
)
return
fmt
.
Errorf
(
"
expected SentMessage following TransactionDeposit event
. tx_hash = %s"
,
initiatedBridge
.
Event
.
TransactionHash
)
}
initiatedBridge
.
BridgeTransfer
.
CrossDomainMessageHash
=
&
sentMessage
.
BridgeMessage
.
MessageHash
...
...
@@ -215,7 +215,7 @@ func L1ProcessFinalizedBridgeEvents(log log.Logger, db *database.DB, chainConfig
finalizedBridge
:=
finalizedBridges
[
i
]
relayedMessage
,
ok
:=
relayedMessages
[
logKey
{
finalizedBridge
.
Event
.
BlockHash
,
finalizedBridge
.
Event
.
LogIndex
+
1
}]
if
!
ok
{
return
fmt
.
Errorf
(
"
missing following RelayedMessage for
BridgeFinalized event. tx_hash = %s"
,
finalizedBridge
.
Event
.
TransactionHash
)
return
fmt
.
Errorf
(
"
expected RelayedMessage following
BridgeFinalized event. tx_hash = %s"
,
finalizedBridge
.
Event
.
TransactionHash
)
}
// Since the message hash is computed from the relayed message, this ensures the deposit fields must match. For good measure,
...
...
indexer/processors/bridge/l2_bridge_processor.go
View file @
76b9fff7
...
...
@@ -63,7 +63,7 @@ func L2ProcessInitiatedBridgeEvents(log log.Logger, db *database.DB, fromHeight
// extract the withdrawal hash from the previous MessagePassed event
messagePassed
,
ok
:=
messagesPassed
[
logKey
{
sentMessage
.
Event
.
BlockHash
,
sentMessage
.
Event
.
LogIndex
-
1
}]
if
!
ok
{
return
fmt
.
Errorf
(
"
missing expected preceding MessagePassedEvent for
SentMessage. tx_hash = %s"
,
sentMessage
.
Event
.
TransactionHash
)
return
fmt
.
Errorf
(
"
expected MessagePassedEvent preceding
SentMessage. tx_hash = %s"
,
sentMessage
.
Event
.
TransactionHash
)
}
l2BridgeMessages
[
i
]
=
database
.
L2BridgeMessage
{
TransactionWithdrawalHash
:
messagePassed
.
WithdrawalHash
,
BridgeMessage
:
sentMessage
.
BridgeMessage
}
...
...
@@ -92,11 +92,11 @@ func L2ProcessInitiatedBridgeEvents(log log.Logger, db *database.DB, fromHeight
// extract the cross domain message hash & deposit source hash from the following events
messagePassed
,
ok
:=
messagesPassed
[
logKey
{
initiatedBridge
.
Event
.
BlockHash
,
initiatedBridge
.
Event
.
LogIndex
+
1
}]
if
!
ok
{
return
fmt
.
Errorf
(
"
missing expected following MessagePassed for BridgeInitiated
. tx_hash = %s"
,
initiatedBridge
.
Event
.
TransactionHash
)
return
fmt
.
Errorf
(
"
expected MessagePassed following BridgeInitiated event
. tx_hash = %s"
,
initiatedBridge
.
Event
.
TransactionHash
)
}
sentMessage
,
ok
:=
sentMessages
[
logKey
{
initiatedBridge
.
Event
.
BlockHash
,
initiatedBridge
.
Event
.
LogIndex
+
2
}]
if
!
ok
{
return
fmt
.
Errorf
(
"
missing expected following SentMessage for BridgeInitiated
. tx_hash = %s"
,
initiatedBridge
.
Event
.
TransactionHash
)
return
fmt
.
Errorf
(
"
expected SentMessage following MessagePassed event
. tx_hash = %s"
,
initiatedBridge
.
Event
.
TransactionHash
)
}
initiatedBridge
.
BridgeTransfer
.
CrossDomainMessageHash
=
&
sentMessage
.
BridgeMessage
.
MessageHash
...
...
@@ -163,7 +163,7 @@ func L2ProcessFinalizedBridgeEvents(log log.Logger, db *database.DB, fromHeight
finalizedBridge
:=
finalizedBridges
[
i
]
relayedMessage
,
ok
:=
relayedMessages
[
logKey
{
finalizedBridge
.
Event
.
BlockHash
,
finalizedBridge
.
Event
.
LogIndex
+
1
}]
if
!
ok
{
return
fmt
.
Errorf
(
"
missing following RelayedMessage for
BridgeFinalized event. tx_hash = %s"
,
finalizedBridge
.
Event
.
TransactionHash
)
return
fmt
.
Errorf
(
"
expected RelayedMessage following
BridgeFinalized event. tx_hash = %s"
,
finalizedBridge
.
Event
.
TransactionHash
)
}
// Since the message hash is computed from the relayed message, this ensures the withdrawal fields must match. For good measure,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment