Skip to content

Commit a3f8850

Browse files
authored
op-challenger: Support retrieving the oracle and prestate via game args. (#17958)
The implementation contract doesn't always have the values embedded.
1 parent 4889b66 commit a3f8850

File tree

16 files changed

+1278
-284
lines changed

16 files changed

+1278
-284
lines changed

op-acceptance-tests/tests/base/disputegame_v2/init_test.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,5 @@ import (
77
)
88

99
func TestMain(m *testing.M) {
10-
// TODO(#17810): Use the new v2 dispute game flag via presets.WithDisputeGameV2()
11-
//presets.DoMain(m, presets.WithProofs(), presets.WithDisputeGameV2())
12-
presets.DoMain(m, presets.WithProofs())
10+
presets.DoMain(m, presets.WithProofs(), presets.WithDisputeGameV2())
1311
}

op-acceptance-tests/tests/base/disputegame_v2/smoke_test.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,27 @@ package disputegame_v2
33
import (
44
"testing"
55

6+
"github.com/ethereum-optimism/optimism/op-challenger/game/fault/contracts/gameargs"
67
challengerTypes "github.com/ethereum-optimism/optimism/op-challenger/game/fault/types"
78
"github.com/ethereum-optimism/optimism/op-devstack/devtest"
89
"github.com/ethereum-optimism/optimism/op-devstack/presets"
910
)
1011

1112
func TestSmoke(gt *testing.T) {
12-
gt.Skip("TODO(#17810): Re-enable once opcm.deploy supports v2 dispute games")
1313
t := devtest.SerialT(gt)
1414
sys := presets.NewMinimal(t)
1515
require := t.Require()
1616
dgf := sys.DisputeGameFactory()
1717

1818
gameArgs := dgf.GameArgs(challengerTypes.PermissionedGameType)
1919
require.NotEmpty(gameArgs, "game args is must be set for permissioned v2 dispute games")
20+
_, err := gameargs.Parse(gameArgs)
21+
require.NoError(err, "Permissioned game args invalid")
22+
2023
gameArgs = dgf.GameArgs(challengerTypes.CannonGameType)
2124
require.NotEmpty(gameArgs, "game args is must be set for cannon v2 dispute games")
25+
_, err = gameargs.Parse(gameArgs)
26+
require.NoError(err, "Permissionless game args invalid")
2227

2328
permissionedGame := dgf.GameImpl(challengerTypes.PermissionedGameType)
2429
require.NotEmpty(permissionedGame.Address, "permissioned game impl must be set")

op-chain-ops/cmd/unclaimed-credits/main.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,10 @@ func unclaimedCreditsApp(ctx *cli.Context) error {
7272
defer l1Client.Close()
7373

7474
caller := batching.NewMultiCaller(l1Client.Client(), batching.DefaultBatchSize)
75-
contract := contracts.NewDisputeGameFactoryContract(metrics.NoopContractMetrics, factoryAddr, caller)
75+
contract, err := contracts.NewDisputeGameFactoryContract(ctx.Context, metrics.NoopContractMetrics, factoryAddr, caller)
76+
if err != nil {
77+
return fmt.Errorf("failed to create dispute game factory contract: %w", err)
78+
}
7679
head, err := l1Client.HeaderByNumber(ctx.Context, nil)
7780
if err != nil {
7881
return fmt.Errorf("failed to retrieve current head block: %w", err)

op-challenger/cmd/create_game.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func CreateGame(ctx *cli.Context) error {
4343

4444
contract, txMgr, err := NewContractWithTxMgr[*contracts.DisputeGameFactoryContract](ctx, flags.FactoryAddress,
4545
func(ctx context.Context, metricer contractMetrics.ContractMetricer, address common.Address, caller *batching.MultiCaller) (*contracts.DisputeGameFactoryContract, error) {
46-
return contracts.NewDisputeGameFactoryContract(metricer, address, caller), nil
46+
return contracts.NewDisputeGameFactoryContract(ctx, metricer, address, caller)
4747
})
4848
if err != nil {
4949
return fmt.Errorf("failed to create dispute game factory bindings: %w", err)

op-challenger/cmd/list_games.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,10 @@ func ListGames(ctx *cli.Context) error {
7171
defer l1Client.Close()
7272

7373
caller := batching.NewMultiCaller(l1Client.Client(), batching.DefaultBatchSize)
74-
contract := contracts.NewDisputeGameFactoryContract(metrics.NoopContractMetrics, factoryAddr, caller)
74+
contract, err := contracts.NewDisputeGameFactoryContract(ctx.Context, metrics.NoopContractMetrics, factoryAddr, caller)
75+
if err != nil {
76+
return fmt.Errorf("failed to create dispute game factory contract: %w", err)
77+
}
7578
head, err := l1Client.HeaderByNumber(ctx.Context, nil)
7679
if err != nil {
7780
return fmt.Errorf("failed to retrieve current head block: %w", err)

0 commit comments

Comments
 (0)