<<Interface>>
IArbToken
External:
bridgeMint(account: address, amount: uint256)
bridgeBurn(account: address, amount: uint256)
l1Address(): address
StandardArbERC20
Public:
bridgeInit(_l1Address: address, _data: bytes)
<<Library>>
BytesParserWithDefault
Internal:
toUint8(input: bytes, defaultValue: uint8): uint8
toString(input: bytes, defaultValue: string): string
<<Abstract>>
L2GatewayToken
Public:
l2Gateway: address
l1Address: address
Internal:
initialize(_name: string, _symbol: string, _decimals: uint8, _l2Gateway: address, _l1Counterpart: address)
External:
bridgeMint(account: address, amount: uint256)
bridgeBurn(account: address, amount: uint256)
Public:
<<modifier>> onlyGateway()
<<Abstract>>
L2ArbitrumGateway
Public:
exitNum: uint256
Internal:
<<abstract>> handleNoContract(_l1Token: address, expectedL2Address: address, _from: address, _to: address, _amount: uint256, gatewayData: bytes): (shouldHalt: bool)
isSenderCounterpartGateway(): bool
_initialize(_l1Counterpart: address, _router: address)
createOutboundTx(_l1Token: address, _from: address, _to: address, _amount: uint256, _extraData: bytes): uint256
sendTxToL1(_from: address, _l1CallValue: uint256, _data: bytes): uint256
outboundEscrowTransfer(_l2Token: address, _from: address, _amount: uint256)
parseOutboundData(_data: bytes): (_from: address, _extraData: bytes)
inboundEscrowTransfer(_l2Address: address, _dest: address, _amount: uint256)
isSenderRouter(): bool
External:
<<payable>> finalizeInboundTransfer(_token: address, _from: address, _to: address, _amount: uint256, _data: bytes): bytes
Public:
<<payable>> outboundTransfer(_l1Token: address, _to: address, _amount: uint256, _data: bytes): bytes
<<payable>> outboundTransfer(_l1Token: address, _to: address, _amount: uint256, _maxGas: uint256, _gasPriceBid: uint256, _data: bytes): bytes
gasReserveIfCallRevert(): uint256
getOutboundCalldata(_token: address, _from: address, _to: address, _amount: uint256, _data: bytes): (outboundCalldata: bytes)
<<Abstract>>
ArbitrumGateway
Internal:
<<abstract>> inboundEscrowTransfer(_l2Address: address, _dest: address, _amount: uint256)
_initialize(_counterpartGateway: address, _router: address)
External:
<<abstract>> outboundTransfer(_l1Token: address, _to: address, _amount: uint256, _maxGas: uint256, _gasPriceBid: uint256, _data: bytes): bytes
<<abstract>> finalizeInboundTransfer(_token: address, _from: address, _to: address, _amount: uint256, _data: bytes): bytes
inboundEscrowAndCall(_l2Address: address, _amount: uint256, _from: address, _to: address, _data: bytes)
Public:
<<abstract>> gasReserveIfCallRevert(): uint256
<<event>> TransferAndCallTriggered(success: bool, _from: address, _to: address, _amount: uint256, callHookData: bytes)
<<Abstract>>
L2ArbitrumMessenger
Internal:
arbsysAddr: address
Internal:
sendTxToL1(_l1CallValue: uint256, _from: address, _to: address, _data: bytes): uint256
Public:
<<event>> TxToL1(_from: address, _to: address, _id: uint256, _data: bytes)
L2CustomGateway
Public:
l1ToL2Token: mapping(address=>address)
Internal:
handleNoContract(_l1Token: address, expectedL2Address: address, _from: address, _to: address, _amount: uint256, gatewayData: bytes): (shouldHalt: bool)
_calculateL2TokenAddress(l1ERC20: address): address
External:
calculateL2TokenAddress(l1ERC20: address): address
registerTokenFromL1(l1Address: address[], l2Address: address[])
Public:
initialize(_l1Counterpart: address, _router: address)
L2ERC20Gateway
Public:
beaconProxyFactory: address
Internal:
_calculateL2TokenAddress(l1ERC20: address): address
handleNoContract(l1ERC20: address, expectedL2Address: address, _from: address, _to: address, _amount: uint256, deployData: bytes): (shouldHalt: bool)
External:
postUpgradeInit(_beaconProxyFactory: address)
calculateL2TokenAddress(l1ERC20: address): address
Public:
initialize(_l1Counterpart: address, _router: address, _beaconProxyFactory: address)
cloneableProxyHash(): bytes32
getUserSalt(l1ERC20: address): bytes32
BeaconProxyFactory
Public:
cloneableProxyHash: bytes32
beacon: address
External:
initialize(_beacon: address)
createProxy(userSalt: bytes32): address
Public:
getSalt(user: address, userSalt: bytes32): bytes32
calculateExpectedAddress(user: address, userSalt: bytes32): address
calculateExpectedAddress(salt: bytes32): address
L2GatewayRouter
Internal:
isSenderCounterpartGateway(): bool
External:
setGateway(_l1Token: address[], _gateway: address[])
setDefaultGateway(newL2DefaultGateway: address)
Public:
<<payable>> outboundTransfer(_l1Token: address, _to: address, _amount: uint256, _data: bytes): bytes
initialize(_counterpartGateway: address, _defaultGateway: address)
<<Abstract>>
GatewayRouter
Internal:
ZERO_ADDR: address
BLACKLISTED: address
Public:
l1TokenToGateway: mapping(address=>address)
defaultGateway: address
Internal:
_initialize(_counterpartGateway: address, _defaultGateway: address)
isSenderRouter(): bool
_calculateL2TokenAddress(l1ERC20: address): address
External:
<<payable>> finalizeInboundTransfer(_token: address, _from: address, _to: address, _amount: uint256, _data: bytes): bytes
Public:
<<payable>> outboundTransfer(_token: address, _to: address, _amount: uint256, _maxGas: uint256, _gasPriceBid: uint256, _data: bytes): bytes
<<event>> TransferRouted(token: address, _userFrom: address, _userTo: address, gateway: address)
<<event>> GatewaySet(l1Token: address, gateway: address)
<<event>> DefaultGatewayUpdated(newDefaultGateway: address)
getOutboundCalldata(_token: address, _from: address, _to: address, _amount: uint256, _data: bytes): bytes
getGateway(_token: address): (gateway: address)
L2WethGateway
Public:
l1Weth: address
l2Weth: address
Internal:
handleNoContract(l1ERC20: address, expectedL2Address: address, _from: address, _to: address, _amount: uint256, deployData: bytes): (shouldHalt: bool)
_calculateL2TokenAddress(l1ERC20: address): address
outboundEscrowTransfer(_l2TokenAddress: address, _from: address, _amount: uint256)
inboundEscrowTransfer(_l2TokenAddress: address, _dest: address, _amount: uint256)
createOutboundTx(_l1Token: address, _from: address, _to: address, _amount: uint256, _extraData: bytes): uint256
External:
<<payable>> null()
Public:
initialize(_l1Counterpart: address, _router: address, _l1Weth: address, _l2Weth: address)
gasReserveIfCallRevert(): uint256
<<Interface>>
IWETH9
External:
deposit()
withdraw(_amount: uint256)
<<Interface>>
ICustomToken
External:
registerTokenOnL2(l2CustomTokenAddress: address, maxSubmissionCost: uint256, maxGas: uint256, gasPriceBid: uint256)
transferFrom(sender: address, recipient: address, amount: uint256): bool
balanceOf(account: address): uint256
<<Interface>>
ITradeableExitReceiver
External:
onExitTransfer(sender: address, exitNum: uint256, data: bytes): bool
<<Abstract>>
L1ArbitrumExtendedGateway
Internal:
USED_ADDRESS: address
Public:
redirectedExits: mapping(bytes32=>address)
Internal:
_initialize(_l2Counterpart: address, _router: address, _inbox: address)
updateDestination(_exitNum: uint256, _initialDestination: address, _newDestination: address)
External:
transferExitAndCall(_exitNum: uint256, _initialDestination: address, _newDestination: address, _data: bytes)
Public:
<<event>> WithdrawRedirected(from: address, to: address, exitNum: uint256, data: bytes, madeExternalCall: bool)
getCurrentDestination(_exitNum: uint256, _initialDestination: address): address
encodeWithdrawal(_exitNum: uint256, _initialDestination: address): bytes32
<<Abstract>>
L1ArbitrumGateway
Public:
inbox: address
Internal:
isSenderCounterpartGateway(): bool
_initialize(_l2Counterpart: address, _router: address, _inbox: address)
inboundEscrowTransfer(_l1Token: address, _dest: address, _amount: uint256)
createOutboundTx(_l1Token: address, _from: address, _to: address, _amount: uint256, _maxGas: uint256, _gasPriceBid: uint256, _maxSubmissionCost: uint256, _extraData: bytes): uint256
sendTxToL2(_user: address, _l2CallValue: uint256, _maxSubmissionCost: uint256, _maxGas: uint256, _gasPriceBid: uint256, _data: bytes): uint256
outboundEscrowTransfer(_l1Token: address, _from: address, _amount: uint256)
parseOutboundData(_data: bytes): (_from: address, _maxSubmissionCost: uint256, _extraData: bytes)
isSenderRouter(): bool
External:
<<payable>> finalizeInboundTransfer(_token: address, _from: address, _to: address, _amount: uint256, _data: bytes): bytes
<<payable>> outboundTransfer(_l1Token: address, _to: address, _amount: uint256, _maxGas: uint256, _gasPriceBid: uint256, _data: bytes): (res: bytes)
Public:
gasReserveIfCallRevert(): uint256
getCurrentDestination(_exitNum: uint256, _initialDestination: address): address
parseInboundData(_data: bytes): (_exitNum: uint256, _extraData: bytes)
getOutboundCalldata(_l1Token: address, _from: address, _to: address, _amount: uint256, _data: bytes): (outboundCalldata: bytes)
<<Abstract>>
L1ArbitrumMessenger
Internal:
sendTxToL2(_inbox: address, _to: address, _user: address, _l2CallValue: uint256, _maxSubmissionCost: uint256, _maxGas: uint256, _gasPriceBid: uint256, _data: bytes): uint256
Public:
<<event>> TxToL2(_from: address, _to: address, _seqNum: uint256, _data: bytes)
L1CustomGateway
Public:
l1ToL2Token: mapping(address=>address)
owner: address
Internal:
_calculateL2TokenAddress(l1ERC20: address): address
External:
calculateL2TokenAddress(l1ERC20: address): address
registerTokenToL2(_l2Address: address, _maxGas: uint256, _gasPriceBid: uint256, _maxSubmissionCost: uint256): uint256
forceRegisterTokenToL2(_l1Addresses: address[], _l2Addresses: address[], _maxGas: uint256, _gasPriceBid: uint256, _maxSubmissionCost: uint256): uint256
Public:
<<event>> TokenSet(l1Address: address, l2Address: address)
initialize(_l1Counterpart: address, _l1Router: address, _inbox: address, _owner: address)
L1ERC20Gateway
Public:
cloneableProxyHash: bytes32
l2BeaconProxyFactory: address
Internal:
callStatic(targetContract: address, targetFunction: bytes4): bytes
_calculateL2TokenAddress(l1ERC20: address): address
getSalt(l1ERC20: address): bytes32
External:
postUpgradeInit(_cloneableProxyHash: bytes32, _l2BeaconProxyFactory: address)
calculateL2TokenAddress(l1ERC20: address): address
Public:
initialize(_l2Counterpart: address, _router: address, _inbox: address, _cloneableProxyHash: bytes32, _l2BeaconProxyFactory: address)
getOutboundCalldata(_token: address, _from: address, _to: address, _amount: uint256, _data: bytes): (outboundCalldata: bytes)
L1GatewayRouter
Public:
owner: address
inbox: address
Internal:
sendTxToL2(_user: address, _l2CallValue: uint256, _maxSubmissionCost: uint256, _maxGas: uint256, _gasPriceBid: uint256, _data: bytes): uint256
_setGateways(_token: address[], _gateway: address[], _maxGas: uint256, _gasPriceBid: uint256, _maxSubmissionCost: uint256): uint256
isSenderCounterpartGateway(): bool
External:
<<payable>> setDefaultGateway(newL1DefaultGateway: address, _maxGas: uint256, _gasPriceBid: uint256, _maxSubmissionCost: uint256): uint256
<<payable>> setGateway(_gateway: address, _maxGas: uint256, _gasPriceBid: uint256, _maxSubmissionCost: uint256): uint256
<<payable>> setGateways(_token: address[], _gateway: address[], _maxGas: uint256, _gasPriceBid: uint256, _maxSubmissionCost: uint256): uint256
setOwner(newOwner: address)
Public:
<<payable>> outboundTransfer(_token: address, _to: address, _amount: uint256, _maxGas: uint256, _gasPriceBid: uint256, _data: bytes): bytes
<<modifier>> onlyOwner()
initialize(_owner: address, _defaultGateway: address, _whitelist: address, _counterpartGateway: address, _inbox: address)
L1WethGateway
Public:
l1Weth: address
l2Weth: address
Internal:
createOutboundTx(_l1Token: address, _from: address, _to: address, _amount: uint256, _maxGas: uint256, _gasPriceBid: uint256, _maxSubmissionCost: uint256, _extraData: bytes): uint256
outboundEscrowTransfer(_l1Token: address, _from: address, _amount: uint256)
inboundEscrowTransfer(_l1Token: address, _dest: address, _amount: uint256)
_calculateL2TokenAddress(l1ERC20: address): address
External:
<<payable>> null()
calculateL2TokenAddress(l1ERC20: address): address
Public:
initialize(_l1Counterpart: address, _l1Router: address, _inbox: address, _l1Weth: address, _l2Weth: address)
<<Interface>>
ProxySetter
External:
beacon(): address
ClonableBeaconProxy
Public:
constructor()
<<Abstract>>
ERC677Token
Private:
contractFallback(_to: address, _value: uint256, _data: bytes)
isContract(_addr: address): (hasCode: bool)
Public:
transferAndCall(_to: address, _value: uint256, _data: bytes): (success: bool)
<<Interface>>
IERC677
External:
transferAndCall(to: address, value: uint256, data: bytes): (success: bool)
Public:
<<event>> Transfer(from: address, to: address, value: uint256, data: bytes)
<<Interface>>
IERC677Receiver
External:
onTokenTransfer(_sender: address, _value: uint256, _data: bytes)
aeERC20
Public:
initialize(name: string, symbol: string, decimals: uint8)
<<Abstract>>
TokenGateway
Public:
counterpartGateway: address
router: address
Internal:
<<abstract>> _calculateL2TokenAddress(l1ERC20: address): address
<<abstract>> isSenderRouter(): bool
<<abstract>> isSenderCounterpartGateway(): bool
_initialize(_counterpartGateway: address, _router: address)
External:
<<abstract>> outboundTransfer(_token: address, _to: address, _amount: uint256, _maxGas: uint256, _gasPriceBid: uint256, _data: bytes): bytes
<<abstract>> finalizeInboundTransfer(_token: address, _from: address, _to: address, _amount: uint256, _data: bytes): bytes
calculateL2TokenAddress(l1ERC20: address): address
Public:
<<abstract>> getOutboundCalldata(_token: address, _from: address, _to: address, _amount: uint256, _data: bytes): bytes
<<modifier>> onlyCounterpartGateway()
<<modifier>> onlyRouter()
<<Interface>>
ITokenGateway
External:
outboundTransfer(_token: address, _to: address, _amount: uint256, _maxGas: uint256, _gasPriceBid: uint256, _data: bytes): bytes
finalizeInboundTransfer(_token: address, _from: address, _to: address, _amount: uint256, _data: bytes): bytes
calculateL2TokenAddress(l1ERC20: address): address
Public:
<<event>> OutboundTransferInitiated(token: address, _from: address, _to: address, _transferId: uint256, _amount: uint256, _data: bytes)
<<event>> InboundTransferFinalized(token: address, _from: address, _to: address, _transferId: uint256, _amount: uint256, _data: bytes)