Function: finalizeDeposit(address _l1Token, address _l2Token, address _from, address _to, uint256 _amount, byte[] _data)
Finalizes deposit of tokens from L1 to L2.
Inputs
_l1Token
Control: User.
Constraints: Discarded.
Impact: The L1 token.
_l2Token
Control: User.
Constraints: Discarded.
Impact: The L2 token.
_from
Control: User.
Constraints: Discarded.
Impact: The address from which deposit takes place.
_to
Control: User.
Constraints: Discarded.
Impact: The address to which deposit takes place.
_amount
Control: User.
Constraints: Discarded.
Impact: Amount of tokens.
_data
Control: User.
Constraints: Discarded.
Impact: Optional data.
Branches and code coverage (including function calls)
Intended branches
Successfully finalizes deposit if all conditions are met.
Negative behavior
Reverts on calls from a non-
crossDomainMessenger
L2 account.
Function call analysis
finalizeDeposit -> ERC165Checker.supportsInterface(_l2Token, 0x1d1d8b63)
What is controllable?
_l2Token
.If return value controllable, how is it used and how can it go wrong? Discarded.
What happens if it reverts, reenters, or does other unusual control flow? Discarded.
finalizeDeposit -> IL2StandardERC20(_l2Token).l1Token()
What is controllable?
_l2Token
.If return value controllable, how is it used and how can it go wrong? Discarded.
What happens if it reverts, reenters, or does other unusual control flow? Discarded.
finalizeDeposit -> IL2StandardERC20(_l2Token).mint(_to, _amount)
What is controllable?
_l2Token
,_to
, and_amount
.If return value controllable, how is it used and how can it go wrong? Discarded.
What happens if it reverts, reenters, or does other unusual control flow? Discarded.
finalizeDeposit -> sendCrossDomainMessage(l1TokenBridge, 0, message)
What is controllable?
l1TokenBridge
.If return value controllable, how is it used and how can it go wrong? Discarded.
What happens if it reverts, reenters, or does other unusual control flow? Discarded.