L2StandardBridge

Blast

0x4200000000000000000000000000000000000010

Proxy implementation: 0xc0d3c0d3c0d3c0d3c0d3c0d3c0d3c0d3c2d30010

Solidity v0.8.15+commit.e14f2714

🤖
Query this contract from your AI
Reference: 0x4200000000000000000000000000000000000010
Sample prompt: "Tell me the current state of blast/0x4200000000000000000000000000000000000010"
No AI wired up yet? → mcp.smarts.md
Blast is a docs-only chain on Smarts: source code and ABI are indexed, but live on-chain data (state, recent events, admin profile) is not currently available. AI agents can still query get_contract_info and get_contract_source via MCP.

Overview

Read Functions
7
Write Functions
10
Events
7

Read Functions

MESSENGER() view

Getter for messenger contract.

Returns

Name Type Description
address Messenger contract on this domain.
OTHER_BRIDGE() view

Returns

Name Type Description
address
deposits(address, address) view

Parameters

Name Type Description
address
address

Returns

Name Type Description
uint256
l1TokenBridge() view

Retrieves the access of the corresponding L1 bridge contract.

Returns

Name Type Description
address Address of the corresponding L1 bridge contract.
messenger() view

Returns

Name Type Description
address
otherBridge() view

Getter for the remote domain bridge contract.

Returns

Name Type Description
address
version() view

Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling.

Returns

Name Type Description
string Semver contract version as a string.

Write Functions

bridgeERC20(_localToken: address, _remoteToken: address, _amount: uint256, _minGasLimit: uint32, _extraData: bytes) nonpayable

Sends ERC20 tokens to the sender's address on the other chain. Note that if the ERC20 token on the other chain does not recognize the local token as the correct pair token, the ERC20 bridge will fail and the tokens will be returned to sender on this chain.

Parameters

Name Type Description
_localToken address Address of the ERC20 on this chain.
_remoteToken address Address of the corresponding token on the remote chain.
_amount uint256 Amount of local tokens to deposit.
_minGasLimit uint32 Minimum amount of gas that the bridge can be relayed with.
_extraData bytes Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.
bridgeERC20To(_localToken: address, _remoteToken: address, _to: address, _amount: uint256, _minGasLimit: uint32, _extraData: bytes) nonpayable

Sends ERC20 tokens to a receiver's address on the other chain. Note that if the ERC20 token on the other chain does not recognize the local token as the correct pair token, the ERC20 bridge will fail and the tokens will be returned to sender on this chain.

Parameters

Name Type Description
_localToken address Address of the ERC20 on this chain.
_remoteToken address Address of the corresponding token on the remote chain.
_to address Address of the receiver.
_amount uint256 Amount of local tokens to deposit.
_minGasLimit uint32 Minimum amount of gas that the bridge can be relayed with.
_extraData bytes Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.
bridgeETH(_minGasLimit: uint32, _extraData: bytes) payable

Sends ETH to the sender's address on the other chain.

Parameters

Name Type Description
_minGasLimit uint32 Minimum amount of gas that the bridge can be relayed with.
_extraData bytes Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.
bridgeETHTo(_to: address, _minGasLimit: uint32, _extraData: bytes) payable

Sends ETH to a receiver's address on the other chain. Note that if ETH is sent to a smart contract and the call fails, the ETH will be temporarily locked in the StandardBridge on the other chain until the call is replayed. If the call cannot be replayed with any amount of gas (call always reverts), then the ETH will be permanently locked in the StandardBridge on the other chain. ETH will also be locked if the receiver is the other bridge, because finalizeBridgeETH will revert in that case.

Parameters

Name Type Description
_to address Address of the receiver.
_minGasLimit uint32 Minimum amount of gas that the bridge can be relayed with.
_extraData bytes Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.
finalizeBridgeERC20(_localToken: address, _remoteToken: address, _from: address, _to: address, _amount: uint256, _extraData: bytes) nonpayable

Finalizes an ERC20 bridge on this chain. Can only be triggered by the other StandardBridge contract on the remote chain.

Parameters

Name Type Description
_localToken address Address of the ERC20 on this chain.
_remoteToken address Address of the corresponding token on the remote chain.
_from address Address of the sender.
_to address Address of the receiver.
_amount uint256 Amount of the ERC20 being bridged.
_extraData bytes Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.
finalizeBridgeETH(_from: address, _to: address, _amount: uint256, _extraData: bytes) payable

Finalizes an ETH bridge on this chain. Can only be triggered by the other StandardBridge contract on the remote chain.

Parameters

Name Type Description
_from address Address of the sender.
_to address Address of the receiver.
_amount uint256 Amount of ETH being bridged.
_extraData bytes Extra data to be sent with the transaction. Note that the recipient will not be triggered with this data, but it will be emitted and can be used to identify the transaction.
finalizeDeposit(_l1Token: address, _l2Token: address, _from: address, _to: address, _amount: uint256, _extraData: bytes) payable

