-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: integrate L1 mock with services #438
Conversation
ce9a891
to
58b4a6c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!
r.metrics.failedFinalizations.WithLabelValues("settlement").Inc() | ||
continue | ||
} | ||
r.metrics.finalizedTransfers.WithLabelValues("settlement").Inc() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Am I interpreting this behavior correctly - if the finalizeTransfer
transaction is not included in a block (or is reorged out), the relayer will simply skip that transfer and not retry?
Note transfers are enforced to be delivered FIFO in the bridge contracts. This means in the edge case of a tx not getting included in a block, the relayer needs to retry the relevant finalizeTransfer
tx until that tx is included.
Further, the relayer needs to eventually confirm each finalizeTransfer tx is included in the finalized destination chain. In case of reorg this requires retries
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
return nil | ||
} | ||
|
||
func (s *Store) IsSettled( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Related to above comment, seems "settled" here corresponds to the finalizeTransfer
tx being included in the latest block of the destination chain?
We may need to add another state to confirm each transfer is eventually "finalized", ie. the finalizeTransfer
tx is in the finalized destination block
*l1gateway.L1gatewayFilterer | ||
} | ||
|
||
func (f *L1Filterer) WaitForTransferFinalized(ctx context.Context, startBlock uint64, index *big.Int) error { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe this function is not reorg resistant, since the event query by default uses "latest" block and not "finalized"
infrastructure/nomad/playbooks/templates/jobs/contracts-deployer.nomad.j2
Show resolved
Hide resolved
138a57f
to
31d4855
Compare
479482a
to
1254ebe
Compare
Describe your changes
L1 mock integration with all services within the cluster
Fixes # (issue)
Checklist before requesting a review