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
f09a411e
Unverified
Commit
f09a411e
authored
Aug 18, 2023
by
OptimismBot
Committed by
GitHub
Aug 18, 2023
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #6910 from ethereum-optimism/refcell/contract-styling
chore: DisputeGameFactory Styling Touchups
parents
b327c69a
daede556
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
24 additions
and
24 deletions
+24
-24
disputegamefactory.go
op-bindings/bindings/disputegamefactory.go
+7
-7
DisputeGameFactory.sol
...ages/contracts-bedrock/src/dispute/DisputeGameFactory.sol
+7
-7
IDisputeGameFactory.sol
...ts-bedrock/src/dispute/interfaces/IDisputeGameFactory.sol
+10
-10
No files found.
op-bindings/bindings/disputegamefactory.go
View file @
f09a411e
...
...
@@ -30,7 +30,7 @@ var (
// DisputeGameFactoryMetaData contains all meta data concerning the DisputeGameFactory contract.
var
DisputeGameFactoryMetaData
=
&
bind
.
MetaData
{
ABI
:
"[{
\"
inputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
constructor
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
Hash
\"
,
\"
name
\"
:
\"
uuid
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
name
\"
:
\"
GameAlreadyExists
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
gameType
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
name
\"
:
\"
NoImplementation
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
disputeProxy
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
gameType
\"
,
\"
type
\"
:
\"
uint8
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
rootClaim
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
name
\"
:
\"
DisputeGameCreated
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
impl
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
gameType
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
name
\"
:
\"
ImplementationSet
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint8
\"
,
\"
name
\"
:
\"
version
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
name
\"
:
\"
Initialized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
previousOwner
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
newOwner
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
OwnershipTransferred
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
_gameType
\"
,
\"
type
\"
:
\"
uint8
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_rootClaim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
create
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractIDisputeGame
\"
,
\"
name
\"
:
\"
proxy
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_index
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
name
\"
:
\"
gameAtIndex
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
gameType_
\"
,
\"
type
\"
:
\"
uint8
\"
},{
\"
internalType
\"
:
\"
Timestamp
\"
,
\"
name
\"
:
\"
timestamp_
\"
,
\"
type
\"
:
\"
uint64
\"
},{
\"
internalType
\"
:
\"
contractIDisputeGame
\"
,
\"
name
\"
:
\"
proxy_
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
gameCount
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
gameCount_
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
name
\"
:
\"
gameImpls
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractIDisputeGame
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
_gameType
\"
,
\"
type
\"
:
\"
uint8
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_rootClaim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
games
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractIDisputeGame
\"
,
\"
name
\"
:
\"
proxy_
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
Timestamp
\"
,
\"
name
\"
:
\"
timestamp_
\"
,
\"
type
\"
:
\"
uint64
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
_gameType
\"
,
\"
type
\"
:
\"
uint8
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_rootClaim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
getGameUUID
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Hash
\"
,
\"
name
\"
:
\"
_uuid
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_owner
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
initialize
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
owner
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
renounceOwnership
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
_gameType
\"
,
\"
type
\"
:
\"
uint8
\"
},{
\"
internalType
\"
:
\"
contractIDisputeGame
\"
,
\"
name
\"
:
\"
_impl
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
setImplementation
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
newOwner
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
transferOwnership
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
version
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
string
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
string
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
}]"
,
ABI
:
"[{
\"
inputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
constructor
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
Hash
\"
,
\"
name
\"
:
\"
uuid
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
name
\"
:
\"
GameAlreadyExists
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
gameType
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
name
\"
:
\"
NoImplementation
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
disputeProxy
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
gameType
\"
,
\"
type
\"
:
\"
uint8
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
rootClaim
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
name
\"
:
\"
DisputeGameCreated
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
impl
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
gameType
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
name
\"
:
\"
ImplementationSet
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint8
\"
,
\"
name
\"
:
\"
version
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
name
\"
:
\"
Initialized
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
previousOwner
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
newOwner
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
OwnershipTransferred
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
_gameType
\"
,
\"
type
\"
:
\"
uint8
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_rootClaim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
create
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractIDisputeGame
\"
,
\"
name
\"
:
\"
proxy
_
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_index
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
name
\"
:
\"
gameAtIndex
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
gameType_
\"
,
\"
type
\"
:
\"
uint8
\"
},{
\"
internalType
\"
:
\"
Timestamp
\"
,
\"
name
\"
:
\"
timestamp_
\"
,
\"
type
\"
:
\"
uint64
\"
},{
\"
internalType
\"
:
\"
contractIDisputeGame
\"
,
\"
name
\"
:
\"
proxy_
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
gameCount
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
gameCount_
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
name
\"
:
\"
gameImpls
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractIDisputeGame
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
_gameType
\"
,
\"
type
\"
:
\"
uint8
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_rootClaim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
games
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractIDisputeGame
\"
,
\"
name
\"
:
\"
proxy_
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
Timestamp
\"
,
\"
name
\"
:
\"
timestamp_
\"
,
\"
type
\"
:
\"
uint64
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
_gameType
\"
,
\"
type
\"
:
\"
uint8
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_rootClaim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
getGameUUID
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Hash
\"
,
\"
name
\"
:
\"
uuid_
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
_owner
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
initialize
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
owner
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
renounceOwnership
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
_gameType
\"
,
\"
type
\"
:
\"
uint8
\"
},{
\"
internalType
\"
:
\"
contractIDisputeGame
\"
,
\"
name
\"
:
\"
_impl
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
setImplementation
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
newOwner
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
transferOwnership
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
version
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
string
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
string
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
}]"
,
Bin
:
"0x60e06040523480156200001157600080fd5b506000608081905260a0819052600560c0526200002e9062000034565b620002a2565b600054610100900460ff1615808015620000555750600054600160ff909116105b8062000085575062000072306200017260201b620009ed1760201c565b15801562000085575060005460ff166001145b620000ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000112576000805461ff0019166101001790555b6200011c62000181565b6200012782620001e9565b80156200016e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b600054610100900460ff16620001dd5760405162461bcd60e51b815260206004820152602b60248201526000805160206200161e83398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000e5565b620001e76200023b565b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16620002975760405162461bcd60e51b815260206004820152602b60248201526000805160206200161e83398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000e5565b620001e733620001e9565b60805160a05160c05161134c620002d260003960006106520152600061062901526000610600015261134c6000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80638da5cb5b11610081578063c4d66de81161005b578063c4d66de8146102b4578063dfa162d3146102c7578063f2fde38b146102fd57600080fd5b80638da5cb5b146101fd578063bb8aa1fc1461021b578063c49d52711461026c57600080fd5b80634d1975b4116100b25780634d1975b4146101d857806354fd4d50146101e0578063715018a6146101f557600080fd5b806326daafbe146100d95780633142e55e1461018b57806345583b7a146101c3575b600080fd5b6101786100e7366004610ef1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0810180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0830180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08086018051988652968352606087529451609f0190941683209190925291905291905290565b6040519081526020015b60405180910390f35b61019e610199366004610fda565b610310565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610182565b6101d66101d1366004611083565b610572565b005b606754610178565b6101e86105f9565b60405161018291906110ea565b6101d661069c565b60335473ffffffffffffffffffffffffffffffffffffffff1661019e565b61022e61022936600461113b565b6106b0565b6040805160ff909416845267ffffffffffffffff909216602084015273ffffffffffffffffffffffffffffffffffffffff1690820152606001610182565b61027f61027a366004610fda565b610712565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff909116602083015201610182565b6101d66102c2366004611154565b61079a565b61019e6102d5366004611178565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6101d661030b366004611154565b610936565b60ff841660009081526065602052604081205473ffffffffffffffffffffffffffffffffffffffff168061037a576040517f44265d6f00000000000000000000000000000000000000000000000000000000815260ff871660048201526024015b60405180910390fd5b6103dd85858560405160200161039293929190611193565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905273ffffffffffffffffffffffffffffffffffffffff831690610a09565b91508173ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561042757600080fd5b505af115801561043b573d6000803e3d6000fd5b505050506000610482878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100e792505050565b600081815260666020526040902054909150156104ce576040517f014f6fe500000000000000000000000000000000000000000000000000000000815260048101829052602401610371565b60004260b81b60f889901b178417600083815260666020526040808220839055606780546001810182559083527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae0183905551919250889160ff8b169173ffffffffffffffffffffffffffffffffffffffff8816917ffad0599ff449d8d9685eadecca8cb9e00924c5fd8367c1c09469824939e1ffec9190a4505050949350505050565b61057a610b3d565b60ff821660008181526065602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155905190917f623713f72f6e427a8044bb8b3bd6834357cf285decbaa21bcc73c1d0632c4d8491a35050565b60606106247f0000000000000000000000000000000000000000000000000000000000000000610bbe565b61064d7f0000000000000000000000000000000000000000000000000000000000000000610bbe565b6106767f0000000000000000000000000000000000000000000000000000000000000000610bbe565b604051602001610688939291906111ad565b604051602081830303815290604052905090565b6106a4610b3d565b6106ae6000610cfb565b565b6000806000610705606785815481106106cb576106cb611223565b906000526020600020015460f881901c9167ffffffffffffffff60b883901c169173ffffffffffffffffffffffffffffffffffffffff1690565b9196909550909350915050565b6000806000610758878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100e792505050565b60009081526066602052604090205473ffffffffffffffffffffffffffffffffffffffff81169860b89190911c67ffffffffffffffff16975095505050505050565b600054610100900460ff16158080156107ba5750600054600160ff909116105b806107d45750303b1580156107d4575060005460ff166001145b610860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610371565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108be57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108c6610d72565b6108cf82610cfb565b801561093257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61093e610b3d565b73ffffffffffffffffffffffffffffffffffffffff81166109e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610371565b6109ea81610cfb565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60006002825101603f8101600a81036040518360581b8260e81b177f6100003d81600a3d39f3363d3d373d3d3d3d610000806035363936013d7300001781528660601b601e8201527f5af43d3d93803e603357fd5bf300000000000000000000000000000000000000603282015285519150603f8101602087015b60208410610ac157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09093019260209182019101610a84565b517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602085900360031b1b16815260f085901b9083015282816000f0945084610b2e577febfef1880000000000000000000000000000000000000000000000000000000060005260206000fd5b90910160405250909392505050565b60335473ffffffffffffffffffffffffffffffffffffffff1633146106ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610371565b606081600003610c0157505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610c2b5780610c1581611281565b9150610c249050600a836112e8565b9150610c05565b60008167ffffffffffffffff811115610c4657610c46610ec2565b6040519080825280601f01601f191660200182016040528015610c70576020820181803683370190505b5090505b8415610cf357610c856001836112fc565b9150610c92600a86611313565b610c9d906030611327565b60f81b818381518110610cb257610cb2611223565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610cec600a866112e8565b9450610c74565b949350505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610e09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610371565b6106ae600054610100900460ff16610ea3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610371565b6106ae33610cfb565b803560ff81168114610ebd57600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600060608486031215610f0657600080fd5b610f0f84610eac565b925060208401359150604084013567ffffffffffffffff80821115610f3357600080fd5b818601915086601f830112610f4757600080fd5b813581811115610f5957610f59610ec2565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610f9f57610f9f610ec2565b81604052828152896020848701011115610fb857600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60008060008060608587031215610ff057600080fd5b610ff985610eac565b935060208501359250604085013567ffffffffffffffff8082111561101d57600080fd5b818701915087601f83011261103157600080fd5b81358181111561104057600080fd5b88602082850101111561105257600080fd5b95989497505060200194505050565b73ffffffffffffffffffffffffffffffffffffffff811681146109ea57600080fd5b6000806040838503121561109657600080fd5b61109f83610eac565b915060208301356110af81611061565b809150509250929050565b60005b838110156110d55781810151838201526020016110bd565b838111156110e4576000848401525b50505050565b60208152600082518060208401526111098160408501602087016110ba565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561114d57600080fd5b5035919050565b60006020828403121561116657600080fd5b813561117181611061565b9392505050565b60006020828403121561118a57600080fd5b61117182610eac565b838152818360208301376000910160200190815292915050565b600084516111bf8184602089016110ba565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516111fb816001850160208a016110ba565b600192019182015283516112168160028401602088016110ba565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036112b2576112b2611252565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826112f7576112f76112b9565b500490565b60008282101561130e5761130e611252565b500390565b600082611322576113226112b9565b500690565b6000821982111561133a5761133a611252565b50019056fea164736f6c634300080f000a496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069"
,
}
...
...
@@ -360,7 +360,7 @@ func (_DisputeGameFactory *DisputeGameFactoryCallerSession) Games(_gameType uint
// GetGameUUID is a free data retrieval call binding the contract method 0x26daafbe.
//
// Solidity: function getGameUUID(uint8 _gameType, bytes32 _rootClaim, bytes _extraData) pure returns(bytes32
_uuid
)
// Solidity: function getGameUUID(uint8 _gameType, bytes32 _rootClaim, bytes _extraData) pure returns(bytes32
uuid_
)
func
(
_DisputeGameFactory
*
DisputeGameFactoryCaller
)
GetGameUUID
(
opts
*
bind
.
CallOpts
,
_gameType
uint8
,
_rootClaim
[
32
]
byte
,
_extraData
[]
byte
)
([
32
]
byte
,
error
)
{
var
out
[]
interface
{}
err
:=
_DisputeGameFactory
.
contract
.
Call
(
opts
,
&
out
,
"getGameUUID"
,
_gameType
,
_rootClaim
,
_extraData
)
...
...
@@ -377,14 +377,14 @@ func (_DisputeGameFactory *DisputeGameFactoryCaller) GetGameUUID(opts *bind.Call
// GetGameUUID is a free data retrieval call binding the contract method 0x26daafbe.
//
// Solidity: function getGameUUID(uint8 _gameType, bytes32 _rootClaim, bytes _extraData) pure returns(bytes32
_uuid
)
// Solidity: function getGameUUID(uint8 _gameType, bytes32 _rootClaim, bytes _extraData) pure returns(bytes32
uuid_
)
func
(
_DisputeGameFactory
*
DisputeGameFactorySession
)
GetGameUUID
(
_gameType
uint8
,
_rootClaim
[
32
]
byte
,
_extraData
[]
byte
)
([
32
]
byte
,
error
)
{
return
_DisputeGameFactory
.
Contract
.
GetGameUUID
(
&
_DisputeGameFactory
.
CallOpts
,
_gameType
,
_rootClaim
,
_extraData
)
}
// GetGameUUID is a free data retrieval call binding the contract method 0x26daafbe.
//
// Solidity: function getGameUUID(uint8 _gameType, bytes32 _rootClaim, bytes _extraData) pure returns(bytes32
_uuid
)
// Solidity: function getGameUUID(uint8 _gameType, bytes32 _rootClaim, bytes _extraData) pure returns(bytes32
uuid_
)
func
(
_DisputeGameFactory
*
DisputeGameFactoryCallerSession
)
GetGameUUID
(
_gameType
uint8
,
_rootClaim
[
32
]
byte
,
_extraData
[]
byte
)
([
32
]
byte
,
error
)
{
return
_DisputeGameFactory
.
Contract
.
GetGameUUID
(
&
_DisputeGameFactory
.
CallOpts
,
_gameType
,
_rootClaim
,
_extraData
)
}
...
...
@@ -453,21 +453,21 @@ func (_DisputeGameFactory *DisputeGameFactoryCallerSession) Version() (string, e
// Create is a paid mutator transaction binding the contract method 0x3142e55e.
//
// Solidity: function create(uint8 _gameType, bytes32 _rootClaim, bytes _extraData) returns(address proxy)
// Solidity: function create(uint8 _gameType, bytes32 _rootClaim, bytes _extraData) returns(address proxy
_
)
func
(
_DisputeGameFactory
*
DisputeGameFactoryTransactor
)
Create
(
opts
*
bind
.
TransactOpts
,
_gameType
uint8
,
_rootClaim
[
32
]
byte
,
_extraData
[]
byte
)
(
*
types
.
Transaction
,
error
)
{
return
_DisputeGameFactory
.
contract
.
Transact
(
opts
,
"create"
,
_gameType
,
_rootClaim
,
_extraData
)
}
// Create is a paid mutator transaction binding the contract method 0x3142e55e.
//
// Solidity: function create(uint8 _gameType, bytes32 _rootClaim, bytes _extraData) returns(address proxy)
// Solidity: function create(uint8 _gameType, bytes32 _rootClaim, bytes _extraData) returns(address proxy
_
)
func
(
_DisputeGameFactory
*
DisputeGameFactorySession
)
Create
(
_gameType
uint8
,
_rootClaim
[
32
]
byte
,
_extraData
[]
byte
)
(
*
types
.
Transaction
,
error
)
{
return
_DisputeGameFactory
.
Contract
.
Create
(
&
_DisputeGameFactory
.
TransactOpts
,
_gameType
,
_rootClaim
,
_extraData
)
}
// Create is a paid mutator transaction binding the contract method 0x3142e55e.
//
// Solidity: function create(uint8 _gameType, bytes32 _rootClaim, bytes _extraData) returns(address proxy)
// Solidity: function create(uint8 _gameType, bytes32 _rootClaim, bytes _extraData) returns(address proxy
_
)
func
(
_DisputeGameFactory
*
DisputeGameFactoryTransactorSession
)
Create
(
_gameType
uint8
,
_rootClaim
[
32
]
byte
,
_extraData
[]
byte
)
(
*
types
.
Transaction
,
error
)
{
return
_DisputeGameFactory
.
Contract
.
Create
(
&
_DisputeGameFactory
.
TransactOpts
,
_gameType
,
_rootClaim
,
_extraData
)
}
...
...
packages/contracts-bedrock/src/dispute/DisputeGameFactory.sol
View file @
f09a411e
...
...
@@ -83,7 +83,7 @@ contract DisputeGameFactory is OwnableUpgradeable, IDisputeGameFactory, Semver {
bytes calldata _extraData
)
external
returns (IDisputeGame proxy)
returns (IDisputeGame proxy
_
)
{
// Grab the implementation contract for the given `GameType`.
IDisputeGame impl = gameImpls[_gameType];
...
...
@@ -92,8 +92,8 @@ contract DisputeGameFactory is OwnableUpgradeable, IDisputeGameFactory, Semver {
if (address(impl) == address(0)) revert NoImplementation(_gameType);
// Clone the implementation contract and initialize it with the given parameters.
proxy = IDisputeGame(address(impl).clone(abi.encodePacked(_rootClaim, _extraData)));
proxy.initialize();
proxy
_
= IDisputeGame(address(impl).clone(abi.encodePacked(_rootClaim, _extraData)));
proxy
_
.initialize();
// Compute the unique identifier for the dispute game.
Hash uuid = getGameUUID(_gameType, _rootClaim, _extraData);
...
...
@@ -101,12 +101,12 @@ contract DisputeGameFactory is OwnableUpgradeable, IDisputeGameFactory, Semver {
// If a dispute game with the same UUID already exists, revert.
if (GameId.unwrap(_disputeGames[uuid]) != bytes32(0)) revert GameAlreadyExists(uuid);
GameId id = LibGameId.pack(_gameType, Timestamp.wrap(uint64(block.timestamp)), proxy);
GameId id = LibGameId.pack(_gameType, Timestamp.wrap(uint64(block.timestamp)), proxy
_
);
// Store the dispute game id in the mapping & emit the `DisputeGameCreated` event.
_disputeGames[uuid] = id;
_disputeGameList.push(id);
emit DisputeGameCreated(address(proxy), _gameType, _rootClaim);
emit DisputeGameCreated(address(proxy
_
), _gameType, _rootClaim);
}
/// @inheritdoc IDisputeGameFactory
...
...
@@ -117,7 +117,7 @@ contract DisputeGameFactory is OwnableUpgradeable, IDisputeGameFactory, Semver {
)
public
pure
returns (Hash
_uuid
)
returns (Hash
uuid_
)
{
assembly {
// Grab the offsets of the other memory locations we will need to temporarily overwrite.
...
...
@@ -141,7 +141,7 @@ contract DisputeGameFactory is OwnableUpgradeable, IDisputeGameFactory, Semver {
let hashLen := and(add(mload(_extraData), 0x9F), not(0x1F))
// Hash the memory to produce the UUID digest
_uuid
:= keccak256(gameTypeOffset, hashLen)
uuid_
:= keccak256(gameTypeOffset, hashLen)
// Restore the memory prior to `extraData`
mstore(gameTypeOffset, tempA)
...
...
packages/contracts-bedrock/src/dispute/interfaces/IDisputeGameFactory.sol
View file @
f09a411e
...
...
@@ -26,16 +26,16 @@ interface IDisputeGameFactory {
/// @notice `games` queries an internal mapping that maps the hash of
/// `gameType ++ rootClaim ++ extraData` to the deployed `DisputeGame` clone.
/// @dev `++` equates to concatenation.
/// @param gameType The type of the DisputeGame - used to decide the proxy implementation
/// @param rootClaim The root claim of the DisputeGame.
/// @param extraData Any extra data that should be provided to the created dispute game.
/// @param
_
gameType The type of the DisputeGame - used to decide the proxy implementation
/// @param
_
rootClaim The root claim of the DisputeGame.
/// @param
_
extraData Any extra data that should be provided to the created dispute game.
/// @return proxy_ The clone of the `DisputeGame` created with the given parameters.
/// Returns `address(0)` if nonexistent.
/// @return timestamp_ The timestamp of the creation of the dispute game.
function games(
GameType gameType,
Claim rootClaim,
bytes calldata extraData
GameType
_
gameType,
Claim
_
rootClaim,
bytes calldata
_
extraData
)
external
view
...
...
@@ -56,9 +56,9 @@ interface IDisputeGameFactory {
/// @notice `gameImpls` is a mapping that maps `GameType`s to their respective
/// `IDisputeGame` implementations.
/// @param _gameType The type of the dispute game.
/// @return
_impl
The address of the implementation of the game type.
/// @return
impl_
The address of the implementation of the game type.
/// Will be cloned on creation of a new dispute game with the given `gameType`.
function gameImpls(GameType _gameType) external view returns (IDisputeGame
_impl
);
function gameImpls(GameType _gameType) external view returns (IDisputeGame
impl_
);
/// @notice Creates a new DisputeGame proxy contract.
/// @param _gameType The type of the DisputeGame - used to decide the proxy implementation.
...
...
@@ -85,7 +85,7 @@ interface IDisputeGameFactory {
/// @param _gameType The type of the DisputeGame.
/// @param _rootClaim The root claim of the DisputeGame.
/// @param _extraData Any extra data that should be provided to the created dispute game.
/// @return
_uuid
The unique identifier for the given dispute game parameters.
/// @return
uuid_
The unique identifier for the given dispute game parameters.
function getGameUUID(
GameType _gameType,
Claim _rootClaim,
...
...
@@ -93,5 +93,5 @@ interface IDisputeGameFactory {
)
external
pure
returns (Hash
_uuid
);
returns (Hash
uuid_
);
}
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