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
772dbf30
Unverified
Commit
772dbf30
authored
Nov 13, 2023
by
Adrian Sutton
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
op-challenger: Create game contract when registering type so it can be customised.
parent
888e8c1c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
9 deletions
+14
-9
player.go
op-challenger/game/fault/player.go
+1
-7
register.go
op-challenger/game/fault/register.go
+13
-2
No files found.
op-challenger/game/fault/player.go
View file @
772dbf30
...
@@ -11,10 +11,8 @@ import (
...
@@ -11,10 +11,8 @@ import (
"github.com/ethereum-optimism/optimism/op-challenger/game/fault/types"
"github.com/ethereum-optimism/optimism/op-challenger/game/fault/types"
gameTypes
"github.com/ethereum-optimism/optimism/op-challenger/game/types"
gameTypes
"github.com/ethereum-optimism/optimism/op-challenger/game/types"
"github.com/ethereum-optimism/optimism/op-challenger/metrics"
"github.com/ethereum-optimism/optimism/op-challenger/metrics"
"github.com/ethereum-optimism/optimism/op-service/sources/batching"
"github.com/ethereum-optimism/optimism/op-service/txmgr"
"github.com/ethereum-optimism/optimism/op-service/txmgr"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/ethclient"
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/log"
)
)
...
@@ -47,14 +45,10 @@ func NewGamePlayer(
...
@@ -47,14 +45,10 @@ func NewGamePlayer(
dir
string
,
dir
string
,
addr
common
.
Address
,
addr
common
.
Address
,
txMgr
txmgr
.
TxManager
,
txMgr
txmgr
.
TxManager
,
client
*
ethclient
.
Clien
t
,
loader
*
contracts
.
FaultDisputeGameContrac
t
,
creator
resourceCreator
,
creator
resourceCreator
,
)
(
*
GamePlayer
,
error
)
{
)
(
*
GamePlayer
,
error
)
{
logger
=
logger
.
New
(
"game"
,
addr
)
logger
=
logger
.
New
(
"game"
,
addr
)
loader
,
err
:=
contracts
.
NewFaultDisputeGameContract
(
addr
,
batching
.
NewMultiCaller
(
client
.
Client
(),
batching
.
DefaultBatchSize
))
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"failed to create fault dispute game contract wrapper: %w"
,
err
)
}
status
,
err
:=
loader
.
GetStatus
(
ctx
)
status
,
err
:=
loader
.
GetStatus
(
ctx
)
if
err
!=
nil
{
if
err
!=
nil
{
...
...
op-challenger/game/fault/register.go
View file @
772dbf30
...
@@ -13,6 +13,7 @@ import (
...
@@ -13,6 +13,7 @@ import (
"github.com/ethereum-optimism/optimism/op-challenger/game/scheduler"
"github.com/ethereum-optimism/optimism/op-challenger/game/scheduler"
"github.com/ethereum-optimism/optimism/op-challenger/game/types"
"github.com/ethereum-optimism/optimism/op-challenger/game/types"
"github.com/ethereum-optimism/optimism/op-challenger/metrics"
"github.com/ethereum-optimism/optimism/op-challenger/metrics"
"github.com/ethereum-optimism/optimism/op-service/sources/batching"
"github.com/ethereum-optimism/optimism/op-service/txmgr"
"github.com/ethereum-optimism/optimism/op-service/txmgr"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/ethclient"
"github.com/ethereum/go-ethereum/ethclient"
...
@@ -37,6 +38,8 @@ func RegisterGameTypes(
...
@@ -37,6 +38,8 @@ func RegisterGameTypes(
txMgr
txmgr
.
TxManager
,
txMgr
txmgr
.
TxManager
,
client
*
ethclient
.
Client
,
client
*
ethclient
.
Client
,
)
{
)
{
multiCaller
:=
batching
.
NewMultiCaller
(
client
.
Client
(),
batching
.
DefaultBatchSize
)
if
cfg
.
TraceTypeEnabled
(
config
.
TraceTypeCannon
)
{
if
cfg
.
TraceTypeEnabled
(
config
.
TraceTypeCannon
)
{
resourceCreator
:=
func
(
addr
common
.
Address
,
contract
*
contracts
.
FaultDisputeGameContract
,
gameDepth
uint64
,
dir
string
)
(
faultTypes
.
TraceAccessor
,
faultTypes
.
OracleUpdater
,
gameValidator
,
error
)
{
resourceCreator
:=
func
(
addr
common
.
Address
,
contract
*
contracts
.
FaultDisputeGameContract
,
gameDepth
uint64
,
dir
string
)
(
faultTypes
.
TraceAccessor
,
faultTypes
.
OracleUpdater
,
gameValidator
,
error
)
{
provider
,
err
:=
cannon
.
NewTraceProvider
(
ctx
,
logger
,
m
,
cfg
,
contract
,
dir
,
gameDepth
)
provider
,
err
:=
cannon
.
NewTraceProvider
(
ctx
,
logger
,
m
,
cfg
,
contract
,
dir
,
gameDepth
)
...
@@ -53,7 +56,11 @@ func RegisterGameTypes(
...
@@ -53,7 +56,11 @@ func RegisterGameTypes(
return
trace
.
NewSimpleTraceAccessor
(
provider
),
updater
,
validator
,
nil
return
trace
.
NewSimpleTraceAccessor
(
provider
),
updater
,
validator
,
nil
}
}
playerCreator
:=
func
(
game
types
.
GameMetadata
,
dir
string
)
(
scheduler
.
GamePlayer
,
error
)
{
playerCreator
:=
func
(
game
types
.
GameMetadata
,
dir
string
)
(
scheduler
.
GamePlayer
,
error
)
{
return
NewGamePlayer
(
ctx
,
logger
,
m
,
cfg
,
dir
,
game
.
Proxy
,
txMgr
,
client
,
resourceCreator
)
gameContract
,
err
:=
contracts
.
NewFaultDisputeGameContract
(
game
.
Proxy
,
multiCaller
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"failed to create fault dispute game contract wrapper: %w"
,
err
)
}
return
NewGamePlayer
(
ctx
,
logger
,
m
,
cfg
,
dir
,
game
.
Proxy
,
txMgr
,
gameContract
,
resourceCreator
)
}
}
registry
.
RegisterGameType
(
cannonGameType
,
playerCreator
)
registry
.
RegisterGameType
(
cannonGameType
,
playerCreator
)
}
}
...
@@ -67,7 +74,11 @@ func RegisterGameTypes(
...
@@ -67,7 +74,11 @@ func RegisterGameTypes(
return
trace
.
NewSimpleTraceAccessor
(
provider
),
updater
,
validator
,
nil
return
trace
.
NewSimpleTraceAccessor
(
provider
),
updater
,
validator
,
nil
}
}
playerCreator
:=
func
(
game
types
.
GameMetadata
,
dir
string
)
(
scheduler
.
GamePlayer
,
error
)
{
playerCreator
:=
func
(
game
types
.
GameMetadata
,
dir
string
)
(
scheduler
.
GamePlayer
,
error
)
{
return
NewGamePlayer
(
ctx
,
logger
,
m
,
cfg
,
dir
,
game
.
Proxy
,
txMgr
,
client
,
resourceCreator
)
gameContract
,
err
:=
contracts
.
NewFaultDisputeGameContract
(
game
.
Proxy
,
multiCaller
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"failed to create fault dispute game contract wrapper: %w"
,
err
)
}
return
NewGamePlayer
(
ctx
,
logger
,
m
,
cfg
,
dir
,
game
.
Proxy
,
txMgr
,
gameContract
,
resourceCreator
)
}
}
registry
.
RegisterGameType
(
alphabetGameType
,
playerCreator
)
registry
.
RegisterGameType
(
alphabetGameType
,
playerCreator
)
}
}
...
...
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