L2StandardBridge.md 4.75 KB

L2StandardBridge

L2StandardBridge

The L2 Standard bridge is a contract which works together with the L1 Standard bridge to enable ETH and ERC20 transitions between L1 and L2. This contract acts as a minter for new tokens when it hears about deposits into the L1 Standard bridge. This contract also acts as a burner of the tokens intended for withdrawal, informing the L1 bridge to release L1 funds.

Methods

finalizeDeposit

function finalizeDeposit(address _l1Token, address _l2Token, address _from, address _to, uint256 _amount, bytes _data) external nonpayable

Complete a deposit from L1 to L2, and credits funds to the recipient's balance of this L2 token. This call will fail if it did not originate from a corresponding deposit in L1StandardTokenBridge.

Parameters

Name Type Description
_l1Token address Address for the l1 token this is called with
_l2Token address Address for the l2 token this is called with
_from address Account to pull the deposit from on L2.
_to address Address to receive the withdrawal at
_amount uint256 Amount of the token to withdraw
_data bytes Data provider by the sender on L1. This data is provided solely as a convenience for external contracts. Aside from enforcing a maximum length, these contracts provide no guarantees about its content.

l1TokenBridge

function l1TokenBridge() external view returns (address)

get the address of the corresponding L1 bridge contract.

Returns

Name Type Description
_0 address Address of the corresponding L1 bridge contract.

messenger

function messenger() external view returns (address)

Returns

Name Type Description
_0 address undefined

withdraw

function withdraw(address _l2Token, uint256 _amount, uint32 _l1Gas, bytes _data) external nonpayable

initiate a withdraw of some tokens to the caller's account on L1

Parameters

Name Type Description
_l2Token address Address of L2 token where withdrawal was initiated.
_amount uint256 Amount of the token to withdraw. param _l1Gas Unused, but included for potential forward compatibility considerations.
_l1Gas uint32 undefined
_data bytes Optional data to forward to L1. This data is provided solely as a convenience for external contracts. Aside from enforcing a maximum length, these contracts provide no guarantees about its content.

withdrawTo

function withdrawTo(address _l2Token, address _to, uint256 _amount, uint32 _l1Gas, bytes _data) external nonpayable

initiate a withdraw of some token to a recipient's account on L1.

Parameters

Name Type Description
_l2Token address Address of L2 token where withdrawal is initiated.
_to address L1 adress to credit the withdrawal to.
_amount uint256 Amount of the token to withdraw. param _l1Gas Unused, but included for potential forward compatibility considerations.
_l1Gas uint32 undefined
_data bytes Optional data to forward to L1. This data is provided solely as a convenience for external contracts. Aside from enforcing a maximum length, these contracts provide no guarantees about its content.

Events

DepositFailed

event DepositFailed(address indexed _l1Token, address indexed _l2Token, address indexed _from, address _to, uint256 _amount, bytes _data)

Parameters

Name Type Description
_l1Token indexed address undefined
_l2Token indexed address undefined
_from indexed address undefined
_to address undefined
_amount uint256 undefined
_data bytes undefined

DepositFinalized

event DepositFinalized(address indexed _l1Token, address indexed _l2Token, address indexed _from, address _to, uint256 _amount, bytes _data)

Parameters

Name Type Description
_l1Token indexed address undefined
_l2Token indexed address undefined
_from indexed address undefined
_to address undefined
_amount uint256 undefined
_data bytes undefined

WithdrawalInitiated

event WithdrawalInitiated(address indexed _l1Token, address indexed _l2Token, address indexed _from, address _to, uint256 _amount, bytes _data)

Parameters

Name Type Description
_l1Token indexed address undefined
_l2Token indexed address undefined
_from indexed address undefined
_to address undefined
_amount uint256 undefined
_data bytes undefined