Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
ce665207
Commit
ce665207
authored
Aug 07, 2023
by
Mark Tyneway
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
contracts-bedrock: fixup standard bridge
parent
91772bb8
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
46 additions
and
53 deletions
+46
-53
l1standardbridge.go
op-bindings/bindings/l1standardbridge.go
+1
-1
l1standardbridge_more.go
op-bindings/bindings/l1standardbridge_more.go
+2
-2
l2standardbridge.go
op-bindings/bindings/l2standardbridge.go
+1
-1
l2standardbridge_more.go
op-bindings/bindings/l2standardbridge_more.go
+2
-2
.gas-snapshot
packages/contracts-bedrock/.gas-snapshot
+16
-16
.storage-layout
packages/contracts-bedrock/.storage-layout
+2
-2
L1StandardBridge.sol
packages/contracts-bedrock/src/L1/L1StandardBridge.sol
+1
-1
L2StandardBridge.sol
packages/contracts-bedrock/src/L2/L2StandardBridge.sol
+1
-1
StandardBridge.sol
packages/contracts-bedrock/src/universal/StandardBridge.sol
+20
-27
No files found.
op-bindings/bindings/l1standardbridge.go
View file @
ce665207
...
@@ -31,7 +31,7 @@ var (
...
@@ -31,7 +31,7 @@ var (
// L1StandardBridgeMetaData contains all meta data concerning the L1StandardBridge contract.
// L1StandardBridgeMetaData contains all meta data concerning the L1StandardBridge contract.
var
L1StandardBridgeMetaData
=
&
bind
.
MetaData
{
var
L1StandardBridgeMetaData
=
&
bind
.
MetaData
{
ABI
:
"[{
\"
inputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
constructor
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ERC20BridgeFinalized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ERC20BridgeInitiated
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
l1Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ERC20DepositInitiated
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
l1Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ERC20WithdrawalFinalized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ETHBridgeFinalized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ETHBridgeInitiated
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ETHDepositInitiated
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ETHWithdrawalFinalized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint8
\"
,
\"
name
\"
:
\"
version
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
name
\"
:
\"
Initialized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
MESSENGER
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractCrossDomainMessenger
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
OTHER_BRIDGE
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractStandardBridge
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
bridgeERC20
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
bridgeERC20To
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
bridgeETH
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
bridgeETHTo
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l1Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
depositERC20
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l1Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
depositERC20To
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
depositETH
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
depositETHTo
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
deposits
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
finalizeBridgeERC20
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
finalizeBridgeETH
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l1Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
finalizeERC20Withdrawal
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
finalizeETHWithdrawal
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
contractCrossDomainMessenger
\"
,
\"
name
\"
:
\"
_messenger
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
initialize
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
l2TokenBridge
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
messenger
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractCrossDomainMessenger
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
otherBridge
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractStandardBridge
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
version
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
string
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
string
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
receive
\"
}]"
,
ABI
:
"[{
\"
inputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
constructor
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ERC20BridgeFinalized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ERC20BridgeInitiated
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
l1Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ERC20DepositInitiated
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
l1Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ERC20WithdrawalFinalized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ETHBridgeFinalized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ETHBridgeInitiated
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ETHDepositInitiated
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ETHWithdrawalFinalized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint8
\"
,
\"
name
\"
:
\"
version
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
name
\"
:
\"
Initialized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
MESSENGER
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractCrossDomainMessenger
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
OTHER_BRIDGE
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractStandardBridge
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
bridgeERC20
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
bridgeERC20To
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
bridgeETH
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
bridgeETHTo
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l1Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
depositERC20
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l1Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
depositERC20To
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
depositETH
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
depositETHTo
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
deposits
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
finalizeBridgeERC20
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
finalizeBridgeETH
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l1Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
finalizeERC20Withdrawal
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
finalizeETHWithdrawal
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
contractCrossDomainMessenger
\"
,
\"
name
\"
:
\"
_messenger
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
initialize
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
l2TokenBridge
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
messenger
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractCrossDomainMessenger
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
otherBridge
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractStandardBridge
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
version
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
string
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
string
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
receive
\"
}]"
,
Bin
:
"0x6101006040523480156200001257600080fd5b50734200000000000000000000000000000000000010608052600160a052600260c052600060e081905262000047906200004d565b62000155565b60008055600262000062565b60405180910390fd5b6000805461ffff191660ff8316176101001790556200008182620000c6565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600054610100900460ff16620001335760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162000059565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60805160a05160c05160e051612c
0f620001ab6000396000610e3801526000610e0f01526000610de601526000818161033c015281816104d7015281816109890152818161130b01526119be0152612c0f6000f3fe6080604052600436106101635760003560e01c806387087623116100c0578063a9f9e67511610074578063c4d66de811610059578063c4d66de81461042c578063c89701a21461032d578063e11013dd1461044c57600080fd5b8063a9f9e675146103f9578063b1a1a8821461041957600080fd5b806391c49bf8116100a557806391c49bf81461032d578063927ede2d1461027a5780639a2ac6d5146103e657600080fd5b806387087623146103805780638f601f66146103a057600080fd5b8063540abf731161011757806358a997f6116100fc57806358a997f61461030d5780637f46ddb21461032d578063838b25201461036057600080fd5b8063540abf73146102cb57806354fd4d50146102eb57600080fd5b80631532ec34116101485780631532ec34146102545780631635f5fd146102675780633cb747bf1461027a57600080fd5b80630166a07a1461022157806309fc88431461024157600080fd5b3661021c57333b156101fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b61021a333362030d406040518060200160405280600081525061045f565b005b600080fd5b34801561022d57600080fd5b5061021a61023c3660046124f3565b610472565b61021a61024f3660046125a4565b610839565b61021a6102623660046125f7565b610910565b61021a6102753660046125f7565b610924565b34801561028657600080fd5b5060035473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102d757600080fd5b5061021a6102e636600461266a565b610d9a565b3480156102f757600080fd5b50610300610ddf565b6040516102c29190612757565b34801561031957600080fd5b5061021a61032836600461276a565b610e82565b34801561033957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102a1565b34801561036c57600080fd5b5061021a61037b36600461266a565b610f56565b34801561038c57600080fd5b5061021a61039b36600461276a565b610f9b565b3480156103ac57600080fd5b506103d86103bb3660046127ed565b600260209081526000928352604080842090915290825290205481565b6040519081526020016102c2565b61021a6103f4366004612826565b61106f565b34801561040557600080fd5b5061021a6104143660046124f3565b6110b1565b61021a6104273660046125a4565b6110c0565b34801561043857600080fd5b5061021a610447366004612889565b611191565b61021a61045a366004612826565b611204565b61046c8484348585611247565b50505050565b60035473ffffffffffffffffffffffffffffffffffffffff16331480156105615750600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116931691636e296e459160048083019260209291908290030181865afa158015610525573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054991906128a6565b73ffffffffffffffffffffffffffffffffffffffff16145b610613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101f3565b61061c8761142d565b1561076a5761062b878761148f565b6106dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101f3565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528816906340c10f1990604401600060405180830381600087803b15801561074d57600080fd5b505af1158015610761573d6000803e3d6000fd5b505050506107ec565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a16835292905220546107a89084906128f2565b73ffffffffffffffffffffffffffffffffffffffff8089166000818152600260209081526040808320948c16835293905291909120919091556107ec9085856115af565b610830878787878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061168392505050565b50505050505050565b333b156108c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101f3565b61090b3333348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061124792505050565b505050565b61091d8585858585610924565b5050505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610a135750600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116931691636e296e459160048083019260209291908290030181865afa1580156109d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fb91906128a6565b73ffffffffffffffffffffffffffffffffffffffff16145b610ac5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101f3565b823414610b54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e7420726571756972656400000000000060648201526084016101f3565b3073ffffffffffffffffffffffffffffffffffffffff851603610bf9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c66000000000000000000000000000000000000000000000000000000000060648201526084016101f3565b60035473ffffffffffffffffffffffffffffffffffffffff90811690851603610ca4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d60448201527f657373656e67657200000000000000000000000000000000000000000000000060648201526084016101f3565b610ce685858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061171192505050565b6000610d03855a8660405180602001604052806000815250611784565b905080610d92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c6564000000000000000000000000000000000000000000000000000000000060648201526084016101f3565b505050505050565b61083087873388888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061179e92505050565b6060610e0a7f0000000000000000000000000000000000000000000000000000000000000000611ae6565b610e337f0000000000000000000000000000000000000000000000000000000000000000611ae6565b610e5c7f0000000000000000000000000000000000000000000000000000000000000000611ae6565b604051602001610e6e93929190612909565b604051602081830303815290604052905090565b333b15610f11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101f3565b610d9286863333888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c2392505050565b61083087873388888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c2392505050565b333b1561102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101f3565b610d9286863333888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061179e92505050565b61046c33858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061045f92505050565b61083087878787878787610472565b333b1561114f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101f3565b61090b33338585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061045f92505050565b61010260005560026111a282611c32565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b61046c3385348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061124792505050565b8234146112d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374616e646172644272696467653a206272696467696e6720455448206d757360448201527f7420696e636c7564652073756666696369656e74204554482076616c7565000060648201526084016101f3565b6112e285858584611d10565b60035460405173ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b9085907f0000000000000000000000000000000000000000000000000000000000000000907f1635f5fd0000000000000000000000000000000000000000000000000000000090611361908b908b9086908a9060240161297f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b90921682526113f4929188906004016129c8565b6000604051808303818588803b15801561140d57600080fd5b505af1158015611421573d6000803e3d6000fd5b50505050505050505050565b6000611459827f1d1d8b6300000000000000000000000000000000000000000000000000000000611d83565b806114895750611489827fec4fc8e300000000000000000000000000000000000000000000000000000000611d83565b92915050565b60006114bb837f1d1d8b6300000000000000000000000000000000000000000000000000000000611d83565b15611564578273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561150b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152f91906128a6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050611489565b8273ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561150b573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261090b9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611da6565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b38686866040516116fb93929190612a0d565b60405180910390a4610d92868686868686611eb2565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2ac69ee804d9a7a0984249f508dfab7cb2534b465b6ce1580f99a38ba9c5e6318484604051611770929190612a4b565b60405180910390a361046c84848484611f3a565b600080600080845160208601878a8af19695505050505050565b6117a78761142d565b156118f5576117b6878761148f565b611868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101f3565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201859052881690639dc29fac90604401600060405180830381600087803b1580156118d857600080fd5b505af11580156118ec573d6000803e3d6000fd5b50505050611989565b61191773ffffffffffffffffffffffffffffffffffffffff8816863086611fa7565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a1683529290522054611955908490612a64565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b16835292905220555b611997878787878786612005565b60035460405173ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b907f0000000000000000000000000000000000000000000000000000000000000000907f0166a07a0000000000000000000000000000000000000000000000000000000090611a18908b908d908c908c908c908b90602401612a7c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b9092168252611aab929187906004016129c8565b600060405180830381600087803b158015611ac557600080fd5b505af1158015611ad9573d6000803e3d6000fd5b5050505050505050505050565b606081600003611b2957505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611b535780611b3d81612ad7565b9150611b4c9050600a83612b3e565b9150611b2d565b60008167ffffffffffffffff811115611b6e57611b6e612b52565b6040519080825280601f01601f191660200182016040528015611b98576020820181803683370190505b5090505b8415611c1b57611bad6001836128f2565b9150611bba600a86612b81565b611bc5906030612a64565b60f81b818381518110611bda57611bda612b95565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611c14600a86612b3e565b9450611b9c565b949350505050565b6108308787878787878761179e565b600054610100900460ff16611cc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f3565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f35d79ab81f2b2017e19afb5c5571778877782d7a8786f5907f93b0f4702f4f238484604051611d6f929190612a4b565b60405180910390a361046c84848484612093565b6000611d8e836120f2565b8015611d9f5750611d9f8383612156565b9392505050565b6000611e08826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122259092919063ffffffff16565b80519091501561090b5780806020019051810190611e269190612bc4565b61090b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101f3565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd868686604051611f2a93929190612a0d565b60405180910390a4505050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d8484604051611f99929190612a4b565b60405180910390a350505050565b60405173ffffffffffffffffffffffffffffffffffffffff8085166024830152831660448201526064810182905261046c9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611601565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d039686868660405161207d93929190612a0d565b60405180910390a4610d92868686868686612234565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af58484604051611f99929190612a4b565b600061211e827f01ffc9a700000000000000000000000000000000000000000000000000000000612156565b8015611489575061214f827fffffffff00000000000000000000000000000000000000000000000000000000612156565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d9150600051905082801561220e575060208210155b801561221a5750600081115b979650505050505050565b6060611c1b84846000856122ac565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf868686604051611f2a93929190612a0d565b60608247101561233e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101f3565b73ffffffffffffffffffffffffffffffffffffffff85163b6123bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101f3565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123e59190612be6565b60006040518083038185875af1925050503d8060008114612422576040519150601f19603f3d011682016040523d82523d6000602084013e612427565b606091505b509150915061221a82828660608315612441575081611d9f565b8251156124515782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f39190612757565b73ffffffffffffffffffffffffffffffffffffffff811681146124a757600080fd5b50565b60008083601f8401126124bc57600080fd5b50813567ffffffffffffffff8111156124d457600080fd5b6020830191508360208285010111156124ec57600080fd5b9250929050565b600080600080600080600060c0888a03121561250e57600080fd5b873561251981612485565b9650602088013561252981612485565b9550604088013561253981612485565b9450606088013561254981612485565b93506080880135925060a088013567ffffffffffffffff81111561256c57600080fd5b6125788a828b016124aa565b989b979a50959850939692959293505050565b803563ffffffff8116811461259f57600080fd5b919050565b6000806000604084860312156125b957600080fd5b6125c28461258b565b9250602084013567ffffffffffffffff8111156125de57600080fd5b6125ea868287016124aa565b9497909650939450505050565b60008060008060006080868803121561260f57600080fd5b853561261a81612485565b9450602086013561262a81612485565b935060408601359250606086013567ffffffffffffffff81111561264d57600080fd5b612659888289016124aa565b969995985093965092949392505050565b600080600080600080600060c0888a03121561268557600080fd5b873561269081612485565b965060208801356126a081612485565b955060408801356126b081612485565b9450606088013593506126c56080890161258b565b925060a088013567ffffffffffffffff81111561256c57600080fd5b60005b838110156126fc5781810151838201526020016126e4565b8381111561046c5750506000910152565b600081518084526127258160208601602086016126e1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611d9f602083018461270d565b60008060008060008060a0878903121561278357600080fd5b863561278e81612485565b9550602087013561279e81612485565b9450604087013593506127b36060880161258b565b9250608087013567ffffffffffffffff8111156127cf57600080fd5b6127db89828a016124aa565b979a9699509497509295939492505050565b6000806040838503121561280057600080fd5b823561280b81612485565b9150602083013561281b81612485565b809150509250929050565b6000806000806060858703121561283c57600080fd5b843561284781612485565b93506128556020860161258b565b9250604085013567ffffffffffffffff81111561287157600080fd5b61287d878288016124aa565b95989497509550505050565b60006020828403121561289b57600080fd5b8135611d9f81612485565b6000602082840312156128b857600080fd5b8151611d9f81612485565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612904576129046128c3565b500390565b6000845161291b8184602089016126e1565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551612957816001850160208a016126e1565b600192019182015283516129728160028401602088016126e1565b0160020195945050505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526129be608083018461270d565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006129f7606083018561270d565b905063ffffffff83166040830152949350505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000612a42606083018461270d565b95945050505050565b828152604060208201526000611c1b604083018461270d565b60008219821115612a7757612a776128c3565b500190565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612acb60c083018461270d565b98975050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b0857612b086128c3565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082612b4d57612b4d612b0f565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082612b9057612b90612b0f565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612bd657600080fd5b81518015158114611d9f57600080fd5b60008251612bf88184602087016126e1
565b919091019291505056fea164736f6c634300080f000a"
,
Bin
:
"0x6101006040523480156200001257600080fd5b50734200000000000000000000000000000000000010608052600160a052600260c052600060e081905262000047906200004d565b62000155565b60008055600262000062565b60405180910390fd5b6000805461ffff191660ff8316176101001790556200008182620000c6565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600054610100900460ff16620001335760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162000059565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60805160a05160c05160e051612c
70620001b26000396000610e9901526000610e7001526000610e4701526000818161033f015281816103f601528181610538015281816109ea0152818161136c0152611a1f0152612c706000f3fe6080604052600436106101635760003560e01c806387087623116100c0578063a9f9e67511610074578063c4d66de811610059578063c4d66de81461048d578063c89701a2146103e7578063e11013dd146104ad57600080fd5b8063a9f9e6751461045a578063b1a1a8821461047a57600080fd5b806391c49bf8116100a557806391c49bf8146103e7578063927ede2d1461041a5780639a2ac6d51461044757600080fd5b806387087623146103815780638f601f66146103a157600080fd5b8063540abf731161011757806358a997f6116100fc57806358a997f61461030d5780637f46ddb21461032d578063838b25201461036157600080fd5b8063540abf73146102cb57806354fd4d50146102eb57600080fd5b80631532ec34116101485780631532ec34146102545780631635f5fd146102675780633cb747bf1461027a57600080fd5b80630166a07a1461022157806309fc88431461024157600080fd5b3661021c57333b156101fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b61021a333362030d40604051806020016040528060008152506104c0565b005b600080fd5b34801561022d57600080fd5b5061021a61023c366004612554565b6104d3565b61021a61024f366004612605565b61089a565b61021a610262366004612658565b610971565b61021a610275366004612658565b610985565b34801561028657600080fd5b5060035473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102d757600080fd5b5061021a6102e63660046126cb565b610dfb565b3480156102f757600080fd5b50610300610e40565b6040516102c291906127b8565b34801561031957600080fd5b5061021a6103283660046127cb565b610ee3565b34801561033957600080fd5b506102a17f000000000000000000000000000000000000000000000000000000000000000081565b34801561036d57600080fd5b5061021a61037c3660046126cb565b610fb7565b34801561038d57600080fd5b5061021a61039c3660046127cb565b610ffc565b3480156103ad57600080fd5b506103d96103bc36600461284e565b600260209081526000928352604080842090915290825290205481565b6040519081526020016102c2565b3480156103f357600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102a1565b34801561042657600080fd5b506003546102a19073ffffffffffffffffffffffffffffffffffffffff1681565b61021a610455366004612887565b6110d0565b34801561046657600080fd5b5061021a610475366004612554565b611112565b61021a610488366004612605565b611121565b34801561049957600080fd5b5061021a6104a83660046128ea565b6111f2565b61021a6104bb366004612887565b611265565b6104cd84843485856112a8565b50505050565b60035473ffffffffffffffffffffffffffffffffffffffff16331480156105c25750600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116931691636e296e459160048083019260209291908290030181865afa158015610586573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105aa9190612907565b73ffffffffffffffffffffffffffffffffffffffff16145b610674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101f3565b61067d8761148e565b156107cb5761068c87876114f0565b61073e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101f3565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528816906340c10f1990604401600060405180830381600087803b1580156107ae57600080fd5b505af11580156107c2573d6000803e3d6000fd5b5050505061084d565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a1683529290522054610809908490612953565b73ffffffffffffffffffffffffffffffffffffffff8089166000818152600260209081526040808320948c168352939052919091209190915561084d908585611610565b610891878787878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e492505050565b50505050505050565b333b15610929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101f3565b61096c3333348686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112a892505050565b505050565b61097e8585858585610985565b5050505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610a745750600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116931691636e296e459160048083019260209291908290030181865afa158015610a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5c9190612907565b73ffffffffffffffffffffffffffffffffffffffff16145b610b26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101f3565b823414610bb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e7420726571756972656400000000000060648201526084016101f3565b3073ffffffffffffffffffffffffffffffffffffffff851603610c5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c66000000000000000000000000000000000000000000000000000000000060648201526084016101f3565b60035473ffffffffffffffffffffffffffffffffffffffff90811690851603610d05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d60448201527f657373656e67657200000000000000000000000000000000000000000000000060648201526084016101f3565b610d4785858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061177292505050565b6000610d64855a86604051806020016040528060008152506117e5565b905080610df3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c6564000000000000000000000000000000000000000000000000000000000060648201526084016101f3565b505050505050565b61089187873388888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506117ff92505050565b6060610e6b7f0000000000000000000000000000000000000000000000000000000000000000611b47565b610e947f0000000000000000000000000000000000000000000000000000000000000000611b47565b610ebd7f0000000000000000000000000000000000000000000000000000000000000000611b47565b604051602001610ecf9392919061296a565b604051602081830303815290604052905090565b333b15610f72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101f3565b610df386863333888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c8492505050565b61089187873388888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c8492505050565b333b1561108b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101f3565b610df386863333888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506117ff92505050565b6104cd33858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104c092505050565b610891878787878787876104d3565b333b156111b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101f3565b61096c33338585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104c092505050565b610102600055600261120382611c93565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6104cd3385348686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112a892505050565b823414611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374616e646172644272696467653a206272696467696e6720455448206d757360448201527f7420696e636c7564652073756666696369656e74204554482076616c7565000060648201526084016101f3565b61134385858584611d71565b60035460405173ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b9085907f0000000000000000000000000000000000000000000000000000000000000000907f1635f5fd00000000000000000000000000000000000000000000000000000000906113c2908b908b9086908a906024016129e0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b909216825261145592918890600401612a29565b6000604051808303818588803b15801561146e57600080fd5b505af1158015611482573d6000803e3d6000fd5b50505050505050505050565b60006114ba827f1d1d8b6300000000000000000000000000000000000000000000000000000000611de4565b806114ea57506114ea827fec4fc8e300000000000000000000000000000000000000000000000000000000611de4565b92915050565b600061151c837f1d1d8b6300000000000000000000000000000000000000000000000000000000611de4565b156115c5578273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561156c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115909190612907565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490506114ea565b8273ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561156c573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261096c9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611e07565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b386868660405161175c93929190612a6e565b60405180910390a4610df3868686868686611f13565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2ac69ee804d9a7a0984249f508dfab7cb2534b465b6ce1580f99a38ba9c5e63184846040516117d1929190612aac565b60405180910390a36104cd84848484611f9b565b600080600080845160208601878a8af19695505050505050565b6118088761148e565b156119565761181787876114f0565b6118c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101f3565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201859052881690639dc29fac90604401600060405180830381600087803b15801561193957600080fd5b505af115801561194d573d6000803e3d6000fd5b505050506119ea565b61197873ffffffffffffffffffffffffffffffffffffffff8816863086612008565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a16835292905220546119b6908490612ac5565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b16835292905220555b6119f8878787878786612066565b60035460405173ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b907f0000000000000000000000000000000000000000000000000000000000000000907f0166a07a0000000000000000000000000000000000000000000000000000000090611a79908b908d908c908c908c908b90602401612add565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b9092168252611b0c92918790600401612a29565b600060405180830381600087803b158015611b2657600080fd5b505af1158015611b3a573d6000803e3d6000fd5b5050505050505050505050565b606081600003611b8a57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611bb45780611b9e81612b38565b9150611bad9050600a83612b9f565b9150611b8e565b60008167ffffffffffffffff811115611bcf57611bcf612bb3565b6040519080825280601f01601f191660200182016040528015611bf9576020820181803683370190505b5090505b8415611c7c57611c0e600183612953565b9150611c1b600a86612be2565b611c26906030612ac5565b60f81b818381518110611c3b57611c3b612bf6565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611c75600a86612b9f565b9450611bfd565b949350505050565b610891878787878787876117ff565b600054610100900460ff16611d2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f3565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f35d79ab81f2b2017e19afb5c5571778877782d7a8786f5907f93b0f4702f4f238484604051611dd0929190612aac565b60405180910390a36104cd848484846120f4565b6000611def83612153565b8015611e005750611e0083836121b7565b9392505050565b6000611e69826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122869092919063ffffffff16565b80519091501561096c5780806020019051810190611e879190612c25565b61096c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101f3565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd868686604051611f8b93929190612a6e565b60405180910390a4505050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d8484604051611ffa929190612aac565b60405180910390a350505050565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526104cd9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611662565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d03968686866040516120de93929190612a6e565b60405180910390a4610df3868686868686612295565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af58484604051611ffa929190612aac565b600061217f827f01ffc9a7000000000000000000000000000000000000000000000000000000006121b7565b80156114ea57506121b0827fffffffff000000000000000000000000000000000000000000000000000000006121b7565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d9150600051905082801561226f575060208210155b801561227b5750600081115b979650505050505050565b6060611c7c848460008561230d565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf868686604051611f8b93929190612a6e565b60608247101561239f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101f3565b73ffffffffffffffffffffffffffffffffffffffff85163b61241d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101f3565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516124469190612c47565b60006040518083038185875af1925050503d8060008114612483576040519150601f19603f3d011682016040523d82523d6000602084013e612488565b606091505b509150915061227b828286606083156124a2575081611e00565b8251156124b25782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f391906127b8565b73ffffffffffffffffffffffffffffffffffffffff8116811461250857600080fd5b50565b60008083601f84011261251d57600080fd5b50813567ffffffffffffffff81111561253557600080fd5b60208301915083602082850101111561254d57600080fd5b9250929050565b600080600080600080600060c0888a03121561256f57600080fd5b873561257a816124e6565b9650602088013561258a816124e6565b9550604088013561259a816124e6565b945060608801356125aa816124e6565b93506080880135925060a088013567ffffffffffffffff8111156125cd57600080fd5b6125d98a828b0161250b565b989b979a50959850939692959293505050565b803563ffffffff8116811461260057600080fd5b919050565b60008060006040848603121561261a57600080fd5b612623846125ec565b9250602084013567ffffffffffffffff81111561263f57600080fd5b61264b8682870161250b565b9497909650939450505050565b60008060008060006080868803121561267057600080fd5b853561267b816124e6565b9450602086013561268b816124e6565b935060408601359250606086013567ffffffffffffffff8111156126ae57600080fd5b6126ba8882890161250b565b969995985093965092949392505050565b600080600080600080600060c0888a0312156126e657600080fd5b87356126f1816124e6565b96506020880135612701816124e6565b95506040880135612711816124e6565b945060608801359350612726608089016125ec565b925060a088013567ffffffffffffffff8111156125cd57600080fd5b60005b8381101561275d578181015183820152602001612745565b838111156104cd5750506000910152565b60008151808452612786816020860160208601612742565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611e00602083018461276e565b60008060008060008060a087890312156127e457600080fd5b86356127ef816124e6565b955060208701356127ff816124e6565b945060408701359350612814606088016125ec565b9250608087013567ffffffffffffffff81111561283057600080fd5b61283c89828a0161250b565b979a9699509497509295939492505050565b6000806040838503121561286157600080fd5b823561286c816124e6565b9150602083013561287c816124e6565b809150509250929050565b6000806000806060858703121561289d57600080fd5b84356128a8816124e6565b93506128b6602086016125ec565b9250604085013567ffffffffffffffff8111156128d257600080fd5b6128de8782880161250b565b95989497509550505050565b6000602082840312156128fc57600080fd5b8135611e00816124e6565b60006020828403121561291957600080fd5b8151611e00816124e6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561296557612965612924565b500390565b6000845161297c818460208901612742565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516129b8816001850160208a01612742565b600192019182015283516129d3816002840160208801612742565b0160020195945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152612a1f608083018461276e565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201526000612a58606083018561276e565b905063ffffffff83166040830152949350505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000612aa3606083018461276e565b95945050505050565b828152604060208201526000611c7c604083018461276e565b60008219821115612ad857612ad8612924565b500190565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612b2c60c083018461276e565b98975050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b6957612b69612924565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082612bae57612bae612b70565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082612bf157612bf1612b70565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612c3757600080fd5b81518015158114611e0057600080fd5b60008251612c59818460208701612742
565b919091019291505056fea164736f6c634300080f000a"
,
}
}
// L1StandardBridgeABI is the input ABI used to generate the binding from.
// L1StandardBridgeABI is the input ABI used to generate the binding from.
...
...
op-bindings/bindings/l1standardbridge_more.go
View file @
ce665207
...
@@ -9,11 +9,11 @@ import (
...
@@ -9,11 +9,11 @@ import (
"github.com/ethereum-optimism/optimism/op-bindings/solc"
"github.com/ethereum-optimism/optimism/op-bindings/solc"
)
)
const
L1StandardBridgeStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:1000,
\"
contract
\"
:
\"
src/L1/L1StandardBridge.sol:L1StandardBridge
\"
,
\"
label
\"
:
\"
_initialized
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_uint8
\"
},{
\"
astId
\"
:1001,
\"
contract
\"
:
\"
src/L1/L1StandardBridge.sol:L1StandardBridge
\"
,
\"
label
\"
:
\"
_initializing
\"
,
\"
offset
\"
:1,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_bool
\"
},{
\"
astId
\"
:1002,
\"
contract
\"
:
\"
src/L1/L1StandardBridge.sol:L1StandardBridge
\"
,
\"
label
\"
:
\"
spacer_0_2_20
\"
,
\"
offset
\"
:2,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:1003,
\"
contract
\"
:
\"
src/L1/L1StandardBridge.sol:L1StandardBridge
\"
,
\"
label
\"
:
\"
spacer_1_0_20
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:1004,
\"
contract
\"
:
\"
src/L1/L1StandardBridge.sol:L1StandardBridge
\"
,
\"
label
\"
:
\"
deposits
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
},{
\"
astId
\"
:1005,
\"
contract
\"
:
\"
src/L1/L1StandardBridge.sol:L1StandardBridge
\"
,
\"
label
\"
:
\"
_
MESSENGER
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_contract(CrossDomainMessenger)1007
\"
},{
\"
astId
\"
:1006,
\"
contract
\"
:
\"
src/L1/L1StandardBridge.sol:L1StandardBridge
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
4
\"
,
\"
type
\"
:
\"
t_array(t_uint256)46_storage
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_array(t_uint256)46_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[46]
\"
,
\"
numberOfBytes
\"
:
\"
1472
\"
,
\"
base
\"
:
\"
t_uint256
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_contract(CrossDomainMessenger)1007
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
contract CrossDomainMessenger
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
mapping(address =
\u003e
uint256))
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_mapping(t_address,t_uint256)
\"
},
\"
t_mapping(t_address,t_uint256)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
uint256)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_uint256
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint8
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint8
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
}}}"
const
L1StandardBridgeStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:1000,
\"
contract
\"
:
\"
src/L1/L1StandardBridge.sol:L1StandardBridge
\"
,
\"
label
\"
:
\"
_initialized
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_uint8
\"
},{
\"
astId
\"
:1001,
\"
contract
\"
:
\"
src/L1/L1StandardBridge.sol:L1StandardBridge
\"
,
\"
label
\"
:
\"
_initializing
\"
,
\"
offset
\"
:1,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_bool
\"
},{
\"
astId
\"
:1002,
\"
contract
\"
:
\"
src/L1/L1StandardBridge.sol:L1StandardBridge
\"
,
\"
label
\"
:
\"
spacer_0_2_20
\"
,
\"
offset
\"
:2,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:1003,
\"
contract
\"
:
\"
src/L1/L1StandardBridge.sol:L1StandardBridge
\"
,
\"
label
\"
:
\"
spacer_1_0_20
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:1004,
\"
contract
\"
:
\"
src/L1/L1StandardBridge.sol:L1StandardBridge
\"
,
\"
label
\"
:
\"
deposits
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
},{
\"
astId
\"
:1005,
\"
contract
\"
:
\"
src/L1/L1StandardBridge.sol:L1StandardBridge
\"
,
\"
label
\"
:
\"
MESSENGER
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_contract(CrossDomainMessenger)1007
\"
},{
\"
astId
\"
:1006,
\"
contract
\"
:
\"
src/L1/L1StandardBridge.sol:L1StandardBridge
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
4
\"
,
\"
type
\"
:
\"
t_array(t_uint256)46_storage
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_array(t_uint256)46_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[46]
\"
,
\"
numberOfBytes
\"
:
\"
1472
\"
,
\"
base
\"
:
\"
t_uint256
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_contract(CrossDomainMessenger)1007
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
contract CrossDomainMessenger
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
mapping(address =
\u003e
uint256))
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_mapping(t_address,t_uint256)
\"
},
\"
t_mapping(t_address,t_uint256)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
uint256)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_uint256
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint8
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint8
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
}}}"
var
L1StandardBridgeStorageLayout
=
new
(
solc
.
StorageLayout
)
var
L1StandardBridgeStorageLayout
=
new
(
solc
.
StorageLayout
)
var
L1StandardBridgeDeployedBin
=
"0x6080604052600436106101635760003560e01c806387087623116100c0578063a9f9e67511610074578063c4d66de811610059578063c4d66de8146104
2c578063c89701a21461032d578063e11013dd1461044c57600080fd5b8063a9f9e675146103f9578063b1a1a8821461041957600080fd5b806391c49bf8116100a557806391c49bf81461032d578063927ede2d1461027a5780639a2ac6d5146103e657600080fd5b806387087623146103805780638f601f66146103a057600080fd5b8063540abf731161011757806358a997f6116100fc57806358a997f61461030d5780637f46ddb21461032d578063838b25201461036057600080fd5b8063540abf73146102cb57806354fd4d50146102eb57600080fd5b80631532ec34116101485780631532ec34146102545780631635f5fd146102675780633cb747bf1461027a57600080fd5b80630166a07a1461022157806309fc88431461024157600080fd5b3661021c57333b156101fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b61021a333362030d406040518060200160405280600081525061045f565b005b600080fd5b34801561022d57600080fd5b5061021a61023c3660046124f3565b610472565b61021a61024f3660046125a4565b610839565b61021a6102623660046125f7565b610910565b61021a6102753660046125f7565b610924565b34801561028657600080fd5b5060035473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102d757600080fd5b5061021a6102e636600461266a565b610d9a565b3480156102f757600080fd5b50610300610ddf565b6040516102c29190612757565b34801561031957600080fd5b5061021a61032836600461276a565b610e82565b34801561033957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102a1565b34801561036c57600080fd5b5061021a61037b36600461266a565b610f56565b34801561038c57600080fd5b5061021a61039b36600461276a565b610f9b565b3480156103ac57600080fd5b506103d86103bb3660046127ed565b600260209081526000928352604080842090915290825290205481565b6040519081526020016102c2565b61021a6103f4366004612826565b61106f565b34801561040557600080fd5b5061021a6104143660046124f3565b6110b1565b61021a6104273660046125a4565b6110c0565b34801561043857600080fd5b5061021a610447366004612889565b611191565b61021a61045a366004612826565b611204565b61046c8484348585611247565b50505050565b60035473ffffffffffffffffffffffffffffffffffffffff16331480156105615750600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116931691636e296e459160048083019260209291908290030181865afa158015610525573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054991906128a6565b73ffffffffffffffffffffffffffffffffffffffff16145b610613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101f3565b61061c8761142d565b1561076a5761062b878761148f565b6106dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101f3565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528816906340c10f1990604401600060405180830381600087803b15801561074d57600080fd5b505af1158015610761573d6000803e3d6000fd5b505050506107ec565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a16835292905220546107a89084906128f2565b73ffffffffffffffffffffffffffffffffffffffff8089166000818152600260209081526040808320948c16835293905291909120919091556107ec9085856115af565b610830878787878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061168392505050565b50505050505050565b333b156108c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101f3565b61090b3333348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061124792505050565b505050565b61091d8585858585610924565b5050505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610a135750600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116931691636e296e459160048083019260209291908290030181865afa1580156109d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fb91906128a6565b73ffffffffffffffffffffffffffffffffffffffff16145b610ac5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101f3565b823414610b54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e7420726571756972656400000000000060648201526084016101f3565b3073ffffffffffffffffffffffffffffffffffffffff851603610bf9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c66000000000000000000000000000000000000000000000000000000000060648201526084016101f3565b60035473ffffffffffffffffffffffffffffffffffffffff90811690851603610ca4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d60448201527f657373656e67657200000000000000000000000000000000000000000000000060648201526084016101f3565b610ce685858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061171192505050565b6000610d03855a8660405180602001604052806000815250611784565b905080610d92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c6564000000000000000000000000000000000000000000000000000000000060648201526084016101f3565b505050505050565b61083087873388888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061179e92505050565b6060610e0a7f0000000000000000000000000000000000000000000000000000000000000000611ae6565b610e337f0000000000000000000000000000000000000000000000000000000000000000611ae6565b610e5c7f0000000000000000000000000000000000000000000000000000000000000000611ae6565b604051602001610e6e93929190612909565b604051602081830303815290604052905090565b333b15610f11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101f3565b610d9286863333888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c2392505050565b61083087873388888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c2392505050565b333b1561102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101f3565b610d9286863333888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061179e92505050565b61046c33858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061045f92505050565b61083087878787878787610472565b333b1561114f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101f3565b61090b33338585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061045f92505050565b61010260005560026111a282611c32565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b61046c3385348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061124792505050565b8234146112d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374616e646172644272696467653a206272696467696e6720455448206d757360448201527f7420696e636c7564652073756666696369656e74204554482076616c7565000060648201526084016101f3565b6112e285858584611d10565b60035460405173ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b9085907f0000000000000000000000000000000000000000000000000000000000000000907f1635f5fd0000000000000000000000000000000000000000000000000000000090611361908b908b9086908a9060240161297f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b90921682526113f4929188906004016129c8565b6000604051808303818588803b15801561140d57600080fd5b505af1158015611421573d6000803e3d6000fd5b50505050505050505050565b6000611459827f1d1d8b6300000000000000000000000000000000000000000000000000000000611d83565b806114895750611489827fec4fc8e300000000000000000000000000000000000000000000000000000000611d83565b92915050565b60006114bb837f1d1d8b6300000000000000000000000000000000000000000000000000000000611d83565b15611564578273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561150b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152f91906128a6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050611489565b8273ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561150b573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261090b9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611da6565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b38686866040516116fb93929190612a0d565b60405180910390a4610d92868686868686611eb2565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2ac69ee804d9a7a0984249f508dfab7cb2534b465b6ce1580f99a38ba9c5e6318484604051611770929190612a4b565b60405180910390a361046c84848484611f3a565b600080600080845160208601878a8af19695505050505050565b6117a78761142d565b156118f5576117b6878761148f565b611868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101f3565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201859052881690639dc29fac90604401600060405180830381600087803b1580156118d857600080fd5b505af11580156118ec573d6000803e3d6000fd5b50505050611989565b61191773ffffffffffffffffffffffffffffffffffffffff8816863086611fa7565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a1683529290522054611955908490612a64565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b16835292905220555b611997878787878786612005565b60035460405173ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b907f0000000000000000000000000000000000000000000000000000000000000000907f0166a07a0000000000000000000000000000000000000000000000000000000090611a18908b908d908c908c908c908b90602401612a7c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b9092168252611aab929187906004016129c8565b600060405180830381600087803b158015611ac557600080fd5b505af1158015611ad9573d6000803e3d6000fd5b5050505050505050505050565b606081600003611b2957505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611b535780611b3d81612ad7565b9150611b4c9050600a83612b3e565b9150611b2d565b60008167ffffffffffffffff811115611b6e57611b6e612b52565b6040519080825280601f01601f191660200182016040528015611b98576020820181803683370190505b5090505b8415611c1b57611bad6001836128f2565b9150611bba600a86612b81565b611bc5906030612a64565b60f81b818381518110611bda57611bda612b95565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611c14600a86612b3e565b9450611b9c565b949350505050565b6108308787878787878761179e565b600054610100900460ff16611cc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f3565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f35d79ab81f2b2017e19afb5c5571778877782d7a8786f5907f93b0f4702f4f238484604051611d6f929190612a4b565b60405180910390a361046c84848484612093565b6000611d8e836120f2565b8015611d9f5750611d9f8383612156565b9392505050565b6000611e08826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122259092919063ffffffff16565b80519091501561090b5780806020019051810190611e269190612bc4565b61090b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101f3565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd868686604051611f2a93929190612a0d565b60405180910390a4505050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d8484604051611f99929190612a4b565b60405180910390a350505050565b60405173ffffffffffffffffffffffffffffffffffffffff8085166024830152831660448201526064810182905261046c9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611601565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d039686868660405161207d93929190612a0d565b60405180910390a4610d92868686868686612234565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af58484604051611f99929190612a4b565b600061211e827f01ffc9a700000000000000000000000000000000000000000000000000000000612156565b8015611489575061214f827fffffffff00000000000000000000000000000000000000000000000000000000612156565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d9150600051905082801561220e575060208210155b801561221a5750600081115b979650505050505050565b6060611c1b84846000856122ac565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf868686604051611f2a93929190612a0d565b60608247101561233e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101f3565b73ffffffffffffffffffffffffffffffffffffffff85163b6123bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101f3565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123e59190612be6565b60006040518083038185875af1925050503d8060008114612422576040519150601f19603f3d011682016040523d82523d6000602084013e612427565b606091505b509150915061221a82828660608315612441575081611d9f565b8251156124515782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f39190612757565b73ffffffffffffffffffffffffffffffffffffffff811681146124a757600080fd5b50565b60008083601f8401126124bc57600080fd5b50813567ffffffffffffffff8111156124d457600080fd5b6020830191508360208285010111156124ec57600080fd5b9250929050565b600080600080600080600060c0888a03121561250e57600080fd5b873561251981612485565b9650602088013561252981612485565b9550604088013561253981612485565b9450606088013561254981612485565b93506080880135925060a088013567ffffffffffffffff81111561256c57600080fd5b6125788a828b016124aa565b989b979a50959850939692959293505050565b803563ffffffff8116811461259f57600080fd5b919050565b6000806000604084860312156125b957600080fd5b6125c28461258b565b9250602084013567ffffffffffffffff8111156125de57600080fd5b6125ea868287016124aa565b9497909650939450505050565b60008060008060006080868803121561260f57600080fd5b853561261a81612485565b9450602086013561262a81612485565b935060408601359250606086013567ffffffffffffffff81111561264d57600080fd5b612659888289016124aa565b969995985093965092949392505050565b600080600080600080600060c0888a03121561268557600080fd5b873561269081612485565b965060208801356126a081612485565b955060408801356126b081612485565b9450606088013593506126c56080890161258b565b925060a088013567ffffffffffffffff81111561256c57600080fd5b60005b838110156126fc5781810151838201526020016126e4565b8381111561046c5750506000910152565b600081518084526127258160208601602086016126e1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611d9f602083018461270d565b60008060008060008060a0878903121561278357600080fd5b863561278e81612485565b9550602087013561279e81612485565b9450604087013593506127b36060880161258b565b9250608087013567ffffffffffffffff8111156127cf57600080fd5b6127db89828a016124aa565b979a9699509497509295939492505050565b6000806040838503121561280057600080fd5b823561280b81612485565b9150602083013561281b81612485565b809150509250929050565b6000806000806060858703121561283c57600080fd5b843561284781612485565b93506128556020860161258b565b9250604085013567ffffffffffffffff81111561287157600080fd5b61287d878288016124aa565b95989497509550505050565b60006020828403121561289b57600080fd5b8135611d9f81612485565b6000602082840312156128b857600080fd5b8151611d9f81612485565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612904576129046128c3565b500390565b6000845161291b8184602089016126e1565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551612957816001850160208a016126e1565b600192019182015283516129728160028401602088016126e1565b0160020195945050505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526129be608083018461270d565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006129f7606083018561270d565b905063ffffffff83166040830152949350505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000612a42606083018461270d565b95945050505050565b828152604060208201526000611c1b604083018461270d565b60008219821115612a7757612a776128c3565b500190565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612acb60c083018461270d565b98975050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b0857612b086128c3565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082612b4d57612b4d612b0f565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082612b9057612b90612b0f565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612bd657600080fd5b81518015158114611d9f57600080fd5b60008251612bf88184602087016126e1
565b919091019291505056fea164736f6c634300080f000a"
var
L1StandardBridgeDeployedBin
=
"0x6080604052600436106101635760003560e01c806387087623116100c0578063a9f9e67511610074578063c4d66de811610059578063c4d66de8146104
8d578063c89701a2146103e7578063e11013dd146104ad57600080fd5b8063a9f9e6751461045a578063b1a1a8821461047a57600080fd5b806391c49bf8116100a557806391c49bf8146103e7578063927ede2d1461041a5780639a2ac6d51461044757600080fd5b806387087623146103815780638f601f66146103a157600080fd5b8063540abf731161011757806358a997f6116100fc57806358a997f61461030d5780637f46ddb21461032d578063838b25201461036157600080fd5b8063540abf73146102cb57806354fd4d50146102eb57600080fd5b80631532ec34116101485780631532ec34146102545780631635f5fd146102675780633cb747bf1461027a57600080fd5b80630166a07a1461022157806309fc88431461024157600080fd5b3661021c57333b156101fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b61021a333362030d40604051806020016040528060008152506104c0565b005b600080fd5b34801561022d57600080fd5b5061021a61023c366004612554565b6104d3565b61021a61024f366004612605565b61089a565b61021a610262366004612658565b610971565b61021a610275366004612658565b610985565b34801561028657600080fd5b5060035473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102d757600080fd5b5061021a6102e63660046126cb565b610dfb565b3480156102f757600080fd5b50610300610e40565b6040516102c291906127b8565b34801561031957600080fd5b5061021a6103283660046127cb565b610ee3565b34801561033957600080fd5b506102a17f000000000000000000000000000000000000000000000000000000000000000081565b34801561036d57600080fd5b5061021a61037c3660046126cb565b610fb7565b34801561038d57600080fd5b5061021a61039c3660046127cb565b610ffc565b3480156103ad57600080fd5b506103d96103bc36600461284e565b600260209081526000928352604080842090915290825290205481565b6040519081526020016102c2565b3480156103f357600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102a1565b34801561042657600080fd5b506003546102a19073ffffffffffffffffffffffffffffffffffffffff1681565b61021a610455366004612887565b6110d0565b34801561046657600080fd5b5061021a610475366004612554565b611112565b61021a610488366004612605565b611121565b34801561049957600080fd5b5061021a6104a83660046128ea565b6111f2565b61021a6104bb366004612887565b611265565b6104cd84843485856112a8565b50505050565b60035473ffffffffffffffffffffffffffffffffffffffff16331480156105c25750600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116931691636e296e459160048083019260209291908290030181865afa158015610586573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105aa9190612907565b73ffffffffffffffffffffffffffffffffffffffff16145b610674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101f3565b61067d8761148e565b156107cb5761068c87876114f0565b61073e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101f3565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528816906340c10f1990604401600060405180830381600087803b1580156107ae57600080fd5b505af11580156107c2573d6000803e3d6000fd5b5050505061084d565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a1683529290522054610809908490612953565b73ffffffffffffffffffffffffffffffffffffffff8089166000818152600260209081526040808320948c168352939052919091209190915561084d908585611610565b610891878787878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e492505050565b50505050505050565b333b15610929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101f3565b61096c3333348686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112a892505050565b505050565b61097e8585858585610985565b5050505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610a745750600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116931691636e296e459160048083019260209291908290030181865afa158015610a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5c9190612907565b73ffffffffffffffffffffffffffffffffffffffff16145b610b26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101f3565b823414610bb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e7420726571756972656400000000000060648201526084016101f3565b3073ffffffffffffffffffffffffffffffffffffffff851603610c5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c66000000000000000000000000000000000000000000000000000000000060648201526084016101f3565b60035473ffffffffffffffffffffffffffffffffffffffff90811690851603610d05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d60448201527f657373656e67657200000000000000000000000000000000000000000000000060648201526084016101f3565b610d4785858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061177292505050565b6000610d64855a86604051806020016040528060008152506117e5565b905080610df3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c6564000000000000000000000000000000000000000000000000000000000060648201526084016101f3565b505050505050565b61089187873388888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506117ff92505050565b6060610e6b7f0000000000000000000000000000000000000000000000000000000000000000611b47565b610e947f0000000000000000000000000000000000000000000000000000000000000000611b47565b610ebd7f0000000000000000000000000000000000000000000000000000000000000000611b47565b604051602001610ecf9392919061296a565b604051602081830303815290604052905090565b333b15610f72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101f3565b610df386863333888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c8492505050565b61089187873388888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c8492505050565b333b1561108b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101f3565b610df386863333888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506117ff92505050565b6104cd33858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104c092505050565b610891878787878787876104d3565b333b156111b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101f3565b61096c33338585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104c092505050565b610102600055600261120382611c93565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6104cd3385348686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112a892505050565b823414611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374616e646172644272696467653a206272696467696e6720455448206d757360448201527f7420696e636c7564652073756666696369656e74204554482076616c7565000060648201526084016101f3565b61134385858584611d71565b60035460405173ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b9085907f0000000000000000000000000000000000000000000000000000000000000000907f1635f5fd00000000000000000000000000000000000000000000000000000000906113c2908b908b9086908a906024016129e0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b909216825261145592918890600401612a29565b6000604051808303818588803b15801561146e57600080fd5b505af1158015611482573d6000803e3d6000fd5b50505050505050505050565b60006114ba827f1d1d8b6300000000000000000000000000000000000000000000000000000000611de4565b806114ea57506114ea827fec4fc8e300000000000000000000000000000000000000000000000000000000611de4565b92915050565b600061151c837f1d1d8b6300000000000000000000000000000000000000000000000000000000611de4565b156115c5578273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561156c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115909190612907565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490506114ea565b8273ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561156c573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261096c9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611e07565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b386868660405161175c93929190612a6e565b60405180910390a4610df3868686868686611f13565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2ac69ee804d9a7a0984249f508dfab7cb2534b465b6ce1580f99a38ba9c5e63184846040516117d1929190612aac565b60405180910390a36104cd84848484611f9b565b600080600080845160208601878a8af19695505050505050565b6118088761148e565b156119565761181787876114f0565b6118c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101f3565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201859052881690639dc29fac90604401600060405180830381600087803b15801561193957600080fd5b505af115801561194d573d6000803e3d6000fd5b505050506119ea565b61197873ffffffffffffffffffffffffffffffffffffffff8816863086612008565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a16835292905220546119b6908490612ac5565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b16835292905220555b6119f8878787878786612066565b60035460405173ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b907f0000000000000000000000000000000000000000000000000000000000000000907f0166a07a0000000000000000000000000000000000000000000000000000000090611a79908b908d908c908c908c908b90602401612add565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b9092168252611b0c92918790600401612a29565b600060405180830381600087803b158015611b2657600080fd5b505af1158015611b3a573d6000803e3d6000fd5b5050505050505050505050565b606081600003611b8a57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611bb45780611b9e81612b38565b9150611bad9050600a83612b9f565b9150611b8e565b60008167ffffffffffffffff811115611bcf57611bcf612bb3565b6040519080825280601f01601f191660200182016040528015611bf9576020820181803683370190505b5090505b8415611c7c57611c0e600183612953565b9150611c1b600a86612be2565b611c26906030612ac5565b60f81b818381518110611c3b57611c3b612bf6565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611c75600a86612b9f565b9450611bfd565b949350505050565b610891878787878787876117ff565b600054610100900460ff16611d2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f3565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f35d79ab81f2b2017e19afb5c5571778877782d7a8786f5907f93b0f4702f4f238484604051611dd0929190612aac565b60405180910390a36104cd848484846120f4565b6000611def83612153565b8015611e005750611e0083836121b7565b9392505050565b6000611e69826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122869092919063ffffffff16565b80519091501561096c5780806020019051810190611e879190612c25565b61096c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101f3565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd868686604051611f8b93929190612a6e565b60405180910390a4505050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d8484604051611ffa929190612aac565b60405180910390a350505050565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526104cd9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611662565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d03968686866040516120de93929190612a6e565b60405180910390a4610df3868686868686612295565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af58484604051611ffa929190612aac565b600061217f827f01ffc9a7000000000000000000000000000000000000000000000000000000006121b7565b80156114ea57506121b0827fffffffff000000000000000000000000000000000000000000000000000000006121b7565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d9150600051905082801561226f575060208210155b801561227b5750600081115b979650505050505050565b6060611c7c848460008561230d565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf868686604051611f8b93929190612a6e565b60608247101561239f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101f3565b73ffffffffffffffffffffffffffffffffffffffff85163b61241d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101f3565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516124469190612c47565b60006040518083038185875af1925050503d8060008114612483576040519150601f19603f3d011682016040523d82523d6000602084013e612488565b606091505b509150915061227b828286606083156124a2575081611e00565b8251156124b25782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f391906127b8565b73ffffffffffffffffffffffffffffffffffffffff8116811461250857600080fd5b50565b60008083601f84011261251d57600080fd5b50813567ffffffffffffffff81111561253557600080fd5b60208301915083602082850101111561254d57600080fd5b9250929050565b600080600080600080600060c0888a03121561256f57600080fd5b873561257a816124e6565b9650602088013561258a816124e6565b9550604088013561259a816124e6565b945060608801356125aa816124e6565b93506080880135925060a088013567ffffffffffffffff8111156125cd57600080fd5b6125d98a828b0161250b565b989b979a50959850939692959293505050565b803563ffffffff8116811461260057600080fd5b919050565b60008060006040848603121561261a57600080fd5b612623846125ec565b9250602084013567ffffffffffffffff81111561263f57600080fd5b61264b8682870161250b565b9497909650939450505050565b60008060008060006080868803121561267057600080fd5b853561267b816124e6565b9450602086013561268b816124e6565b935060408601359250606086013567ffffffffffffffff8111156126ae57600080fd5b6126ba8882890161250b565b969995985093965092949392505050565b600080600080600080600060c0888a0312156126e657600080fd5b87356126f1816124e6565b96506020880135612701816124e6565b95506040880135612711816124e6565b945060608801359350612726608089016125ec565b925060a088013567ffffffffffffffff8111156125cd57600080fd5b60005b8381101561275d578181015183820152602001612745565b838111156104cd5750506000910152565b60008151808452612786816020860160208601612742565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611e00602083018461276e565b60008060008060008060a087890312156127e457600080fd5b86356127ef816124e6565b955060208701356127ff816124e6565b945060408701359350612814606088016125ec565b9250608087013567ffffffffffffffff81111561283057600080fd5b61283c89828a0161250b565b979a9699509497509295939492505050565b6000806040838503121561286157600080fd5b823561286c816124e6565b9150602083013561287c816124e6565b809150509250929050565b6000806000806060858703121561289d57600080fd5b84356128a8816124e6565b93506128b6602086016125ec565b9250604085013567ffffffffffffffff8111156128d257600080fd5b6128de8782880161250b565b95989497509550505050565b6000602082840312156128fc57600080fd5b8135611e00816124e6565b60006020828403121561291957600080fd5b8151611e00816124e6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561296557612965612924565b500390565b6000845161297c818460208901612742565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516129b8816001850160208a01612742565b600192019182015283516129d3816002840160208801612742565b0160020195945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152612a1f608083018461276e565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201526000612a58606083018561276e565b905063ffffffff83166040830152949350505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000612aa3606083018461276e565b95945050505050565b828152604060208201526000611c7c604083018461276e565b60008219821115612ad857612ad8612924565b500190565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612b2c60c083018461276e565b98975050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b6957612b69612924565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082612bae57612bae612b70565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082612bf157612bf1612b70565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612c3757600080fd5b81518015158114611e0057600080fd5b60008251612c59818460208701612742
565b919091019291505056fea164736f6c634300080f000a"
func
init
()
{
func
init
()
{
if
err
:=
json
.
Unmarshal
([]
byte
(
L1StandardBridgeStorageLayoutJSON
),
L1StandardBridgeStorageLayout
);
err
!=
nil
{
if
err
:=
json
.
Unmarshal
([]
byte
(
L1StandardBridgeStorageLayoutJSON
),
L1StandardBridgeStorageLayout
);
err
!=
nil
{
...
...
op-bindings/bindings/l2standardbridge.go
View file @
ce665207
...
@@ -31,7 +31,7 @@ var (
...
@@ -31,7 +31,7 @@ var (
// L2StandardBridgeMetaData contains all meta data concerning the L2StandardBridge contract.
// L2StandardBridgeMetaData contains all meta data concerning the L2StandardBridge contract.
var
L2StandardBridgeMetaData
=
&
bind
.
MetaData
{
var
L2StandardBridgeMetaData
=
&
bind
.
MetaData
{
ABI
:
"[{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
contractStandardBridge
\"
,
\"
name
\"
:
\"
_otherBridge
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
constructor
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
l1Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
DepositFinalized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ERC20BridgeFinalized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ERC20BridgeInitiated
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ETHBridgeFinalized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ETHBridgeInitiated
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint8
\"
,
\"
name
\"
:
\"
version
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
name
\"
:
\"
Initialized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
l1Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
WithdrawalInitiated
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
MESSENGER
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractCrossDomainMessenger
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
OTHER_BRIDGE
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractStandardBridge
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
bridgeERC20
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
bridgeERC20To
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
bridgeETH
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
bridgeETHTo
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
deposits
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
finalizeBridgeERC20
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
finalizeBridgeETH
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l1Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
finalizeDeposit
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
initialize
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
l1TokenBridge
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
messenger
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractCrossDomainMessenger
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
otherBridge
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractStandardBridge
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
version
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
string
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
string
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
withdraw
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
withdrawTo
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
receive
\"
}]"
,
ABI
:
"[{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
contractStandardBridge
\"
,
\"
name
\"
:
\"
_otherBridge
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
constructor
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
l1Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
DepositFinalized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ERC20BridgeFinalized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ERC20BridgeInitiated
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ETHBridgeFinalized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
ETHBridgeInitiated
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint8
\"
,
\"
name
\"
:
\"
version
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
name
\"
:
\"
Initialized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
l1Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
WithdrawalInitiated
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
MESSENGER
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractCrossDomainMessenger
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
OTHER_BRIDGE
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractStandardBridge
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
bridgeERC20
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
bridgeERC20To
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
bridgeETH
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
bridgeETHTo
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
deposits
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_localToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_remoteToken
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
finalizeBridgeERC20
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
finalizeBridgeETH
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l1Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_from
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
finalizeDeposit
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
initialize
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
l1TokenBridge
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
messenger
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractCrossDomainMessenger
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
otherBridge
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractStandardBridge
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
version
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
string
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
string
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
withdraw
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_l2Token
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_to
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_amount
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
_minGasLimit
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
withdrawTo
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
receive
\"
}]"
,
Bin
:
"0x6101006040523480156200001257600080fd5b5060405162002
ebc38038062002ebc8339810160408190526200003591620001f4565b6001600160a01b038116608052600160a052600260c052600060e0526200005b62000062565b5062000226565b600054600290610100900460ff1615801562000085575060005460ff8083169116105b620000ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805461ffff191660ff8316176101001790556200012173420000000000000000000000000000000000000762000165565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b600054610100900460ff16620001d25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000e5565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000602082840312156200020757600080fd5b81516001600160a01b03811681146200021f57600080fd5b9392505050565b60805160a05160c05160e051612c406200027c6000396000610f0f01526000610ee601526000610ebd01526000818161024e015281816104f90152818161098e0152818161134e01526116900152612c406000f3fe6080604052600436106101125760003560e01c8063662a633a116100a55780638f601f6611610074578063a3a7954811610059578063a3a7954814610393578063c89701a21461023f578063e11013dd146103a657600080fd5b80638f601f661461034d578063927ede2d1461029857600080fd5b8063662a633a146103055780637f46ddb21461023f5780638129fc1c14610318578063870876231461032d57600080fd5b806336c717c1116100e157806336c717c11461023f5780633cb747bf14610298578063540abf73146102c357806354fd4d50146102e357600080fd5b80630166a07a146101e657806309fc8843146102065780631635f5fd1461021957806332b7006d1461022c57600080fd5b366101e157333b156101ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b6101df73deaddeaddeaddeaddeaddeaddeaddeaddead000033333462030d40604051806020016040528060008152506103b9565b005b600080fd5b3480156101f257600080fd5b506101df6102013660046124ed565b610494565b6101df61021436600461259e565b610852565b6101df6102273660046125f1565b610929565b6101df61023a366004612664565b610d97565b34801561024b57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102a457600080fd5b5060035473ffffffffffffffffffffffffffffffffffffffff1661026e565b3480156102cf57600080fd5b506101df6102de3660046126b8565b610e71565b3480156102ef57600080fd5b506102f8610eb6565b60405161028f91906127a5565b6101df6103133660046124ed565b610f59565b34801561032457600080fd5b506101df610fcc565b34801561033957600080fd5b506101df6103483660046127b8565b611129565b34801561035957600080fd5b5061038561036836600461283b565b600260209081526000928352604080842090915290825290205481565b60405190815260200161028f565b6101df6103a13660046127b8565b6111fd565b6101df6103b4366004612874565b611241565b7fffffffffffffffffffffffff215221522152215221522152215221522153000073ffffffffffffffffffffffffffffffffffffffff87160161040857610403858585858561128a565b61048c565b60008673ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610455573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047991906128d7565b905061048a87828888888888611470565b505b505050505050565b60035473ffffffffffffffffffffffffffffffffffffffff16331480156105835750600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116931691636e296e459160048083019260209291908290030181865afa158015610547573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056b91906128d7565b73ffffffffffffffffffffffffffffffffffffffff16145b610635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101a2565b61063e876117b8565b1561078c5761064d878761181a565b6106ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101a2565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528816906340c10f1990604401600060405180830381600087803b15801561076f57600080fd5b505af1158015610783573d6000803e3d6000fd5b5050505061080e565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a16835292905220546107ca908490612923565b73ffffffffffffffffffffffffffffffffffffffff8089166000818152600260209081526040808320948c168352939052919091209190915561080e90858561193a565b61048a878787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0e92505050565b333b156108e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a2565b6109243333348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061128a92505050565b505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610a185750600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116931691636e296e459160048083019260209291908290030181865afa1580156109dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0091906128d7565b73ffffffffffffffffffffffffffffffffffffffff16145b610aca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101a2565b823414610b59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e7420726571756972656400000000000060648201526084016101a2565b3073ffffffffffffffffffffffffffffffffffffffff851603610bfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c66000000000000000000000000000000000000000000000000000000000060648201526084016101a2565b60035473ffffffffffffffffffffffffffffffffffffffff90811690851603610ca9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d60448201527f657373656e67657200000000000000000000000000000000000000000000000060648201526084016101a2565b610ceb85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a9c92505050565b6000610d08855a8660405180602001604052806000815250611b3d565b90508061048c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c6564000000000000000000000000000000000000000000000000000000000060648201526084016101a2565b333b15610e26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a2565b610e6a853333878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103b992505050565b5050505050565b61048a87873388888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061147092505050565b6060610ee17f0000000000000000000000000000000000000000000000000000000000000000611b57565b610f0a7f0000000000000000000000000000000000000000000000000000000000000000611b57565b610f337f0000000000000000000000000000000000000000000000000000000000000000611b57565b604051602001610f459392919061293a565b604051602081830303815290604052905090565b73ffffffffffffffffffffffffffffffffffffffff8716158015610fa6575073ffffffffffffffffffffffffffffffffffffffff861673deaddeaddeaddeaddeaddeaddeaddeaddead0000145b15610fbd57610fb88585858585610929565b61048a565b61048a86888787878787610494565b600054600290610100900460ff16158015610fee575060005460ff8083169116105b61107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016101a2565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556110c8734200000000000000000000000000000000000007611c94565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b333b156111b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a2565b61048c86863333888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061147092505050565b61048c863387878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103b992505050565b6112843385348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061128a92505050565b50505050565b823414611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374616e646172644272696467653a206272696467696e6720455448206d757360448201527f7420696e636c7564652073756666696369656e74204554482076616c7565000060648201526084016101a2565b61132585858584611d72565b60035460405173ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b9085907f0000000000000000000000000000000000000000000000000000000000000000907f1635f5fd00000000000000000000000000000000000000000000000000000000906113a4908b908b9086908a906024016129b0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b9092168252611437929188906004016129f9565b6000604051808303818588803b15801561145057600080fd5b505af1158015611464573d6000803e3d6000fd5b50505050505050505050565b611479876117b8565b156115c757611488878761181a565b61153a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101a2565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201859052881690639dc29fac90604401600060405180830381600087803b1580156115aa57600080fd5b505af11580156115be573d6000803e3d6000fd5b5050505061165b565b6115e973ffffffffffffffffffffffffffffffffffffffff8816863086611e13565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a1683529290522054611627908490612a3e565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b16835292905220555b611669878787878786611e71565b60035460405173ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b907f0000000000000000000000000000000000000000000000000000000000000000907f0166a07a00000000000000000000000000000000000000000000000000000000906116ea908b908d908c908c908c908b90602401612a56565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b909216825261177d929187906004016129f9565b600060405180830381600087803b15801561179757600080fd5b505af11580156117ab573d6000803e3d6000fd5b5050505050505050505050565b60006117e4827f1d1d8b6300000000000000000000000000000000000000000000000000000000611eff565b806118145750611814827fec4fc8e300000000000000000000000000000000000000000000000000000000611eff565b92915050565b6000611846837f1d1d8b6300000000000000000000000000000000000000000000000000000000611eff565b156118ef578273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611896573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ba91906128d7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050611814565b8273ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611896573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526109249084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611f22565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611a8693929190612ab1565b60405180910390a461048c86868686868661202e565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611b2993929190612ab1565b60405180910390a4611284848484846120b6565b600080600080845160208601878a8af19695505050505050565b606081600003611b9a57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611bc45780611bae81612aef565b9150611bbd9050600a83612b56565b9150611b9e565b60008167ffffffffffffffff811115611bdf57611bdf612b6a565b6040519080825280601f01601f191660200182016040528015611c09576020820181803683370190505b5090505b8415611c8c57611c1e600183612923565b9150611c2b600a86612b99565b611c36906030612a3e565b60f81b818381518110611c4b57611c4b612bad565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611c85600a86612b56565b9450611c0d565b949350505050565b600054610100900460ff16611d2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101a2565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e868686604051611dff93929190612ab1565b60405180910390a461128484848484612123565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526112849085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161198c565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e868686604051611ee993929190612ab1565b60405180910390a461048c868686868686612182565b6000611f0a836121fa565b8015611f1b5750611f1b838361225e565b9392505050565b6000611f84826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661232d9092919063ffffffff16565b8051909150156109245780806020019051810190611fa29190612bdc565b610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101a2565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd8686866040516120a693929190612ab1565b60405180910390a4505050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d8484604051612115929190612bfe565b60405180910390a350505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af58484604051612115929190612bfe565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf8686866040516120a693929190612ab1565b6000612226827f01ffc9a70000000000000000000000000000000000000000000000000000000061225e565b80156118145750612257827fffffffff0000000000000000000000000000000000000000000000000000000061225e565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d91506000519050828015612316575060208210155b80156123225750600081115b979650505050505050565b6060611c8c84846000858573ffffffffffffffffffffffffffffffffffffffff85163b6123b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101a2565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123df9190612c17565b60006040518083038185875af1925050503d806000811461241c576040519150601f19603f3d011682016040523d82523d6000602084013e612421565b606091505b50915091506123228282866060831561243b575081611f1b565b82511561244b5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a291906127a5565b73ffffffffffffffffffffffffffffffffffffffff811681146124a157600080fd5b50565b60008083601f8401126124b657600080fd5b50813567ffffffffffffffff8111156124ce57600080fd5b6020830191508360208285010111156124e657600080fd5b9250929050565b600080600080600080600060c0888a03121561250857600080fd5b87356125138161247f565b965060208801356125238161247f565b955060408801356125338161247f565b945060608801356125438161247f565b93506080880135925060a088013567ffffffffffffffff81111561256657600080fd5b6125728a828b016124a4565b989b979a50959850939692959293505050565b803563ffffffff8116811461259957600080fd5b919050565b6000806000604084860312156125b357600080fd5b6125bc84612585565b9250602084013567ffffffffffffffff8111156125d857600080fd5b6125e4868287016124a4565b9497909650939450505050565b60008060008060006080868803121561260957600080fd5b85356126148161247f565b945060208601356126248161247f565b935060408601359250606086013567ffffffffffffffff81111561264757600080fd5b612653888289016124a4565b969995985093965092949392505050565b60008060008060006080868803121561267c57600080fd5b85356126878161247f565b94506020860135935061269c60408701612585565b9250606086013567ffffffffffffffff81111561264757600080fd5b600080600080600080600060c0888a0312156126d357600080fd5b87356126de8161247f565b965060208801356126ee8161247f565b955060408801356126fe8161247f565b94506060880135935061271360808901612585565b925060a088013567ffffffffffffffff81111561256657600080fd5b60005b8381101561274a578181015183820152602001612732565b838111156112845750506000910152565b6000815180845261277381602086016020860161272f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611f1b602083018461275b565b60008060008060008060a087890312156127d157600080fd5b86356127dc8161247f565b955060208701356127ec8161247f565b94506040870135935061280160608801612585565b9250608087013567ffffffffffffffff81111561281d57600080fd5b61282989828a016124a4565b979a9699509497509295939492505050565b6000806040838503121561284e57600080fd5b82356128598161247f565b915060208301356128698161247f565b809150509250929050565b6000806000806060858703121561288a57600080fd5b84356128958161247f565b93506128a360208601612585565b9250604085013567ffffffffffffffff8111156128bf57600080fd5b6128cb878288016124a4565b95989497509550505050565b6000602082840312156128e957600080fd5b8151611f1b8161247f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612935576129356128f4565b500390565b6000845161294c81846020890161272f565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551612988816001850160208a0161272f565b600192019182015283516129a381600284016020880161272f565b0160020195945050505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526129ef608083018461275b565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201526000612a28606083018561275b565b905063ffffffff83166040830152949350505050565b60008219821115612a5157612a516128f4565b500190565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612aa560c083018461275b565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000612ae6606083018461275b565b95945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b2057612b206128f4565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082612b6557612b65612b27565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082612ba857612ba8612b27565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612bee57600080fd5b81518015158114611f1b57600080fd5b828152604060208201526000611c8c604083018461275b565b60008251612c2981846020870161272f
565b919091019291505056fea164736f6c634300080f000a"
,
Bin
:
"0x6101006040523480156200001257600080fd5b5060405162002
f2438038062002f248339810160408190526200003591620001f4565b6001600160a01b038116608052600160a052600260c052600060e0526200005b62000062565b5062000226565b600054600290610100900460ff1615801562000085575060005460ff8083169116105b620000ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805461ffff191660ff8316176101001790556200012173420000000000000000000000000000000000000762000165565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b600054610100900460ff16620001d25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000e5565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000602082840312156200020757600080fd5b81516001600160a01b03811681146200021f57600080fd5b9392505050565b60805160a05160c05160e051612ca1620002836000396000610f7001526000610f4701526000610f1e01526000818161024e0152818161032a0152818161055a015281816109ef015281816113af01526116f10152612ca16000f3fe6080604052600436106101125760003560e01c8063662a633a116100a55780638f601f6611610074578063a3a7954811610059578063a3a79548146103f4578063c89701a21461023f578063e11013dd1461040757600080fd5b80638f601f6614610381578063927ede2d146103c757600080fd5b8063662a633a146103055780637f46ddb2146103185780638129fc1c1461034c578063870876231461036157600080fd5b806336c717c1116100e157806336c717c11461023f5780633cb747bf14610298578063540abf73146102c357806354fd4d50146102e357600080fd5b80630166a07a146101e657806309fc8843146102065780631635f5fd1461021957806332b7006d1461022c57600080fd5b366101e157333b156101ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b6101df73deaddeaddeaddeaddeaddeaddeaddeaddead000033333462030d406040518060200160405280600081525061041a565b005b600080fd5b3480156101f257600080fd5b506101df61020136600461254e565b6104f5565b6101df6102143660046125ff565b6108b3565b6101df610227366004612652565b61098a565b6101df61023a3660046126c5565b610df8565b34801561024b57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102a457600080fd5b5060035473ffffffffffffffffffffffffffffffffffffffff1661026e565b3480156102cf57600080fd5b506101df6102de366004612719565b610ed2565b3480156102ef57600080fd5b506102f8610f17565b60405161028f9190612806565b6101df61031336600461254e565b610fba565b34801561032457600080fd5b5061026e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561035857600080fd5b506101df61102d565b34801561036d57600080fd5b506101df61037c366004612819565b61118a565b34801561038d57600080fd5b506103b961039c36600461289c565b600260209081526000928352604080842090915290825290205481565b60405190815260200161028f565b3480156103d357600080fd5b5060035461026e9073ffffffffffffffffffffffffffffffffffffffff1681565b6101df610402366004612819565b61125e565b6101df6104153660046128d5565b6112a2565b7fffffffffffffffffffffffff215221522152215221522152215221522153000073ffffffffffffffffffffffffffffffffffffffff8716016104695761046485858585856112eb565b6104ed565b60008673ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104da9190612938565b90506104eb878288888888886114d1565b505b505050505050565b60035473ffffffffffffffffffffffffffffffffffffffff16331480156105e45750600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116931691636e296e459160048083019260209291908290030181865afa1580156105a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cc9190612938565b73ffffffffffffffffffffffffffffffffffffffff16145b610696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101a2565b61069f87611819565b156107ed576106ae878761187b565b610760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101a2565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528816906340c10f1990604401600060405180830381600087803b1580156107d057600080fd5b505af11580156107e4573d6000803e3d6000fd5b5050505061086f565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a168352929052205461082b908490612984565b73ffffffffffffffffffffffffffffffffffffffff8089166000818152600260209081526040808320948c168352939052919091209190915561086f90858561199b565b6104eb878787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a6f92505050565b333b15610942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a2565b6109853333348686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112eb92505050565b505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610a795750600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116931691636e296e459160048083019260209291908290030181865afa158015610a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a619190612938565b73ffffffffffffffffffffffffffffffffffffffff16145b610b2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101a2565b823414610bba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e7420726571756972656400000000000060648201526084016101a2565b3073ffffffffffffffffffffffffffffffffffffffff851603610c5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c66000000000000000000000000000000000000000000000000000000000060648201526084016101a2565b60035473ffffffffffffffffffffffffffffffffffffffff90811690851603610d0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d60448201527f657373656e67657200000000000000000000000000000000000000000000000060648201526084016101a2565b610d4c85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611afd92505050565b6000610d69855a8660405180602001604052806000815250611b9e565b9050806104ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c6564000000000000000000000000000000000000000000000000000000000060648201526084016101a2565b333b15610e87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a2565b610ecb853333878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061041a92505050565b5050505050565b6104eb87873388888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114d192505050565b6060610f427f0000000000000000000000000000000000000000000000000000000000000000611bb8565b610f6b7f0000000000000000000000000000000000000000000000000000000000000000611bb8565b610f947f0000000000000000000000000000000000000000000000000000000000000000611bb8565b604051602001610fa69392919061299b565b604051602081830303815290604052905090565b73ffffffffffffffffffffffffffffffffffffffff8716158015611007575073ffffffffffffffffffffffffffffffffffffffff861673deaddeaddeaddeaddeaddeaddeaddeaddead0000145b1561101e57611019858585858561098a565b6104eb565b6104eb868887878787876104f5565b600054600290610100900460ff1615801561104f575060005460ff8083169116105b6110db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016101a2565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611129734200000000000000000000000000000000000007611cf5565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b333b15611219576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a2565b6104ed86863333888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114d192505050565b6104ed863387878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061041a92505050565b6112e53385348686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112eb92505050565b50505050565b82341461137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374616e646172644272696467653a206272696467696e6720455448206d757360448201527f7420696e636c7564652073756666696369656e74204554482076616c7565000060648201526084016101a2565b61138685858584611dd3565b60035460405173ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b9085907f0000000000000000000000000000000000000000000000000000000000000000907f1635f5fd0000000000000000000000000000000000000000000000000000000090611405908b908b9086908a90602401612a11565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b909216825261149892918890600401612a5a565b6000604051808303818588803b1580156114b157600080fd5b505af11580156114c5573d6000803e3d6000fd5b50505050505050505050565b6114da87611819565b15611628576114e9878761187b565b61159b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101a2565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201859052881690639dc29fac90604401600060405180830381600087803b15801561160b57600080fd5b505af115801561161f573d6000803e3d6000fd5b505050506116bc565b61164a73ffffffffffffffffffffffffffffffffffffffff8816863086611e74565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a1683529290522054611688908490612a9f565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b16835292905220555b6116ca878787878786611ed2565b60035460405173ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b907f0000000000000000000000000000000000000000000000000000000000000000907f0166a07a000000000000000000000000000000000000000000000000000000009061174b908b908d908c908c908c908b90602401612ab7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b90921682526117de92918790600401612a5a565b600060405180830381600087803b1580156117f857600080fd5b505af115801561180c573d6000803e3d6000fd5b5050505050505050505050565b6000611845827f1d1d8b6300000000000000000000000000000000000000000000000000000000611f60565b806118755750611875827fec4fc8e300000000000000000000000000000000000000000000000000000000611f60565b92915050565b60006118a7837f1d1d8b6300000000000000000000000000000000000000000000000000000000611f60565b15611950578273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191b9190612938565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050611875565b8273ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f7573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526109859084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611f83565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611ae793929190612b12565b60405180910390a46104ed86868686868661208f565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611b8a93929190612b12565b60405180910390a46112e584848484612117565b600080600080845160208601878a8af19695505050505050565b606081600003611bfb57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611c255780611c0f81612b50565b9150611c1e9050600a83612bb7565b9150611bff565b60008167ffffffffffffffff811115611c4057611c40612bcb565b6040519080825280601f01601f191660200182016040528015611c6a576020820181803683370190505b5090505b8415611ced57611c7f600183612984565b9150611c8c600a86612bfa565b611c97906030612a9f565b60f81b818381518110611cac57611cac612c0e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611ce6600a86612bb7565b9450611c6e565b949350505050565b600054610100900460ff16611d8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101a2565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e868686604051611e6093929190612b12565b60405180910390a46112e584848484612184565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526112e59085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016119ed565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e868686604051611f4a93929190612b12565b60405180910390a46104ed8686868686866121e3565b6000611f6b8361225b565b8015611f7c5750611f7c83836122bf565b9392505050565b6000611fe5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661238e9092919063ffffffff16565b80519091501561098557808060200190518101906120039190612c3d565b610985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101a2565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd86868660405161210793929190612b12565b60405180910390a4505050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d8484604051612176929190612c5f565b60405180910390a350505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af58484604051612176929190612c5f565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf86868660405161210793929190612b12565b6000612287827f01ffc9a7000000000000000000000000000000000000000000000000000000006122bf565b801561187557506122b8827fffffffff000000000000000000000000000000000000000000000000000000006122bf565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d91506000519050828015612377575060208210155b80156123835750600081115b979650505050505050565b6060611ced84846000858573ffffffffffffffffffffffffffffffffffffffff85163b612417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101a2565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516124409190612c78565b60006040518083038185875af1925050503d806000811461247d576040519150601f19603f3d011682016040523d82523d6000602084013e612482565b606091505b50915091506123838282866060831561249c575081611f7c565b8251156124ac5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a29190612806565b73ffffffffffffffffffffffffffffffffffffffff8116811461250257600080fd5b50565b60008083601f84011261251757600080fd5b50813567ffffffffffffffff81111561252f57600080fd5b60208301915083602082850101111561254757600080fd5b9250929050565b600080600080600080600060c0888a03121561256957600080fd5b8735612574816124e0565b96506020880135612584816124e0565b95506040880135612594816124e0565b945060608801356125a4816124e0565b93506080880135925060a088013567ffffffffffffffff8111156125c757600080fd5b6125d38a828b01612505565b989b979a50959850939692959293505050565b803563ffffffff811681146125fa57600080fd5b919050565b60008060006040848603121561261457600080fd5b61261d846125e6565b9250602084013567ffffffffffffffff81111561263957600080fd5b61264586828701612505565b9497909650939450505050565b60008060008060006080868803121561266a57600080fd5b8535612675816124e0565b94506020860135612685816124e0565b935060408601359250606086013567ffffffffffffffff8111156126a857600080fd5b6126b488828901612505565b969995985093965092949392505050565b6000806000806000608086880312156126dd57600080fd5b85356126e8816124e0565b9450602086013593506126fd604087016125e6565b9250606086013567ffffffffffffffff8111156126a857600080fd5b600080600080600080600060c0888a03121561273457600080fd5b873561273f816124e0565b9650602088013561274f816124e0565b9550604088013561275f816124e0565b945060608801359350612774608089016125e6565b925060a088013567ffffffffffffffff8111156125c757600080fd5b60005b838110156127ab578181015183820152602001612793565b838111156112e55750506000910152565b600081518084526127d4816020860160208601612790565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611f7c60208301846127bc565b60008060008060008060a0878903121561283257600080fd5b863561283d816124e0565b9550602087013561284d816124e0565b945060408701359350612862606088016125e6565b9250608087013567ffffffffffffffff81111561287e57600080fd5b61288a89828a01612505565b979a9699509497509295939492505050565b600080604083850312156128af57600080fd5b82356128ba816124e0565b915060208301356128ca816124e0565b809150509250929050565b600080600080606085870312156128eb57600080fd5b84356128f6816124e0565b9350612904602086016125e6565b9250604085013567ffffffffffffffff81111561292057600080fd5b61292c87828801612505565b95989497509550505050565b60006020828403121561294a57600080fd5b8151611f7c816124e0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561299657612996612955565b500390565b600084516129ad818460208901612790565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516129e9816001850160208a01612790565b60019201918201528351612a04816002840160208801612790565b0160020195945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152612a5060808301846127bc565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201526000612a8960608301856127bc565b905063ffffffff83166040830152949350505050565b60008219821115612ab257612ab2612955565b500190565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612b0660c08301846127bc565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000612b4760608301846127bc565b95945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b8157612b81612955565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082612bc657612bc6612b88565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082612c0957612c09612b88565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612c4f57600080fd5b81518015158114611f7c57600080fd5b828152604060208201526000611ced60408301846127bc565b60008251612c8a818460208701612790
565b919091019291505056fea164736f6c634300080f000a"
,
}
}
// L2StandardBridgeABI is the input ABI used to generate the binding from.
// L2StandardBridgeABI is the input ABI used to generate the binding from.
...
...
op-bindings/bindings/l2standardbridge_more.go
View file @
ce665207
...
@@ -9,11 +9,11 @@ import (
...
@@ -9,11 +9,11 @@ import (
"github.com/ethereum-optimism/optimism/op-bindings/solc"
"github.com/ethereum-optimism/optimism/op-bindings/solc"
)
)
const
L2StandardBridgeStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:1000,
\"
contract
\"
:
\"
src/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
_initialized
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_uint8
\"
},{
\"
astId
\"
:1001,
\"
contract
\"
:
\"
src/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
_initializing
\"
,
\"
offset
\"
:1,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_bool
\"
},{
\"
astId
\"
:1002,
\"
contract
\"
:
\"
src/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
spacer_0_2_20
\"
,
\"
offset
\"
:2,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:1003,
\"
contract
\"
:
\"
src/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
spacer_1_0_20
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:1004,
\"
contract
\"
:
\"
src/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
deposits
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
},{
\"
astId
\"
:1005,
\"
contract
\"
:
\"
src/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
_
MESSENGER
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_contract(CrossDomainMessenger)1007
\"
},{
\"
astId
\"
:1006,
\"
contract
\"
:
\"
src/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
4
\"
,
\"
type
\"
:
\"
t_array(t_uint256)46_storage
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_array(t_uint256)46_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[46]
\"
,
\"
numberOfBytes
\"
:
\"
1472
\"
,
\"
base
\"
:
\"
t_uint256
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_contract(CrossDomainMessenger)1007
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
contract CrossDomainMessenger
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
mapping(address =
\u003e
uint256))
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_mapping(t_address,t_uint256)
\"
},
\"
t_mapping(t_address,t_uint256)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
uint256)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_uint256
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint8
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint8
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
}}}"
const
L2StandardBridgeStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:1000,
\"
contract
\"
:
\"
src/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
_initialized
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_uint8
\"
},{
\"
astId
\"
:1001,
\"
contract
\"
:
\"
src/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
_initializing
\"
,
\"
offset
\"
:1,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_bool
\"
},{
\"
astId
\"
:1002,
\"
contract
\"
:
\"
src/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
spacer_0_2_20
\"
,
\"
offset
\"
:2,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:1003,
\"
contract
\"
:
\"
src/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
spacer_1_0_20
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:1004,
\"
contract
\"
:
\"
src/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
deposits
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
},{
\"
astId
\"
:1005,
\"
contract
\"
:
\"
src/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
MESSENGER
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_contract(CrossDomainMessenger)1007
\"
},{
\"
astId
\"
:1006,
\"
contract
\"
:
\"
src/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
4
\"
,
\"
type
\"
:
\"
t_array(t_uint256)46_storage
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_array(t_uint256)46_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[46]
\"
,
\"
numberOfBytes
\"
:
\"
1472
\"
,
\"
base
\"
:
\"
t_uint256
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_contract(CrossDomainMessenger)1007
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
contract CrossDomainMessenger
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
mapping(address =
\u003e
uint256))
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_mapping(t_address,t_uint256)
\"
},
\"
t_mapping(t_address,t_uint256)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
uint256)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_uint256
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint8
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint8
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
}}}"
var
L2StandardBridgeStorageLayout
=
new
(
solc
.
StorageLayout
)
var
L2StandardBridgeStorageLayout
=
new
(
solc
.
StorageLayout
)
var
L2StandardBridgeDeployedBin
=
"0x6080604052600436106101125760003560e01c8063662a633a116100a55780638f601f6611610074578063a3a7954811610059578063a3a79548146103
93578063c89701a21461023f578063e11013dd146103a657600080fd5b80638f601f661461034d578063927ede2d1461029857600080fd5b8063662a633a146103055780637f46ddb21461023f5780638129fc1c14610318578063870876231461032d57600080fd5b806336c717c1116100e157806336c717c11461023f5780633cb747bf14610298578063540abf73146102c357806354fd4d50146102e357600080fd5b80630166a07a146101e657806309fc8843146102065780631635f5fd1461021957806332b7006d1461022c57600080fd5b366101e157333b156101ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b6101df73deaddeaddeaddeaddeaddeaddeaddeaddead000033333462030d40604051806020016040528060008152506103b9565b005b600080fd5b3480156101f257600080fd5b506101df6102013660046124ed565b610494565b6101df61021436600461259e565b610852565b6101df6102273660046125f1565b610929565b6101df61023a366004612664565b610d97565b34801561024b57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102a457600080fd5b5060035473ffffffffffffffffffffffffffffffffffffffff1661026e565b3480156102cf57600080fd5b506101df6102de3660046126b8565b610e71565b3480156102ef57600080fd5b506102f8610eb6565b60405161028f91906127a5565b6101df6103133660046124ed565b610f59565b34801561032457600080fd5b506101df610fcc565b34801561033957600080fd5b506101df6103483660046127b8565b611129565b34801561035957600080fd5b5061038561036836600461283b565b600260209081526000928352604080842090915290825290205481565b60405190815260200161028f565b6101df6103a13660046127b8565b6111fd565b6101df6103b4366004612874565b611241565b7fffffffffffffffffffffffff215221522152215221522152215221522153000073ffffffffffffffffffffffffffffffffffffffff87160161040857610403858585858561128a565b61048c565b60008673ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610455573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047991906128d7565b905061048a87828888888888611470565b505b505050505050565b60035473ffffffffffffffffffffffffffffffffffffffff16331480156105835750600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116931691636e296e459160048083019260209291908290030181865afa158015610547573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056b91906128d7565b73ffffffffffffffffffffffffffffffffffffffff16145b610635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101a2565b61063e876117b8565b1561078c5761064d878761181a565b6106ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101a2565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528816906340c10f1990604401600060405180830381600087803b15801561076f57600080fd5b505af1158015610783573d6000803e3d6000fd5b5050505061080e565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a16835292905220546107ca908490612923565b73ffffffffffffffffffffffffffffffffffffffff8089166000818152600260209081526040808320948c168352939052919091209190915561080e90858561193a565b61048a878787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0e92505050565b333b156108e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a2565b6109243333348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061128a92505050565b505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610a185750600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116931691636e296e459160048083019260209291908290030181865afa1580156109dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0091906128d7565b73ffffffffffffffffffffffffffffffffffffffff16145b610aca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101a2565b823414610b59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e7420726571756972656400000000000060648201526084016101a2565b3073ffffffffffffffffffffffffffffffffffffffff851603610bfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c66000000000000000000000000000000000000000000000000000000000060648201526084016101a2565b60035473ffffffffffffffffffffffffffffffffffffffff90811690851603610ca9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d60448201527f657373656e67657200000000000000000000000000000000000000000000000060648201526084016101a2565b610ceb85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a9c92505050565b6000610d08855a8660405180602001604052806000815250611b3d565b90508061048c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c6564000000000000000000000000000000000000000000000000000000000060648201526084016101a2565b333b15610e26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a2565b610e6a853333878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103b992505050565b5050505050565b61048a87873388888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061147092505050565b6060610ee17f0000000000000000000000000000000000000000000000000000000000000000611b57565b610f0a7f0000000000000000000000000000000000000000000000000000000000000000611b57565b610f337f0000000000000000000000000000000000000000000000000000000000000000611b57565b604051602001610f459392919061293a565b604051602081830303815290604052905090565b73ffffffffffffffffffffffffffffffffffffffff8716158015610fa6575073ffffffffffffffffffffffffffffffffffffffff861673deaddeaddeaddeaddeaddeaddeaddeaddead0000145b15610fbd57610fb88585858585610929565b61048a565b61048a86888787878787610494565b600054600290610100900460ff16158015610fee575060005460ff8083169116105b61107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016101a2565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556110c8734200000000000000000000000000000000000007611c94565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b333b156111b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a2565b61048c86863333888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061147092505050565b61048c863387878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103b992505050565b6112843385348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061128a92505050565b50505050565b823414611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374616e646172644272696467653a206272696467696e6720455448206d757360448201527f7420696e636c7564652073756666696369656e74204554482076616c7565000060648201526084016101a2565b61132585858584611d72565b60035460405173ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b9085907f0000000000000000000000000000000000000000000000000000000000000000907f1635f5fd00000000000000000000000000000000000000000000000000000000906113a4908b908b9086908a906024016129b0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b9092168252611437929188906004016129f9565b6000604051808303818588803b15801561145057600080fd5b505af1158015611464573d6000803e3d6000fd5b50505050505050505050565b611479876117b8565b156115c757611488878761181a565b61153a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101a2565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201859052881690639dc29fac90604401600060405180830381600087803b1580156115aa57600080fd5b505af11580156115be573d6000803e3d6000fd5b5050505061165b565b6115e973ffffffffffffffffffffffffffffffffffffffff8816863086611e13565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a1683529290522054611627908490612a3e565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b16835292905220555b611669878787878786611e71565b60035460405173ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b907f0000000000000000000000000000000000000000000000000000000000000000907f0166a07a00000000000000000000000000000000000000000000000000000000906116ea908b908d908c908c908c908b90602401612a56565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b909216825261177d929187906004016129f9565b600060405180830381600087803b15801561179757600080fd5b505af11580156117ab573d6000803e3d6000fd5b5050505050505050505050565b60006117e4827f1d1d8b6300000000000000000000000000000000000000000000000000000000611eff565b806118145750611814827fec4fc8e300000000000000000000000000000000000000000000000000000000611eff565b92915050565b6000611846837f1d1d8b6300000000000000000000000000000000000000000000000000000000611eff565b156118ef578273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611896573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ba91906128d7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050611814565b8273ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611896573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526109249084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611f22565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611a8693929190612ab1565b60405180910390a461048c86868686868661202e565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611b2993929190612ab1565b60405180910390a4611284848484846120b6565b600080600080845160208601878a8af19695505050505050565b606081600003611b9a57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611bc45780611bae81612aef565b9150611bbd9050600a83612b56565b9150611b9e565b60008167ffffffffffffffff811115611bdf57611bdf612b6a565b6040519080825280601f01601f191660200182016040528015611c09576020820181803683370190505b5090505b8415611c8c57611c1e600183612923565b9150611c2b600a86612b99565b611c36906030612a3e565b60f81b818381518110611c4b57611c4b612bad565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611c85600a86612b56565b9450611c0d565b949350505050565b600054610100900460ff16611d2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101a2565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e868686604051611dff93929190612ab1565b60405180910390a461128484848484612123565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526112849085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161198c565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e868686604051611ee993929190612ab1565b60405180910390a461048c868686868686612182565b6000611f0a836121fa565b8015611f1b5750611f1b838361225e565b9392505050565b6000611f84826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661232d9092919063ffffffff16565b8051909150156109245780806020019051810190611fa29190612bdc565b610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101a2565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd8686866040516120a693929190612ab1565b60405180910390a4505050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d8484604051612115929190612bfe565b60405180910390a350505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af58484604051612115929190612bfe565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf8686866040516120a693929190612ab1565b6000612226827f01ffc9a70000000000000000000000000000000000000000000000000000000061225e565b80156118145750612257827fffffffff0000000000000000000000000000000000000000000000000000000061225e565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d91506000519050828015612316575060208210155b80156123225750600081115b979650505050505050565b6060611c8c84846000858573ffffffffffffffffffffffffffffffffffffffff85163b6123b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101a2565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123df9190612c17565b60006040518083038185875af1925050503d806000811461241c576040519150601f19603f3d011682016040523d82523d6000602084013e612421565b606091505b50915091506123228282866060831561243b575081611f1b565b82511561244b5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a291906127a5565b73ffffffffffffffffffffffffffffffffffffffff811681146124a157600080fd5b50565b60008083601f8401126124b657600080fd5b50813567ffffffffffffffff8111156124ce57600080fd5b6020830191508360208285010111156124e657600080fd5b9250929050565b600080600080600080600060c0888a03121561250857600080fd5b87356125138161247f565b965060208801356125238161247f565b955060408801356125338161247f565b945060608801356125438161247f565b93506080880135925060a088013567ffffffffffffffff81111561256657600080fd5b6125728a828b016124a4565b989b979a50959850939692959293505050565b803563ffffffff8116811461259957600080fd5b919050565b6000806000604084860312156125b357600080fd5b6125bc84612585565b9250602084013567ffffffffffffffff8111156125d857600080fd5b6125e4868287016124a4565b9497909650939450505050565b60008060008060006080868803121561260957600080fd5b85356126148161247f565b945060208601356126248161247f565b935060408601359250606086013567ffffffffffffffff81111561264757600080fd5b612653888289016124a4565b969995985093965092949392505050565b60008060008060006080868803121561267c57600080fd5b85356126878161247f565b94506020860135935061269c60408701612585565b9250606086013567ffffffffffffffff81111561264757600080fd5b600080600080600080600060c0888a0312156126d357600080fd5b87356126de8161247f565b965060208801356126ee8161247f565b955060408801356126fe8161247f565b94506060880135935061271360808901612585565b925060a088013567ffffffffffffffff81111561256657600080fd5b60005b8381101561274a578181015183820152602001612732565b838111156112845750506000910152565b6000815180845261277381602086016020860161272f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611f1b602083018461275b565b60008060008060008060a087890312156127d157600080fd5b86356127dc8161247f565b955060208701356127ec8161247f565b94506040870135935061280160608801612585565b9250608087013567ffffffffffffffff81111561281d57600080fd5b61282989828a016124a4565b979a9699509497509295939492505050565b6000806040838503121561284e57600080fd5b82356128598161247f565b915060208301356128698161247f565b809150509250929050565b6000806000806060858703121561288a57600080fd5b84356128958161247f565b93506128a360208601612585565b9250604085013567ffffffffffffffff8111156128bf57600080fd5b6128cb878288016124a4565b95989497509550505050565b6000602082840312156128e957600080fd5b8151611f1b8161247f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612935576129356128f4565b500390565b6000845161294c81846020890161272f565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551612988816001850160208a0161272f565b600192019182015283516129a381600284016020880161272f565b0160020195945050505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526129ef608083018461275b565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201526000612a28606083018561275b565b905063ffffffff83166040830152949350505050565b60008219821115612a5157612a516128f4565b500190565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612aa560c083018461275b565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000612ae6606083018461275b565b95945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b2057612b206128f4565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082612b6557612b65612b27565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082612ba857612ba8612b27565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612bee57600080fd5b81518015158114611f1b57600080fd5b828152604060208201526000611c8c604083018461275b565b60008251612c2981846020870161272f
565b919091019291505056fea164736f6c634300080f000a"
var
L2StandardBridgeDeployedBin
=
"0x6080604052600436106101125760003560e01c8063662a633a116100a55780638f601f6611610074578063a3a7954811610059578063a3a79548146103
f4578063c89701a21461023f578063e11013dd1461040757600080fd5b80638f601f6614610381578063927ede2d146103c757600080fd5b8063662a633a146103055780637f46ddb2146103185780638129fc1c1461034c578063870876231461036157600080fd5b806336c717c1116100e157806336c717c11461023f5780633cb747bf14610298578063540abf73146102c357806354fd4d50146102e357600080fd5b80630166a07a146101e657806309fc8843146102065780631635f5fd1461021957806332b7006d1461022c57600080fd5b366101e157333b156101ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b6101df73deaddeaddeaddeaddeaddeaddeaddeaddead000033333462030d406040518060200160405280600081525061041a565b005b600080fd5b3480156101f257600080fd5b506101df61020136600461254e565b6104f5565b6101df6102143660046125ff565b6108b3565b6101df610227366004612652565b61098a565b6101df61023a3660046126c5565b610df8565b34801561024b57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102a457600080fd5b5060035473ffffffffffffffffffffffffffffffffffffffff1661026e565b3480156102cf57600080fd5b506101df6102de366004612719565b610ed2565b3480156102ef57600080fd5b506102f8610f17565b60405161028f9190612806565b6101df61031336600461254e565b610fba565b34801561032457600080fd5b5061026e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561035857600080fd5b506101df61102d565b34801561036d57600080fd5b506101df61037c366004612819565b61118a565b34801561038d57600080fd5b506103b961039c36600461289c565b600260209081526000928352604080842090915290825290205481565b60405190815260200161028f565b3480156103d357600080fd5b5060035461026e9073ffffffffffffffffffffffffffffffffffffffff1681565b6101df610402366004612819565b61125e565b6101df6104153660046128d5565b6112a2565b7fffffffffffffffffffffffff215221522152215221522152215221522153000073ffffffffffffffffffffffffffffffffffffffff8716016104695761046485858585856112eb565b6104ed565b60008673ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104da9190612938565b90506104eb878288888888886114d1565b505b505050505050565b60035473ffffffffffffffffffffffffffffffffffffffff16331480156105e45750600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116931691636e296e459160048083019260209291908290030181865afa1580156105a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cc9190612938565b73ffffffffffffffffffffffffffffffffffffffff16145b610696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101a2565b61069f87611819565b156107ed576106ae878761187b565b610760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101a2565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528816906340c10f1990604401600060405180830381600087803b1580156107d057600080fd5b505af11580156107e4573d6000803e3d6000fd5b5050505061086f565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a168352929052205461082b908490612984565b73ffffffffffffffffffffffffffffffffffffffff8089166000818152600260209081526040808320948c168352939052919091209190915561086f90858561199b565b6104eb878787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a6f92505050565b333b15610942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a2565b6109853333348686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112eb92505050565b505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610a795750600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116931691636e296e459160048083019260209291908290030181865afa158015610a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a619190612938565b73ffffffffffffffffffffffffffffffffffffffff16145b610b2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101a2565b823414610bba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e7420726571756972656400000000000060648201526084016101a2565b3073ffffffffffffffffffffffffffffffffffffffff851603610c5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c66000000000000000000000000000000000000000000000000000000000060648201526084016101a2565b60035473ffffffffffffffffffffffffffffffffffffffff90811690851603610d0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d60448201527f657373656e67657200000000000000000000000000000000000000000000000060648201526084016101a2565b610d4c85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611afd92505050565b6000610d69855a8660405180602001604052806000815250611b9e565b9050806104ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c6564000000000000000000000000000000000000000000000000000000000060648201526084016101a2565b333b15610e87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a2565b610ecb853333878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061041a92505050565b5050505050565b6104eb87873388888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114d192505050565b6060610f427f0000000000000000000000000000000000000000000000000000000000000000611bb8565b610f6b7f0000000000000000000000000000000000000000000000000000000000000000611bb8565b610f947f0000000000000000000000000000000000000000000000000000000000000000611bb8565b604051602001610fa69392919061299b565b604051602081830303815290604052905090565b73ffffffffffffffffffffffffffffffffffffffff8716158015611007575073ffffffffffffffffffffffffffffffffffffffff861673deaddeaddeaddeaddeaddeaddeaddeaddead0000145b1561101e57611019858585858561098a565b6104eb565b6104eb868887878787876104f5565b600054600290610100900460ff1615801561104f575060005460ff8083169116105b6110db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016101a2565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611129734200000000000000000000000000000000000007611cf5565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b333b15611219576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a2565b6104ed86863333888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114d192505050565b6104ed863387878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061041a92505050565b6112e53385348686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112eb92505050565b50505050565b82341461137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374616e646172644272696467653a206272696467696e6720455448206d757360448201527f7420696e636c7564652073756666696369656e74204554482076616c7565000060648201526084016101a2565b61138685858584611dd3565b60035460405173ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b9085907f0000000000000000000000000000000000000000000000000000000000000000907f1635f5fd0000000000000000000000000000000000000000000000000000000090611405908b908b9086908a90602401612a11565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b909216825261149892918890600401612a5a565b6000604051808303818588803b1580156114b157600080fd5b505af11580156114c5573d6000803e3d6000fd5b50505050505050505050565b6114da87611819565b15611628576114e9878761187b565b61159b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101a2565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201859052881690639dc29fac90604401600060405180830381600087803b15801561160b57600080fd5b505af115801561161f573d6000803e3d6000fd5b505050506116bc565b61164a73ffffffffffffffffffffffffffffffffffffffff8816863086611e74565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a1683529290522054611688908490612a9f565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b16835292905220555b6116ca878787878786611ed2565b60035460405173ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b907f0000000000000000000000000000000000000000000000000000000000000000907f0166a07a000000000000000000000000000000000000000000000000000000009061174b908b908d908c908c908c908b90602401612ab7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b90921682526117de92918790600401612a5a565b600060405180830381600087803b1580156117f857600080fd5b505af115801561180c573d6000803e3d6000fd5b5050505050505050505050565b6000611845827f1d1d8b6300000000000000000000000000000000000000000000000000000000611f60565b806118755750611875827fec4fc8e300000000000000000000000000000000000000000000000000000000611f60565b92915050565b60006118a7837f1d1d8b6300000000000000000000000000000000000000000000000000000000611f60565b15611950578273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191b9190612938565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050611875565b8273ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f7573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526109859084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611f83565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611ae793929190612b12565b60405180910390a46104ed86868686868661208f565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611b8a93929190612b12565b60405180910390a46112e584848484612117565b600080600080845160208601878a8af19695505050505050565b606081600003611bfb57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611c255780611c0f81612b50565b9150611c1e9050600a83612bb7565b9150611bff565b60008167ffffffffffffffff811115611c4057611c40612bcb565b6040519080825280601f01601f191660200182016040528015611c6a576020820181803683370190505b5090505b8415611ced57611c7f600183612984565b9150611c8c600a86612bfa565b611c97906030612a9f565b60f81b818381518110611cac57611cac612c0e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611ce6600a86612bb7565b9450611c6e565b949350505050565b600054610100900460ff16611d8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101a2565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e868686604051611e6093929190612b12565b60405180910390a46112e584848484612184565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526112e59085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016119ed565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e868686604051611f4a93929190612b12565b60405180910390a46104ed8686868686866121e3565b6000611f6b8361225b565b8015611f7c5750611f7c83836122bf565b9392505050565b6000611fe5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661238e9092919063ffffffff16565b80519091501561098557808060200190518101906120039190612c3d565b610985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101a2565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd86868660405161210793929190612b12565b60405180910390a4505050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d8484604051612176929190612c5f565b60405180910390a350505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af58484604051612176929190612c5f565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf86868660405161210793929190612b12565b6000612287827f01ffc9a7000000000000000000000000000000000000000000000000000000006122bf565b801561187557506122b8827fffffffff000000000000000000000000000000000000000000000000000000006122bf565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d91506000519050828015612377575060208210155b80156123835750600081115b979650505050505050565b6060611ced84846000858573ffffffffffffffffffffffffffffffffffffffff85163b612417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101a2565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516124409190612c78565b60006040518083038185875af1925050503d806000811461247d576040519150601f19603f3d011682016040523d82523d6000602084013e612482565b606091505b50915091506123838282866060831561249c575081611f7c565b8251156124ac5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a29190612806565b73ffffffffffffffffffffffffffffffffffffffff8116811461250257600080fd5b50565b60008083601f84011261251757600080fd5b50813567ffffffffffffffff81111561252f57600080fd5b60208301915083602082850101111561254757600080fd5b9250929050565b600080600080600080600060c0888a03121561256957600080fd5b8735612574816124e0565b96506020880135612584816124e0565b95506040880135612594816124e0565b945060608801356125a4816124e0565b93506080880135925060a088013567ffffffffffffffff8111156125c757600080fd5b6125d38a828b01612505565b989b979a50959850939692959293505050565b803563ffffffff811681146125fa57600080fd5b919050565b60008060006040848603121561261457600080fd5b61261d846125e6565b9250602084013567ffffffffffffffff81111561263957600080fd5b61264586828701612505565b9497909650939450505050565b60008060008060006080868803121561266a57600080fd5b8535612675816124e0565b94506020860135612685816124e0565b935060408601359250606086013567ffffffffffffffff8111156126a857600080fd5b6126b488828901612505565b969995985093965092949392505050565b6000806000806000608086880312156126dd57600080fd5b85356126e8816124e0565b9450602086013593506126fd604087016125e6565b9250606086013567ffffffffffffffff8111156126a857600080fd5b600080600080600080600060c0888a03121561273457600080fd5b873561273f816124e0565b9650602088013561274f816124e0565b9550604088013561275f816124e0565b945060608801359350612774608089016125e6565b925060a088013567ffffffffffffffff8111156125c757600080fd5b60005b838110156127ab578181015183820152602001612793565b838111156112e55750506000910152565b600081518084526127d4816020860160208601612790565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611f7c60208301846127bc565b60008060008060008060a0878903121561283257600080fd5b863561283d816124e0565b9550602087013561284d816124e0565b945060408701359350612862606088016125e6565b9250608087013567ffffffffffffffff81111561287e57600080fd5b61288a89828a01612505565b979a9699509497509295939492505050565b600080604083850312156128af57600080fd5b82356128ba816124e0565b915060208301356128ca816124e0565b809150509250929050565b600080600080606085870312156128eb57600080fd5b84356128f6816124e0565b9350612904602086016125e6565b9250604085013567ffffffffffffffff81111561292057600080fd5b61292c87828801612505565b95989497509550505050565b60006020828403121561294a57600080fd5b8151611f7c816124e0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561299657612996612955565b500390565b600084516129ad818460208901612790565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516129e9816001850160208a01612790565b60019201918201528351612a04816002840160208801612790565b0160020195945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152612a5060808301846127bc565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201526000612a8960608301856127bc565b905063ffffffff83166040830152949350505050565b60008219821115612ab257612ab2612955565b500190565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612b0660c08301846127bc565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000612b4760608301846127bc565b95945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b8157612b81612955565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082612bc657612bc6612b88565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082612c0957612c09612b88565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612c4f57600080fd5b81518015158114611f7c57600080fd5b828152604060208201526000611ced60408301846127bc565b60008251612c8a818460208701612790
565b919091019291505056fea164736f6c634300080f000a"
func
init
()
{
func
init
()
{
if
err
:=
json
.
Unmarshal
([]
byte
(
L2StandardBridgeStorageLayoutJSON
),
L2StandardBridgeStorageLayout
);
err
!=
nil
{
if
err
:=
json
.
Unmarshal
([]
byte
(
L2StandardBridgeStorageLayoutJSON
),
L2StandardBridgeStorageLayout
);
err
!=
nil
{
...
...
packages/contracts-bedrock/.gas-snapshot
View file @
ce665207
...
@@ -198,17 +198,17 @@ L1StandardBridge_DepositERC20_TestFail:test_depositERC20_notEoa_reverts() (gas:
...
@@ -198,17 +198,17 @@ L1StandardBridge_DepositERC20_TestFail:test_depositERC20_notEoa_reverts() (gas:
L1StandardBridge_DepositETHTo_Test:test_depositETHTo_succeeds() (gas: 514657)
L1StandardBridge_DepositETHTo_Test:test_depositETHTo_succeeds() (gas: 514657)
L1StandardBridge_DepositETH_Test:test_depositETH_succeeds() (gas: 501874)
L1StandardBridge_DepositETH_Test:test_depositETH_succeeds() (gas: 501874)
L1StandardBridge_DepositETH_TestFail:test_depositETH_notEoa_reverts() (gas: 40759)
L1StandardBridge_DepositETH_TestFail:test_depositETH_notEoa_reverts() (gas: 40759)
L1StandardBridge_FinalizeBridgeETH_Test:test_finalizeBridgeETH_succeeds() (gas: 5408
2
)
L1StandardBridge_FinalizeBridgeETH_Test:test_finalizeBridgeETH_succeeds() (gas: 5408
5
)
L1StandardBridge_FinalizeBridgeETH_TestFail:test_finalizeBridgeETH_incorrectValue_reverts() (gas: 3653
1
)
L1StandardBridge_FinalizeBridgeETH_TestFail:test_finalizeBridgeETH_incorrectValue_reverts() (gas: 3653
4
)
L1StandardBridge_FinalizeBridgeETH_TestFail:test_finalizeBridgeETH_sendToMessenger_reverts() (gas: 367
18
)
L1StandardBridge_FinalizeBridgeETH_TestFail:test_finalizeBridgeETH_sendToMessenger_reverts() (gas: 367
21
)
L1StandardBridge_FinalizeBridgeETH_TestFail:test_finalizeBridgeETH_sendToSelf_reverts() (gas: 3660
3
)
L1StandardBridge_FinalizeBridgeETH_TestFail:test_finalizeBridgeETH_sendToSelf_reverts() (gas: 3660
6
)
L1StandardBridge_FinalizeERC20Withdrawal_Test:test_finalizeERC20Withdrawal_succeeds() (gas: 49811
5
)
L1StandardBridge_FinalizeERC20Withdrawal_Test:test_finalizeERC20Withdrawal_succeeds() (gas: 49811
7
)
L1StandardBridge_FinalizeERC20Withdrawal_TestFail:test_finalizeERC20Withdrawal_notMessenger_reverts() (gas: 3343
2
)
L1StandardBridge_FinalizeERC20Withdrawal_TestFail:test_finalizeERC20Withdrawal_notMessenger_reverts() (gas: 3343
5
)
L1StandardBridge_FinalizeERC20Withdrawal_TestFail:test_finalizeERC20Withdrawal_notOtherBridge_reverts() (gas: 34084)
L1StandardBridge_FinalizeERC20Withdrawal_TestFail:test_finalizeERC20Withdrawal_notOtherBridge_reverts() (gas: 34084)
L1StandardBridge_FinalizeETHWithdrawal_Test:test_finalizeETHWithdrawal_succeeds() (gas: 6460
2
)
L1StandardBridge_FinalizeETHWithdrawal_Test:test_finalizeETHWithdrawal_succeeds() (gas: 6460
5
)
L1StandardBridge_Getter_Test:test_getters_succeeds() (gas: 283
5
2)
L1StandardBridge_Getter_Test:test_getters_succeeds() (gas: 283
7
2)
L1StandardBridge_Initialize_Test:test_initialize_fix_succeeds() (gas: 5258)
L1StandardBridge_Initialize_Test:test_initialize_fix_succeeds() (gas: 5258)
L1StandardBridge_Initialize_Test:test_initialize_succeeds() (gas: 2417
5
)
L1StandardBridge_Initialize_Test:test_initialize_succeeds() (gas: 2417
8
)
L1StandardBridge_Receive_Test:test_receive_succeeds() (gas: 615010)
L1StandardBridge_Receive_Test:test_receive_succeeds() (gas: 615010)
L2CrossDomainMessenger_Test:test_messageVersion_succeeds() (gas: 8477)
L2CrossDomainMessenger_Test:test_messageVersion_succeeds() (gas: 8477)
L2CrossDomainMessenger_Test:test_relayMessage_retry_succeeds() (gas: 163815)
L2CrossDomainMessenger_Test:test_relayMessage_retry_succeeds() (gas: 163815)
...
@@ -273,13 +273,13 @@ L2StandardBridge_BridgeERC20_Test:test_bridgeLegacyERC20_succeeds() (gas: 395741
...
@@ -273,13 +273,13 @@ L2StandardBridge_BridgeERC20_Test:test_bridgeLegacyERC20_succeeds() (gas: 395741
L2StandardBridge_BridgeERC20_Test:test_withdrawLegacyERC20_succeeds() (gas: 396103)
L2StandardBridge_BridgeERC20_Test:test_withdrawLegacyERC20_succeeds() (gas: 396103)
L2StandardBridge_BridgeERC20_Test:test_withdraw_notEOA_reverts() (gas: 251807)
L2StandardBridge_BridgeERC20_Test:test_withdraw_notEOA_reverts() (gas: 251807)
L2StandardBridge_BridgeERC20_Test:test_withdraw_withdrawingERC20_succeeds() (gas: 387750)
L2StandardBridge_BridgeERC20_Test:test_withdraw_withdrawingERC20_succeeds() (gas: 387750)
L2StandardBridge_Bridge_Test:test_finalizeBridgeETH_incorrectValue_reverts() (gas: 261
12
)
L2StandardBridge_Bridge_Test:test_finalizeBridgeETH_incorrectValue_reverts() (gas: 261
26
)
L2StandardBridge_Bridge_Test:test_finalizeBridgeETH_sendToMessenger_reverts() (gas: 263
80
)
L2StandardBridge_Bridge_Test:test_finalizeBridgeETH_sendToMessenger_reverts() (gas: 263
94
)
L2StandardBridge_Bridge_Test:test_finalizeBridgeETH_sendToSelf_reverts() (gas: 261
39
)
L2StandardBridge_Bridge_Test:test_finalizeBridgeETH_sendToSelf_reverts() (gas: 261
53
)
L2StandardBridge_Bridge_Test:test_finalizeDeposit_depositingERC20_succeeds() (gas: 960
71
)
L2StandardBridge_Bridge_Test:test_finalizeDeposit_depositingERC20_succeeds() (gas: 960
85
)
L2StandardBridge_Bridge_Test:test_finalizeDeposit_depositingETH_succeeds() (gas: 949
25
)
L2StandardBridge_Bridge_Test:test_finalizeDeposit_depositingETH_succeeds() (gas: 949
39
)
L2StandardBridge_FinalizeBridgeETH_Test:test_finalizeBridgeETH_succeeds() (gas: 455
08
)
L2StandardBridge_FinalizeBridgeETH_Test:test_finalizeBridgeETH_succeeds() (gas: 455
22
)
L2StandardBridge_Test:test_initialize_succeeds() (gas: 26
296
)
L2StandardBridge_Test:test_initialize_succeeds() (gas: 26
310
)
L2StandardBridge_Test:test_receive_succeeds() (gas: 176756)
L2StandardBridge_Test:test_receive_succeeds() (gas: 176756)
L2StandardBridge_Test:test_withdraw_ether_succeeds() (gas: 142997)
L2StandardBridge_Test:test_withdraw_ether_succeeds() (gas: 142997)
L2StandardBridge_Test:test_withdraw_insufficientValue_reverts() (gas: 16552)
L2StandardBridge_Test:test_withdraw_insufficientValue_reverts() (gas: 16552)
...
...
packages/contracts-bedrock/.storage-layout
View file @
ce665207
...
@@ -38,7 +38,7 @@
...
@@ -38,7 +38,7 @@
| spacer_0_2_20 | address | 0 | 2 | 20 | src/L1/L1StandardBridge.sol:L1StandardBridge |
| spacer_0_2_20 | address | 0 | 2 | 20 | src/L1/L1StandardBridge.sol:L1StandardBridge |
| spacer_1_0_20 | address | 1 | 0 | 20 | src/L1/L1StandardBridge.sol:L1StandardBridge |
| spacer_1_0_20 | address | 1 | 0 | 20 | src/L1/L1StandardBridge.sol:L1StandardBridge |
| deposits | mapping(address => mapping(address => uint256)) | 2 | 0 | 32 | src/L1/L1StandardBridge.sol:L1StandardBridge |
| deposits | mapping(address => mapping(address => uint256)) | 2 | 0 | 32 | src/L1/L1StandardBridge.sol:L1StandardBridge |
|
_MESSENGER
| contract CrossDomainMessenger | 3 | 0 | 20 | src/L1/L1StandardBridge.sol:L1StandardBridge |
|
MESSENGER
| contract CrossDomainMessenger | 3 | 0 | 20 | src/L1/L1StandardBridge.sol:L1StandardBridge |
| __gap | uint256[46] | 4 | 0 | 1472 | src/L1/L1StandardBridge.sol:L1StandardBridge |
| __gap | uint256[46] | 4 | 0 | 1472 | src/L1/L1StandardBridge.sol:L1StandardBridge |
=======================
=======================
...
@@ -156,7 +156,7 @@
...
@@ -156,7 +156,7 @@
| spacer_0_2_20 | address | 0 | 2 | 20 | src/L2/L2StandardBridge.sol:L2StandardBridge |
| spacer_0_2_20 | address | 0 | 2 | 20 | src/L2/L2StandardBridge.sol:L2StandardBridge |
| spacer_1_0_20 | address | 1 | 0 | 20 | src/L2/L2StandardBridge.sol:L2StandardBridge |
| spacer_1_0_20 | address | 1 | 0 | 20 | src/L2/L2StandardBridge.sol:L2StandardBridge |
| deposits | mapping(address => mapping(address => uint256)) | 2 | 0 | 32 | src/L2/L2StandardBridge.sol:L2StandardBridge |
| deposits | mapping(address => mapping(address => uint256)) | 2 | 0 | 32 | src/L2/L2StandardBridge.sol:L2StandardBridge |
|
_MESSENGER
| contract CrossDomainMessenger | 3 | 0 | 20 | src/L2/L2StandardBridge.sol:L2StandardBridge |
|
MESSENGER
| contract CrossDomainMessenger | 3 | 0 | 20 | src/L2/L2StandardBridge.sol:L2StandardBridge |
| __gap | uint256[46] | 4 | 0 | 1472 | src/L2/L2StandardBridge.sol:L2StandardBridge |
| __gap | uint256[46] | 4 | 0 | 1472 | src/L2/L2StandardBridge.sol:L2StandardBridge |
=======================
=======================
...
...
packages/contracts-bedrock/src/L1/L1StandardBridge.sol
View file @
ce665207
...
@@ -232,7 +232,7 @@ contract L1StandardBridge is StandardBridge, Semver {
...
@@ -232,7 +232,7 @@ contract L1StandardBridge is StandardBridge, Semver {
/// @notice Retrieves the access of the corresponding L2 bridge contract.
/// @notice Retrieves the access of the corresponding L2 bridge contract.
/// @return Address of the corresponding L2 bridge contract.
/// @return Address of the corresponding L2 bridge contract.
function l2TokenBridge() external view returns (address) {
function l2TokenBridge() external view returns (address) {
return address(
_
OTHER_BRIDGE);
return address(OTHER_BRIDGE);
}
}
/// @notice Internal function for initiating an ETH deposit.
/// @notice Internal function for initiating an ETH deposit.
...
...
packages/contracts-bedrock/src/L2/L2StandardBridge.sol
View file @
ce665207
...
@@ -145,7 +145,7 @@ contract L2StandardBridge is StandardBridge, Semver {
...
@@ -145,7 +145,7 @@ contract L2StandardBridge is StandardBridge, Semver {
/// @notice Retrieves the access of the corresponding L1 bridge contract.
/// @notice Retrieves the access of the corresponding L1 bridge contract.
/// @return Address of the corresponding L1 bridge contract.
/// @return Address of the corresponding L1 bridge contract.
function l1TokenBridge() external view returns (address) {
function l1TokenBridge() external view returns (address) {
return address(
_
OTHER_BRIDGE);
return address(OTHER_BRIDGE);
}
}
/// @custom:legacy
/// @custom:legacy
...
...
packages/contracts-bedrock/src/universal/StandardBridge.sol
View file @
ce665207
...
@@ -22,8 +22,10 @@ abstract contract StandardBridge is Initializable {
...
@@ -22,8 +22,10 @@ abstract contract StandardBridge is Initializable {
/// @notice The L2 gas limit set when eth is depoisited using the receive() function.
/// @notice The L2 gas limit set when eth is depoisited using the receive() function.
uint32 internal constant RECEIVE_DEFAULT_GAS_LIMIT = 200_000;
uint32 internal constant RECEIVE_DEFAULT_GAS_LIMIT = 200_000;
/// @notice Corresponding bridge on the other domain.
/// @notice Corresponding bridge on the other domain. This public getter is deprecated
StandardBridge internal immutable _OTHER_BRIDGE;
/// and will be removed in the future. Please use `otherBridge` instead.
/// @custom:legacy
StandardBridge public immutable OTHER_BRIDGE;
/// @custom:legacy
/// @custom:legacy
/// @custom:spacer messenger
/// @custom:spacer messenger
...
@@ -38,8 +40,11 @@ abstract contract StandardBridge is Initializable {
...
@@ -38,8 +40,11 @@ abstract contract StandardBridge is Initializable {
/// @notice Mapping that stores deposits for a given pair of local and remote tokens.
/// @notice Mapping that stores deposits for a given pair of local and remote tokens.
mapping(address => mapping(address => uint256)) public deposits;
mapping(address => mapping(address => uint256)) public deposits;
/// @notice Messenger contract on this domain.
/// @notice Messenger contract on this domain. This public getter is deprecated
CrossDomainMessenger internal _MESSENGER;
/// and will be removed in the future. Please use `messenger` instead.
/// @custom:legacy
/// @custom:network-specific
CrossDomainMessenger public MESSENGER;
/// @notice Reserve extra slots (to a total of 50) in the storage layout for future upgrades.
/// @notice Reserve extra slots (to a total of 50) in the storage layout for future upgrades.
/// A gap size of 46 was chosen here, so that the first slot used in a child contract
/// A gap size of 46 was chosen here, so that the first slot used in a child contract
...
@@ -116,8 +121,8 @@ abstract contract StandardBridge is Initializable {
...
@@ -116,8 +121,8 @@ abstract contract StandardBridge is Initializable {
/// @notice Ensures that the caller is a cross-chain message from the other bridge.
/// @notice Ensures that the caller is a cross-chain message from the other bridge.
modifier onlyOtherBridge() {
modifier onlyOtherBridge() {
require(
require(
msg.sender == address(
_
MESSENGER) &&
msg.sender == address(MESSENGER) &&
_MESSENGER.xDomainMessageSender() == address(_
OTHER_BRIDGE),
MESSENGER.xDomainMessageSender() == address(
OTHER_BRIDGE),
"StandardBridge: function can only be called from the other bridge"
"StandardBridge: function can only be called from the other bridge"
);
);
_;
_;
...
@@ -125,14 +130,14 @@ abstract contract StandardBridge is Initializable {
...
@@ -125,14 +130,14 @@ abstract contract StandardBridge is Initializable {
/// @param _otherBridge Address of the other StandardBridge contract.
/// @param _otherBridge Address of the other StandardBridge contract.
constructor(StandardBridge _otherBridge) {
constructor(StandardBridge _otherBridge) {
_
OTHER_BRIDGE = _otherBridge;
OTHER_BRIDGE = _otherBridge;
}
}
/// @notice Initializer.
/// @notice Initializer.
/// @param _messenger Address of CrossDomainMessenger on this network.
/// @param _messenger Address of CrossDomainMessenger on this network.
// solhint-disable-next-line func-name-mixedcase
// solhint-disable-next-line func-name-mixedcase
function __StandardBridge_init(CrossDomainMessenger _messenger) internal onlyInitializing {
function __StandardBridge_init(CrossDomainMessenger _messenger) internal onlyInitializing {
_
MESSENGER = _messenger;
MESSENGER = _messenger;
}
}
/// @notice Allows EOAs to bridge ETH by sending directly to the bridge.
/// @notice Allows EOAs to bridge ETH by sending directly to the bridge.
...
@@ -142,24 +147,12 @@ abstract contract StandardBridge is Initializable {
...
@@ -142,24 +147,12 @@ abstract contract StandardBridge is Initializable {
/// @notice Getter for messenger contract.
/// @notice Getter for messenger contract.
/// @return Messenger contract on this domain.
/// @return Messenger contract on this domain.
function messenger() external view returns (CrossDomainMessenger) {
function messenger() external view returns (CrossDomainMessenger) {
return _MESSENGER;
return MESSENGER;
}
/// @notice Legacy getter for messenger contract.
/// @custom:legacy
function MESSENGER() external view returns (CrossDomainMessenger) {
return _MESSENGER;
}
}
/// @notice Getter for the remote domain bridge contract.
/// @notice Getter for the remote domain bridge contract.
function otherBridge() external view returns (StandardBridge) {
function otherBridge() external view returns (StandardBridge) {
return _OTHER_BRIDGE;
return OTHER_BRIDGE;
}
/// @notice Legacy getter for the remote domain bridge contract.
/// @custom:legacy
function OTHER_BRIDGE() external view returns (StandardBridge) {
return _OTHER_BRIDGE;
}
}
/// @notice Sends ETH to the sender's address on the other chain.
/// @notice Sends ETH to the sender's address on the other chain.
...
@@ -267,7 +260,7 @@ abstract contract StandardBridge is Initializable {
...
@@ -267,7 +260,7 @@ abstract contract StandardBridge is Initializable {
) public payable onlyOtherBridge {
) public payable onlyOtherBridge {
require(msg.value == _amount, "StandardBridge: amount sent does not match amount required");
require(msg.value == _amount, "StandardBridge: amount sent does not match amount required");
require(_to != address(this), "StandardBridge: cannot send to self");
require(_to != address(this), "StandardBridge: cannot send to self");
require(_to != address(
_
MESSENGER), "StandardBridge: cannot send to messenger");
require(_to != address(MESSENGER), "StandardBridge: cannot send to messenger");
// Emit the correct events. By default this will be _amount, but child
// Emit the correct events. By default this will be _amount, but child
// contracts may override this function in order to emit legacy events as well.
// contracts may override this function in order to emit legacy events as well.
...
@@ -336,8 +329,8 @@ abstract contract StandardBridge is Initializable {
...
@@ -336,8 +329,8 @@ abstract contract StandardBridge is Initializable {
// contracts may override this function in order to emit legacy events as well.
// contracts may override this function in order to emit legacy events as well.
_emitETHBridgeInitiated(_from, _to, _amount, _extraData);
_emitETHBridgeInitiated(_from, _to, _amount, _extraData);
_
MESSENGER.sendMessage{ value: _amount }(
MESSENGER.sendMessage{ value: _amount }(
address(
_
OTHER_BRIDGE),
address(OTHER_BRIDGE),
abi.encodeWithSelector(
abi.encodeWithSelector(
this.finalizeBridgeETH.selector,
this.finalizeBridgeETH.selector,
_from,
_from,
...
@@ -383,8 +376,8 @@ abstract contract StandardBridge is Initializable {
...
@@ -383,8 +376,8 @@ abstract contract StandardBridge is Initializable {
// contracts may override this function in order to emit legacy events as well.
// contracts may override this function in order to emit legacy events as well.
_emitERC20BridgeInitiated(_localToken, _remoteToken, _from, _to, _amount, _extraData);
_emitERC20BridgeInitiated(_localToken, _remoteToken, _from, _to, _amount, _extraData);
_
MESSENGER.sendMessage(
MESSENGER.sendMessage(
address(
_
OTHER_BRIDGE),
address(OTHER_BRIDGE),
abi.encodeWithSelector(
abi.encodeWithSelector(
this.finalizeBridgeERC20.selector,
this.finalizeBridgeERC20.selector,
// Because this call will be executed on the remote chain, we reverse the order of
// Because this call will be executed on the remote chain, we reverse the order of
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment