Notes
- L1 to L2 only via this contract. For L2 to L1 withdrawals, use
ArbSys.sendTxToL1()on Arbitrum (takes 7 days) - The router auto-routes tokens to the correct gateway (standard, custom, or WETH gateway)
- Approval target: approve tokens to the gateway returned by
getGateway(token), NOT to the router itself msg.valuemust cover:maxSubmissionCost + (maxGas * gasPriceBid)for L2 execution- L1 to L2 deposits finalize in ~10-15 minutes (after L1 finality + sequencer inclusion)
- L2 to L1 withdrawals require 7-day challenge period before funds can be claimed on L1
- For ETH deposits, send ETH directly to the Arbitrum Delayed Inbox (no token approval needed)
- Canonical bridge, secured by the Arbitrum rollup itself
Its names in a program
On Ethereum,ArbitrumBridge is a namespace: its contracts need no import.
Deployments
ABI
ArbitrumL1GatewayRouterABI
import ArbitrumL1GatewayRouterABI from "./protocols/arbitrum-bridge/ArbitrumL1GatewayRouterABI.json"; Speaks for: l1GatewayRouter.
outboundTransfer(address _token, address _to, uint256 _amount, uint256 _maxGas, uint256 _gasPriceBid, bytes _data) payable returns (bytes)getGateway(address _token) view returns (address)
Next steps
- Protocols: the other protocols, by what they do.
- Protocols and tokens: calling a contract by its namespace, or through its ABI.
- Glossary: the words these pages use, in plain terms.
