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
20407c5a
Unverified
Commit
20407c5a
authored
Mar 05, 2024
by
clabby
Committed by
GitHub
Mar 05, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(ctb): Add `ISemver` to the `PreimageOracle` and `MIPS` (#9743)
* Add semver to MIPS/PreimageOracle * bindings semver
parent
33ecaaa2
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
123 additions
and
17 deletions
+123
-17
mips.go
op-bindings/bindings/mips.go
+33
-2
mips_more.go
op-bindings/bindings/mips_more.go
+1
-1
preimageoracle.go
op-bindings/bindings/preimageoracle.go
+33
-2
preimageoracle_more.go
op-bindings/bindings/preimageoracle_more.go
+1
-1
semver-lock.json
packages/contracts-bedrock/semver-lock.json
+8
-0
MIPS.json
packages/contracts-bedrock/snapshots/abi/MIPS.json
+13
-0
PreimageOracle.json
packages/contracts-bedrock/snapshots/abi/PreimageOracle.json
+13
-0
MIPS.sol
packages/contracts-bedrock/src/cannon/MIPS.sol
+15
-10
PreimageOracle.sol
packages/contracts-bedrock/src/cannon/PreimageOracle.sol
+6
-1
No files found.
op-bindings/bindings/mips.go
View file @
20407c5a
...
...
@@ -30,8 +30,8 @@ var (
// MIPSMetaData contains all meta data concerning the MIPS contract.
var
MIPSMetaData
=
&
bind
.
MetaData
{
ABI
:
"[{
\"
type
\"
:
\"
constructor
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_oracle
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
contractIPreimageOracle
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
BRK_START
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
uint32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
oracle
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
oracle_
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
contractIPreimageOracle
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
step
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_stateData
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
_proof
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
_localContext
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
}]"
,
Bin
:
"0x60a060405234801561001057600080fd5b50604051611
ec2380380611ec283398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051611e3161009160003960008181608501526115ef0152611e316000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063155633fe146100465780637dc0d1d01461006b578063e14ced32146100af575b600080fd5b610051634000000081565b60405163ffffffff90911681526020015b60405180910390f35b60405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610062565b6100c26100bd366004611d2e565b6100d0565b604051908152602001610062565b60006100da611c5b565b608081146100e757600080fd5b604051610600146100f757600080fd5b6084871461010457600080fd5b6101a4851461011257600080fd5b8635608052602087013560a052604087013560e090811c60c09081526044890135821c82526048890135821c61010052604c890135821c610120526050890135821c61014052605489013590911c61016052605888013560f890811c610180526059890135901c6101a052605a880135901c6101c0526102006101e0819052606288019060005b60208110156101bd57823560e01c8252600490920191602090910190600101610199565b505050806101200151156101db576101d361061b565b915050610612565b6101408101805160010167ffffffffffffffff16905260608101516000906102039082610737565b9050603f601a82901c16600281148061022257508063ffffffff166003145b156102775760006002836303ffffff1663ffffffff16901b846080015163f00000001617905061026c8263ffffffff1660021461026057601f610263565b60005b60ff16826107f3565b945050505050610612565b6101608301516000908190601f601086901c81169190601587901c16602081106102a3576102a3611da2565b602002015192508063ffffffff851615806102c457508463ffffffff16601c145b156102fb578661016001518263ffffffff16602081106102e6576102e6611da2565b6020020151925050601f600b86901c166103b7565b60208563ffffffff16101561035d578463ffffffff16600c148061032557508463ffffffff16600d145b8061033657508463ffffffff16600e145b15610347578561ffff1692506103b7565b6103568661ffff1660106108e4565b92506103b7565b60288563ffffffff1610158061037957508463ffffffff166022145b8061038a57508463ffffffff166026145b156103b7578661016001518263ffffffff16602081106103ac576103ac611da2565b602002015192508190505b60048563ffffffff16101580156103d4575060088563ffffffff16105b806103e557508463ffffffff166001145b15610404576103f685878487610957565b975050505050505050610612565b63ffffffff6000602087831610610469576104248861ffff1660106108e4565b9095019463fffffffc861661043a816001610737565b915060288863ffffffff161015801561045a57508763ffffffff16603014155b1561046757809250600093505b505b600061047789888885610b67565b63ffffffff9081169150603f8a1690891615801561049c575060088163ffffffff1610155b80156104ae5750601c8163ffffffff16105b1561058b578063ffffffff16600814806104ce57508063ffffffff166009145b15610505576104f38163ffffffff166008146104ea57856104ed565b60005b896107f3565b9b505050505050505050505050610612565b8063ffffffff16600a03610525576104f3858963ffffffff8a16156112f7565b8063ffffffff16600b03610546576104f3858963ffffffff8a1615156112f7565b8063ffffffff16600c0361055d576104f38d6113dd565b60108163ffffffff161015801561057a5750601c8163ffffffff16105b1561058b576104f381898988611914565b8863ffffffff1660381480156105a6575063ffffffff861615155b156105db5760018b61016001518763ffffffff16602081106105ca576105ca611da2565b63ffffffff90921660209290920201525b8363ffffffff1663ffffffff146105f8576105f884600184611b0e565b610604858360016112f7565b9b5050505050505050505050505b95945050505050565b60408051608051815260a051602082015260dc519181019190915260fc51604482015261011c51604882015261013c51604c82015261015c51605082015261017c5160548201526101805161019f5160588301526101a0516101bf5160598401526101d851605a840152600092610200929091606283019190855b60208110156106ba57601c8601518452602090950194600490930192600101610696565b506000835283830384a06000945080600181146106da5760039550610702565b8280156106f257600181146106fb5760029650610700565b60009650610700565b600196505b505b50505081900390207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f89190911b17919050565b60008061074383611bb2565b9050600384161561075357600080fd5b6020810190358460051c8160005b601b8110156107b95760208501943583821c6001168015610789576001811461079e576107af565b600084815260208390526040902093506107af565b600082815260208590526040902093505b5050600101610761565b5060805191508181146107d457630badf00d60005260206000fd5b5050601f94909416601c0360031b9390931c63ffffffff169392505050565b60006107fd611c5b565b60809050806060015160040163ffffffff16816080015163ffffffff1614610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6a756d7020696e2064656c617920736c6f74000000000000000000000000000060448201526064015b60405180910390fd5b60608101805160808301805163ffffffff9081169093528583169052908516156108dc57806008018261016001518663ffffffff16602081106108cb576108cb611da2565b63ffffffff90921660209290920201525b61061261061b565b600063ffffffff8381167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80850183169190911c821615159160016020869003821681901b830191861691821b92911b0182610941576000610943565b815b90861663ffffffff16179250505092915050565b6000610961611c5b565b608090506000816060015160040163ffffffff16826080015163ffffffff16146109e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6272616e636820696e2064656c617920736c6f74000000000000000000000000604482015260640161087d565b8663ffffffff1660041480610a0257508663ffffffff166005145b15610a7e5760008261016001518663ffffffff1660208110610a2657610a26611da2565b602002015190508063ffffffff168563ffffffff16148015610a4e57508763ffffffff166004145b80610a7657508063ffffffff168563ffffffff1614158015610a7657508763ffffffff166005145b915050610afb565b8663ffffffff16600603610a9b5760008460030b13159050610afb565b8663ffffffff16600703610ab75760008460030b139050610afb565b8663ffffffff16600103610afb57601f601087901c166000819003610ae05760008560030b1291505b8063ffffffff16600103610af95760008560030b121591505b505b606082018051608084015163ffffffff169091528115610b41576002610b268861ffff1660106108e4565b63ffffffff90811690911b8201600401166080840152610b53565b60808301805160040163ffffffff1690525b610b5b61061b565b98975050505050505050565b6000603f601a86901c16801580610b96575060088163ffffffff1610158015610b965750600f8163ffffffff16105b15610fec57603f86168160088114610bdd5760098114610be657600a8114610bef57600b8114610bf857600c8114610c0157600d8114610c0a57600e8114610c1357610c18565b60209150610c18565b60219150610c18565b602a9150610c18565b602b9150610c18565b60249150610c18565b60259150610c18565b602691505b508063ffffffff16600003610c3f5750505063ffffffff8216601f600686901c161b6112ef565b8063ffffffff16600203610c655750505063ffffffff8216601f600686901c161c6112ef565b8063ffffffff16600303610c9b57601f600688901c16610c9163ffffffff8716821c60208390036108e4565b93505050506112ef565b8063ffffffff16600403610cbd5750505063ffffffff8216601f84161b6112ef565b8063ffffffff16600603610cdf5750505063ffffffff8216601f84161c6112ef565b8063ffffffff16600703610d1257610d098663ffffffff168663ffffffff16901c876020036108e4565b925050506112ef565b8063ffffffff16600803610d2a5785925050506112ef565b8063ffffffff16600903610d425785925050506112ef565b8063ffffffff16600a03610d5a5785925050506112ef565b8063ffffffff16600b03610d725785925050506112ef565b8063ffffffff16600c03610d8a5785925050506112ef565b8063ffffffff16600f03610da25785925050506112ef565b8063ffffffff16601003610dba5785925050506112ef565b8063ffffffff16601103610dd25785925050506112ef565b8063ffffffff16601203610dea5785925050506112ef565b8063ffffffff16601303610e025785925050506112ef565b8063ffffffff16601803610e1a5785925050506112ef565b8063ffffffff16601903610e325785925050506112ef565b8063ffffffff16601a03610e4a5785925050506112ef565b8063ffffffff16601b03610e625785925050506112ef565b8063ffffffff16602003610e7b575050508282016112ef565b8063ffffffff16602103610e94575050508282016112ef565b8063ffffffff16602203610ead575050508183036112ef565b8063ffffffff16602303610ec6575050508183036112ef565b8063ffffffff16602403610edf575050508282166112ef565b8063ffffffff16602503610ef8575050508282176112ef565b8063ffffffff16602603610f11575050508282186112ef565b8063ffffffff16602703610f2b57505050828217196112ef565b8063ffffffff16602a03610f5c578460030b8660030b12610f4d576000610f50565b60015b60ff16925050506112ef565b8063ffffffff16602b03610f84578463ffffffff168663ffffffff1610610f4d576000610f50565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c696420696e737472756374696f6e00000000000000000000000000604482015260640161087d565b50610f84565b8063ffffffff16601c0361107057603f86166002819003611012575050508282026112ef565b8063ffffffff166020148061102d57508063ffffffff166021145b15610fe6578063ffffffff16602003611044579419945b60005b6380000000871615611066576401fffffffe600197881b169601611047565b92506112ef915050565b8063ffffffff16600f0361109257505065ffffffff0000601083901b166112ef565b8063ffffffff166020036110ce576110c68560031660080260180363ffffffff168463ffffffff16901c60ff1660086108e4565b9150506112ef565b8063ffffffff16602103611103576110c68560021660080260100363ffffffff168463ffffffff16901c61ffff1660106108e4565b8063ffffffff1660220361113257505063ffffffff60086003851602811681811b198416918316901b176112ef565b8063ffffffff1660230361114957829150506112ef565b8063ffffffff1660240361117b578460031660080260180363ffffffff168363ffffffff16901c60ff169150506112ef565b8063ffffffff166025036111ae578460021660080260100363ffffffff168363ffffffff16901c61ffff169150506112ef565b8063ffffffff166026036111e057505063ffffffff60086003851602601803811681811c198416918316901c176112ef565b8063ffffffff1660280361121657505060ff63ffffffff60086003861602601803811682811b9091188316918416901b176112ef565b8063ffffffff1660290361124d57505061ffff63ffffffff60086002861602601003811682811b9091188316918416901b176112ef565b8063ffffffff16602a0361127c57505063ffffffff60086003851602811681811c198316918416901c176112ef565b8063ffffffff16602b0361129357839150506112ef565b8063ffffffff16602e036112c557505063ffffffff60086003851602601803811681811b198316918416901b176112ef565b8063ffffffff166030036112dc57829150506112ef565b8063ffffffff16603803610f8457839150505b949350505050565b6000611301611c5b565b506080602063ffffffff861610611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f76616c6964207265676973746572000000000000000000000000000000000000604482015260640161087d565b63ffffffff8516158015906113865750825b156113ba57838161016001518663ffffffff16602081106113a9576113a9611da2565b63ffffffff90921660209290920201525b60808101805163ffffffff8082166060850152600490910116905261061261061b565b60006113e7611c5b565b506101e051604081015160808083015160a084015160c09094015191936000928392919063ffffffff8616610ffa036114615781610fff81161561143057610fff811661100003015b8363ffffffff166000036114575760e08801805163ffffffff83820116909152955061145b565b8395505b506118d3565b8563ffffffff16610fcd0361147c57634000000094506118d3565b8563ffffffff166110180361149457600194506118d3565b8563ffffffff16611096036114ca57600161012088015260ff83166101008801526114bd61061b565b9998505050505050505050565b8563ffffffff16610fa3036117365763ffffffff8316156118d3577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb63ffffffff8416016116f05760006115258363fffffffc166001610737565b60208901519091508060001a60010361159457604080516000838152336020528d83526060902091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790505b6040808a015190517fe03110e10000000000000000000000000000000000000000000000000000000081526004810183905263ffffffff9091166024820152600090819073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e03110e1906044016040805180830381865afa158015611635573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116599190611dd1565b91509150600386168060040382811015611671578092505b508186101561167e578591505b8260088302610100031c9250826008828460040303021b9250600180600883600403021b036001806008858560040303021b039150811981169050838119871617955050506116d58663fffffffc16600186611b0e565b60408b018051820163ffffffff169052975061173192505050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd63ffffffff841601611725578094506118d3565b63ffffffff9450600993505b6118d3565b8563ffffffff16610fa4036118275763ffffffff831660011480611760575063ffffffff83166002145b80611771575063ffffffff83166004145b1561177e578094506118d3565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa63ffffffff8416016117255760006117be8363fffffffc166001610737565b602089015190915060038416600403838110156117d9578093505b83900360089081029290921c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600193850293841b0116911b176020880152600060408801529350836118d3565b8563ffffffff16610fd7036118d3578163ffffffff166003036118c75763ffffffff8316158061185d575063ffffffff83166005145b8061186e575063ffffffff83166003145b1561187c57600094506118d3565b63ffffffff831660011480611897575063ffffffff83166002145b806118a8575063ffffffff83166006145b806118b9575063ffffffff83166004145b1561172557600194506118d3565b63ffffffff9450601693505b6101608701805163ffffffff808816604090920191909152905185821660e09091015260808801805180831660608b015260040190911690526114bd61061b565b600061191e611c5b565b506080600063ffffffff871660100361193c575060c0810151611aa5565b8663ffffffff1660110361195b5763ffffffff861660c0830152611aa5565b8663ffffffff16601203611974575060a0810151611aa5565b8663ffffffff166013036119935763ffffffff861660a0830152611aa5565b8663ffffffff166018036119c75763ffffffff600387810b9087900b02602081901c821660c08501521660a0830152611aa5565b8663ffffffff166019036119f85763ffffffff86811681871602602081901c821660c08501521660a0830152611aa5565b8663ffffffff16601a03611a4e578460030b8660030b81611a1b57611a1b611df5565b0763ffffffff1660c0830152600385810b9087900b81611a3d57611a3d611df5565b0563ffffffff1660a0830152611aa5565b8663ffffffff16601b03611aa5578463ffffffff168663ffffffff1681611a7757611a77611df5565b0663ffffffff90811660c084015285811690871681611a9857611a98611df5565b0463ffffffff1660a08301525b63ffffffff841615611ae057808261016001518563ffffffff1660208110611acf57611acf611da2565b63ffffffff90921660209290920201525b60808201805163ffffffff80821660608601526004909101169052611b0361061b565b979650505050505050565b6000611b1983611bb2565b90506003841615611b2957600080fd5b6020810190601f8516601c0360031b83811b913563ffffffff90911b1916178460051c60005b601b811015611ba75760208401933582821c6001168015611b775760018114611b8c57611b9d565b60008581526020839052604090209450611b9d565b600082815260208690526040902094505b5050600101611b4f565b505060805250505050565b60ff8116610380026101a4810190369061052401811015611c55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f636865636b207468617420746865726520697320656e6f7567682063616c6c6460448201527f6174610000000000000000000000000000000000000000000000000000000000606482015260840161087d565b50919050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091526101608101611cc1611cc6565b905290565b6040518061040001604052806020906020820280368337509192915050565b60008083601f840112611cf757600080fd5b50813567ffffffffffffffff811115611d0f57600080fd5b602083019150836020828501011115611d2757600080fd5b9250929050565b600080600080600060608688031215611d4657600080fd5b853567ffffffffffffffff80821115611d5e57600080fd5b611d6a89838a01611ce5565b90975095506020880135915080821115611d8357600080fd5b50611d9088828901611ce5565b96999598509660400135949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008060408385031215611de4
57600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea164736f6c634300080f000a"
,
ABI
:
"[{
\"
type
\"
:
\"
constructor
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_oracle
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
contractIPreimageOracle
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
BRK_START
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
uint32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
oracle
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
oracle_
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
contractIPreimageOracle
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
step
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_stateData
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
_proof
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
_localContext
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
}
,{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
version
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
string
\"
,
\"
internalType
\"
:
\"
string
\"
}],
\"
stateMutability
\"
:
\"
view
\"
}
]"
,
Bin
:
"0x60a060405234801561001057600080fd5b50604051611
f89380380611f8983398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051611ef86100916000396000818160d901526116430152611ef86000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063155633fe1461005157806354fd4d50146100765780637dc0d1d0146100bf578063e14ced3214610103575b600080fd5b61005c634000000081565b60405163ffffffff90911681526020015b60405180910390f35b6100b26040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161006d9190611d39565b60405173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016815260200161006d565b610116610111366004611df5565b610124565b60405190815260200161006d565b600061012e611caf565b6080811461013b57600080fd5b6040516106001461014b57600080fd5b6084871461015857600080fd5b6101a4851461016657600080fd5b8635608052602087013560a052604087013560e090811c60c09081526044890135821c82526048890135821c61010052604c890135821c610120526050890135821c61014052605489013590911c61016052605888013560f890811c610180526059890135901c6101a052605a880135901c6101c0526102006101e0819052606288019060005b602081101561021157823560e01c82526004909201916020909101906001016101ed565b5050508061012001511561022f5761022761066f565b915050610666565b6101408101805160010167ffffffffffffffff1690526060810151600090610257908261078b565b9050603f601a82901c16600281148061027657508063ffffffff166003145b156102cb5760006002836303ffffff1663ffffffff16901b846080015163f0000000161790506102c08263ffffffff166002146102b457601f6102b7565b60005b60ff1682610847565b945050505050610666565b6101608301516000908190601f601086901c81169190601587901c16602081106102f7576102f7611e69565b602002015192508063ffffffff8516158061031857508463ffffffff16601c145b1561034f578661016001518263ffffffff166020811061033a5761033a611e69565b6020020151925050601f600b86901c1661040b565b60208563ffffffff1610156103b1578463ffffffff16600c148061037957508463ffffffff16600d145b8061038a57508463ffffffff16600e145b1561039b578561ffff16925061040b565b6103aa8661ffff166010610938565b925061040b565b60288563ffffffff161015806103cd57508463ffffffff166022145b806103de57508463ffffffff166026145b1561040b578661016001518263ffffffff166020811061040057610400611e69565b602002015192508190505b60048563ffffffff1610158015610428575060088563ffffffff16105b8061043957508463ffffffff166001145b156104585761044a858784876109ab565b975050505050505050610666565b63ffffffff60006020878316106104bd576104788861ffff166010610938565b9095019463fffffffc861661048e81600161078b565b915060288863ffffffff16101580156104ae57508763ffffffff16603014155b156104bb57809250600093505b505b60006104cb89888885610bbb565b63ffffffff9081169150603f8a169089161580156104f0575060088163ffffffff1610155b80156105025750601c8163ffffffff16105b156105df578063ffffffff166008148061052257508063ffffffff166009145b15610559576105478163ffffffff1660081461053e5785610541565b60005b89610847565b9b505050505050505050505050610666565b8063ffffffff16600a0361057957610547858963ffffffff8a161561134b565b8063ffffffff16600b0361059a57610547858963ffffffff8a16151561134b565b8063ffffffff16600c036105b1576105478d611431565b60108163ffffffff16101580156105ce5750601c8163ffffffff16105b156105df5761054781898988611968565b8863ffffffff1660381480156105fa575063ffffffff861615155b1561062f5760018b61016001518763ffffffff166020811061061e5761061e611e69565b63ffffffff90921660209290920201525b8363ffffffff1663ffffffff1461064c5761064c84600184611b62565b6106588583600161134b565b9b5050505050505050505050505b95945050505050565b60408051608051815260a051602082015260dc519181019190915260fc51604482015261011c51604882015261013c51604c82015261015c51605082015261017c5160548201526101805161019f5160588301526101a0516101bf5160598401526101d851605a840152600092610200929091606283019190855b602081101561070e57601c86015184526020909501946004909301926001016106ea565b506000835283830384a060009450806001811461072e5760039550610756565b828015610746576001811461074f5760029650610754565b60009650610754565b600196505b505b50505081900390207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f89190911b17919050565b60008061079783611c06565b905060038416156107a757600080fd5b6020810190358460051c8160005b601b81101561080d5760208501943583821c60011680156107dd57600181146107f257610803565b60008481526020839052604090209350610803565b600082815260208590526040902093505b50506001016107b5565b50608051915081811461082857630badf00d60005260206000fd5b5050601f94909416601c0360031b9390931c63ffffffff169392505050565b6000610851611caf565b60809050806060015160040163ffffffff16816080015163ffffffff16146108da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6a756d7020696e2064656c617920736c6f74000000000000000000000000000060448201526064015b60405180910390fd5b60608101805160808301805163ffffffff90811690935285831690529085161561093057806008018261016001518663ffffffff166020811061091f5761091f611e69565b63ffffffff90921660209290920201525b61066661066f565b600063ffffffff8381167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80850183169190911c821615159160016020869003821681901b830191861691821b92911b0182610995576000610997565b815b90861663ffffffff16179250505092915050565b60006109b5611caf565b608090506000816060015160040163ffffffff16826080015163ffffffff1614610a3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6272616e636820696e2064656c617920736c6f7400000000000000000000000060448201526064016108d1565b8663ffffffff1660041480610a5657508663ffffffff166005145b15610ad25760008261016001518663ffffffff1660208110610a7a57610a7a611e69565b602002015190508063ffffffff168563ffffffff16148015610aa257508763ffffffff166004145b80610aca57508063ffffffff168563ffffffff1614158015610aca57508763ffffffff166005145b915050610b4f565b8663ffffffff16600603610aef5760008460030b13159050610b4f565b8663ffffffff16600703610b0b5760008460030b139050610b4f565b8663ffffffff16600103610b4f57601f601087901c166000819003610b345760008560030b1291505b8063ffffffff16600103610b4d5760008560030b121591505b505b606082018051608084015163ffffffff169091528115610b95576002610b7a8861ffff166010610938565b63ffffffff90811690911b8201600401166080840152610ba7565b60808301805160040163ffffffff1690525b610baf61066f565b98975050505050505050565b6000603f601a86901c16801580610bea575060088163ffffffff1610158015610bea5750600f8163ffffffff16105b1561104057603f86168160088114610c315760098114610c3a57600a8114610c4357600b8114610c4c57600c8114610c5557600d8114610c5e57600e8114610c6757610c6c565b60209150610c6c565b60219150610c6c565b602a9150610c6c565b602b9150610c6c565b60249150610c6c565b60259150610c6c565b602691505b508063ffffffff16600003610c935750505063ffffffff8216601f600686901c161b611343565b8063ffffffff16600203610cb95750505063ffffffff8216601f600686901c161c611343565b8063ffffffff16600303610cef57601f600688901c16610ce563ffffffff8716821c6020839003610938565b9350505050611343565b8063ffffffff16600403610d115750505063ffffffff8216601f84161b611343565b8063ffffffff16600603610d335750505063ffffffff8216601f84161c611343565b8063ffffffff16600703610d6657610d5d8663ffffffff168663ffffffff16901c87602003610938565b92505050611343565b8063ffffffff16600803610d7e578592505050611343565b8063ffffffff16600903610d96578592505050611343565b8063ffffffff16600a03610dae578592505050611343565b8063ffffffff16600b03610dc6578592505050611343565b8063ffffffff16600c03610dde578592505050611343565b8063ffffffff16600f03610df6578592505050611343565b8063ffffffff16601003610e0e578592505050611343565b8063ffffffff16601103610e26578592505050611343565b8063ffffffff16601203610e3e578592505050611343565b8063ffffffff16601303610e56578592505050611343565b8063ffffffff16601803610e6e578592505050611343565b8063ffffffff16601903610e86578592505050611343565b8063ffffffff16601a03610e9e578592505050611343565b8063ffffffff16601b03610eb6578592505050611343565b8063ffffffff16602003610ecf57505050828201611343565b8063ffffffff16602103610ee857505050828201611343565b8063ffffffff16602203610f0157505050818303611343565b8063ffffffff16602303610f1a57505050818303611343565b8063ffffffff16602403610f3357505050828216611343565b8063ffffffff16602503610f4c57505050828217611343565b8063ffffffff16602603610f6557505050828218611343565b8063ffffffff16602703610f7f5750505082821719611343565b8063ffffffff16602a03610fb0578460030b8660030b12610fa1576000610fa4565b60015b60ff1692505050611343565b8063ffffffff16602b03610fd8578463ffffffff168663ffffffff1610610fa1576000610fa4565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c696420696e737472756374696f6e0000000000000000000000000060448201526064016108d1565b50610fd8565b8063ffffffff16601c036110c457603f8616600281900361106657505050828202611343565b8063ffffffff166020148061108157508063ffffffff166021145b1561103a578063ffffffff16602003611098579419945b60005b63800000008716156110ba576401fffffffe600197881b16960161109b565b9250611343915050565b8063ffffffff16600f036110e657505065ffffffff0000601083901b16611343565b8063ffffffff166020036111225761111a8560031660080260180363ffffffff168463ffffffff16901c60ff166008610938565b915050611343565b8063ffffffff166021036111575761111a8560021660080260100363ffffffff168463ffffffff16901c61ffff166010610938565b8063ffffffff1660220361118657505063ffffffff60086003851602811681811b198416918316901b17611343565b8063ffffffff1660230361119d5782915050611343565b8063ffffffff166024036111cf578460031660080260180363ffffffff168363ffffffff16901c60ff16915050611343565b8063ffffffff16602503611202578460021660080260100363ffffffff168363ffffffff16901c61ffff16915050611343565b8063ffffffff1660260361123457505063ffffffff60086003851602601803811681811c198416918316901c17611343565b8063ffffffff1660280361126a57505060ff63ffffffff60086003861602601803811682811b9091188316918416901b17611343565b8063ffffffff166029036112a157505061ffff63ffffffff60086002861602601003811682811b9091188316918416901b17611343565b8063ffffffff16602a036112d057505063ffffffff60086003851602811681811c198316918416901c17611343565b8063ffffffff16602b036112e75783915050611343565b8063ffffffff16602e0361131957505063ffffffff60086003851602601803811681811b198316918416901b17611343565b8063ffffffff166030036113305782915050611343565b8063ffffffff16603803610fd857839150505b949350505050565b6000611355611caf565b506080602063ffffffff8616106113c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f76616c696420726567697374657200000000000000000000000000000000000060448201526064016108d1565b63ffffffff8516158015906113da5750825b1561140e57838161016001518663ffffffff16602081106113fd576113fd611e69565b63ffffffff90921660209290920201525b60808101805163ffffffff8082166060850152600490910116905261066661066f565b600061143b611caf565b506101e051604081015160808083015160a084015160c09094015191936000928392919063ffffffff8616610ffa036114b55781610fff81161561148457610fff811661100003015b8363ffffffff166000036114ab5760e08801805163ffffffff8382011690915295506114af565b8395505b50611927565b8563ffffffff16610fcd036114d05763400000009450611927565b8563ffffffff16611018036114e85760019450611927565b8563ffffffff166110960361151e57600161012088015260ff831661010088015261151161066f565b9998505050505050505050565b8563ffffffff16610fa30361178a5763ffffffff831615611927577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb63ffffffff8416016117445760006115798363fffffffc16600161078b565b60208901519091508060001a6001036115e857604080516000838152336020528d83526060902091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790505b6040808a015190517fe03110e10000000000000000000000000000000000000000000000000000000081526004810183905263ffffffff9091166024820152600090819073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e03110e1906044016040805180830381865afa158015611689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ad9190611e98565b915091506003861680600403828110156116c5578092505b50818610156116d2578591505b8260088302610100031c9250826008828460040303021b9250600180600883600403021b036001806008858560040303021b039150811981169050838119871617955050506117298663fffffffc16600186611b62565b60408b018051820163ffffffff169052975061178592505050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd63ffffffff84160161177957809450611927565b63ffffffff9450600993505b611927565b8563ffffffff16610fa40361187b5763ffffffff8316600114806117b4575063ffffffff83166002145b806117c5575063ffffffff83166004145b156117d257809450611927565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa63ffffffff8416016117795760006118128363fffffffc16600161078b565b6020890151909150600384166004038381101561182d578093505b83900360089081029290921c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600193850293841b0116911b17602088015260006040880152935083611927565b8563ffffffff16610fd703611927578163ffffffff1660030361191b5763ffffffff831615806118b1575063ffffffff83166005145b806118c2575063ffffffff83166003145b156118d05760009450611927565b63ffffffff8316600114806118eb575063ffffffff83166002145b806118fc575063ffffffff83166006145b8061190d575063ffffffff83166004145b156117795760019450611927565b63ffffffff9450601693505b6101608701805163ffffffff808816604090920191909152905185821660e09091015260808801805180831660608b0152600401909116905261151161066f565b6000611972611caf565b506080600063ffffffff8716601003611990575060c0810151611af9565b8663ffffffff166011036119af5763ffffffff861660c0830152611af9565b8663ffffffff166012036119c8575060a0810151611af9565b8663ffffffff166013036119e75763ffffffff861660a0830152611af9565b8663ffffffff16601803611a1b5763ffffffff600387810b9087900b02602081901c821660c08501521660a0830152611af9565b8663ffffffff16601903611a4c5763ffffffff86811681871602602081901c821660c08501521660a0830152611af9565b8663ffffffff16601a03611aa2578460030b8660030b81611a6f57611a6f611ebc565b0763ffffffff1660c0830152600385810b9087900b81611a9157611a91611ebc565b0563ffffffff1660a0830152611af9565b8663ffffffff16601b03611af9578463ffffffff168663ffffffff1681611acb57611acb611ebc565b0663ffffffff90811660c084015285811690871681611aec57611aec611ebc565b0463ffffffff1660a08301525b63ffffffff841615611b3457808261016001518563ffffffff1660208110611b2357611b23611e69565b63ffffffff90921660209290920201525b60808201805163ffffffff80821660608601526004909101169052611b5761066f565b979650505050505050565b6000611b6d83611c06565b90506003841615611b7d57600080fd5b6020810190601f8516601c0360031b83811b913563ffffffff90911b1916178460051c60005b601b811015611bfb5760208401933582821c6001168015611bcb5760018114611be057611bf1565b60008581526020839052604090209450611bf1565b600082815260208690526040902094505b5050600101611ba3565b505060805250505050565b60ff8116610380026101a4810190369061052401811015611ca9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f636865636b207468617420746865726520697320656e6f7567682063616c6c6460448201527f617461000000000000000000000000000000000000000000000000000000000060648201526084016108d1565b50919050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091526101608101611d15611d1a565b905290565b6040518061040001604052806020906020820280368337509192915050565b600060208083528351808285015260005b81811015611d6657858101830151858201604001528201611d4a565b81811115611d78576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60008083601f840112611dbe57600080fd5b50813567ffffffffffffffff811115611dd657600080fd5b602083019150836020828501011115611dee57600080fd5b9250929050565b600080600080600060608688031215611e0d57600080fd5b853567ffffffffffffffff80821115611e2557600080fd5b611e3189838a01611dac565b90975095506020880135915080821115611e4a57600080fd5b50611e5788828901611dac565b96999598509660400135949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008060408385031215611eab
57600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea164736f6c634300080f000a"
,
}
// MIPSABI is the input ABI used to generate the binding from.
...
...
@@ -263,6 +263,37 @@ func (_MIPS *MIPSCallerSession) Oracle() (common.Address, error) {
return
_MIPS
.
Contract
.
Oracle
(
&
_MIPS
.
CallOpts
)
}
// Version is a free data retrieval call binding the contract method 0x54fd4d50.
//
// Solidity: function version() view returns(string)
func
(
_MIPS
*
MIPSCaller
)
Version
(
opts
*
bind
.
CallOpts
)
(
string
,
error
)
{
var
out
[]
interface
{}
err
:=
_MIPS
.
contract
.
Call
(
opts
,
&
out
,
"version"
)
if
err
!=
nil
{
return
*
new
(
string
),
err
}
out0
:=
*
abi
.
ConvertType
(
out
[
0
],
new
(
string
))
.
(
*
string
)
return
out0
,
err
}
// Version is a free data retrieval call binding the contract method 0x54fd4d50.
//
// Solidity: function version() view returns(string)
func
(
_MIPS
*
MIPSSession
)
Version
()
(
string
,
error
)
{
return
_MIPS
.
Contract
.
Version
(
&
_MIPS
.
CallOpts
)
}
// Version is a free data retrieval call binding the contract method 0x54fd4d50.
//
// Solidity: function version() view returns(string)
func
(
_MIPS
*
MIPSCallerSession
)
Version
()
(
string
,
error
)
{
return
_MIPS
.
Contract
.
Version
(
&
_MIPS
.
CallOpts
)
}
// Step is a paid mutator transaction binding the contract method 0xe14ced32.
//
// Solidity: function step(bytes _stateData, bytes _proof, bytes32 _localContext) returns(bytes32)
...
...
op-bindings/bindings/mips_more.go
View file @
20407c5a
...
...
@@ -13,7 +13,7 @@ const MIPSStorageLayoutJSON = "{\"storage\":null,\"types\":{}}"
var
MIPSStorageLayout
=
new
(
solc
.
StorageLayout
)
var
MIPSDeployedBin
=
"0x608060405234801561001057600080fd5b506004361061004
15760003560e01c8063155633fe146100465780637dc0d1d01461006b578063e14ced32146100af575b600080fd5b610051634000000081565b60405163ffffffff90911681526020015b60405180910390f35b60405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610062565b6100c26100bd366004611d2e565b6100d0565b604051908152602001610062565b60006100da611c5b565b608081146100e757600080fd5b604051610600146100f757600080fd5b6084871461010457600080fd5b6101a4851461011257600080fd5b8635608052602087013560a052604087013560e090811c60c09081526044890135821c82526048890135821c61010052604c890135821c610120526050890135821c61014052605489013590911c61016052605888013560f890811c610180526059890135901c6101a052605a880135901c6101c0526102006101e0819052606288019060005b60208110156101bd57823560e01c8252600490920191602090910190600101610199565b505050806101200151156101db576101d361061b565b915050610612565b6101408101805160010167ffffffffffffffff16905260608101516000906102039082610737565b9050603f601a82901c16600281148061022257508063ffffffff166003145b156102775760006002836303ffffff1663ffffffff16901b846080015163f00000001617905061026c8263ffffffff1660021461026057601f610263565b60005b60ff16826107f3565b945050505050610612565b6101608301516000908190601f601086901c81169190601587901c16602081106102a3576102a3611da2565b602002015192508063ffffffff851615806102c457508463ffffffff16601c145b156102fb578661016001518263ffffffff16602081106102e6576102e6611da2565b6020020151925050601f600b86901c166103b7565b60208563ffffffff16101561035d578463ffffffff16600c148061032557508463ffffffff16600d145b8061033657508463ffffffff16600e145b15610347578561ffff1692506103b7565b6103568661ffff1660106108e4565b92506103b7565b60288563ffffffff1610158061037957508463ffffffff166022145b8061038a57508463ffffffff166026145b156103b7578661016001518263ffffffff16602081106103ac576103ac611da2565b602002015192508190505b60048563ffffffff16101580156103d4575060088563ffffffff16105b806103e557508463ffffffff166001145b15610404576103f685878487610957565b975050505050505050610612565b63ffffffff6000602087831610610469576104248861ffff1660106108e4565b9095019463fffffffc861661043a816001610737565b915060288863ffffffff161015801561045a57508763ffffffff16603014155b1561046757809250600093505b505b600061047789888885610b67565b63ffffffff9081169150603f8a1690891615801561049c575060088163ffffffff1610155b80156104ae5750601c8163ffffffff16105b1561058b578063ffffffff16600814806104ce57508063ffffffff166009145b15610505576104f38163ffffffff166008146104ea57856104ed565b60005b896107f3565b9b505050505050505050505050610612565b8063ffffffff16600a03610525576104f3858963ffffffff8a16156112f7565b8063ffffffff16600b03610546576104f3858963ffffffff8a1615156112f7565b8063ffffffff16600c0361055d576104f38d6113dd565b60108163ffffffff161015801561057a5750601c8163ffffffff16105b1561058b576104f381898988611914565b8863ffffffff1660381480156105a6575063ffffffff861615155b156105db5760018b61016001518763ffffffff16602081106105ca576105ca611da2565b63ffffffff90921660209290920201525b8363ffffffff1663ffffffff146105f8576105f884600184611b0e565b610604858360016112f7565b9b5050505050505050505050505b95945050505050565b60408051608051815260a051602082015260dc519181019190915260fc51604482015261011c51604882015261013c51604c82015261015c51605082015261017c5160548201526101805161019f5160588301526101a0516101bf5160598401526101d851605a840152600092610200929091606283019190855b60208110156106ba57601c8601518452602090950194600490930192600101610696565b506000835283830384a06000945080600181146106da5760039550610702565b8280156106f257600181146106fb5760029650610700565b60009650610700565b600196505b505b50505081900390207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f89190911b17919050565b60008061074383611bb2565b9050600384161561075357600080fd5b6020810190358460051c8160005b601b8110156107b95760208501943583821c6001168015610789576001811461079e576107af565b600084815260208390526040902093506107af565b600082815260208590526040902093505b5050600101610761565b5060805191508181146107d457630badf00d60005260206000fd5b5050601f94909416601c0360031b9390931c63ffffffff169392505050565b60006107fd611c5b565b60809050806060015160040163ffffffff16816080015163ffffffff1614610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6a756d7020696e2064656c617920736c6f74000000000000000000000000000060448201526064015b60405180910390fd5b60608101805160808301805163ffffffff9081169093528583169052908516156108dc57806008018261016001518663ffffffff16602081106108cb576108cb611da2565b63ffffffff90921660209290920201525b61061261061b565b600063ffffffff8381167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80850183169190911c821615159160016020869003821681901b830191861691821b92911b0182610941576000610943565b815b90861663ffffffff16179250505092915050565b6000610961611c5b565b608090506000816060015160040163ffffffff16826080015163ffffffff16146109e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6272616e636820696e2064656c617920736c6f74000000000000000000000000604482015260640161087d565b8663ffffffff1660041480610a0257508663ffffffff166005145b15610a7e5760008261016001518663ffffffff1660208110610a2657610a26611da2565b602002015190508063ffffffff168563ffffffff16148015610a4e57508763ffffffff166004145b80610a7657508063ffffffff168563ffffffff1614158015610a7657508763ffffffff166005145b915050610afb565b8663ffffffff16600603610a9b5760008460030b13159050610afb565b8663ffffffff16600703610ab75760008460030b139050610afb565b8663ffffffff16600103610afb57601f601087901c166000819003610ae05760008560030b1291505b8063ffffffff16600103610af95760008560030b121591505b505b606082018051608084015163ffffffff169091528115610b41576002610b268861ffff1660106108e4565b63ffffffff90811690911b8201600401166080840152610b53565b60808301805160040163ffffffff1690525b610b5b61061b565b98975050505050505050565b6000603f601a86901c16801580610b96575060088163ffffffff1610158015610b965750600f8163ffffffff16105b15610fec57603f86168160088114610bdd5760098114610be657600a8114610bef57600b8114610bf857600c8114610c0157600d8114610c0a57600e8114610c1357610c18565b60209150610c18565b60219150610c18565b602a9150610c18565b602b9150610c18565b60249150610c18565b60259150610c18565b602691505b508063ffffffff16600003610c3f5750505063ffffffff8216601f600686901c161b6112ef565b8063ffffffff16600203610c655750505063ffffffff8216601f600686901c161c6112ef565b8063ffffffff16600303610c9b57601f600688901c16610c9163ffffffff8716821c60208390036108e4565b93505050506112ef565b8063ffffffff16600403610cbd5750505063ffffffff8216601f84161b6112ef565b8063ffffffff16600603610cdf5750505063ffffffff8216601f84161c6112ef565b8063ffffffff16600703610d1257610d098663ffffffff168663ffffffff16901c876020036108e4565b925050506112ef565b8063ffffffff16600803610d2a5785925050506112ef565b8063ffffffff16600903610d425785925050506112ef565b8063ffffffff16600a03610d5a5785925050506112ef565b8063ffffffff16600b03610d725785925050506112ef565b8063ffffffff16600c03610d8a5785925050506112ef565b8063ffffffff16600f03610da25785925050506112ef565b8063ffffffff16601003610dba5785925050506112ef565b8063ffffffff16601103610dd25785925050506112ef565b8063ffffffff16601203610dea5785925050506112ef565b8063ffffffff16601303610e025785925050506112ef565b8063ffffffff16601803610e1a5785925050506112ef565b8063ffffffff16601903610e325785925050506112ef565b8063ffffffff16601a03610e4a5785925050506112ef565b8063ffffffff16601b03610e625785925050506112ef565b8063ffffffff16602003610e7b575050508282016112ef565b8063ffffffff16602103610e94575050508282016112ef565b8063ffffffff16602203610ead575050508183036112ef565b8063ffffffff16602303610ec6575050508183036112ef565b8063ffffffff16602403610edf575050508282166112ef565b8063ffffffff16602503610ef8575050508282176112ef565b8063ffffffff16602603610f11575050508282186112ef565b8063ffffffff16602703610f2b57505050828217196112ef565b8063ffffffff16602a03610f5c578460030b8660030b12610f4d576000610f50565b60015b60ff16925050506112ef565b8063ffffffff16602b03610f84578463ffffffff168663ffffffff1610610f4d576000610f50565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c696420696e737472756374696f6e00000000000000000000000000604482015260640161087d565b50610f84565b8063ffffffff16601c0361107057603f86166002819003611012575050508282026112ef565b8063ffffffff166020148061102d57508063ffffffff166021145b15610fe6578063ffffffff16602003611044579419945b60005b6380000000871615611066576401fffffffe600197881b169601611047565b92506112ef915050565b8063ffffffff16600f0361109257505065ffffffff0000601083901b166112ef565b8063ffffffff166020036110ce576110c68560031660080260180363ffffffff168463ffffffff16901c60ff1660086108e4565b9150506112ef565b8063ffffffff16602103611103576110c68560021660080260100363ffffffff168463ffffffff16901c61ffff1660106108e4565b8063ffffffff1660220361113257505063ffffffff60086003851602811681811b198416918316901b176112ef565b8063ffffffff1660230361114957829150506112ef565b8063ffffffff1660240361117b578460031660080260180363ffffffff168363ffffffff16901c60ff169150506112ef565b8063ffffffff166025036111ae578460021660080260100363ffffffff168363ffffffff16901c61ffff169150506112ef565b8063ffffffff166026036111e057505063ffffffff60086003851602601803811681811c198416918316901c176112ef565b8063ffffffff1660280361121657505060ff63ffffffff60086003861602601803811682811b9091188316918416901b176112ef565b8063ffffffff1660290361124d57505061ffff63ffffffff60086002861602601003811682811b9091188316918416901b176112ef565b8063ffffffff16602a0361127c57505063ffffffff60086003851602811681811c198316918416901c176112ef565b8063ffffffff16602b0361129357839150506112ef565b8063ffffffff16602e036112c557505063ffffffff60086003851602601803811681811b198316918416901b176112ef565b8063ffffffff166030036112dc57829150506112ef565b8063ffffffff16603803610f8457839150505b949350505050565b6000611301611c5b565b506080602063ffffffff861610611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f76616c6964207265676973746572000000000000000000000000000000000000604482015260640161087d565b63ffffffff8516158015906113865750825b156113ba57838161016001518663ffffffff16602081106113a9576113a9611da2565b63ffffffff90921660209290920201525b60808101805163ffffffff8082166060850152600490910116905261061261061b565b60006113e7611c5b565b506101e051604081015160808083015160a084015160c09094015191936000928392919063ffffffff8616610ffa036114615781610fff81161561143057610fff811661100003015b8363ffffffff166000036114575760e08801805163ffffffff83820116909152955061145b565b8395505b506118d3565b8563ffffffff16610fcd0361147c57634000000094506118d3565b8563ffffffff166110180361149457600194506118d3565b8563ffffffff16611096036114ca57600161012088015260ff83166101008801526114bd61061b565b9998505050505050505050565b8563ffffffff16610fa3036117365763ffffffff8316156118d3577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb63ffffffff8416016116f05760006115258363fffffffc166001610737565b60208901519091508060001a60010361159457604080516000838152336020528d83526060902091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790505b6040808a015190517fe03110e10000000000000000000000000000000000000000000000000000000081526004810183905263ffffffff9091166024820152600090819073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e03110e1906044016040805180830381865afa158015611635573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116599190611dd1565b91509150600386168060040382811015611671578092505b508186101561167e578591505b8260088302610100031c9250826008828460040303021b9250600180600883600403021b036001806008858560040303021b039150811981169050838119871617955050506116d58663fffffffc16600186611b0e565b60408b018051820163ffffffff169052975061173192505050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd63ffffffff841601611725578094506118d3565b63ffffffff9450600993505b6118d3565b8563ffffffff16610fa4036118275763ffffffff831660011480611760575063ffffffff83166002145b80611771575063ffffffff83166004145b1561177e578094506118d3565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa63ffffffff8416016117255760006117be8363fffffffc166001610737565b602089015190915060038416600403838110156117d9578093505b83900360089081029290921c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600193850293841b0116911b176020880152600060408801529350836118d3565b8563ffffffff16610fd7036118d3578163ffffffff166003036118c75763ffffffff8316158061185d575063ffffffff83166005145b8061186e575063ffffffff83166003145b1561187c57600094506118d3565b63ffffffff831660011480611897575063ffffffff83166002145b806118a8575063ffffffff83166006145b806118b9575063ffffffff83166004145b1561172557600194506118d3565b63ffffffff9450601693505b6101608701805163ffffffff808816604090920191909152905185821660e09091015260808801805180831660608b015260040190911690526114bd61061b565b600061191e611c5b565b506080600063ffffffff871660100361193c575060c0810151611aa5565b8663ffffffff1660110361195b5763ffffffff861660c0830152611aa5565b8663ffffffff16601203611974575060a0810151611aa5565b8663ffffffff166013036119935763ffffffff861660a0830152611aa5565b8663ffffffff166018036119c75763ffffffff600387810b9087900b02602081901c821660c08501521660a0830152611aa5565b8663ffffffff166019036119f85763ffffffff86811681871602602081901c821660c08501521660a0830152611aa5565b8663ffffffff16601a03611a4e578460030b8660030b81611a1b57611a1b611df5565b0763ffffffff1660c0830152600385810b9087900b81611a3d57611a3d611df5565b0563ffffffff1660a0830152611aa5565b8663ffffffff16601b03611aa5578463ffffffff168663ffffffff1681611a7757611a77611df5565b0663ffffffff90811660c084015285811690871681611a9857611a98611df5565b0463ffffffff1660a08301525b63ffffffff841615611ae057808261016001518563ffffffff1660208110611acf57611acf611da2565b63ffffffff90921660209290920201525b60808201805163ffffffff80821660608601526004909101169052611b0361061b565b979650505050505050565b6000611b1983611bb2565b90506003841615611b2957600080fd5b6020810190601f8516601c0360031b83811b913563ffffffff90911b1916178460051c60005b601b811015611ba75760208401933582821c6001168015611b775760018114611b8c57611b9d565b60008581526020839052604090209450611b9d565b600082815260208690526040902094505b5050600101611b4f565b505060805250505050565b60ff8116610380026101a4810190369061052401811015611c55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f636865636b207468617420746865726520697320656e6f7567682063616c6c6460448201527f6174610000000000000000000000000000000000000000000000000000000000606482015260840161087d565b50919050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091526101608101611cc1611cc6565b905290565b6040518061040001604052806020906020820280368337509192915050565b60008083601f840112611cf757600080fd5b50813567ffffffffffffffff811115611d0f57600080fd5b602083019150836020828501011115611d2757600080fd5b9250929050565b600080600080600060608688031215611d4657600080fd5b853567ffffffffffffffff80821115611d5e57600080fd5b611d6a89838a01611ce5565b90975095506020880135915080821115611d8357600080fd5b50611d9088828901611ce5565b96999598509660400135949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008060408385031215611de4
57600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea164736f6c634300080f000a"
var
MIPSDeployedBin
=
"0x608060405234801561001057600080fd5b506004361061004
c5760003560e01c8063155633fe1461005157806354fd4d50146100765780637dc0d1d0146100bf578063e14ced3214610103575b600080fd5b61005c634000000081565b60405163ffffffff90911681526020015b60405180910390f35b6100b26040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161006d9190611d39565b60405173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016815260200161006d565b610116610111366004611df5565b610124565b60405190815260200161006d565b600061012e611caf565b6080811461013b57600080fd5b6040516106001461014b57600080fd5b6084871461015857600080fd5b6101a4851461016657600080fd5b8635608052602087013560a052604087013560e090811c60c09081526044890135821c82526048890135821c61010052604c890135821c610120526050890135821c61014052605489013590911c61016052605888013560f890811c610180526059890135901c6101a052605a880135901c6101c0526102006101e0819052606288019060005b602081101561021157823560e01c82526004909201916020909101906001016101ed565b5050508061012001511561022f5761022761066f565b915050610666565b6101408101805160010167ffffffffffffffff1690526060810151600090610257908261078b565b9050603f601a82901c16600281148061027657508063ffffffff166003145b156102cb5760006002836303ffffff1663ffffffff16901b846080015163f0000000161790506102c08263ffffffff166002146102b457601f6102b7565b60005b60ff1682610847565b945050505050610666565b6101608301516000908190601f601086901c81169190601587901c16602081106102f7576102f7611e69565b602002015192508063ffffffff8516158061031857508463ffffffff16601c145b1561034f578661016001518263ffffffff166020811061033a5761033a611e69565b6020020151925050601f600b86901c1661040b565b60208563ffffffff1610156103b1578463ffffffff16600c148061037957508463ffffffff16600d145b8061038a57508463ffffffff16600e145b1561039b578561ffff16925061040b565b6103aa8661ffff166010610938565b925061040b565b60288563ffffffff161015806103cd57508463ffffffff166022145b806103de57508463ffffffff166026145b1561040b578661016001518263ffffffff166020811061040057610400611e69565b602002015192508190505b60048563ffffffff1610158015610428575060088563ffffffff16105b8061043957508463ffffffff166001145b156104585761044a858784876109ab565b975050505050505050610666565b63ffffffff60006020878316106104bd576104788861ffff166010610938565b9095019463fffffffc861661048e81600161078b565b915060288863ffffffff16101580156104ae57508763ffffffff16603014155b156104bb57809250600093505b505b60006104cb89888885610bbb565b63ffffffff9081169150603f8a169089161580156104f0575060088163ffffffff1610155b80156105025750601c8163ffffffff16105b156105df578063ffffffff166008148061052257508063ffffffff166009145b15610559576105478163ffffffff1660081461053e5785610541565b60005b89610847565b9b505050505050505050505050610666565b8063ffffffff16600a0361057957610547858963ffffffff8a161561134b565b8063ffffffff16600b0361059a57610547858963ffffffff8a16151561134b565b8063ffffffff16600c036105b1576105478d611431565b60108163ffffffff16101580156105ce5750601c8163ffffffff16105b156105df5761054781898988611968565b8863ffffffff1660381480156105fa575063ffffffff861615155b1561062f5760018b61016001518763ffffffff166020811061061e5761061e611e69565b63ffffffff90921660209290920201525b8363ffffffff1663ffffffff1461064c5761064c84600184611b62565b6106588583600161134b565b9b5050505050505050505050505b95945050505050565b60408051608051815260a051602082015260dc519181019190915260fc51604482015261011c51604882015261013c51604c82015261015c51605082015261017c5160548201526101805161019f5160588301526101a0516101bf5160598401526101d851605a840152600092610200929091606283019190855b602081101561070e57601c86015184526020909501946004909301926001016106ea565b506000835283830384a060009450806001811461072e5760039550610756565b828015610746576001811461074f5760029650610754565b60009650610754565b600196505b505b50505081900390207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f89190911b17919050565b60008061079783611c06565b905060038416156107a757600080fd5b6020810190358460051c8160005b601b81101561080d5760208501943583821c60011680156107dd57600181146107f257610803565b60008481526020839052604090209350610803565b600082815260208590526040902093505b50506001016107b5565b50608051915081811461082857630badf00d60005260206000fd5b5050601f94909416601c0360031b9390931c63ffffffff169392505050565b6000610851611caf565b60809050806060015160040163ffffffff16816080015163ffffffff16146108da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6a756d7020696e2064656c617920736c6f74000000000000000000000000000060448201526064015b60405180910390fd5b60608101805160808301805163ffffffff90811690935285831690529085161561093057806008018261016001518663ffffffff166020811061091f5761091f611e69565b63ffffffff90921660209290920201525b61066661066f565b600063ffffffff8381167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80850183169190911c821615159160016020869003821681901b830191861691821b92911b0182610995576000610997565b815b90861663ffffffff16179250505092915050565b60006109b5611caf565b608090506000816060015160040163ffffffff16826080015163ffffffff1614610a3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6272616e636820696e2064656c617920736c6f7400000000000000000000000060448201526064016108d1565b8663ffffffff1660041480610a5657508663ffffffff166005145b15610ad25760008261016001518663ffffffff1660208110610a7a57610a7a611e69565b602002015190508063ffffffff168563ffffffff16148015610aa257508763ffffffff166004145b80610aca57508063ffffffff168563ffffffff1614158015610aca57508763ffffffff166005145b915050610b4f565b8663ffffffff16600603610aef5760008460030b13159050610b4f565b8663ffffffff16600703610b0b5760008460030b139050610b4f565b8663ffffffff16600103610b4f57601f601087901c166000819003610b345760008560030b1291505b8063ffffffff16600103610b4d5760008560030b121591505b505b606082018051608084015163ffffffff169091528115610b95576002610b7a8861ffff166010610938565b63ffffffff90811690911b8201600401166080840152610ba7565b60808301805160040163ffffffff1690525b610baf61066f565b98975050505050505050565b6000603f601a86901c16801580610bea575060088163ffffffff1610158015610bea5750600f8163ffffffff16105b1561104057603f86168160088114610c315760098114610c3a57600a8114610c4357600b8114610c4c57600c8114610c5557600d8114610c5e57600e8114610c6757610c6c565b60209150610c6c565b60219150610c6c565b602a9150610c6c565b602b9150610c6c565b60249150610c6c565b60259150610c6c565b602691505b508063ffffffff16600003610c935750505063ffffffff8216601f600686901c161b611343565b8063ffffffff16600203610cb95750505063ffffffff8216601f600686901c161c611343565b8063ffffffff16600303610cef57601f600688901c16610ce563ffffffff8716821c6020839003610938565b9350505050611343565b8063ffffffff16600403610d115750505063ffffffff8216601f84161b611343565b8063ffffffff16600603610d335750505063ffffffff8216601f84161c611343565b8063ffffffff16600703610d6657610d5d8663ffffffff168663ffffffff16901c87602003610938565b92505050611343565b8063ffffffff16600803610d7e578592505050611343565b8063ffffffff16600903610d96578592505050611343565b8063ffffffff16600a03610dae578592505050611343565b8063ffffffff16600b03610dc6578592505050611343565b8063ffffffff16600c03610dde578592505050611343565b8063ffffffff16600f03610df6578592505050611343565b8063ffffffff16601003610e0e578592505050611343565b8063ffffffff16601103610e26578592505050611343565b8063ffffffff16601203610e3e578592505050611343565b8063ffffffff16601303610e56578592505050611343565b8063ffffffff16601803610e6e578592505050611343565b8063ffffffff16601903610e86578592505050611343565b8063ffffffff16601a03610e9e578592505050611343565b8063ffffffff16601b03610eb6578592505050611343565b8063ffffffff16602003610ecf57505050828201611343565b8063ffffffff16602103610ee857505050828201611343565b8063ffffffff16602203610f0157505050818303611343565b8063ffffffff16602303610f1a57505050818303611343565b8063ffffffff16602403610f3357505050828216611343565b8063ffffffff16602503610f4c57505050828217611343565b8063ffffffff16602603610f6557505050828218611343565b8063ffffffff16602703610f7f5750505082821719611343565b8063ffffffff16602a03610fb0578460030b8660030b12610fa1576000610fa4565b60015b60ff1692505050611343565b8063ffffffff16602b03610fd8578463ffffffff168663ffffffff1610610fa1576000610fa4565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c696420696e737472756374696f6e0000000000000000000000000060448201526064016108d1565b50610fd8565b8063ffffffff16601c036110c457603f8616600281900361106657505050828202611343565b8063ffffffff166020148061108157508063ffffffff166021145b1561103a578063ffffffff16602003611098579419945b60005b63800000008716156110ba576401fffffffe600197881b16960161109b565b9250611343915050565b8063ffffffff16600f036110e657505065ffffffff0000601083901b16611343565b8063ffffffff166020036111225761111a8560031660080260180363ffffffff168463ffffffff16901c60ff166008610938565b915050611343565b8063ffffffff166021036111575761111a8560021660080260100363ffffffff168463ffffffff16901c61ffff166010610938565b8063ffffffff1660220361118657505063ffffffff60086003851602811681811b198416918316901b17611343565b8063ffffffff1660230361119d5782915050611343565b8063ffffffff166024036111cf578460031660080260180363ffffffff168363ffffffff16901c60ff16915050611343565b8063ffffffff16602503611202578460021660080260100363ffffffff168363ffffffff16901c61ffff16915050611343565b8063ffffffff1660260361123457505063ffffffff60086003851602601803811681811c198416918316901c17611343565b8063ffffffff1660280361126a57505060ff63ffffffff60086003861602601803811682811b9091188316918416901b17611343565b8063ffffffff166029036112a157505061ffff63ffffffff60086002861602601003811682811b9091188316918416901b17611343565b8063ffffffff16602a036112d057505063ffffffff60086003851602811681811c198316918416901c17611343565b8063ffffffff16602b036112e75783915050611343565b8063ffffffff16602e0361131957505063ffffffff60086003851602601803811681811b198316918416901b17611343565b8063ffffffff166030036113305782915050611343565b8063ffffffff16603803610fd857839150505b949350505050565b6000611355611caf565b506080602063ffffffff8616106113c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f76616c696420726567697374657200000000000000000000000000000000000060448201526064016108d1565b63ffffffff8516158015906113da5750825b1561140e57838161016001518663ffffffff16602081106113fd576113fd611e69565b63ffffffff90921660209290920201525b60808101805163ffffffff8082166060850152600490910116905261066661066f565b600061143b611caf565b506101e051604081015160808083015160a084015160c09094015191936000928392919063ffffffff8616610ffa036114b55781610fff81161561148457610fff811661100003015b8363ffffffff166000036114ab5760e08801805163ffffffff8382011690915295506114af565b8395505b50611927565b8563ffffffff16610fcd036114d05763400000009450611927565b8563ffffffff16611018036114e85760019450611927565b8563ffffffff166110960361151e57600161012088015260ff831661010088015261151161066f565b9998505050505050505050565b8563ffffffff16610fa30361178a5763ffffffff831615611927577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb63ffffffff8416016117445760006115798363fffffffc16600161078b565b60208901519091508060001a6001036115e857604080516000838152336020528d83526060902091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790505b6040808a015190517fe03110e10000000000000000000000000000000000000000000000000000000081526004810183905263ffffffff9091166024820152600090819073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e03110e1906044016040805180830381865afa158015611689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ad9190611e98565b915091506003861680600403828110156116c5578092505b50818610156116d2578591505b8260088302610100031c9250826008828460040303021b9250600180600883600403021b036001806008858560040303021b039150811981169050838119871617955050506117298663fffffffc16600186611b62565b60408b018051820163ffffffff169052975061178592505050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd63ffffffff84160161177957809450611927565b63ffffffff9450600993505b611927565b8563ffffffff16610fa40361187b5763ffffffff8316600114806117b4575063ffffffff83166002145b806117c5575063ffffffff83166004145b156117d257809450611927565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa63ffffffff8416016117795760006118128363fffffffc16600161078b565b6020890151909150600384166004038381101561182d578093505b83900360089081029290921c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600193850293841b0116911b17602088015260006040880152935083611927565b8563ffffffff16610fd703611927578163ffffffff1660030361191b5763ffffffff831615806118b1575063ffffffff83166005145b806118c2575063ffffffff83166003145b156118d05760009450611927565b63ffffffff8316600114806118eb575063ffffffff83166002145b806118fc575063ffffffff83166006145b8061190d575063ffffffff83166004145b156117795760019450611927565b63ffffffff9450601693505b6101608701805163ffffffff808816604090920191909152905185821660e09091015260808801805180831660608b0152600401909116905261151161066f565b6000611972611caf565b506080600063ffffffff8716601003611990575060c0810151611af9565b8663ffffffff166011036119af5763ffffffff861660c0830152611af9565b8663ffffffff166012036119c8575060a0810151611af9565b8663ffffffff166013036119e75763ffffffff861660a0830152611af9565b8663ffffffff16601803611a1b5763ffffffff600387810b9087900b02602081901c821660c08501521660a0830152611af9565b8663ffffffff16601903611a4c5763ffffffff86811681871602602081901c821660c08501521660a0830152611af9565b8663ffffffff16601a03611aa2578460030b8660030b81611a6f57611a6f611ebc565b0763ffffffff1660c0830152600385810b9087900b81611a9157611a91611ebc565b0563ffffffff1660a0830152611af9565b8663ffffffff16601b03611af9578463ffffffff168663ffffffff1681611acb57611acb611ebc565b0663ffffffff90811660c084015285811690871681611aec57611aec611ebc565b0463ffffffff1660a08301525b63ffffffff841615611b3457808261016001518563ffffffff1660208110611b2357611b23611e69565b63ffffffff90921660209290920201525b60808201805163ffffffff80821660608601526004909101169052611b5761066f565b979650505050505050565b6000611b6d83611c06565b90506003841615611b7d57600080fd5b6020810190601f8516601c0360031b83811b913563ffffffff90911b1916178460051c60005b601b811015611bfb5760208401933582821c6001168015611bcb5760018114611be057611bf1565b60008581526020839052604090209450611bf1565b600082815260208690526040902094505b5050600101611ba3565b505060805250505050565b60ff8116610380026101a4810190369061052401811015611ca9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f636865636b207468617420746865726520697320656e6f7567682063616c6c6460448201527f617461000000000000000000000000000000000000000000000000000000000060648201526084016108d1565b50919050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091526101608101611d15611d1a565b905290565b6040518061040001604052806020906020820280368337509192915050565b600060208083528351808285015260005b81811015611d6657858101830151858201604001528201611d4a565b81811115611d78576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60008083601f840112611dbe57600080fd5b50813567ffffffffffffffff811115611dd657600080fd5b602083019150836020828501011115611dee57600080fd5b9250929050565b600080600080600060608688031215611e0d57600080fd5b853567ffffffffffffffff80821115611e2557600080fd5b611e3189838a01611dac565b90975095506020880135915080821115611e4a57600080fd5b50611e5788828901611dac565b96999598509660400135949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008060408385031215611eab
57600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea164736f6c634300080f000a"
func
init
()
{
...
...
op-bindings/bindings/preimageoracle.go
View file @
20407c5a
...
...
@@ -42,8 +42,8 @@ type PreimageOracleLeaf struct {
// PreimageOracleMetaData contains all meta data concerning the PreimageOracle contract.
var
PreimageOracleMetaData
=
&
bind
.
MetaData
{
ABI
:
"[{
\"
type
\"
:
\"
constructor
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_minProposalSize
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_challengePeriod
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_cancunActivation
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
KECCAK_TREE_DEPTH
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
MAX_LEAF_COUNT
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
MIN_BOND_SIZE
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
addLeavesLPP
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_uuid
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_inputStartBlock
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_input
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
_stateCommitments
\"
,
\"
type
\"
:
\"
bytes32[]
\"
,
\"
internalType
\"
:
\"
bytes32[]
\"
},{
\"
name
\"
:
\"
_finalize
\"
,
\"
type
\"
:
\"
bool
\"
,
\"
internalType
\"
:
\"
bool
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
challengeFirstLPP
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_claimant
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
_uuid
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_postState
\"
,
\"
type
\"
:
\"
tuple
\"
,
\"
internalType
\"
:
\"
structPreimageOracle.Leaf
\"
,
\"
components
\"
:[{
\"
name
\"
:
\"
input
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
index
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
stateCommitment
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}]},{
\"
name
\"
:
\"
_postStateProof
\"
,
\"
type
\"
:
\"
bytes32[]
\"
,
\"
internalType
\"
:
\"
bytes32[]
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
challengeLPP
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_claimant
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
_uuid
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_stateMatrix
\"
,
\"
type
\"
:
\"
tuple
\"
,
\"
internalType
\"
:
\"
structLibKeccak.StateMatrix
\"
,
\"
components
\"
:[{
\"
name
\"
:
\"
state
\"
,
\"
type
\"
:
\"
uint64[25]
\"
,
\"
internalType
\"
:
\"
uint64[25]
\"
}]},{
\"
name
\"
:
\"
_preState
\"
,
\"
type
\"
:
\"
tuple
\"
,
\"
internalType
\"
:
\"
structPreimageOracle.Leaf
\"
,
\"
components
\"
:[{
\"
name
\"
:
\"
input
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
index
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
stateCommitment
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}]},{
\"
name
\"
:
\"
_preStateProof
\"
,
\"
type
\"
:
\"
bytes32[]
\"
,
\"
internalType
\"
:
\"
bytes32[]
\"
},{
\"
name
\"
:
\"
_postState
\"
,
\"
type
\"
:
\"
tuple
\"
,
\"
internalType
\"
:
\"
structPreimageOracle.Leaf
\"
,
\"
components
\"
:[{
\"
name
\"
:
\"
input
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
index
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
stateCommitment
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}]},{
\"
name
\"
:
\"
_postStateProof
\"
,
\"
type
\"
:
\"
bytes32[]
\"
,
\"
internalType
\"
:
\"
bytes32[]
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
challengePeriod
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
challengePeriod_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
getTreeRootLPP
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_owner
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
_uuid
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
treeRoot_
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
initLPP
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_uuid
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_partOffset
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
uint32
\"
},{
\"
name
\"
:
\"
_claimedSize
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
uint32
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
loadBlobPreimagePart
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_z
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_y
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_commitment
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
_proof
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
_partOffset
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
loadKeccak256PreimagePart
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_partOffset
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_preimage
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
loadLocalData
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_ident
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_localContext
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
},{
\"
name
\"
:
\"
_word
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
},{
\"
name
\"
:
\"
_size
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_partOffset
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
key_
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
loadPrecompilePreimagePart
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_partOffset
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_precompile
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
_input
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
loadSha256PreimagePart
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_partOffset
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_preimage
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
minProposalSize
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
minProposalSize_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
preimageLengths
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
preimagePartOk
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bool
\"
,
\"
internalType
\"
:
\"
bool
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
preimageParts
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
proposalBlocks
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint64
\"
,
\"
internalType
\"
:
\"
uint64
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
proposalBlocksLen
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_claimant
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
_uuid
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
len_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
proposalBonds
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
proposalBranches
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
proposalCount
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
count_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
proposalMetadata
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
LPPMetaData
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
proposalParts
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
proposals
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
claimant
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
uuid
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
readPreimage
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_key
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
},{
\"
name
\"
:
\"
_offset
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
dat_
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
},{
\"
name
\"
:
\"
datLen_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
squeezeLPP
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_claimant
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
_uuid
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_stateMatrix
\"
,
\"
type
\"
:
\"
tuple
\"
,
\"
internalType
\"
:
\"
structLibKeccak.StateMatrix
\"
,
\"
components
\"
:[{
\"
name
\"
:
\"
state
\"
,
\"
type
\"
:
\"
uint64[25]
\"
,
\"
internalType
\"
:
\"
uint64[25]
\"
}]},{
\"
name
\"
:
\"
_preState
\"
,
\"
type
\"
:
\"
tuple
\"
,
\"
internalType
\"
:
\"
structPreimageOracle.Leaf
\"
,
\"
components
\"
:[{
\"
name
\"
:
\"
input
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
index
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
stateCommitment
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}]},{
\"
name
\"
:
\"
_preStateProof
\"
,
\"
type
\"
:
\"
bytes32[]
\"
,
\"
internalType
\"
:
\"
bytes32[]
\"
},{
\"
name
\"
:
\"
_postState
\"
,
\"
type
\"
:
\"
tuple
\"
,
\"
internalType
\"
:
\"
structPreimageOracle.Leaf
\"
,
\"
components
\"
:[{
\"
name
\"
:
\"
input
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
index
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
stateCommitment
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}]},{
\"
name
\"
:
\"
_postStateProof
\"
,
\"
type
\"
:
\"
bytes32[]
\"
,
\"
internalType
\"
:
\"
bytes32[]
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
zeroHashes
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
ActiveProposal
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
AlreadyFinalized
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
BadProposal
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
BondTransferFailed
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
CancunNotActive
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InsufficientBond
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InvalidInputSize
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InvalidPreimage
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InvalidProof
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
NotEOA
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
NotInitialized
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
PartOffsetOOB
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
PostStateMatches
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
StatesNotContiguous
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
TreeSizeOverflow
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
WrongStartingBlock
\"
,
\"
inputs
\"
:[]}]"
,
Bin
:
"0x60e06040523480156200001157600080fd5b5060405162003
9fc380380620039fc8339810160408190526200003491620000f9565b60c083905260a0829052608081905260005b62000054600160106200013e565b811015620000ef576003816010811062000072576200007262000158565b0154600382601081106200008a576200008a62000158565b0154604080516020810193909352820152606001604051602081830303815290604052805190602001206003826001620000c591906200016e565b60108110620000d857620000d862000158565b015580620000e68162000189565b91505062000046565b50505050620001a5565b6000806000606084860312156200010f57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b60008282101562000153576200015362000128565b500390565b634e487b7160e01b600052603260045260246000fd5b6000821982111562000184576200018462000128565b500190565b6000600182016200019e576200019e62000128565b5060010190565b60805160a05160c051613812620001ea6000396000818161054d0152611d9101526000818161062d01526115f9015260008181610810015261134301526138126000f3fe6080604052600436106101c25760003560e01c80638dc4be11116100f7578063dd24f9bf11610095578063ec5efcbc11610064578063ec5efcbc146105fe578063f3f480d91461061e578063faf37bc714610651578063fef2b4ed1461066457600080fd5b8063dd24f9bf1461053e578063ddcd58de14610571578063e03110e1146105a9578063e1592611146105de57600080fd5b8063b2e67ba8116100d1578063b2e67ba8146104b1578063b4801e61146104e9578063d18534b514610509578063da35c6641461052957600080fd5b80638dc4be11146104225780639d53a648146104425780639d7e87691461049157600080fd5b806361238bde116101645780637917de1d1161013e5780637917de1d1461035e5780637ac547671461037e5780638542cf501461039e578063882856ef146103e957600080fd5b806361238bde146102d25780636551927b1461030a5780637051472e1461034257600080fd5b80632055b36b116101a05780632055b36b146102685780633909af5c1461027d5780634d52b4c91461029d57806352f0f3ad146102b257600080fd5b8063013cf08b146101c75780630359a5631461021857806304697c7814610246575b600080fd5b3480156101d357600080fd5b506101e76101e2366004612d6f565b610691565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152015b60405180910390f35b34801561022457600080fd5b50610238610233366004612db1565b6106d6565b60405190815260200161020f565b34801561025257600080fd5b50610266610261366004612e24565b61080e565b005b34801561027457600080fd5b50610238601081565b34801561028957600080fd5b50610266610298366004613048565b61099e565b3480156102a957600080fd5b50610238610bf5565b3480156102be57600080fd5b506102386102cd366004613134565b610c10565b3480156102de57600080fd5b506102386102ed36600461316f565b600160209081526000928352604080842090915290825290205481565b34801561031657600080fd5b50610238610325366004612db1565b601560209081526000928352604080842090915290825290205481565b34801561034e57600080fd5b506102386703782dace9d9000081565b34801561036a57600080fd5b50610266610379366004613191565b610ce5565b34801561038a57600080fd5b50610238610399366004612d6f565b6111d5565b3480156103aa57600080fd5b506103d96103b936600461316f565b600260209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161020f565b3480156103f557600080fd5b5061040961040436600461322d565b6111ec565b60405167ffffffffffffffff909116815260200161020f565b34801561042e57600080fd5b5061026661043d366004613260565b611246565b34801561044e57600080fd5b5061023861045d366004612db1565b73ffffffffffffffffffffffffffffffffffffffff9091166000908152601860209081526040808320938352929052205490565b34801561049d57600080fd5b506102666104ac3660046132ac565b611341565b3480156104bd57600080fd5b506102386104cc366004612db1565b601760209081526000928352604080842090915290825290205481565b3480156104f557600080fd5b5061023861050436600461322d565b611552565b34801561051557600080fd5b50610266610524366004613048565b611584565b34801561053557600080fd5b50601354610238565b34801561054a57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610238565b34801561057d57600080fd5b5061023861058c366004612db1565b601660209081526000928352604080842090915290825290205481565b3480156105b557600080fd5b506105c96105c436600461316f565b611946565b6040805192835260208301919091520161020f565b3480156105ea57600080fd5b506102666105f9366004613260565b611a37565b34801561060a57600080fd5b50610266610619366004613338565b611b3f565b34801561062a57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610238565b61026661065f3660046133d1565b611cc5565b34801561067057600080fd5b5061023861067f366004612d6f565b60006020819052908152604090205481565b601381815481106106a157600080fd5b60009182526020909120600290910201805460019091015473ffffffffffffffffffffffffffffffffffffffff909116915082565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260156020908152604080832084845290915281205481906107199060601c63ffffffff1690565b63ffffffff16905060005b601081101561080657816001166001036107ac5773ffffffffffffffffffffffffffffffffffffffff85166000908152601460209081526040808320878452909152902081601081106107795761077961340d565b015460408051602081019290925281018490526060016040516020818303038152906040528051906020012092506107ed565b82600382601081106107c0576107c061340d565b01546040805160208101939093528201526060016040516020818303038152906040528051906020012092505b60019190911c90806107fe8161346b565b915050610724565b505092915050565b7f0000000000000000000000000000000000000000000000000000000000000000421015610868576040517f299f254900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600080608060146030823785878260140137601480870182207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f06000000000000000000000000000000000000000000000000000000000000001794506000908190889084018b5afa94503d60010191506008820189106108f55763fe2549876000526004601cfd5b60c082901b81526008018481533d6000600183013e88017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8015160008481526002602090815260408083208c8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915587845282528083209b83529a81528a82209290925593845283905296909120959095555050505050565b60006109aa8a8a6106d6565b90506109cd86868360208b01356109c86109c38d6134a3565b611f30565b611f70565b80156109eb57506109eb83838360208801356109c86109c38a6134a3565b610a21576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b866040013588604051602001610a379190613572565b6040516020818303038152906040528051906020012014610a84576040517f1968a90200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836020013587602001356001610a9a91906135b0565b14610ad1576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b1988610adf86806135c8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611fd192505050565b610b228861212c565b836040013588604051602001610b389190613572565b6040516020818303038152906040528051906020012003610b85576040517f9843145b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8a1660009081526015602090815260408083208c8452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001179055610be98a8a336128d4565b50505050505050505050565b6001610c036010600261374f565b610c0d919061375b565b81565b6000610c1c868661298d565b9050610c298360086135b0565b821180610c365750602083115b15610c6d576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602081815260c085901b82526008959095528251828252600286526040808320858452875280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558484528752808320948352938652838220558181529384905292205592915050565b60608115610cfe57610cf78686612a3a565b9050610d38565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b3360009081526014602090815260408083208b845290915280822081516102008101928390529160109082845b815481526020019060010190808311610d6557505050505090506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b81526020019081526020016000205490506000610de68260601c63ffffffff1690565b63ffffffff169050333214610e27576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e378260801c63ffffffff1690565b63ffffffff16600003610e76576040517f87138d5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e808260c01c90565b67ffffffffffffffff1615610ec1576040517f475a253500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b898114610efa576040517f60f95d5a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f0789898d8886612ab3565b83516020850160888204881415608883061715610f2c576307b1daf16000526004601cfd5b60405160c8810160405260005b83811015610fdc578083018051835260208101516020840152604081015160408401526060810151606084015260808101516080840152508460888301526088810460051b8b013560a883015260c882206001860195508560005b610200811015610fd1576001821615610fb15782818b0152610fd1565b8981015160009081526020938452604090209260019290921c9101610f94565b505050608801610f39565b50505050600160106002610ff0919061374f565b610ffa919061375b565b811115611033576040517f6229572300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110a86110468360401c63ffffffff1690565b6110569063ffffffff168a6135b0565b60401b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff606084901b167fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff8516171790565b915084156111355777ffffffffffffffffffffffffffffffffffffffffffffffff82164260c01b1791506110e28260801c63ffffffff1690565b63ffffffff166110f88360401c63ffffffff1690565b63ffffffff1614611135576040517f7b1dafd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526014602090815260408083208e8452909152902061115b90846010612ce5565b50503360008181526018602090815260408083208e8452825280832080546001810182559084528284206004820401805460039092166008026101000a67ffffffffffffffff818102199093164390931602919091179055928252601581528282209c82529b909b52909920989098555050505050505050565b600381601081106111e557600080fd5b0154905081565b6018602052826000526040600020602052816000526040600020818154811061121457600080fd5b906000526020600020906004918282040191900660080292509250509054906101000a900467ffffffffffffffff1681565b6044356000806008830186106112645763fe2549876000526004601cfd5b60c083901b60805260888386823786600882030151915060206000858360025afa90508061129157600080fd5b50600080517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0400000000000000000000000000000000000000000000000000000000000000178082526002602090815260408084208a8552825280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558385528252808420998452988152888320939093558152908190529490942055505050565b7f000000000000000000000000000000000000000000000000000000000000000042101561139b576040517f299f254900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080603087600037602060006030600060025afa806113c35763f91129696000526004601cfd5b6000517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f010000000000000000000000000000000000000000000000000000000000000017608081815260a08c905260c08b905260308a60e037603088609083013760008060c083600a5afa925082611445576309bde3396000526004601cfd5b6028861061145b5763fe2549876000526004601cfd5b6000602882015278200000000000000000000000000000000000000000000000008152600881018b905285810151935060308a8237603081019b909b52505060509098207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0500000000000000000000000000000000000000000000000000000000000000176000818152600260209081526040808320868452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209583529481528482209a909a559081528089529190912096909655505050505050565b6014602052826000526040600020602052816000526040600020816010811061157a57600080fd5b0154925083915050565b73ffffffffffffffffffffffffffffffffffffffff891660009081526015602090815260408083208b845290915290205467ffffffffffffffff8116156115f7576040517fc334f06900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006116228260c01c90565b6116369067ffffffffffffffff164261375b565b1161166d576040517f55d4cbf900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006116798b8b6106d6565b905061169287878360208c01356109c86109c38e6134a3565b80156116b057506116b084848360208901356109c86109c38b6134a3565b6116e6576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8760400135896040516020016116fc9190613572565b6040516020818303038152906040528051906020012014611749576040517f1968a90200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84602001358860200135600161175f91906135b0565b141580611791575060016117798360601c63ffffffff1690565b6117839190613772565b63ffffffff16856020013514155b156117c8576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117d689610adf87806135c8565b6117df8961212c565b60006117ea8a612c06565b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f020000000000000000000000000000000000000000000000000000000000000017905060006118418460a01c63ffffffff1690565b67ffffffffffffffff169050600160026000848152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff021916908315150217905550601760008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d815260200190815260200160002054600160008481526020019081526020016000206000838152602001908152602001600020819055506119138460801c63ffffffff1690565b600083815260208190526040902063ffffffff9190911690556119378d8d816128d4565b50505050505050505050505050565b6000828152600260209081526040808320848452909152812054819060ff166119cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f7072652d696d616765206d757374206578697374000000000000000000000000604482015260640160405180910390fd5b50600083815260208181526040909120546119eb8160086135b0565b6119f68560206135b0565b10611a145783611a078260086135b0565b611a11919061375b565b91505b506000938452600160209081526040808620948652939052919092205492909150565b604435600080600883018610611a555763fe2549876000526004601cfd5b60c083901b6080526088838682378087017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80151908490207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f02000000000000000000000000000000000000000000000000000000000000001760008181526002602090815260408083208b8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209a83529981528982209390935590815290819052959095209190915550505050565b6000611b4b86866106d6565b9050611b6483838360208801356109c86109c38a6134a3565b611b9a576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602084013515611bd6576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611bde612d23565b611bec81610adf87806135c8565b611bf58161212c565b846040013581604051602001611c0b9190613572565b6040516020818303038152906040528051906020012003611c58576040517f9843145b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152601560209081526040808320898452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001179055611cbc8787336128d4565b50505050505050565b6703782dace9d90000341015611d07576040517fe92c469f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b333214611d40576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611d4b816008613797565b63ffffffff168263ffffffff1610611d8f576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008163ffffffff161015611def576040517f7b1dafd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000818152601560209081526040808320878452825280832080547fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1660a09790971b7fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff169690961760809590951b949094179094558251808401845282815280850186815260138054600181018255908452915160029092027f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0908101805473ffffffffffffffffffffffffffffffffffffffff9094167fffffffffffffffffffffffff000000000000000000000000000000000000000090941693909317909255517f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0919091015590815260168352818120938152929091529020349055565b6000816000015182602001518360400151604051602001611f53939291906137bf565b604051602081830303815290604052805190602001209050919050565b60008160005b6010811015611fc4578060051b880135600186831c1660018114611fa95760008481526020839052604090209350611fba565b600082815260208590526040902093505b5050600101611f76565b5090931495945050505050565b6088815114611fdf57600080fd5b6020810160208301612060565b8260031b8201518060001a8160011a60081b178160021a60101b8260031a60181b17178160041a60201b8260051a60281b178260061a60301b8360071a60381b171717905061205a81612045868560059190911b015190565b1867ffffffffffffffff16600586901b840152565b50505050565b61206c60008383611fec565b61207860018383611fec565b61208460028383611fec565b61209060038383611fec565b61209c60048383611fec565b6120a860058383611fec565b6120b460068383611fec565b6120c060078383611fec565b6120cc60088383611fec565b6120d860098383611fec565b6120e4600a8383611fec565b6120f0600b8383611fec565b6120fc600c8383611fec565b612108600d8383611fec565b612114600e8383611fec565b612120600f8383611fec565b61205a60108383611fec565b6040805178010000000000008082800000000000808a8000000080008000602082015279808b00000000800000018000000080008081800000000000800991810191909152788a00000000000000880000000080008009000000008000000a60608201527b8000808b800000000000008b8000000000008089800000000000800360808201527f80000000000080028000000000000080000000000000800a800000008000000a60a08201527f800000008000808180000000000080800000000080000001800000008000800860c082015260009060e001604051602081830303815290604052905060208201602082016127b4565b6102808101516101e082015161014083015160a0840151845118189118186102a082015161020083015161016084015160c0850151602086015118189118186102c083015161022084015161018085015160e0860151604087015118189118186102e08401516102408501516101a0860151610100870151606088015118189118186103008501516102608601516101c0870151610120880151608089015118189118188084603f1c6122df8660011b67ffffffffffffffff1690565b18188584603f1c6122fa8660011b67ffffffffffffffff1690565b18188584603f1c6123158660011b67ffffffffffffffff1690565b181895508483603f1c6123328560011b67ffffffffffffffff1690565b181894508387603f1c61234f8960011b67ffffffffffffffff1690565b60208b01518b51861867ffffffffffffffff168c5291189190911897508118600181901b603f9190911c18935060c08801518118601481901c602c9190911b1867ffffffffffffffff1660208901526101208801518718602c81901c60149190911b1867ffffffffffffffff1660c08901526102c08801518618600381901c603d9190911b1867ffffffffffffffff166101208901526101c08801518718601981901c60279190911b1867ffffffffffffffff166102c08901526102808801518218602e81901c60129190911b1867ffffffffffffffff166101c089015260408801518618600281901c603e9190911b1867ffffffffffffffff166102808901526101808801518618601581901c602b9190911b1867ffffffffffffffff1660408901526101a08801518518602781901c60199190911b1867ffffffffffffffff166101808901526102608801518718603881901c60089190911b1867ffffffffffffffff166101a08901526102e08801518518600881901c60389190911b1867ffffffffffffffff166102608901526101e08801518218601781901c60299190911b1867ffffffffffffffff166102e089015260808801518718602581901c601b9190911b1867ffffffffffffffff166101e08901526103008801518718603281901c600e9190911b1867ffffffffffffffff1660808901526102a08801518118603e81901c60029190911b1867ffffffffffffffff166103008901526101008801518518600981901c60379190911b1867ffffffffffffffff166102a08901526102008801518118601381901c602d9190911b1867ffffffffffffffff1661010089015260a08801518218601c81901c60249190911b1867ffffffffffffffff1661020089015260608801518518602481901c601c9190911b1867ffffffffffffffff1660a08901526102408801518518602b81901c60159190911b1867ffffffffffffffff1660608901526102208801518618603181901c600f9190911b1867ffffffffffffffff166102408901526101608801518118603681901c600a9190911b1867ffffffffffffffff166102208901525060e08701518518603a81901c60069190911b1867ffffffffffffffff166101608801526101408701518118603d81901c60039190911b1867ffffffffffffffff1660e0880152505067ffffffffffffffff81166101408601525b5050505050565b600582811b8201805160018501831b8401805160028701851b8601805160038901871b8801805160048b0190981b8901805167ffffffffffffffff861985168918811690995283198a16861889169096528819861683188816909352841986168818871690528419831684189095169052919391929190611cbc565b61274e6000826126c7565b6127596005826126c7565b612764600a826126c7565b61276f600f826126c7565b61277a6014826126c7565b50565b61278681612222565b61278f81612743565b600383901b820151815160c09190911c9061205a90821867ffffffffffffffff168352565b6127c06000828461277d565b6127cc6001828461277d565b6127d86002828461277d565b6127e46003828461277d565b6127f06004828461277d565b6127fc6005828461277d565b6128086006828461277d565b6128146007828461277d565b6128206008828461277d565b61282c6009828461277d565b612838600a828461277d565b612844600b828461277d565b612850600c828461277d565b61285c600d828461277d565b612868600e828461277d565b612874600f828461277d565b6128806010828461277d565b61288c6011828461277d565b6128986012828461277d565b6128a46013828461277d565b6128b06014828461277d565b6128bc6015828461277d565b6128c86016828461277d565b61205a6017828461277d565b73ffffffffffffffffffffffffffffffffffffffff83811660009081526016602090815260408083208684529091528082208054908390559051909284169083908381818185875af1925050503d806000811461294d576040519150601f19603f3d011682016040523d82523d6000602084013e612952565b606091505b50509050806126c0576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831617612a33818360408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b9392505050565b6060604051905081602082018181018286833760888306808015612a835760888290038501848101848103803687375060806001820353506001845160001a1784538652612a9a565b608836843760018353608060878401536088850186525b5050505050601f19603f82510116810160405292915050565b6000612ac58260a01c63ffffffff1690565b67ffffffffffffffff1690506000612ae38360801c63ffffffff1690565b63ffffffff1690506000612afd8460401c63ffffffff1690565b63ffffffff169050600883108015612b13575080155b15612b475760c082901b6000908152883560085283513382526017602090815260408084208a855290915290912055612bfc565b60088310158015612b65575080612b5f60088561375b565b93508310155b8015612b795750612b7687826135b0565b83105b15612bfc576000612b8a828561375b565b905087612b988260206135b0565b10158015612ba4575085155b15612bdb576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526017602090815260408083208a845290915290209089013590555b5050505050505050565b6000612c89565b66ff00ff00ff00ff8160081c1667ff00ff00ff00ff00612c378360081b67ffffffffffffffff1690565b1617905065ffff0000ffff8160101c1667ffff0000ffff0000612c648360101b67ffffffffffffffff1690565b1617905060008160201c612c828360201b67ffffffffffffffff1690565b1792915050565b60808201516020830190612ca190612c0d565b612c0d565b6040820151612caf90612c0d565b60401b17612cc7612c9c60018460059190911b015190565b825160809190911b90612cd990612c0d565b60c01b17179392505050565b8260108101928215612d13579160200282015b82811115612d13578251825591602001919060010190612cf8565b50612d1f929150612d3b565b5090565b6040518060200160405280612d36612d50565b905290565b5b80821115612d1f5760008155600101612d3c565b6040518061032001604052806019906020820280368337509192915050565b600060208284031215612d8157600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114612dac57600080fd5b919050565b60008060408385031215612dc457600080fd5b612dcd83612d88565b946020939093013593505050565b60008083601f840112612ded57600080fd5b50813567ffffffffffffffff811115612e0557600080fd5b602083019150836020828501011115612e1d57600080fd5b9250929050565b60008060008060608587031215612e3a57600080fd5b84359350612e4a60208601612d88565b9250604085013567ffffffffffffffff811115612e6657600080fd5b612e7287828801612ddb565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610320810167ffffffffffffffff81118282101715612ed157612ed1612e7e565b60405290565b6040516060810167ffffffffffffffff81118282101715612ed157612ed1612e7e565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612f4157612f41612e7e565b604052919050565b6000610320808385031215612f5d57600080fd5b604051602080820167ffffffffffffffff8382108183111715612f8257612f82612e7e565b8160405283955087601f880112612f9857600080fd5b612fa0612ead565b9487019491508188861115612fb457600080fd5b875b86811015612fdc5780358381168114612fcf5760008081fd5b8452928401928401612fb6565b50909352509295945050505050565b600060608284031215612ffd57600080fd5b50919050565b60008083601f84011261301557600080fd5b50813567ffffffffffffffff81111561302d57600080fd5b6020830191508360208260051b8501011115612e1d57600080fd5b60008060008060008060008060006103e08a8c03121561306757600080fd5b6130708a612d88565b985060208a013597506130868b60408c01612f49565b96506103608a013567ffffffffffffffff808211156130a457600080fd5b6130b08d838e01612feb565b97506103808c01359150808211156130c757600080fd5b6130d38d838e01613003565b90975095506103a08c01359150808211156130ed57600080fd5b6130f98d838e01612feb565b94506103c08c013591508082111561311057600080fd5b5061311d8c828d01613003565b915080935050809150509295985092959850929598565b600080600080600060a0868803121561314c57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000806040838503121561318257600080fd5b50508035926020909101359150565b600080600080600080600060a0888a0312156131ac57600080fd5b8735965060208801359550604088013567ffffffffffffffff808211156131d257600080fd5b6131de8b838c01612ddb565b909750955060608a01359150808211156131f757600080fd5b506132048a828b01613003565b9094509250506080880135801515811461321d57600080fd5b8091505092959891949750929550565b60008060006060848603121561324257600080fd5b61324b84612d88565b95602085013595506040909401359392505050565b60008060006040848603121561327557600080fd5b83359250602084013567ffffffffffffffff81111561329357600080fd5b61329f86828701612ddb565b9497909650939450505050565b600080600080600080600060a0888a0312156132c757600080fd5b8735965060208801359550604088013567ffffffffffffffff808211156132ed57600080fd5b6132f98b838c01612ddb565b909750955060608a013591508082111561331257600080fd5b5061331f8a828b01612ddb565b989b979a50959894979596608090950135949350505050565b60008060008060006080868803121561335057600080fd5b61335986612d88565b945060208601359350604086013567ffffffffffffffff8082111561337d57600080fd5b61338989838a01612feb565b9450606088013591508082111561339f57600080fd5b506133ac88828901613003565b969995985093965092949392505050565b803563ffffffff81168114612dac57600080fd5b6000806000606084860312156133e657600080fd5b833592506133f6602085016133bd565b9150613404604085016133bd565b90509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361349c5761349c61343c565b5060010190565b6000606082360312156134b557600080fd5b6134bd612ed7565b823567ffffffffffffffff808211156134d557600080fd5b9084019036601f8301126134e857600080fd5b81356020828211156134fc576134fc612e7e565b61352c817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601612efa565b9250818352368183860101111561354257600080fd5b81818501828501376000918301810191909152908352848101359083015250604092830135928101929092525090565b81516103208201908260005b60198110156135a757825167ffffffffffffffff1682526020928301929091019060010161357e565b50505092915050565b600082198211156135c3576135c361343c565b500190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126135fd57600080fd5b83018035915067ffffffffffffffff82111561361857600080fd5b602001915036819003821315612e1d57600080fd5b600181815b8085111561368657817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561366c5761366c61343c565b8085161561367957918102915b93841c9390800290613632565b509250929050565b60008261369d57506001613749565b816136aa57506000613749565b81600181146136c057600281146136ca576136e6565b6001915050613749565b60ff8411156136db576136db61343c565b50506001821b613749565b5060208310610133831016604e8410600b8410161715613709575081810a613749565b613713838361362d565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156137455761374561343c565b0290505b92915050565b6000612a33838361368e565b60008282101561376d5761376d61343c565b500390565b600063ffffffff8381169083168181101561378f5761378f61343c565b039392505050565b600063ffffffff8083168185168083038211156137b6576137b661343c565b01949350505050565b6000845160005b818110156137e057602081880181015185830152016137c6565b818111156137ef576000828501525b50
9190910192835250602082015260400191905056fea164736f6c634300080f000a"
,
ABI
:
"[{
\"
type
\"
:
\"
constructor
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_minProposalSize
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_challengePeriod
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_cancunActivation
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
KECCAK_TREE_DEPTH
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
MAX_LEAF_COUNT
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
MIN_BOND_SIZE
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
addLeavesLPP
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_uuid
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_inputStartBlock
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_input
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
_stateCommitments
\"
,
\"
type
\"
:
\"
bytes32[]
\"
,
\"
internalType
\"
:
\"
bytes32[]
\"
},{
\"
name
\"
:
\"
_finalize
\"
,
\"
type
\"
:
\"
bool
\"
,
\"
internalType
\"
:
\"
bool
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
challengeFirstLPP
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_claimant
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
_uuid
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_postState
\"
,
\"
type
\"
:
\"
tuple
\"
,
\"
internalType
\"
:
\"
structPreimageOracle.Leaf
\"
,
\"
components
\"
:[{
\"
name
\"
:
\"
input
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
index
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
stateCommitment
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}]},{
\"
name
\"
:
\"
_postStateProof
\"
,
\"
type
\"
:
\"
bytes32[]
\"
,
\"
internalType
\"
:
\"
bytes32[]
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
challengeLPP
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_claimant
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
_uuid
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_stateMatrix
\"
,
\"
type
\"
:
\"
tuple
\"
,
\"
internalType
\"
:
\"
structLibKeccak.StateMatrix
\"
,
\"
components
\"
:[{
\"
name
\"
:
\"
state
\"
,
\"
type
\"
:
\"
uint64[25]
\"
,
\"
internalType
\"
:
\"
uint64[25]
\"
}]},{
\"
name
\"
:
\"
_preState
\"
,
\"
type
\"
:
\"
tuple
\"
,
\"
internalType
\"
:
\"
structPreimageOracle.Leaf
\"
,
\"
components
\"
:[{
\"
name
\"
:
\"
input
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
index
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
stateCommitment
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}]},{
\"
name
\"
:
\"
_preStateProof
\"
,
\"
type
\"
:
\"
bytes32[]
\"
,
\"
internalType
\"
:
\"
bytes32[]
\"
},{
\"
name
\"
:
\"
_postState
\"
,
\"
type
\"
:
\"
tuple
\"
,
\"
internalType
\"
:
\"
structPreimageOracle.Leaf
\"
,
\"
components
\"
:[{
\"
name
\"
:
\"
input
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
index
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
stateCommitment
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}]},{
\"
name
\"
:
\"
_postStateProof
\"
,
\"
type
\"
:
\"
bytes32[]
\"
,
\"
internalType
\"
:
\"
bytes32[]
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
challengePeriod
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
challengePeriod_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
getTreeRootLPP
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_owner
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
_uuid
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
treeRoot_
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
initLPP
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_uuid
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_partOffset
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
uint32
\"
},{
\"
name
\"
:
\"
_claimedSize
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
uint32
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
loadBlobPreimagePart
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_z
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_y
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_commitment
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
_proof
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
_partOffset
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
loadKeccak256PreimagePart
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_partOffset
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_preimage
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
loadLocalData
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_ident
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_localContext
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
},{
\"
name
\"
:
\"
_word
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
},{
\"
name
\"
:
\"
_size
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_partOffset
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
key_
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
loadPrecompilePreimagePart
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_partOffset
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_precompile
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
_input
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
loadSha256PreimagePart
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_partOffset
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_preimage
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
minProposalSize
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
minProposalSize_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
preimageLengths
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
preimagePartOk
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bool
\"
,
\"
internalType
\"
:
\"
bool
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
preimageParts
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
proposalBlocks
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint64
\"
,
\"
internalType
\"
:
\"
uint64
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
proposalBlocksLen
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_claimant
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
_uuid
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
len_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
proposalBonds
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
proposalBranches
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
proposalCount
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
count_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
proposalMetadata
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
LPPMetaData
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
proposalParts
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
proposals
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
claimant
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
uuid
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
readPreimage
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_key
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
},{
\"
name
\"
:
\"
_offset
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
dat_
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
},{
\"
name
\"
:
\"
datLen_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
squeezeLPP
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_claimant
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
_uuid
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_stateMatrix
\"
,
\"
type
\"
:
\"
tuple
\"
,
\"
internalType
\"
:
\"
structLibKeccak.StateMatrix
\"
,
\"
components
\"
:[{
\"
name
\"
:
\"
state
\"
,
\"
type
\"
:
\"
uint64[25]
\"
,
\"
internalType
\"
:
\"
uint64[25]
\"
}]},{
\"
name
\"
:
\"
_preState
\"
,
\"
type
\"
:
\"
tuple
\"
,
\"
internalType
\"
:
\"
structPreimageOracle.Leaf
\"
,
\"
components
\"
:[{
\"
name
\"
:
\"
input
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
index
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
stateCommitment
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}]},{
\"
name
\"
:
\"
_preStateProof
\"
,
\"
type
\"
:
\"
bytes32[]
\"
,
\"
internalType
\"
:
\"
bytes32[]
\"
},{
\"
name
\"
:
\"
_postState
\"
,
\"
type
\"
:
\"
tuple
\"
,
\"
internalType
\"
:
\"
structPreimageOracle.Leaf
\"
,
\"
components
\"
:[{
\"
name
\"
:
\"
input
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
index
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
stateCommitment
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}]},{
\"
name
\"
:
\"
_postStateProof
\"
,
\"
type
\"
:
\"
bytes32[]
\"
,
\"
internalType
\"
:
\"
bytes32[]
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
version
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
string
\"
,
\"
internalType
\"
:
\"
string
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
zeroHashes
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
ActiveProposal
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
AlreadyFinalized
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
BadProposal
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
BondTransferFailed
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
CancunNotActive
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InsufficientBond
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InvalidInputSize
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InvalidPreimage
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InvalidProof
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
NotEOA
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
NotInitialized
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
PartOffsetOOB
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
PostStateMatches
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
StatesNotContiguous
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
TreeSizeOverflow
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
WrongStartingBlock
\"
,
\"
inputs
\"
:[]}]"
,
Bin
:
"0x60e06040523480156200001157600080fd5b5060405162003
abb38038062003abb8339810160408190526200003491620000f9565b60c083905260a0829052608081905260005b62000054600160106200013e565b811015620000ef576003816010811062000072576200007262000158565b0154600382601081106200008a576200008a62000158565b0154604080516020810193909352820152606001604051602081830303815290604052805190602001206003826001620000c591906200016e565b60108110620000d857620000d862000158565b015580620000e68162000189565b91505062000046565b50505050620001a5565b6000806000606084860312156200010f57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b60008282101562000153576200015362000128565b500390565b634e487b7160e01b600052603260045260246000fd5b6000821982111562000184576200018462000128565b500190565b6000600182016200019e576200019e62000128565b5060010190565b60805160a05160c0516138d1620001ea600039600081816105ae0152611df201526000818161068e015261165a01526000818161087101526113a401526138d16000f3fe6080604052600436106101cd5760003560e01c80638dc4be11116100f7578063dd24f9bf11610095578063ec5efcbc11610064578063ec5efcbc1461065f578063f3f480d91461067f578063faf37bc7146106b2578063fef2b4ed146106c557600080fd5b8063dd24f9bf1461059f578063ddcd58de146105d2578063e03110e11461060a578063e15926111461063f57600080fd5b8063b2e67ba8116100d1578063b2e67ba814610512578063b4801e611461054a578063d18534b51461056a578063da35c6641461058a57600080fd5b80638dc4be11146104835780639d53a648146104a35780639d7e8769146104f257600080fd5b806354fd4d501161016f5780637917de1d1161013e5780637917de1d146103bf5780637ac54767146103df5780638542cf50146103ff578063882856ef1461044a57600080fd5b806354fd4d50146102dd57806361238bde146103335780636551927b1461036b5780637051472e146103a357600080fd5b80632055b36b116101ab5780632055b36b146102735780633909af5c146102885780634d52b4c9146102a857806352f0f3ad146102bd57600080fd5b8063013cf08b146101d25780630359a5631461022357806304697c7814610251575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612dd0565b6106f2565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152015b60405180910390f35b34801561022f57600080fd5b5061024361023e366004612e12565b610737565b60405190815260200161021a565b34801561025d57600080fd5b5061027161026c366004612e85565b61086f565b005b34801561027f57600080fd5b50610243601081565b34801561029457600080fd5b506102716102a33660046130a9565b6109ff565b3480156102b457600080fd5b50610243610c56565b3480156102c957600080fd5b506102436102d8366004613195565b610c71565b3480156102e957600080fd5b506103266040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161021a91906131fc565b34801561033f57600080fd5b5061024361034e36600461324d565b600160209081526000928352604080842090915290825290205481565b34801561037757600080fd5b50610243610386366004612e12565b601560209081526000928352604080842090915290825290205481565b3480156103af57600080fd5b506102436703782dace9d9000081565b3480156103cb57600080fd5b506102716103da36600461326f565b610d46565b3480156103eb57600080fd5b506102436103fa366004612dd0565b611236565b34801561040b57600080fd5b5061043a61041a36600461324d565b600260209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161021a565b34801561045657600080fd5b5061046a61046536600461330b565b61124d565b60405167ffffffffffffffff909116815260200161021a565b34801561048f57600080fd5b5061027161049e36600461333e565b6112a7565b3480156104af57600080fd5b506102436104be366004612e12565b73ffffffffffffffffffffffffffffffffffffffff9091166000908152601860209081526040808320938352929052205490565b3480156104fe57600080fd5b5061027161050d36600461338a565b6113a2565b34801561051e57600080fd5b5061024361052d366004612e12565b601760209081526000928352604080842090915290825290205481565b34801561055657600080fd5b5061024361056536600461330b565b6115b3565b34801561057657600080fd5b506102716105853660046130a9565b6115e5565b34801561059657600080fd5b50601354610243565b3480156105ab57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610243565b3480156105de57600080fd5b506102436105ed366004612e12565b601660209081526000928352604080842090915290825290205481565b34801561061657600080fd5b5061062a61062536600461324d565b6119a7565b6040805192835260208301919091520161021a565b34801561064b57600080fd5b5061027161065a36600461333e565b611a98565b34801561066b57600080fd5b5061027161067a366004613416565b611ba0565b34801561068b57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610243565b6102716106c03660046134af565b611d26565b3480156106d157600080fd5b506102436106e0366004612dd0565b60006020819052908152604090205481565b6013818154811061070257600080fd5b60009182526020909120600290910201805460019091015473ffffffffffffffffffffffffffffffffffffffff909116915082565b73ffffffffffffffffffffffffffffffffffffffff82166000908152601560209081526040808320848452909152812054819061077a9060601c63ffffffff1690565b63ffffffff16905060005b6010811015610867578160011660010361080d5773ffffffffffffffffffffffffffffffffffffffff85166000908152601460209081526040808320878452909152902081601081106107da576107da6134eb565b0154604080516020810192909252810184905260600160405160208183030381529060405280519060200120925061084e565b8260038260108110610821576108216134eb565b01546040805160208101939093528201526060016040516020818303038152906040528051906020012092505b60019190911c908061085f81613549565b915050610785565b505092915050565b7f00000000000000000000000000000000000000000000000000000000000000004210156108c9576040517f299f254900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600080608060146030823785878260140137601480870182207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f06000000000000000000000000000000000000000000000000000000000000001794506000908190889084018b5afa94503d60010191506008820189106109565763fe2549876000526004601cfd5b60c082901b81526008018481533d6000600183013e88017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8015160008481526002602090815260408083208c8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915587845282528083209b83529a81528a82209290925593845283905296909120959095555050505050565b6000610a0b8a8a610737565b9050610a2e86868360208b0135610a29610a248d613581565b611f91565b611fd1565b8015610a4c5750610a4c8383836020880135610a29610a248a613581565b610a82576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b866040013588604051602001610a989190613650565b6040516020818303038152906040528051906020012014610ae5576040517f1968a90200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836020013587602001356001610afb919061368e565b14610b32576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7a88610b4086806136a6565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061203292505050565b610b838861218d565b836040013588604051602001610b999190613650565b6040516020818303038152906040528051906020012003610be6576040517f9843145b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8a1660009081526015602090815260408083208c8452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001179055610c4a8a8a33612935565b50505050505050505050565b6001610c646010600261382d565b610c6e9190613839565b81565b6000610c7d86866129ee565b9050610c8a83600861368e565b821180610c975750602083115b15610cce576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602081815260c085901b82526008959095528251828252600286526040808320858452875280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558484528752808320948352938652838220558181529384905292205592915050565b60608115610d5f57610d588686612a9b565b9050610d99565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b3360009081526014602090815260408083208b845290915280822081516102008101928390529160109082845b815481526020019060010190808311610dc657505050505090506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b81526020019081526020016000205490506000610e478260601c63ffffffff1690565b63ffffffff169050333214610e88576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e988260801c63ffffffff1690565b63ffffffff16600003610ed7576040517f87138d5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ee18260c01c90565b67ffffffffffffffff1615610f22576040517f475a253500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b898114610f5b576040517f60f95d5a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f6889898d8886612b14565b83516020850160888204881415608883061715610f8d576307b1daf16000526004601cfd5b60405160c8810160405260005b8381101561103d578083018051835260208101516020840152604081015160408401526060810151606084015260808101516080840152508460888301526088810460051b8b013560a883015260c882206001860195508560005b6102008110156110325760018216156110125782818b0152611032565b8981015160009081526020938452604090209260019290921c9101610ff5565b505050608801610f9a565b50505050600160106002611051919061382d565b61105b9190613839565b811115611094576040517f6229572300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111096110a78360401c63ffffffff1690565b6110b79063ffffffff168a61368e565b60401b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff606084901b167fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff8516171790565b915084156111965777ffffffffffffffffffffffffffffffffffffffffffffffff82164260c01b1791506111438260801c63ffffffff1690565b63ffffffff166111598360401c63ffffffff1690565b63ffffffff1614611196576040517f7b1dafd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526014602090815260408083208e845290915290206111bc90846010612d46565b50503360008181526018602090815260408083208e8452825280832080546001810182559084528284206004820401805460039092166008026101000a67ffffffffffffffff818102199093164390931602919091179055928252601581528282209c82529b909b52909920989098555050505050505050565b6003816010811061124657600080fd5b0154905081565b6018602052826000526040600020602052816000526040600020818154811061127557600080fd5b906000526020600020906004918282040191900660080292509250509054906101000a900467ffffffffffffffff1681565b6044356000806008830186106112c55763fe2549876000526004601cfd5b60c083901b60805260888386823786600882030151915060206000858360025afa9050806112f257600080fd5b50600080517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0400000000000000000000000000000000000000000000000000000000000000178082526002602090815260408084208a8552825280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558385528252808420998452988152888320939093558152908190529490942055505050565b7f00000000000000000000000000000000000000000000000000000000000000004210156113fc576040517f299f254900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080603087600037602060006030600060025afa806114245763f91129696000526004601cfd5b6000517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f010000000000000000000000000000000000000000000000000000000000000017608081815260a08c905260c08b905260308a60e037603088609083013760008060c083600a5afa9250826114a6576309bde3396000526004601cfd5b602886106114bc5763fe2549876000526004601cfd5b6000602882015278200000000000000000000000000000000000000000000000008152600881018b905285810151935060308a8237603081019b909b52505060509098207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0500000000000000000000000000000000000000000000000000000000000000176000818152600260209081526040808320868452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209583529481528482209a909a559081528089529190912096909655505050505050565b601460205282600052604060002060205281600052604060002081601081106115db57600080fd5b0154925083915050565b73ffffffffffffffffffffffffffffffffffffffff891660009081526015602090815260408083208b845290915290205467ffffffffffffffff811615611658576040517fc334f06900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006116838260c01c90565b6116979067ffffffffffffffff1642613839565b116116ce576040517f55d4cbf900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006116da8b8b610737565b90506116f387878360208c0135610a29610a248e613581565b801561171157506117118484836020890135610a29610a248b613581565b611747576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b87604001358960405160200161175d9190613650565b60405160208183030381529060405280519060200120146117aa576040517f1968a90200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8460200135886020013560016117c0919061368e565b1415806117f2575060016117da8360601c63ffffffff1690565b6117e49190613850565b63ffffffff16856020013514155b15611829576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61183789610b4087806136a6565b6118408961218d565b600061184b8a612c67565b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f020000000000000000000000000000000000000000000000000000000000000017905060006118a28460a01c63ffffffff1690565b67ffffffffffffffff169050600160026000848152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff021916908315150217905550601760008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d815260200190815260200160002054600160008481526020019081526020016000206000838152602001908152602001600020819055506119748460801c63ffffffff1690565b600083815260208190526040902063ffffffff9190911690556119988d8d81612935565b50505050505050505050505050565b6000828152600260209081526040808320848452909152812054819060ff16611a30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f7072652d696d616765206d757374206578697374000000000000000000000000604482015260640160405180910390fd5b5060008381526020818152604090912054611a4c81600861368e565b611a5785602061368e565b10611a755783611a6882600861368e565b611a729190613839565b91505b506000938452600160209081526040808620948652939052919092205492909150565b604435600080600883018610611ab65763fe2549876000526004601cfd5b60c083901b6080526088838682378087017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80151908490207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f02000000000000000000000000000000000000000000000000000000000000001760008181526002602090815260408083208b8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209a83529981528982209390935590815290819052959095209190915550505050565b6000611bac8686610737565b9050611bc58383836020880135610a29610a248a613581565b611bfb576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602084013515611c37576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c3f612d84565b611c4d81610b4087806136a6565b611c568161218d565b846040013581604051602001611c6c9190613650565b6040516020818303038152906040528051906020012003611cb9576040517f9843145b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152601560209081526040808320898452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001179055611d1d878733612935565b50505050505050565b6703782dace9d90000341015611d68576040517fe92c469f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b333214611da1576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611dac816008613875565b63ffffffff168263ffffffff1610611df0576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008163ffffffff161015611e50576040517f7b1dafd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000818152601560209081526040808320878452825280832080547fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1660a09790971b7fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff169690961760809590951b949094179094558251808401845282815280850186815260138054600181018255908452915160029092027f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0908101805473ffffffffffffffffffffffffffffffffffffffff9094167fffffffffffffffffffffffff000000000000000000000000000000000000000090941693909317909255517f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0919091015590815260168352818120938152929091529020349055565b6000816000015182602001518360400151604051602001611fb49392919061389d565b604051602081830303815290604052805190602001209050919050565b60008160005b6010811015612025578060051b880135600186831c166001811461200a576000848152602083905260409020935061201b565b600082815260208590526040902093505b5050600101611fd7565b5090931495945050505050565b608881511461204057600080fd5b60208101602083016120c1565b8260031b8201518060001a8160011a60081b178160021a60101b8260031a60181b17178160041a60201b8260051a60281b178260061a60301b8360071a60381b17171790506120bb816120a6868560059190911b015190565b1867ffffffffffffffff16600586901b840152565b50505050565b6120cd6000838361204d565b6120d96001838361204d565b6120e56002838361204d565b6120f16003838361204d565b6120fd6004838361204d565b6121096005838361204d565b6121156006838361204d565b6121216007838361204d565b61212d6008838361204d565b6121396009838361204d565b612145600a838361204d565b612151600b838361204d565b61215d600c838361204d565b612169600d838361204d565b612175600e838361204d565b612181600f838361204d565b6120bb6010838361204d565b6040805178010000000000008082800000000000808a8000000080008000602082015279808b00000000800000018000000080008081800000000000800991810191909152788a00000000000000880000000080008009000000008000000a60608201527b8000808b800000000000008b8000000000008089800000000000800360808201527f80000000000080028000000000000080000000000000800a800000008000000a60a08201527f800000008000808180000000000080800000000080000001800000008000800860c082015260009060e00160405160208183030381529060405290506020820160208201612815565b6102808101516101e082015161014083015160a0840151845118189118186102a082015161020083015161016084015160c0850151602086015118189118186102c083015161022084015161018085015160e0860151604087015118189118186102e08401516102408501516101a0860151610100870151606088015118189118186103008501516102608601516101c0870151610120880151608089015118189118188084603f1c6123408660011b67ffffffffffffffff1690565b18188584603f1c61235b8660011b67ffffffffffffffff1690565b18188584603f1c6123768660011b67ffffffffffffffff1690565b181895508483603f1c6123938560011b67ffffffffffffffff1690565b181894508387603f1c6123b08960011b67ffffffffffffffff1690565b60208b01518b51861867ffffffffffffffff168c5291189190911897508118600181901b603f9190911c18935060c08801518118601481901c602c9190911b1867ffffffffffffffff1660208901526101208801518718602c81901c60149190911b1867ffffffffffffffff1660c08901526102c08801518618600381901c603d9190911b1867ffffffffffffffff166101208901526101c08801518718601981901c60279190911b1867ffffffffffffffff166102c08901526102808801518218602e81901c60129190911b1867ffffffffffffffff166101c089015260408801518618600281901c603e9190911b1867ffffffffffffffff166102808901526101808801518618601581901c602b9190911b1867ffffffffffffffff1660408901526101a08801518518602781901c60199190911b1867ffffffffffffffff166101808901526102608801518718603881901c60089190911b1867ffffffffffffffff166101a08901526102e08801518518600881901c60389190911b1867ffffffffffffffff166102608901526101e08801518218601781901c60299190911b1867ffffffffffffffff166102e089015260808801518718602581901c601b9190911b1867ffffffffffffffff166101e08901526103008801518718603281901c600e9190911b1867ffffffffffffffff1660808901526102a08801518118603e81901c60029190911b1867ffffffffffffffff166103008901526101008801518518600981901c60379190911b1867ffffffffffffffff166102a08901526102008801518118601381901c602d9190911b1867ffffffffffffffff1661010089015260a08801518218601c81901c60249190911b1867ffffffffffffffff1661020089015260608801518518602481901c601c9190911b1867ffffffffffffffff1660a08901526102408801518518602b81901c60159190911b1867ffffffffffffffff1660608901526102208801518618603181901c600f9190911b1867ffffffffffffffff166102408901526101608801518118603681901c600a9190911b1867ffffffffffffffff166102208901525060e08701518518603a81901c60069190911b1867ffffffffffffffff166101608801526101408701518118603d81901c60039190911b1867ffffffffffffffff1660e0880152505067ffffffffffffffff81166101408601525b5050505050565b600582811b8201805160018501831b8401805160028701851b8601805160038901871b8801805160048b0190981b8901805167ffffffffffffffff861985168918811690995283198a16861889169096528819861683188816909352841986168818871690528419831684189095169052919391929190611d1d565b6127af600082612728565b6127ba600582612728565b6127c5600a82612728565b6127d0600f82612728565b6127db601482612728565b50565b6127e781612283565b6127f0816127a4565b600383901b820151815160c09190911c906120bb90821867ffffffffffffffff168352565b612821600082846127de565b61282d600182846127de565b612839600282846127de565b612845600382846127de565b612851600482846127de565b61285d600582846127de565b612869600682846127de565b612875600782846127de565b612881600882846127de565b61288d600982846127de565b612899600a82846127de565b6128a5600b82846127de565b6128b1600c82846127de565b6128bd600d82846127de565b6128c9600e82846127de565b6128d5600f82846127de565b6128e1601082846127de565b6128ed601182846127de565b6128f9601282846127de565b612905601382846127de565b612911601482846127de565b61291d601582846127de565b612929601682846127de565b6120bb601782846127de565b73ffffffffffffffffffffffffffffffffffffffff83811660009081526016602090815260408083208684529091528082208054908390559051909284169083908381818185875af1925050503d80600081146129ae576040519150601f19603f3d011682016040523d82523d6000602084013e6129b3565b606091505b5050905080612721576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831617612a94818360408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b9392505050565b6060604051905081602082018181018286833760888306808015612ae45760888290038501848101848103803687375060806001820353506001845160001a1784538652612afb565b608836843760018353608060878401536088850186525b5050505050601f19603f82510116810160405292915050565b6000612b268260a01c63ffffffff1690565b67ffffffffffffffff1690506000612b448360801c63ffffffff1690565b63ffffffff1690506000612b5e8460401c63ffffffff1690565b63ffffffff169050600883108015612b74575080155b15612ba85760c082901b6000908152883560085283513382526017602090815260408084208a855290915290912055612c5d565b60088310158015612bc6575080612bc0600885613839565b93508310155b8015612bda5750612bd7878261368e565b83105b15612c5d576000612beb8285613839565b905087612bf982602061368e565b10158015612c05575085155b15612c3c576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526017602090815260408083208a845290915290209089013590555b5050505050505050565b6000612cea565b66ff00ff00ff00ff8160081c1667ff00ff00ff00ff00612c988360081b67ffffffffffffffff1690565b1617905065ffff0000ffff8160101c1667ffff0000ffff0000612cc58360101b67ffffffffffffffff1690565b1617905060008160201c612ce38360201b67ffffffffffffffff1690565b1792915050565b60808201516020830190612d0290612c6e565b612c6e565b6040820151612d1090612c6e565b60401b17612d28612cfd60018460059190911b015190565b825160809190911b90612d3a90612c6e565b60c01b17179392505050565b8260108101928215612d74579160200282015b82811115612d74578251825591602001919060010190612d59565b50612d80929150612d9c565b5090565b6040518060200160405280612d97612db1565b905290565b5b80821115612d805760008155600101612d9d565b6040518061032001604052806019906020820280368337509192915050565b600060208284031215612de257600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114612e0d57600080fd5b919050565b60008060408385031215612e2557600080fd5b612e2e83612de9565b946020939093013593505050565b60008083601f840112612e4e57600080fd5b50813567ffffffffffffffff811115612e6657600080fd5b602083019150836020828501011115612e7e57600080fd5b9250929050565b60008060008060608587031215612e9b57600080fd5b84359350612eab60208601612de9565b9250604085013567ffffffffffffffff811115612ec757600080fd5b612ed387828801612e3c565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610320810167ffffffffffffffff81118282101715612f3257612f32612edf565b60405290565b6040516060810167ffffffffffffffff81118282101715612f3257612f32612edf565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612fa257612fa2612edf565b604052919050565b6000610320808385031215612fbe57600080fd5b604051602080820167ffffffffffffffff8382108183111715612fe357612fe3612edf565b8160405283955087601f880112612ff957600080fd5b613001612f0e565b948701949150818886111561301557600080fd5b875b8681101561303d57803583811681146130305760008081fd5b8452928401928401613017565b50909352509295945050505050565b60006060828403121561305e57600080fd5b50919050565b60008083601f84011261307657600080fd5b50813567ffffffffffffffff81111561308e57600080fd5b6020830191508360208260051b8501011115612e7e57600080fd5b60008060008060008060008060006103e08a8c0312156130c857600080fd5b6130d18a612de9565b985060208a013597506130e78b60408c01612faa565b96506103608a013567ffffffffffffffff8082111561310557600080fd5b6131118d838e0161304c565b97506103808c013591508082111561312857600080fd5b6131348d838e01613064565b90975095506103a08c013591508082111561314e57600080fd5b61315a8d838e0161304c565b94506103c08c013591508082111561317157600080fd5b5061317e8c828d01613064565b915080935050809150509295985092959850929598565b600080600080600060a086880312156131ad57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60005b838110156131eb5781810151838201526020016131d3565b838111156120bb5750506000910152565b602081526000825180602084015261321b8160408501602087016131d0565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000806040838503121561326057600080fd5b50508035926020909101359150565b600080600080600080600060a0888a03121561328a57600080fd5b8735965060208801359550604088013567ffffffffffffffff808211156132b057600080fd5b6132bc8b838c01612e3c565b909750955060608a01359150808211156132d557600080fd5b506132e28a828b01613064565b909450925050608088013580151581146132fb57600080fd5b8091505092959891949750929550565b60008060006060848603121561332057600080fd5b61332984612de9565b95602085013595506040909401359392505050565b60008060006040848603121561335357600080fd5b83359250602084013567ffffffffffffffff81111561337157600080fd5b61337d86828701612e3c565b9497909650939450505050565b600080600080600080600060a0888a0312156133a557600080fd5b8735965060208801359550604088013567ffffffffffffffff808211156133cb57600080fd5b6133d78b838c01612e3c565b909750955060608a01359150808211156133f057600080fd5b506133fd8a828b01612e3c565b989b979a50959894979596608090950135949350505050565b60008060008060006080868803121561342e57600080fd5b61343786612de9565b945060208601359350604086013567ffffffffffffffff8082111561345b57600080fd5b61346789838a0161304c565b9450606088013591508082111561347d57600080fd5b5061348a88828901613064565b969995985093965092949392505050565b803563ffffffff81168114612e0d57600080fd5b6000806000606084860312156134c457600080fd5b833592506134d46020850161349b565b91506134e26040850161349b565b90509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361357a5761357a61351a565b5060010190565b60006060823603121561359357600080fd5b61359b612f38565b823567ffffffffffffffff808211156135b357600080fd5b9084019036601f8301126135c657600080fd5b81356020828211156135da576135da612edf565b61360a817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601612f5b565b9250818352368183860101111561362057600080fd5b81818501828501376000918301810191909152908352848101359083015250604092830135928101929092525090565b81516103208201908260005b601981101561368557825167ffffffffffffffff1682526020928301929091019060010161365c565b50505092915050565b600082198211156136a1576136a161351a565b500190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126136db57600080fd5b83018035915067ffffffffffffffff8211156136f657600080fd5b602001915036819003821315612e7e57600080fd5b600181815b8085111561376457817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561374a5761374a61351a565b8085161561375757918102915b93841c9390800290613710565b509250929050565b60008261377b57506001613827565b8161378857506000613827565b816001811461379e57600281146137a8576137c4565b6001915050613827565b60ff8411156137b9576137b961351a565b50506001821b613827565b5060208310610133831016604e8410600b84101617156137e7575081810a613827565b6137f1838361370b565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156138235761382361351a565b0290505b92915050565b6000612a94838361376c565b60008282101561384b5761384b61351a565b500390565b600063ffffffff8381169083168181101561386d5761386d61351a565b039392505050565b600063ffffffff8083168185168083038211156138945761389461351a565b01949350505050565b600084516138af8184602089016131d0565b
9190910192835250602082015260400191905056fea164736f6c634300080f000a"
,
}
// PreimageOracleABI is the input ABI used to generate the binding from.
...
...
@@ -799,6 +799,37 @@ func (_PreimageOracle *PreimageOracleCallerSession) ReadPreimage(_key [32]byte,
return
_PreimageOracle
.
Contract
.
ReadPreimage
(
&
_PreimageOracle
.
CallOpts
,
_key
,
_offset
)
}
// Version is a free data retrieval call binding the contract method 0x54fd4d50.
//
// Solidity: function version() view returns(string)
func
(
_PreimageOracle
*
PreimageOracleCaller
)
Version
(
opts
*
bind
.
CallOpts
)
(
string
,
error
)
{
var
out
[]
interface
{}
err
:=
_PreimageOracle
.
contract
.
Call
(
opts
,
&
out
,
"version"
)
if
err
!=
nil
{
return
*
new
(
string
),
err
}
out0
:=
*
abi
.
ConvertType
(
out
[
0
],
new
(
string
))
.
(
*
string
)
return
out0
,
err
}
// Version is a free data retrieval call binding the contract method 0x54fd4d50.
//
// Solidity: function version() view returns(string)
func
(
_PreimageOracle
*
PreimageOracleSession
)
Version
()
(
string
,
error
)
{
return
_PreimageOracle
.
Contract
.
Version
(
&
_PreimageOracle
.
CallOpts
)
}
// Version is a free data retrieval call binding the contract method 0x54fd4d50.
//
// Solidity: function version() view returns(string)
func
(
_PreimageOracle
*
PreimageOracleCallerSession
)
Version
()
(
string
,
error
)
{
return
_PreimageOracle
.
Contract
.
Version
(
&
_PreimageOracle
.
CallOpts
)
}
// ZeroHashes is a free data retrieval call binding the contract method 0x7ac54767.
//
// Solidity: function zeroHashes(uint256 ) view returns(bytes32)
...
...
op-bindings/bindings/preimageoracle_more.go
View file @
20407c5a
...
...
@@ -13,7 +13,7 @@ const PreimageOracleStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contrac
var
PreimageOracleStorageLayout
=
new
(
solc
.
StorageLayout
)
var
PreimageOracleDeployedBin
=
"0x6080604052600436106101c
25760003560e01c80638dc4be11116100f7578063dd24f9bf11610095578063ec5efcbc11610064578063ec5efcbc146105fe578063f3f480d91461061e578063faf37bc714610651578063fef2b4ed1461066457600080fd5b8063dd24f9bf1461053e578063ddcd58de14610571578063e03110e1146105a9578063e1592611146105de57600080fd5b8063b2e67ba8116100d1578063b2e67ba8146104b1578063b4801e61146104e9578063d18534b514610509578063da35c6641461052957600080fd5b80638dc4be11146104225780639d53a648146104425780639d7e87691461049157600080fd5b806361238bde116101645780637917de1d1161013e5780637917de1d1461035e5780637ac547671461037e5780638542cf501461039e578063882856ef146103e957600080fd5b806361238bde146102d25780636551927b1461030a5780637051472e1461034257600080fd5b80632055b36b116101a05780632055b36b146102685780633909af5c1461027d5780634d52b4c91461029d57806352f0f3ad146102b257600080fd5b8063013cf08b146101c75780630359a5631461021857806304697c7814610246575b600080fd5b3480156101d357600080fd5b506101e76101e2366004612d6f565b610691565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152015b60405180910390f35b34801561022457600080fd5b50610238610233366004612db1565b6106d6565b60405190815260200161020f565b34801561025257600080fd5b50610266610261366004612e24565b61080e565b005b34801561027457600080fd5b50610238601081565b34801561028957600080fd5b50610266610298366004613048565b61099e565b3480156102a957600080fd5b50610238610bf5565b3480156102be57600080fd5b506102386102cd366004613134565b610c10565b3480156102de57600080fd5b506102386102ed36600461316f565b600160209081526000928352604080842090915290825290205481565b34801561031657600080fd5b50610238610325366004612db1565b601560209081526000928352604080842090915290825290205481565b34801561034e57600080fd5b506102386703782dace9d9000081565b34801561036a57600080fd5b50610266610379366004613191565b610ce5565b34801561038a57600080fd5b50610238610399366004612d6f565b6111d5565b3480156103aa57600080fd5b506103d96103b936600461316f565b600260209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161020f565b3480156103f557600080fd5b5061040961040436600461322d565b6111ec565b60405167ffffffffffffffff909116815260200161020f565b34801561042e57600080fd5b5061026661043d366004613260565b611246565b34801561044e57600080fd5b5061023861045d366004612db1565b73ffffffffffffffffffffffffffffffffffffffff9091166000908152601860209081526040808320938352929052205490565b34801561049d57600080fd5b506102666104ac3660046132ac565b611341565b3480156104bd57600080fd5b506102386104cc366004612db1565b601760209081526000928352604080842090915290825290205481565b3480156104f557600080fd5b5061023861050436600461322d565b611552565b34801561051557600080fd5b50610266610524366004613048565b611584565b34801561053557600080fd5b50601354610238565b34801561054a57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610238565b34801561057d57600080fd5b5061023861058c366004612db1565b601660209081526000928352604080842090915290825290205481565b3480156105b557600080fd5b506105c96105c436600461316f565b611946565b6040805192835260208301919091520161020f565b3480156105ea57600080fd5b506102666105f9366004613260565b611a37565b34801561060a57600080fd5b50610266610619366004613338565b611b3f565b34801561062a57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610238565b61026661065f3660046133d1565b611cc5565b34801561067057600080fd5b5061023861067f366004612d6f565b60006020819052908152604090205481565b601381815481106106a157600080fd5b60009182526020909120600290910201805460019091015473ffffffffffffffffffffffffffffffffffffffff909116915082565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260156020908152604080832084845290915281205481906107199060601c63ffffffff1690565b63ffffffff16905060005b601081101561080657816001166001036107ac5773ffffffffffffffffffffffffffffffffffffffff85166000908152601460209081526040808320878452909152902081601081106107795761077961340d565b015460408051602081019290925281018490526060016040516020818303038152906040528051906020012092506107ed565b82600382601081106107c0576107c061340d565b01546040805160208101939093528201526060016040516020818303038152906040528051906020012092505b60019190911c90806107fe8161346b565b915050610724565b505092915050565b7f0000000000000000000000000000000000000000000000000000000000000000421015610868576040517f299f254900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600080608060146030823785878260140137601480870182207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f06000000000000000000000000000000000000000000000000000000000000001794506000908190889084018b5afa94503d60010191506008820189106108f55763fe2549876000526004601cfd5b60c082901b81526008018481533d6000600183013e88017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8015160008481526002602090815260408083208c8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915587845282528083209b83529a81528a82209290925593845283905296909120959095555050505050565b60006109aa8a8a6106d6565b90506109cd86868360208b01356109c86109c38d6134a3565b611f30565b611f70565b80156109eb57506109eb83838360208801356109c86109c38a6134a3565b610a21576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b866040013588604051602001610a379190613572565b6040516020818303038152906040528051906020012014610a84576040517f1968a90200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836020013587602001356001610a9a91906135b0565b14610ad1576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b1988610adf86806135c8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611fd192505050565b610b228861212c565b836040013588604051602001610b389190613572565b6040516020818303038152906040528051906020012003610b85576040517f9843145b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8a1660009081526015602090815260408083208c8452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001179055610be98a8a336128d4565b50505050505050505050565b6001610c036010600261374f565b610c0d919061375b565b81565b6000610c1c868661298d565b9050610c298360086135b0565b821180610c365750602083115b15610c6d576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602081815260c085901b82526008959095528251828252600286526040808320858452875280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558484528752808320948352938652838220558181529384905292205592915050565b60608115610cfe57610cf78686612a3a565b9050610d38565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b3360009081526014602090815260408083208b845290915280822081516102008101928390529160109082845b815481526020019060010190808311610d6557505050505090506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b81526020019081526020016000205490506000610de68260601c63ffffffff1690565b63ffffffff169050333214610e27576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e378260801c63ffffffff1690565b63ffffffff16600003610e76576040517f87138d5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e808260c01c90565b67ffffffffffffffff1615610ec1576040517f475a253500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b898114610efa576040517f60f95d5a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f0789898d8886612ab3565b83516020850160888204881415608883061715610f2c576307b1daf16000526004601cfd5b60405160c8810160405260005b83811015610fdc578083018051835260208101516020840152604081015160408401526060810151606084015260808101516080840152508460888301526088810460051b8b013560a883015260c882206001860195508560005b610200811015610fd1576001821615610fb15782818b0152610fd1565b8981015160009081526020938452604090209260019290921c9101610f94565b505050608801610f39565b50505050600160106002610ff0919061374f565b610ffa919061375b565b811115611033576040517f6229572300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110a86110468360401c63ffffffff1690565b6110569063ffffffff168a6135b0565b60401b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff606084901b167fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff8516171790565b915084156111355777ffffffffffffffffffffffffffffffffffffffffffffffff82164260c01b1791506110e28260801c63ffffffff1690565b63ffffffff166110f88360401c63ffffffff1690565b63ffffffff1614611135576040517f7b1dafd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526014602090815260408083208e8452909152902061115b90846010612ce5565b50503360008181526018602090815260408083208e8452825280832080546001810182559084528284206004820401805460039092166008026101000a67ffffffffffffffff818102199093164390931602919091179055928252601581528282209c82529b909b52909920989098555050505050505050565b600381601081106111e557600080fd5b0154905081565b6018602052826000526040600020602052816000526040600020818154811061121457600080fd5b906000526020600020906004918282040191900660080292509250509054906101000a900467ffffffffffffffff1681565b6044356000806008830186106112645763fe2549876000526004601cfd5b60c083901b60805260888386823786600882030151915060206000858360025afa90508061129157600080fd5b50600080517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0400000000000000000000000000000000000000000000000000000000000000178082526002602090815260408084208a8552825280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558385528252808420998452988152888320939093558152908190529490942055505050565b7f000000000000000000000000000000000000000000000000000000000000000042101561139b576040517f299f254900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080603087600037602060006030600060025afa806113c35763f91129696000526004601cfd5b6000517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f010000000000000000000000000000000000000000000000000000000000000017608081815260a08c905260c08b905260308a60e037603088609083013760008060c083600a5afa925082611445576309bde3396000526004601cfd5b6028861061145b5763fe2549876000526004601cfd5b6000602882015278200000000000000000000000000000000000000000000000008152600881018b905285810151935060308a8237603081019b909b52505060509098207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0500000000000000000000000000000000000000000000000000000000000000176000818152600260209081526040808320868452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209583529481528482209a909a559081528089529190912096909655505050505050565b6014602052826000526040600020602052816000526040600020816010811061157a57600080fd5b0154925083915050565b73ffffffffffffffffffffffffffffffffffffffff891660009081526015602090815260408083208b845290915290205467ffffffffffffffff8116156115f7576040517fc334f06900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006116228260c01c90565b6116369067ffffffffffffffff164261375b565b1161166d576040517f55d4cbf900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006116798b8b6106d6565b905061169287878360208c01356109c86109c38e6134a3565b80156116b057506116b084848360208901356109c86109c38b6134a3565b6116e6576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8760400135896040516020016116fc9190613572565b6040516020818303038152906040528051906020012014611749576040517f1968a90200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84602001358860200135600161175f91906135b0565b141580611791575060016117798360601c63ffffffff1690565b6117839190613772565b63ffffffff16856020013514155b156117c8576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117d689610adf87806135c8565b6117df8961212c565b60006117ea8a612c06565b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f020000000000000000000000000000000000000000000000000000000000000017905060006118418460a01c63ffffffff1690565b67ffffffffffffffff169050600160026000848152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff021916908315150217905550601760008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d815260200190815260200160002054600160008481526020019081526020016000206000838152602001908152602001600020819055506119138460801c63ffffffff1690565b600083815260208190526040902063ffffffff9190911690556119378d8d816128d4565b50505050505050505050505050565b6000828152600260209081526040808320848452909152812054819060ff166119cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f7072652d696d616765206d757374206578697374000000000000000000000000604482015260640160405180910390fd5b50600083815260208181526040909120546119eb8160086135b0565b6119f68560206135b0565b10611a145783611a078260086135b0565b611a11919061375b565b91505b506000938452600160209081526040808620948652939052919092205492909150565b604435600080600883018610611a555763fe2549876000526004601cfd5b60c083901b6080526088838682378087017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80151908490207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f02000000000000000000000000000000000000000000000000000000000000001760008181526002602090815260408083208b8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209a83529981528982209390935590815290819052959095209190915550505050565b6000611b4b86866106d6565b9050611b6483838360208801356109c86109c38a6134a3565b611b9a576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602084013515611bd6576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611bde612d23565b611bec81610adf87806135c8565b611bf58161212c565b846040013581604051602001611c0b9190613572565b6040516020818303038152906040528051906020012003611c58576040517f9843145b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152601560209081526040808320898452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001179055611cbc8787336128d4565b50505050505050565b6703782dace9d90000341015611d07576040517fe92c469f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b333214611d40576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611d4b816008613797565b63ffffffff168263ffffffff1610611d8f576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008163ffffffff161015611def576040517f7b1dafd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000818152601560209081526040808320878452825280832080547fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1660a09790971b7fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff169690961760809590951b949094179094558251808401845282815280850186815260138054600181018255908452915160029092027f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0908101805473ffffffffffffffffffffffffffffffffffffffff9094167fffffffffffffffffffffffff000000000000000000000000000000000000000090941693909317909255517f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0919091015590815260168352818120938152929091529020349055565b6000816000015182602001518360400151604051602001611f53939291906137bf565b604051602081830303815290604052805190602001209050919050565b60008160005b6010811015611fc4578060051b880135600186831c1660018114611fa95760008481526020839052604090209350611fba565b600082815260208590526040902093505b5050600101611f76565b5090931495945050505050565b6088815114611fdf57600080fd5b6020810160208301612060565b8260031b8201518060001a8160011a60081b178160021a60101b8260031a60181b17178160041a60201b8260051a60281b178260061a60301b8360071a60381b171717905061205a81612045868560059190911b015190565b1867ffffffffffffffff16600586901b840152565b50505050565b61206c60008383611fec565b61207860018383611fec565b61208460028383611fec565b61209060038383611fec565b61209c60048383611fec565b6120a860058383611fec565b6120b460068383611fec565b6120c060078383611fec565b6120cc60088383611fec565b6120d860098383611fec565b6120e4600a8383611fec565b6120f0600b8383611fec565b6120fc600c8383611fec565b612108600d8383611fec565b612114600e8383611fec565b612120600f8383611fec565b61205a60108383611fec565b6040805178010000000000008082800000000000808a8000000080008000602082015279808b00000000800000018000000080008081800000000000800991810191909152788a00000000000000880000000080008009000000008000000a60608201527b8000808b800000000000008b8000000000008089800000000000800360808201527f80000000000080028000000000000080000000000000800a800000008000000a60a08201527f800000008000808180000000000080800000000080000001800000008000800860c082015260009060e001604051602081830303815290604052905060208201602082016127b4565b6102808101516101e082015161014083015160a0840151845118189118186102a082015161020083015161016084015160c0850151602086015118189118186102c083015161022084015161018085015160e0860151604087015118189118186102e08401516102408501516101a0860151610100870151606088015118189118186103008501516102608601516101c0870151610120880151608089015118189118188084603f1c6122df8660011b67ffffffffffffffff1690565b18188584603f1c6122fa8660011b67ffffffffffffffff1690565b18188584603f1c6123158660011b67ffffffffffffffff1690565b181895508483603f1c6123328560011b67ffffffffffffffff1690565b181894508387603f1c61234f8960011b67ffffffffffffffff1690565b60208b01518b51861867ffffffffffffffff168c5291189190911897508118600181901b603f9190911c18935060c08801518118601481901c602c9190911b1867ffffffffffffffff1660208901526101208801518718602c81901c60149190911b1867ffffffffffffffff1660c08901526102c08801518618600381901c603d9190911b1867ffffffffffffffff166101208901526101c08801518718601981901c60279190911b1867ffffffffffffffff166102c08901526102808801518218602e81901c60129190911b1867ffffffffffffffff166101c089015260408801518618600281901c603e9190911b1867ffffffffffffffff166102808901526101808801518618601581901c602b9190911b1867ffffffffffffffff1660408901526101a08801518518602781901c60199190911b1867ffffffffffffffff166101808901526102608801518718603881901c60089190911b1867ffffffffffffffff166101a08901526102e08801518518600881901c60389190911b1867ffffffffffffffff166102608901526101e08801518218601781901c60299190911b1867ffffffffffffffff166102e089015260808801518718602581901c601b9190911b1867ffffffffffffffff166101e08901526103008801518718603281901c600e9190911b1867ffffffffffffffff1660808901526102a08801518118603e81901c60029190911b1867ffffffffffffffff166103008901526101008801518518600981901c60379190911b1867ffffffffffffffff166102a08901526102008801518118601381901c602d9190911b1867ffffffffffffffff1661010089015260a08801518218601c81901c60249190911b1867ffffffffffffffff1661020089015260608801518518602481901c601c9190911b1867ffffffffffffffff1660a08901526102408801518518602b81901c60159190911b1867ffffffffffffffff1660608901526102208801518618603181901c600f9190911b1867ffffffffffffffff166102408901526101608801518118603681901c600a9190911b1867ffffffffffffffff166102208901525060e08701518518603a81901c60069190911b1867ffffffffffffffff166101608801526101408701518118603d81901c60039190911b1867ffffffffffffffff1660e0880152505067ffffffffffffffff81166101408601525b5050505050565b600582811b8201805160018501831b8401805160028701851b8601805160038901871b8801805160048b0190981b8901805167ffffffffffffffff861985168918811690995283198a16861889169096528819861683188816909352841986168818871690528419831684189095169052919391929190611cbc565b61274e6000826126c7565b6127596005826126c7565b612764600a826126c7565b61276f600f826126c7565b61277a6014826126c7565b50565b61278681612222565b61278f81612743565b600383901b820151815160c09190911c9061205a90821867ffffffffffffffff168352565b6127c06000828461277d565b6127cc6001828461277d565b6127d86002828461277d565b6127e46003828461277d565b6127f06004828461277d565b6127fc6005828461277d565b6128086006828461277d565b6128146007828461277d565b6128206008828461277d565b61282c6009828461277d565b612838600a828461277d565b612844600b828461277d565b612850600c828461277d565b61285c600d828461277d565b612868600e828461277d565b612874600f828461277d565b6128806010828461277d565b61288c6011828461277d565b6128986012828461277d565b6128a46013828461277d565b6128b06014828461277d565b6128bc6015828461277d565b6128c86016828461277d565b61205a6017828461277d565b73ffffffffffffffffffffffffffffffffffffffff83811660009081526016602090815260408083208684529091528082208054908390559051909284169083908381818185875af1925050503d806000811461294d576040519150601f19603f3d011682016040523d82523d6000602084013e612952565b606091505b50509050806126c0576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831617612a33818360408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b9392505050565b6060604051905081602082018181018286833760888306808015612a835760888290038501848101848103803687375060806001820353506001845160001a1784538652612a9a565b608836843760018353608060878401536088850186525b5050505050601f19603f82510116810160405292915050565b6000612ac58260a01c63ffffffff1690565b67ffffffffffffffff1690506000612ae38360801c63ffffffff1690565b63ffffffff1690506000612afd8460401c63ffffffff1690565b63ffffffff169050600883108015612b13575080155b15612b475760c082901b6000908152883560085283513382526017602090815260408084208a855290915290912055612bfc565b60088310158015612b65575080612b5f60088561375b565b93508310155b8015612b795750612b7687826135b0565b83105b15612bfc576000612b8a828561375b565b905087612b988260206135b0565b10158015612ba4575085155b15612bdb576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526017602090815260408083208a845290915290209089013590555b5050505050505050565b6000612c89565b66ff00ff00ff00ff8160081c1667ff00ff00ff00ff00612c378360081b67ffffffffffffffff1690565b1617905065ffff0000ffff8160101c1667ffff0000ffff0000612c648360101b67ffffffffffffffff1690565b1617905060008160201c612c828360201b67ffffffffffffffff1690565b1792915050565b60808201516020830190612ca190612c0d565b612c0d565b6040820151612caf90612c0d565b60401b17612cc7612c9c60018460059190911b015190565b825160809190911b90612cd990612c0d565b60c01b17179392505050565b8260108101928215612d13579160200282015b82811115612d13578251825591602001919060010190612cf8565b50612d1f929150612d3b565b5090565b6040518060200160405280612d36612d50565b905290565b5b80821115612d1f5760008155600101612d3c565b6040518061032001604052806019906020820280368337509192915050565b600060208284031215612d8157600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114612dac57600080fd5b919050565b60008060408385031215612dc457600080fd5b612dcd83612d88565b946020939093013593505050565b60008083601f840112612ded57600080fd5b50813567ffffffffffffffff811115612e0557600080fd5b602083019150836020828501011115612e1d57600080fd5b9250929050565b60008060008060608587031215612e3a57600080fd5b84359350612e4a60208601612d88565b9250604085013567ffffffffffffffff811115612e6657600080fd5b612e7287828801612ddb565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610320810167ffffffffffffffff81118282101715612ed157612ed1612e7e565b60405290565b6040516060810167ffffffffffffffff81118282101715612ed157612ed1612e7e565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612f4157612f41612e7e565b604052919050565b6000610320808385031215612f5d57600080fd5b604051602080820167ffffffffffffffff8382108183111715612f8257612f82612e7e565b8160405283955087601f880112612f9857600080fd5b612fa0612ead565b9487019491508188861115612fb457600080fd5b875b86811015612fdc5780358381168114612fcf5760008081fd5b8452928401928401612fb6565b50909352509295945050505050565b600060608284031215612ffd57600080fd5b50919050565b60008083601f84011261301557600080fd5b50813567ffffffffffffffff81111561302d57600080fd5b6020830191508360208260051b8501011115612e1d57600080fd5b60008060008060008060008060006103e08a8c03121561306757600080fd5b6130708a612d88565b985060208a013597506130868b60408c01612f49565b96506103608a013567ffffffffffffffff808211156130a457600080fd5b6130b08d838e01612feb565b97506103808c01359150808211156130c757600080fd5b6130d38d838e01613003565b90975095506103a08c01359150808211156130ed57600080fd5b6130f98d838e01612feb565b94506103c08c013591508082111561311057600080fd5b5061311d8c828d01613003565b915080935050809150509295985092959850929598565b600080600080600060a0868803121561314c57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000806040838503121561318257600080fd5b50508035926020909101359150565b600080600080600080600060a0888a0312156131ac57600080fd5b8735965060208801359550604088013567ffffffffffffffff808211156131d257600080fd5b6131de8b838c01612ddb565b909750955060608a01359150808211156131f757600080fd5b506132048a828b01613003565b9094509250506080880135801515811461321d57600080fd5b8091505092959891949750929550565b60008060006060848603121561324257600080fd5b61324b84612d88565b95602085013595506040909401359392505050565b60008060006040848603121561327557600080fd5b83359250602084013567ffffffffffffffff81111561329357600080fd5b61329f86828701612ddb565b9497909650939450505050565b600080600080600080600060a0888a0312156132c757600080fd5b8735965060208801359550604088013567ffffffffffffffff808211156132ed57600080fd5b6132f98b838c01612ddb565b909750955060608a013591508082111561331257600080fd5b5061331f8a828b01612ddb565b989b979a50959894979596608090950135949350505050565b60008060008060006080868803121561335057600080fd5b61335986612d88565b945060208601359350604086013567ffffffffffffffff8082111561337d57600080fd5b61338989838a01612feb565b9450606088013591508082111561339f57600080fd5b506133ac88828901613003565b969995985093965092949392505050565b803563ffffffff81168114612dac57600080fd5b6000806000606084860312156133e657600080fd5b833592506133f6602085016133bd565b9150613404604085016133bd565b90509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361349c5761349c61343c565b5060010190565b6000606082360312156134b557600080fd5b6134bd612ed7565b823567ffffffffffffffff808211156134d557600080fd5b9084019036601f8301126134e857600080fd5b81356020828211156134fc576134fc612e7e565b61352c817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601612efa565b9250818352368183860101111561354257600080fd5b81818501828501376000918301810191909152908352848101359083015250604092830135928101929092525090565b81516103208201908260005b60198110156135a757825167ffffffffffffffff1682526020928301929091019060010161357e565b50505092915050565b600082198211156135c3576135c361343c565b500190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126135fd57600080fd5b83018035915067ffffffffffffffff82111561361857600080fd5b602001915036819003821315612e1d57600080fd5b600181815b8085111561368657817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561366c5761366c61343c565b8085161561367957918102915b93841c9390800290613632565b509250929050565b60008261369d57506001613749565b816136aa57506000613749565b81600181146136c057600281146136ca576136e6565b6001915050613749565b60ff8411156136db576136db61343c565b50506001821b613749565b5060208310610133831016604e8410600b8410161715613709575081810a613749565b613713838361362d565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156137455761374561343c565b0290505b92915050565b6000612a33838361368e565b60008282101561376d5761376d61343c565b500390565b600063ffffffff8381169083168181101561378f5761378f61343c565b039392505050565b600063ffffffff8083168185168083038211156137b6576137b661343c565b01949350505050565b6000845160005b818110156137e057602081880181015185830152016137c6565b818111156137ef576000828501525b50
9190910192835250602082015260400191905056fea164736f6c634300080f000a"
var
PreimageOracleDeployedBin
=
"0x6080604052600436106101c
d5760003560e01c80638dc4be11116100f7578063dd24f9bf11610095578063ec5efcbc11610064578063ec5efcbc1461065f578063f3f480d91461067f578063faf37bc7146106b2578063fef2b4ed146106c557600080fd5b8063dd24f9bf1461059f578063ddcd58de146105d2578063e03110e11461060a578063e15926111461063f57600080fd5b8063b2e67ba8116100d1578063b2e67ba814610512578063b4801e611461054a578063d18534b51461056a578063da35c6641461058a57600080fd5b80638dc4be11146104835780639d53a648146104a35780639d7e8769146104f257600080fd5b806354fd4d501161016f5780637917de1d1161013e5780637917de1d146103bf5780637ac54767146103df5780638542cf50146103ff578063882856ef1461044a57600080fd5b806354fd4d50146102dd57806361238bde146103335780636551927b1461036b5780637051472e146103a357600080fd5b80632055b36b116101ab5780632055b36b146102735780633909af5c146102885780634d52b4c9146102a857806352f0f3ad146102bd57600080fd5b8063013cf08b146101d25780630359a5631461022357806304697c7814610251575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612dd0565b6106f2565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152015b60405180910390f35b34801561022f57600080fd5b5061024361023e366004612e12565b610737565b60405190815260200161021a565b34801561025d57600080fd5b5061027161026c366004612e85565b61086f565b005b34801561027f57600080fd5b50610243601081565b34801561029457600080fd5b506102716102a33660046130a9565b6109ff565b3480156102b457600080fd5b50610243610c56565b3480156102c957600080fd5b506102436102d8366004613195565b610c71565b3480156102e957600080fd5b506103266040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161021a91906131fc565b34801561033f57600080fd5b5061024361034e36600461324d565b600160209081526000928352604080842090915290825290205481565b34801561037757600080fd5b50610243610386366004612e12565b601560209081526000928352604080842090915290825290205481565b3480156103af57600080fd5b506102436703782dace9d9000081565b3480156103cb57600080fd5b506102716103da36600461326f565b610d46565b3480156103eb57600080fd5b506102436103fa366004612dd0565b611236565b34801561040b57600080fd5b5061043a61041a36600461324d565b600260209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161021a565b34801561045657600080fd5b5061046a61046536600461330b565b61124d565b60405167ffffffffffffffff909116815260200161021a565b34801561048f57600080fd5b5061027161049e36600461333e565b6112a7565b3480156104af57600080fd5b506102436104be366004612e12565b73ffffffffffffffffffffffffffffffffffffffff9091166000908152601860209081526040808320938352929052205490565b3480156104fe57600080fd5b5061027161050d36600461338a565b6113a2565b34801561051e57600080fd5b5061024361052d366004612e12565b601760209081526000928352604080842090915290825290205481565b34801561055657600080fd5b5061024361056536600461330b565b6115b3565b34801561057657600080fd5b506102716105853660046130a9565b6115e5565b34801561059657600080fd5b50601354610243565b3480156105ab57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610243565b3480156105de57600080fd5b506102436105ed366004612e12565b601660209081526000928352604080842090915290825290205481565b34801561061657600080fd5b5061062a61062536600461324d565b6119a7565b6040805192835260208301919091520161021a565b34801561064b57600080fd5b5061027161065a36600461333e565b611a98565b34801561066b57600080fd5b5061027161067a366004613416565b611ba0565b34801561068b57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610243565b6102716106c03660046134af565b611d26565b3480156106d157600080fd5b506102436106e0366004612dd0565b60006020819052908152604090205481565b6013818154811061070257600080fd5b60009182526020909120600290910201805460019091015473ffffffffffffffffffffffffffffffffffffffff909116915082565b73ffffffffffffffffffffffffffffffffffffffff82166000908152601560209081526040808320848452909152812054819061077a9060601c63ffffffff1690565b63ffffffff16905060005b6010811015610867578160011660010361080d5773ffffffffffffffffffffffffffffffffffffffff85166000908152601460209081526040808320878452909152902081601081106107da576107da6134eb565b0154604080516020810192909252810184905260600160405160208183030381529060405280519060200120925061084e565b8260038260108110610821576108216134eb565b01546040805160208101939093528201526060016040516020818303038152906040528051906020012092505b60019190911c908061085f81613549565b915050610785565b505092915050565b7f00000000000000000000000000000000000000000000000000000000000000004210156108c9576040517f299f254900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600080608060146030823785878260140137601480870182207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f06000000000000000000000000000000000000000000000000000000000000001794506000908190889084018b5afa94503d60010191506008820189106109565763fe2549876000526004601cfd5b60c082901b81526008018481533d6000600183013e88017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8015160008481526002602090815260408083208c8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915587845282528083209b83529a81528a82209290925593845283905296909120959095555050505050565b6000610a0b8a8a610737565b9050610a2e86868360208b0135610a29610a248d613581565b611f91565b611fd1565b8015610a4c5750610a4c8383836020880135610a29610a248a613581565b610a82576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b866040013588604051602001610a989190613650565b6040516020818303038152906040528051906020012014610ae5576040517f1968a90200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836020013587602001356001610afb919061368e565b14610b32576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7a88610b4086806136a6565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061203292505050565b610b838861218d565b836040013588604051602001610b999190613650565b6040516020818303038152906040528051906020012003610be6576040517f9843145b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8a1660009081526015602090815260408083208c8452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001179055610c4a8a8a33612935565b50505050505050505050565b6001610c646010600261382d565b610c6e9190613839565b81565b6000610c7d86866129ee565b9050610c8a83600861368e565b821180610c975750602083115b15610cce576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602081815260c085901b82526008959095528251828252600286526040808320858452875280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558484528752808320948352938652838220558181529384905292205592915050565b60608115610d5f57610d588686612a9b565b9050610d99565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b3360009081526014602090815260408083208b845290915280822081516102008101928390529160109082845b815481526020019060010190808311610dc657505050505090506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b81526020019081526020016000205490506000610e478260601c63ffffffff1690565b63ffffffff169050333214610e88576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e988260801c63ffffffff1690565b63ffffffff16600003610ed7576040517f87138d5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ee18260c01c90565b67ffffffffffffffff1615610f22576040517f475a253500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b898114610f5b576040517f60f95d5a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f6889898d8886612b14565b83516020850160888204881415608883061715610f8d576307b1daf16000526004601cfd5b60405160c8810160405260005b8381101561103d578083018051835260208101516020840152604081015160408401526060810151606084015260808101516080840152508460888301526088810460051b8b013560a883015260c882206001860195508560005b6102008110156110325760018216156110125782818b0152611032565b8981015160009081526020938452604090209260019290921c9101610ff5565b505050608801610f9a565b50505050600160106002611051919061382d565b61105b9190613839565b811115611094576040517f6229572300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111096110a78360401c63ffffffff1690565b6110b79063ffffffff168a61368e565b60401b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff606084901b167fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff8516171790565b915084156111965777ffffffffffffffffffffffffffffffffffffffffffffffff82164260c01b1791506111438260801c63ffffffff1690565b63ffffffff166111598360401c63ffffffff1690565b63ffffffff1614611196576040517f7b1dafd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526014602090815260408083208e845290915290206111bc90846010612d46565b50503360008181526018602090815260408083208e8452825280832080546001810182559084528284206004820401805460039092166008026101000a67ffffffffffffffff818102199093164390931602919091179055928252601581528282209c82529b909b52909920989098555050505050505050565b6003816010811061124657600080fd5b0154905081565b6018602052826000526040600020602052816000526040600020818154811061127557600080fd5b906000526020600020906004918282040191900660080292509250509054906101000a900467ffffffffffffffff1681565b6044356000806008830186106112c55763fe2549876000526004601cfd5b60c083901b60805260888386823786600882030151915060206000858360025afa9050806112f257600080fd5b50600080517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0400000000000000000000000000000000000000000000000000000000000000178082526002602090815260408084208a8552825280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558385528252808420998452988152888320939093558152908190529490942055505050565b7f00000000000000000000000000000000000000000000000000000000000000004210156113fc576040517f299f254900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080603087600037602060006030600060025afa806114245763f91129696000526004601cfd5b6000517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f010000000000000000000000000000000000000000000000000000000000000017608081815260a08c905260c08b905260308a60e037603088609083013760008060c083600a5afa9250826114a6576309bde3396000526004601cfd5b602886106114bc5763fe2549876000526004601cfd5b6000602882015278200000000000000000000000000000000000000000000000008152600881018b905285810151935060308a8237603081019b909b52505060509098207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0500000000000000000000000000000000000000000000000000000000000000176000818152600260209081526040808320868452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209583529481528482209a909a559081528089529190912096909655505050505050565b601460205282600052604060002060205281600052604060002081601081106115db57600080fd5b0154925083915050565b73ffffffffffffffffffffffffffffffffffffffff891660009081526015602090815260408083208b845290915290205467ffffffffffffffff811615611658576040517fc334f06900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006116838260c01c90565b6116979067ffffffffffffffff1642613839565b116116ce576040517f55d4cbf900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006116da8b8b610737565b90506116f387878360208c0135610a29610a248e613581565b801561171157506117118484836020890135610a29610a248b613581565b611747576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b87604001358960405160200161175d9190613650565b60405160208183030381529060405280519060200120146117aa576040517f1968a90200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8460200135886020013560016117c0919061368e565b1415806117f2575060016117da8360601c63ffffffff1690565b6117e49190613850565b63ffffffff16856020013514155b15611829576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61183789610b4087806136a6565b6118408961218d565b600061184b8a612c67565b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f020000000000000000000000000000000000000000000000000000000000000017905060006118a28460a01c63ffffffff1690565b67ffffffffffffffff169050600160026000848152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff021916908315150217905550601760008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d815260200190815260200160002054600160008481526020019081526020016000206000838152602001908152602001600020819055506119748460801c63ffffffff1690565b600083815260208190526040902063ffffffff9190911690556119988d8d81612935565b50505050505050505050505050565b6000828152600260209081526040808320848452909152812054819060ff16611a30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f7072652d696d616765206d757374206578697374000000000000000000000000604482015260640160405180910390fd5b5060008381526020818152604090912054611a4c81600861368e565b611a5785602061368e565b10611a755783611a6882600861368e565b611a729190613839565b91505b506000938452600160209081526040808620948652939052919092205492909150565b604435600080600883018610611ab65763fe2549876000526004601cfd5b60c083901b6080526088838682378087017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80151908490207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f02000000000000000000000000000000000000000000000000000000000000001760008181526002602090815260408083208b8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209a83529981528982209390935590815290819052959095209190915550505050565b6000611bac8686610737565b9050611bc58383836020880135610a29610a248a613581565b611bfb576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602084013515611c37576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c3f612d84565b611c4d81610b4087806136a6565b611c568161218d565b846040013581604051602001611c6c9190613650565b6040516020818303038152906040528051906020012003611cb9576040517f9843145b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152601560209081526040808320898452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001179055611d1d878733612935565b50505050505050565b6703782dace9d90000341015611d68576040517fe92c469f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b333214611da1576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611dac816008613875565b63ffffffff168263ffffffff1610611df0576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008163ffffffff161015611e50576040517f7b1dafd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000818152601560209081526040808320878452825280832080547fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1660a09790971b7fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff169690961760809590951b949094179094558251808401845282815280850186815260138054600181018255908452915160029092027f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0908101805473ffffffffffffffffffffffffffffffffffffffff9094167fffffffffffffffffffffffff000000000000000000000000000000000000000090941693909317909255517f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0919091015590815260168352818120938152929091529020349055565b6000816000015182602001518360400151604051602001611fb49392919061389d565b604051602081830303815290604052805190602001209050919050565b60008160005b6010811015612025578060051b880135600186831c166001811461200a576000848152602083905260409020935061201b565b600082815260208590526040902093505b5050600101611fd7565b5090931495945050505050565b608881511461204057600080fd5b60208101602083016120c1565b8260031b8201518060001a8160011a60081b178160021a60101b8260031a60181b17178160041a60201b8260051a60281b178260061a60301b8360071a60381b17171790506120bb816120a6868560059190911b015190565b1867ffffffffffffffff16600586901b840152565b50505050565b6120cd6000838361204d565b6120d96001838361204d565b6120e56002838361204d565b6120f16003838361204d565b6120fd6004838361204d565b6121096005838361204d565b6121156006838361204d565b6121216007838361204d565b61212d6008838361204d565b6121396009838361204d565b612145600a838361204d565b612151600b838361204d565b61215d600c838361204d565b612169600d838361204d565b612175600e838361204d565b612181600f838361204d565b6120bb6010838361204d565b6040805178010000000000008082800000000000808a8000000080008000602082015279808b00000000800000018000000080008081800000000000800991810191909152788a00000000000000880000000080008009000000008000000a60608201527b8000808b800000000000008b8000000000008089800000000000800360808201527f80000000000080028000000000000080000000000000800a800000008000000a60a08201527f800000008000808180000000000080800000000080000001800000008000800860c082015260009060e00160405160208183030381529060405290506020820160208201612815565b6102808101516101e082015161014083015160a0840151845118189118186102a082015161020083015161016084015160c0850151602086015118189118186102c083015161022084015161018085015160e0860151604087015118189118186102e08401516102408501516101a0860151610100870151606088015118189118186103008501516102608601516101c0870151610120880151608089015118189118188084603f1c6123408660011b67ffffffffffffffff1690565b18188584603f1c61235b8660011b67ffffffffffffffff1690565b18188584603f1c6123768660011b67ffffffffffffffff1690565b181895508483603f1c6123938560011b67ffffffffffffffff1690565b181894508387603f1c6123b08960011b67ffffffffffffffff1690565b60208b01518b51861867ffffffffffffffff168c5291189190911897508118600181901b603f9190911c18935060c08801518118601481901c602c9190911b1867ffffffffffffffff1660208901526101208801518718602c81901c60149190911b1867ffffffffffffffff1660c08901526102c08801518618600381901c603d9190911b1867ffffffffffffffff166101208901526101c08801518718601981901c60279190911b1867ffffffffffffffff166102c08901526102808801518218602e81901c60129190911b1867ffffffffffffffff166101c089015260408801518618600281901c603e9190911b1867ffffffffffffffff166102808901526101808801518618601581901c602b9190911b1867ffffffffffffffff1660408901526101a08801518518602781901c60199190911b1867ffffffffffffffff166101808901526102608801518718603881901c60089190911b1867ffffffffffffffff166101a08901526102e08801518518600881901c60389190911b1867ffffffffffffffff166102608901526101e08801518218601781901c60299190911b1867ffffffffffffffff166102e089015260808801518718602581901c601b9190911b1867ffffffffffffffff166101e08901526103008801518718603281901c600e9190911b1867ffffffffffffffff1660808901526102a08801518118603e81901c60029190911b1867ffffffffffffffff166103008901526101008801518518600981901c60379190911b1867ffffffffffffffff166102a08901526102008801518118601381901c602d9190911b1867ffffffffffffffff1661010089015260a08801518218601c81901c60249190911b1867ffffffffffffffff1661020089015260608801518518602481901c601c9190911b1867ffffffffffffffff1660a08901526102408801518518602b81901c60159190911b1867ffffffffffffffff1660608901526102208801518618603181901c600f9190911b1867ffffffffffffffff166102408901526101608801518118603681901c600a9190911b1867ffffffffffffffff166102208901525060e08701518518603a81901c60069190911b1867ffffffffffffffff166101608801526101408701518118603d81901c60039190911b1867ffffffffffffffff1660e0880152505067ffffffffffffffff81166101408601525b5050505050565b600582811b8201805160018501831b8401805160028701851b8601805160038901871b8801805160048b0190981b8901805167ffffffffffffffff861985168918811690995283198a16861889169096528819861683188816909352841986168818871690528419831684189095169052919391929190611d1d565b6127af600082612728565b6127ba600582612728565b6127c5600a82612728565b6127d0600f82612728565b6127db601482612728565b50565b6127e781612283565b6127f0816127a4565b600383901b820151815160c09190911c906120bb90821867ffffffffffffffff168352565b612821600082846127de565b61282d600182846127de565b612839600282846127de565b612845600382846127de565b612851600482846127de565b61285d600582846127de565b612869600682846127de565b612875600782846127de565b612881600882846127de565b61288d600982846127de565b612899600a82846127de565b6128a5600b82846127de565b6128b1600c82846127de565b6128bd600d82846127de565b6128c9600e82846127de565b6128d5600f82846127de565b6128e1601082846127de565b6128ed601182846127de565b6128f9601282846127de565b612905601382846127de565b612911601482846127de565b61291d601582846127de565b612929601682846127de565b6120bb601782846127de565b73ffffffffffffffffffffffffffffffffffffffff83811660009081526016602090815260408083208684529091528082208054908390559051909284169083908381818185875af1925050503d80600081146129ae576040519150601f19603f3d011682016040523d82523d6000602084013e6129b3565b606091505b5050905080612721576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831617612a94818360408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b9392505050565b6060604051905081602082018181018286833760888306808015612ae45760888290038501848101848103803687375060806001820353506001845160001a1784538652612afb565b608836843760018353608060878401536088850186525b5050505050601f19603f82510116810160405292915050565b6000612b268260a01c63ffffffff1690565b67ffffffffffffffff1690506000612b448360801c63ffffffff1690565b63ffffffff1690506000612b5e8460401c63ffffffff1690565b63ffffffff169050600883108015612b74575080155b15612ba85760c082901b6000908152883560085283513382526017602090815260408084208a855290915290912055612c5d565b60088310158015612bc6575080612bc0600885613839565b93508310155b8015612bda5750612bd7878261368e565b83105b15612c5d576000612beb8285613839565b905087612bf982602061368e565b10158015612c05575085155b15612c3c576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526017602090815260408083208a845290915290209089013590555b5050505050505050565b6000612cea565b66ff00ff00ff00ff8160081c1667ff00ff00ff00ff00612c988360081b67ffffffffffffffff1690565b1617905065ffff0000ffff8160101c1667ffff0000ffff0000612cc58360101b67ffffffffffffffff1690565b1617905060008160201c612ce38360201b67ffffffffffffffff1690565b1792915050565b60808201516020830190612d0290612c6e565b612c6e565b6040820151612d1090612c6e565b60401b17612d28612cfd60018460059190911b015190565b825160809190911b90612d3a90612c6e565b60c01b17179392505050565b8260108101928215612d74579160200282015b82811115612d74578251825591602001919060010190612d59565b50612d80929150612d9c565b5090565b6040518060200160405280612d97612db1565b905290565b5b80821115612d805760008155600101612d9d565b6040518061032001604052806019906020820280368337509192915050565b600060208284031215612de257600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114612e0d57600080fd5b919050565b60008060408385031215612e2557600080fd5b612e2e83612de9565b946020939093013593505050565b60008083601f840112612e4e57600080fd5b50813567ffffffffffffffff811115612e6657600080fd5b602083019150836020828501011115612e7e57600080fd5b9250929050565b60008060008060608587031215612e9b57600080fd5b84359350612eab60208601612de9565b9250604085013567ffffffffffffffff811115612ec757600080fd5b612ed387828801612e3c565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610320810167ffffffffffffffff81118282101715612f3257612f32612edf565b60405290565b6040516060810167ffffffffffffffff81118282101715612f3257612f32612edf565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612fa257612fa2612edf565b604052919050565b6000610320808385031215612fbe57600080fd5b604051602080820167ffffffffffffffff8382108183111715612fe357612fe3612edf565b8160405283955087601f880112612ff957600080fd5b613001612f0e565b948701949150818886111561301557600080fd5b875b8681101561303d57803583811681146130305760008081fd5b8452928401928401613017565b50909352509295945050505050565b60006060828403121561305e57600080fd5b50919050565b60008083601f84011261307657600080fd5b50813567ffffffffffffffff81111561308e57600080fd5b6020830191508360208260051b8501011115612e7e57600080fd5b60008060008060008060008060006103e08a8c0312156130c857600080fd5b6130d18a612de9565b985060208a013597506130e78b60408c01612faa565b96506103608a013567ffffffffffffffff8082111561310557600080fd5b6131118d838e0161304c565b97506103808c013591508082111561312857600080fd5b6131348d838e01613064565b90975095506103a08c013591508082111561314e57600080fd5b61315a8d838e0161304c565b94506103c08c013591508082111561317157600080fd5b5061317e8c828d01613064565b915080935050809150509295985092959850929598565b600080600080600060a086880312156131ad57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60005b838110156131eb5781810151838201526020016131d3565b838111156120bb5750506000910152565b602081526000825180602084015261321b8160408501602087016131d0565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000806040838503121561326057600080fd5b50508035926020909101359150565b600080600080600080600060a0888a03121561328a57600080fd5b8735965060208801359550604088013567ffffffffffffffff808211156132b057600080fd5b6132bc8b838c01612e3c565b909750955060608a01359150808211156132d557600080fd5b506132e28a828b01613064565b909450925050608088013580151581146132fb57600080fd5b8091505092959891949750929550565b60008060006060848603121561332057600080fd5b61332984612de9565b95602085013595506040909401359392505050565b60008060006040848603121561335357600080fd5b83359250602084013567ffffffffffffffff81111561337157600080fd5b61337d86828701612e3c565b9497909650939450505050565b600080600080600080600060a0888a0312156133a557600080fd5b8735965060208801359550604088013567ffffffffffffffff808211156133cb57600080fd5b6133d78b838c01612e3c565b909750955060608a01359150808211156133f057600080fd5b506133fd8a828b01612e3c565b989b979a50959894979596608090950135949350505050565b60008060008060006080868803121561342e57600080fd5b61343786612de9565b945060208601359350604086013567ffffffffffffffff8082111561345b57600080fd5b61346789838a0161304c565b9450606088013591508082111561347d57600080fd5b5061348a88828901613064565b969995985093965092949392505050565b803563ffffffff81168114612e0d57600080fd5b6000806000606084860312156134c457600080fd5b833592506134d46020850161349b565b91506134e26040850161349b565b90509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361357a5761357a61351a565b5060010190565b60006060823603121561359357600080fd5b61359b612f38565b823567ffffffffffffffff808211156135b357600080fd5b9084019036601f8301126135c657600080fd5b81356020828211156135da576135da612edf565b61360a817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601612f5b565b9250818352368183860101111561362057600080fd5b81818501828501376000918301810191909152908352848101359083015250604092830135928101929092525090565b81516103208201908260005b601981101561368557825167ffffffffffffffff1682526020928301929091019060010161365c565b50505092915050565b600082198211156136a1576136a161351a565b500190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126136db57600080fd5b83018035915067ffffffffffffffff8211156136f657600080fd5b602001915036819003821315612e7e57600080fd5b600181815b8085111561376457817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561374a5761374a61351a565b8085161561375757918102915b93841c9390800290613710565b509250929050565b60008261377b57506001613827565b8161378857506000613827565b816001811461379e57600281146137a8576137c4565b6001915050613827565b60ff8411156137b9576137b961351a565b50506001821b613827565b5060208310610133831016604e8410600b84101617156137e7575081810a613827565b6137f1838361370b565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156138235761382361351a565b0290505b92915050565b6000612a94838361376c565b60008282101561384b5761384b61351a565b500390565b600063ffffffff8381169083168181101561386d5761386d61351a565b039392505050565b600063ffffffff8083168185168083038211156138945761389461351a565b01949350505050565b600084516138af8184602089016131d0565b
9190910192835250602082015260400191905056fea164736f6c634300080f000a"
func
init
()
{
...
...
packages/contracts-bedrock/semver-lock.json
View file @
20407c5a
...
...
@@ -95,6 +95,14 @@
"initCodeHash"
:
"0x0da844fb4dd22f252ff631524f01f45edf43bca7558fe45f71d711b79af01742"
,
"sourceCodeHash"
:
"0x1afb1d392e8f6a58ff86ea7f648e0d1756d4ba8d0d964279d58a390deaa53b7e"
},
"src/cannon/MIPS.sol"
:
{
"initCodeHash"
:
"0xaf2ac814f64ccf12e9c6738db7cef865f51f9e39f39105adef9fba11465f6ee1"
,
"sourceCodeHash"
:
"0x6ab593a4b87007c000c254b2c4ff0507683600f48b60e453148e44bee30030f6"
},
"src/cannon/PreimageOracle.sol"
:
{
"initCodeHash"
:
"0x7998712f9dd5848f33184ede984c0843917cc176562006479e1dbb26b0be0ff6"
,
"sourceCodeHash"
:
"0x2f5d84ed4a807cb7e7354514f53445995fc2f0836abd1ca7cfa34599d9031d9a"
},
"src/dispute/DisputeGameFactory.sol"
:
{
"initCodeHash"
:
"0x80d749a56c1776930fe0deb5c3c646217716e5875ace99c4d036af0452236476"
,
"sourceCodeHash"
:
"0x1e5a6deded88804971fc1847c9eac65921771bff353437c0b29ed2f55513b984"
...
...
packages/contracts-bedrock/snapshots/abi/MIPS.json
View file @
20407c5a
...
...
@@ -64,5 +64,18 @@
],
"stateMutability"
:
"nonpayable"
,
"type"
:
"function"
},
{
"inputs"
:
[],
"name"
:
"version"
,
"outputs"
:
[
{
"internalType"
:
"string"
,
"name"
:
""
,
"type"
:
"string"
}
],
"stateMutability"
:
"view"
,
"type"
:
"function"
}
]
\ No newline at end of file
packages/contracts-bedrock/snapshots/abi/PreimageOracle.json
View file @
20407c5a
...
...
@@ -796,6 +796,19 @@
"stateMutability"
:
"nonpayable"
,
"type"
:
"function"
},
{
"inputs"
:
[],
"name"
:
"version"
,
"outputs"
:
[
{
"internalType"
:
"string"
,
"name"
:
""
,
"type"
:
"string"
}
],
"stateMutability"
:
"view"
,
"type"
:
"function"
},
{
"inputs"
:
[
{
...
...
packages/contracts-bedrock/src/cannon/MIPS.sol
View file @
20407c5a
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { ISemver } from "src/universal/ISemver.sol";
import { IPreimageOracle } from "./interfaces/IPreimageOracle.sol";
import { PreimageKeyLib } from "./PreimageKeyLib.sol";
...
...
@@ -19,7 +20,7 @@ import { PreimageKeyLib } from "./PreimageKeyLib.sol";
/// @dev https://en.wikibooks.org/wiki/MIPS_Assembly/Instruction_Formats
/// @dev https://github.com/golang/go/blob/master/src/syscall/zerrors_linux_mips.go
/// MIPS linux kernel errors used by Go runtime
contract MIPS {
contract MIPS
is ISemver
{
/// @notice Stores the VM state.
/// Total state size: 32 + 32 + 6 * 4 + 1 + 1 + 8 + 32 * 4 = 226 bytes
/// If nextPC != pc + 4, then the VM is executing a branch/jump delay slot.
...
...
@@ -41,16 +42,20 @@ contract MIPS {
/// @notice Start of the data segment.
uint32 public constant BRK_START = 0x40000000;
uint32 constant FD_STDIN = 0;
uint32 constant FD_STDOUT = 1;
uint32 constant FD_STDERR = 2;
uint32 constant FD_HINT_READ = 3;
uint32 constant FD_HINT_WRITE = 4;
uint32 constant FD_PREIMAGE_READ = 5;
uint32 constant FD_PREIMAGE_WRITE = 6;
/// @notice The semantic version of the MIPS contract.
/// @custom:semver 0.1.0
string public constant version = "0.1.0";
uint32 constant EBADF = 0x9;
uint32 constant EINVAL = 0x16;
uint32 internal constant FD_STDIN = 0;
uint32 internal constant FD_STDOUT = 1;
uint32 internal constant FD_STDERR = 2;
uint32 internal constant FD_HINT_READ = 3;
uint32 internal constant FD_HINT_WRITE = 4;
uint32 internal constant FD_PREIMAGE_READ = 5;
uint32 internal constant FD_PREIMAGE_WRITE = 6;
uint32 internal constant EBADF = 0x9;
uint32 internal constant EINVAL = 0x16;
/// @notice The preimage oracle contract.
IPreimageOracle internal immutable ORACLE;
...
...
packages/contracts-bedrock/src/cannon/PreimageOracle.sol
View file @
20407c5a
...
...
@@ -2,6 +2,7 @@
pragma solidity 0.8.15;
import { IPreimageOracle } from "./interfaces/IPreimageOracle.sol";
import { ISemver } from "src/universal/ISemver.sol";
import { PreimageKeyLib } from "./PreimageKeyLib.sol";
import { LibKeccak } from "@lib-keccak/LibKeccak.sol";
import "src/cannon/libraries/CannonErrors.sol";
...
...
@@ -11,7 +12,7 @@ import "src/cannon/libraries/CannonTypes.sol";
/// @notice A contract for storing permissioned pre-images.
/// @custom:attribution Solady <https://github.com/Vectorized/solady/blob/main/src/utils/MerkleProofLib.sol#L13-L43>
/// @custom:attribution Beacon Deposit Contract <0x00000000219ab540356cbb839cbe05303d7705fa>
contract PreimageOracle is IPreimageOracle {
contract PreimageOracle is IPreimageOracle
, ISemver
{
////////////////////////////////////////////////////////////////
// Constants & Immutables //
////////////////////////////////////////////////////////////////
...
...
@@ -30,6 +31,10 @@ contract PreimageOracle is IPreimageOracle {
/// @notice The maximum number of keccak blocks that can fit into the merkle tree.
uint256 public constant MAX_LEAF_COUNT = 2 ** KECCAK_TREE_DEPTH - 1;
/// @notice The semantic version of the Preimage Oracle contract.
/// @custom:semver 0.1.0
string public constant version = "0.1.0";
////////////////////////////////////////////////////////////////
// Authorized Preimage Parts //
////////////////////////////////////////////////////////////////
...
...
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