refactor(l2): l1_watcher make deposits unique #1321
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
We need a way to identify deposit. In order to do it, we can use a "depositId" that works as a counter. It is being incremented every time a deposit event is emitted.
We've been starting the
l1_watcher
from block 0. Fetching logs from block 0 will throw errors if asking light_nodes and it's wasteful. We will need a more robust way to keep track of it, for now, we should start from the first block in which theCommonBridge
was deployed.Description
depositId
to construct the deposit_hash (keccak(to || value || depositId)
)depositId
from the logs to avoid duplicating the mint transaction. And use it as the mint transaction'snonce
. In this way, the [Committer] can create theStateDiff
to send thecommit
transaction to the OnChainProposer.depositId
.CommonBridge
was deployed.Closes #1191