Files
scroll/contracts/docs/apis/L2StandardERC20Gateway.md
Xi Lin 7e99c5148d feat(contracts): new bridge contracts (#288)
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
Co-authored-by: Thegaram <th307q@gmail.com>
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
2023-02-20 13:44:49 -08:00

5.5 KiB

L2StandardERC20Gateway

L2StandardERC20Gateway

The L2StandardERC20Gateway is used to withdraw standard ERC20 tokens in layer 2 and finalize deposit the tokens from layer 1.

The withdrawn ERC20 tokens will be burned directly. On finalizing deposit, the corresponding token will be minted and transfered to the recipient. Any ERC20 that requires non-standard functionality should use a separate gateway.

Methods

counterpart

function counterpart() external view returns (address)

The address of corresponding L1/L2 Gateway contract.

Returns

Name Type Description
_0 address undefined

finalizeDepositERC20

function finalizeDepositERC20(address _l1Token, address _l2Token, address _from, address _to, uint256 _amount, bytes _data) external payable

Complete a deposit from L1 to L2 and send fund to recipient's account in L2.

Make this function payable to handle WETH deposit/withdraw. The function should only be called by L2ScrollMessenger. The function should also only be called by L1ERC20Gateway in L1.

Parameters

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

getL1ERC20Address

function getL1ERC20Address(address _l2Token) external view returns (address)

Return the corresponding l1 token address given l2 token address.

Parameters

Name Type Description
_l2Token address undefined

Returns

Name Type Description
_0 address undefined

getL2ERC20Address

function getL2ERC20Address(address _l1Token) external view returns (address)

Return the corresponding l2 token address given l1 token address.

Parameters

Name Type Description
_l1Token address undefined

Returns

Name Type Description
_0 address undefined

initialize

function initialize(address _counterpart, address _router, address _messenger, address _tokenFactory) external nonpayable

Parameters

Name Type Description
_counterpart address undefined
_router address undefined
_messenger address undefined
_tokenFactory address undefined

messenger

function messenger() external view returns (address)

The address of corresponding L1ScrollMessenger/L2ScrollMessenger contract.

Returns

Name Type Description
_0 address undefined

router

function router() external view returns (address)

The address of L1GatewayRouter/L2GatewayRouter contract.

Returns

Name Type Description
_0 address undefined

tokenFactory

function tokenFactory() external view returns (address)

The address of ScrollStandardERC20Factory.

Returns

Name Type Description
_0 address undefined

withdrawERC20

function withdrawERC20(address _token, uint256 _amount, uint256 _gasLimit) external payable

Withdraw of some token to a caller's account on L1.

Make this function payable to send relayer fee in Ether.

Parameters

Name Type Description
_token address undefined
_amount uint256 undefined
_gasLimit uint256 undefined

withdrawERC20

function withdrawERC20(address _token, address _to, uint256 _amount, uint256 _gasLimit) external payable

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

Make this function payable to send relayer fee in Ether.

Parameters

Name Type Description
_token address undefined
_to address undefined
_amount uint256 undefined
_gasLimit uint256 undefined

withdrawERC20AndCall

function withdrawERC20AndCall(address _token, address _to, uint256 _amount, bytes _data, uint256 _gasLimit) external payable

Withdraw of some token to a recipient's account on L1 and call.

Make this function payable to send relayer fee in Ether.

Parameters

Name Type Description
_token address undefined
_to address undefined
_amount uint256 undefined
_data bytes undefined
_gasLimit uint256 undefined

Events

FinalizeDepositERC20

event FinalizeDepositERC20(address indexed l1Token, address indexed l2Token, address indexed from, address to, uint256 amount, bytes data)

Emitted when ERC20 token is deposited from L1 to L2 and transfer to recipient.

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

WithdrawERC20

event WithdrawERC20(address indexed l1Token, address indexed l2Token, address indexed from, address to, uint256 amount, bytes data)

Emitted when someone withdraw ERC20 token from L2 to L1.

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