Finalizes a deposit from L1 to L2. To finalize a deposit of ether, use address(0) and the l1Token and the Legacy ERC20 ether predeploy address as the l2Token.

Parameters

Name Type Description
_l1Token address Address of the L1 token to deposit.
_l2Token address Address of the corresponding L2 token.
_from address Address of the depositor.
_to address Address of the recipient.
_amount uint256 Amount of the tokens being deposited.
_extraData bytes Extra data attached to the deposit.
initialize() nonpayable

Initializer

withdraw(_l2Token: address, _amount: uint256, _minGasLimit: uint32, _extraData: bytes) payable

Initiates a withdrawal from L2 to L1. This function only works with OptimismMintableERC20 tokens or ether. Use the `bridgeERC20` function to bridge native L2 tokens to L1.

Parameters

Name Type Description
_l2Token address Address of the L2 token to withdraw.
_amount uint256 Amount of the L2 token to withdraw.
_minGasLimit uint32 Minimum gas limit to use for the transaction.
_extraData bytes Extra data attached to the withdrawal.
withdrawTo(_l2Token: address, _to: address, _amount: uint256, _minGasLimit: uint32, _extraData: bytes) payable

Initiates a withdrawal from L2 to L1 to a target account on L1. Note that if ETH is sent to a contract on L1 and the call fails, then that ETH will be locked in the L1StandardBridge. ETH may be recoverable if the call can be successfully replayed by increasing the amount of gas supplied to the call. If the call will fail for any amount of gas, then the ETH will be locked permanently. This function only works with OptimismMintableERC20 tokens or ether. Use the `bridgeERC20To` function to bridge native L2 tokens to L1.

Parameters

Name Type Description
_l2Token address Address of the L2 token to withdraw.
_to address Recipient account on L1.
_amount uint256 Amount of the L2 token to withdraw.
_minGasLimit uint32 Minimum gas limit to use for the transaction.
_extraData bytes Extra data attached to the withdrawal.

Events

DepositFinalized(l1Token: address, l2Token: address, from: address, to: address, amount: uint256, extraData: bytes)

Emitted whenever an ERC20 deposit is finalized.

Name Type Indexed Description
l1Token address Address of the token on L1.
l2Token address Address of the corresponding token on L2.
from address Address of the depositor.
to address Address of the recipient on L2.
amount uint256 Amount of the ERC20 deposited.
extraData bytes Extra data attached to the deposit.
ERC20BridgeFinalized(localToken: address, remoteToken: address, from: address, to: address, amount: uint256, extraData: bytes)

Emitted when an ERC20 bridge is finalized on this chain.

Name Type Indexed Description
localToken address Address of the ERC20 on this chain.
remoteToken address Address of the ERC20 on the remote chain.
from address Address of the sender.
to address Address of the receiver.
amount uint256 Amount of the ERC20 sent.
extraData bytes Extra data sent with the transaction.
ERC20BridgeInitiated(localToken: address, remoteToken: address, from: address, to: address, amount: uint256, extraData: bytes)

Emitted when an ERC20 bridge is initiated to the other chain.

Name Type Indexed Description
localToken address Address of the ERC20 on this chain.
remoteToken address Address of the ERC20 on the remote chain.
from address Address of the sender.
to address Address of the receiver.
amount uint256 Amount of the ERC20 sent.
extraData bytes Extra data sent with the transaction.
ETHBridgeFinalized(from: address, to: address, amount: uint256, extraData: bytes)

Emitted when an ETH bridge is finalized on this chain.

Name Type Indexed Description
from address Address of the sender.
to address Address of the receiver.
amount uint256 Amount of ETH sent.
extraData bytes Extra data sent with the transaction.
ETHBridgeInitiated(from: address, to: address, amount: uint256, extraData: bytes)

Emitted when an ETH bridge is initiated to the other chain.

Name Type Indexed Description
from address Address of the sender.
to address Address of the receiver.
amount uint256 Amount of ETH sent.
extraData bytes Extra data sent with the transaction.
Initialized(version: uint8)
Name Type Indexed Description
version uint8
WithdrawalInitiated(l1Token: address, l2Token: address, from: address, to: address, amount: uint256, extraData: bytes)

Emitted whenever a withdrawal from L2 to L1 is initiated.

Name Type Indexed Description
l1Token address Address of the token on L1.
l2Token address Address of the corresponding token on L2.
from address Address of the withdrawer.
to address Address of the recipient on L1.
amount uint256 Amount of the ERC20 withdrawn.
extraData bytes Extra data attached to the withdrawal.