Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions op-challenger/game/fault/trace/super/convert.go

This file was deleted.

60 changes: 0 additions & 60 deletions op-challenger/game/fault/trace/super/convert_test.go

This file was deleted.

2 changes: 1 addition & 1 deletion op-challenger/game/fault/trace/super/prestate.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,5 @@ func (s *SuperRootPrestateProvider) AbsolutePreState(ctx context.Context) (eth.S
} else if err != nil {
return nil, err
}
return responseToSuper(response), nil
return response.ToSuper()
}
4 changes: 3 additions & 1 deletion op-challenger/game/fault/trace/super/prestate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ func TestAbsolutePreState(t *testing.T) {
response := eth.SuperRootResponse{
Timestamp: 100,
SuperRoot: eth.Bytes32{0x11},
Version: eth.SuperRootVersionV1,
Chains: []eth.ChainRootInfo{
{
ChainID: eth.ChainID{2987},
Expand All @@ -39,7 +40,8 @@ func TestAbsolutePreState(t *testing.T) {
},
},
}
expectedPreimage := responseToSuper(response)
expectedPreimage, err := response.ToSuper()
require.NoError(t, err)
rootProvider := &stubRootProvider{
rootsByTimestamp: map[uint64]eth.SuperRootResponse{
100: response,
Expand Down
13 changes: 10 additions & 3 deletions op-challenger/game/fault/trace/super/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,11 @@ func (s *SuperTraceProvider) GetPreimageBytes(ctx context.Context, pos types.Pos
if root.CrossSafeDerivedFrom.Number > s.l1Head.Number {
return InvalidTransition, nil
}
return responseToSuper(root).Marshal(), nil
super, err := root.ToSuper()
if err != nil {
return nil, fmt.Errorf("failed to create super root at timestamp %v: %w", timestamp, err)
}
return super.Marshal(), nil
}
// Fetch the super root at the next timestamp since we are part way through the transition to it
prevRoot, err := s.rootProvider.SuperRootAtTimestamp(ctx, hexutil.Uint64(timestamp))
Expand Down Expand Up @@ -118,9 +122,12 @@ func (s *SuperTraceProvider) GetPreimageBytes(ctx context.Context, pos types.Pos
return nil, fmt.Errorf("failed to retrieve safe derived blocks at L1 head %v: %w", s.l1Head, err)
}
}
superV1 := responseToSuper(prevRoot)
prevSuper, err := prevRoot.ToSuper()
if err != nil {
return nil, fmt.Errorf("failed to create super root at timestamp %v: %w", timestamp, err)
}
expectedState := interopTypes.TransitionState{
SuperRoot: superV1.Marshal(),
SuperRoot: prevSuper.Marshal(),
PendingProgress: make([]interopTypes.OptimisticBlock, 0, step),
Step: step,
}
Expand Down
15 changes: 12 additions & 3 deletions op-challenger/game/fault/trace/super/provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ func TestGet(t *testing.T) {
CrossSafeDerivedFrom: l1Head,
Timestamp: poststateTimestamp,
SuperRoot: eth.Bytes32{0xaa},
Version: eth.SuperRootVersionV1,
Chains: []eth.ChainRootInfo{
{
ChainID: eth.ChainIDFromUInt64(1),
Expand All @@ -45,7 +46,8 @@ func TestGet(t *testing.T) {
stubSupervisor.Add(response)
claim, err := provider.Get(context.Background(), types.RootPosition)
require.NoError(t, err)
expected := responseToSuper(response)
expected, err := response.ToSuper()
require.NoError(t, err)
require.Equal(t, common.Hash(eth.SuperRoot(expected)), claim)
})

Expand All @@ -55,6 +57,7 @@ func TestGet(t *testing.T) {
CrossSafeDerivedFrom: l1Head,
Timestamp: prestateTimestamp + 1,
SuperRoot: eth.Bytes32{0xaa},
Version: eth.SuperRootVersionV1,
Chains: []eth.ChainRootInfo{
{
ChainID: eth.ChainIDFromUInt64(1),
Expand All @@ -66,7 +69,8 @@ func TestGet(t *testing.T) {
stubSupervisor.Add(response)
claim, err := provider.Get(context.Background(), types.NewPosition(gameDepth, big.NewInt(StepsPerTimestamp-1)))
require.NoError(t, err)
expected := responseToSuper(response)
expected, err := response.ToSuper()
require.NoError(t, err)
require.Equal(t, common.Hash(eth.SuperRoot(expected)), claim)
})

Expand All @@ -85,6 +89,7 @@ func TestGet(t *testing.T) {
CrossSafeDerivedFrom: eth.BlockID{Number: l1Head.Number - 10, Hash: common.Hash{0xcc}},
Timestamp: poststateTimestamp,
SuperRoot: eth.Bytes32{0xaa},
Version: eth.SuperRootVersionV1,
Chains: []eth.ChainRootInfo{
{
ChainID: eth.ChainIDFromUInt64(1),
Expand All @@ -96,7 +101,8 @@ func TestGet(t *testing.T) {
stubSupervisor.Add(response)
claim, err := provider.Get(context.Background(), types.RootPosition)
require.NoError(t, err)
expected := responseToSuper(response)
expected, err := response.ToSuper()
require.NoError(t, err)
require.Equal(t, common.Hash(eth.SuperRoot(expected)), claim)
})

Expand All @@ -106,6 +112,7 @@ func TestGet(t *testing.T) {
CrossSafeDerivedFrom: eth.BlockID{Number: l1Head.Number + 1, Hash: common.Hash{0xaa}},
Timestamp: poststateTimestamp,
SuperRoot: eth.Bytes32{0xaa},
Version: eth.SuperRootVersionV1,
Chains: []eth.ChainRootInfo{
{
ChainID: eth.ChainIDFromUInt64(1),
Expand Down Expand Up @@ -369,6 +376,7 @@ func createValidSuperRoots(l1Head eth.BlockID) (superRootData, superRootData) {
CrossSafeDerivedFrom: l1Head,
Timestamp: prestateTimestamp,
SuperRoot: eth.SuperRoot(prevSuper),
Version: eth.SuperRootVersionV1,
Chains: []eth.ChainRootInfo{
{
ChainID: eth.ChainIDFromUInt64(1),
Expand All @@ -386,6 +394,7 @@ func createValidSuperRoots(l1Head eth.BlockID) (superRootData, superRootData) {
CrossSafeDerivedFrom: l1Head,
Timestamp: prestateTimestamp + 1,
SuperRoot: eth.SuperRoot(nextSuper),
Version: eth.SuperRootVersionV1,
Chains: []eth.ChainRootInfo{
{
ChainID: eth.ChainIDFromUInt64(1),
Expand Down
22 changes: 16 additions & 6 deletions op-challenger/game/fault/trace/super/split_adapter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ func TestSplitAdapter(t *testing.T) {
t.Run("FromAbsolutePrestate", func(t *testing.T) {
creator, rootProvider, adapter := setupSplitAdapterTest(t, depth, prestateTimestamp, poststateTimestamp)
prestateResponse := eth.SuperRootResponse{
Version: eth.SuperRootVersionV1,
Timestamp: prestateTimestamp,
}
rootProvider.Add(prestateResponse)
Expand All @@ -35,11 +36,13 @@ func TestSplitAdapter(t *testing.T) {
Position: types.NewPosition(depth, big.NewInt(0)),
},
}
super, err := prestateResponse.ToSuper()
require.NoError(t, err)
expectedClaimInfo := ClaimInfo{
AgreedPrestate: responseToSuper(prestateResponse).Marshal(),
AgreedPrestate: super.Marshal(),
Claim: postClaim.Value,
}
_, err := adapter(context.Background(), depth, types.Claim{}, postClaim)
_, err = adapter(context.Background(), depth, types.Claim{}, postClaim)
require.ErrorIs(t, err, creatorError)
require.Equal(t, split.CreateLocalContext(types.Claim{}, postClaim), creator.localContext)
require.Equal(t, expectedClaimInfo, creator.claimInfo)
Expand All @@ -48,6 +51,7 @@ func TestSplitAdapter(t *testing.T) {
t.Run("AfterClaimedBlock", func(t *testing.T) {
creator, rootProvider, adapter := setupSplitAdapterTest(t, depth, prestateTimestamp, poststateTimestamp)
prestateResponse := eth.SuperRootResponse{
Version: eth.SuperRootVersionV1,
Timestamp: poststateTimestamp,
}
rootProvider.Add(prestateResponse)
Expand All @@ -63,11 +67,13 @@ func TestSplitAdapter(t *testing.T) {
Position: types.NewPosition(depth, big.NewInt(1_000_000)),
},
}
super, err := prestateResponse.ToSuper()
require.NoError(t, err)
expectedClaimInfo := ClaimInfo{
AgreedPrestate: responseToSuper(prestateResponse).Marshal(),
AgreedPrestate: super.Marshal(),
Claim: postClaim.Value,
}
_, err := adapter(context.Background(), depth, preClaim, postClaim)
_, err = adapter(context.Background(), depth, preClaim, postClaim)
require.ErrorIs(t, err, creatorError)
require.Equal(t, split.CreateLocalContext(preClaim, postClaim), creator.localContext)
require.Equal(t, expectedClaimInfo, creator.claimInfo)
Expand All @@ -76,10 +82,12 @@ func TestSplitAdapter(t *testing.T) {
t.Run("MiddleOfTimestampTransition", func(t *testing.T) {
creator, rootProvider, adapter := setupSplitAdapterTest(t, depth, prestateTimestamp, poststateTimestamp)
prestateResponse := eth.SuperRootResponse{
Version: eth.SuperRootVersionV1,
Timestamp: prestateTimestamp,
}
rootProvider.Add(prestateResponse)
rootProvider.Add(eth.SuperRootResponse{
Version: eth.SuperRootVersionV1,
Timestamp: prestateTimestamp + 1,
})
preClaim := types.Claim{
Expand All @@ -94,15 +102,17 @@ func TestSplitAdapter(t *testing.T) {
Position: types.NewPosition(depth, big.NewInt(3)),
},
}
super, err := prestateResponse.ToSuper()
require.NoError(t, err)
expectedPrestate := interopTypes.TransitionState{
SuperRoot: responseToSuper(prestateResponse).Marshal(),
SuperRoot: super.Marshal(),
Step: 3,
}
expectedClaimInfo := ClaimInfo{
AgreedPrestate: expectedPrestate.Marshal(),
Claim: postClaim.Value,
}
_, err := adapter(context.Background(), depth, preClaim, postClaim)
_, err = adapter(context.Background(), depth, preClaim, postClaim)
require.ErrorIs(t, err, creatorError)
require.Equal(t, split.CreateLocalContext(preClaim, postClaim), creator.localContext)
require.Equal(t, expectedClaimInfo, creator.claimInfo)
Expand Down
2 changes: 0 additions & 2 deletions op-proposer/proposer/abi_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (

"github.com/ethereum-optimism/optimism/op-proposer/bindings"
"github.com/ethereum-optimism/optimism/op-proposer/proposer/source"
"github.com/ethereum-optimism/optimism/op-service/eth"
"github.com/ethereum-optimism/optimism/op-service/testutils"
"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/accounts/abi/bind/backends"
Expand Down Expand Up @@ -60,7 +59,6 @@ func TestManualABIPacking(t *testing.T) {
require.NoError(t, err)

proposal := source.Proposal{
Version: eth.Bytes32{},
Root: testutils.RandomHash(rng),
CurrentL1: testutils.RandomBlockID(rng),
Legacy: source.LegacyProposalData{
Expand Down
6 changes: 1 addition & 5 deletions op-proposer/proposer/driver.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@ import (
)

var (
supportedL2OutputVersion = eth.Bytes32{}
ErrProposerNotRunning = errors.New("proposer is not running")
ErrProposerNotRunning = errors.New("proposer is not running")
)

type L1Client interface {
Expand Down Expand Up @@ -318,9 +317,6 @@ func (l *L2OutputSubmitter) FetchOutput(ctx context.Context, block uint64) (sour
if err != nil {
return source.Proposal{}, fmt.Errorf("fetching output at block %d: %w", block, err)
}
if output.Version != supportedL2OutputVersion {
return source.Proposal{}, fmt.Errorf("unsupported l2 output version: %v, supported: %v", output.Version, supportedL2OutputVersion)
}
if onum := output.SequenceNum; onum != block { // sanity check, e.g. in case of bad RPC caching
return source.Proposal{}, fmt.Errorf("output block number %d mismatches requested %d", output.SequenceNum, block)
}
Expand Down
2 changes: 1 addition & 1 deletion op-proposer/proposer/driver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ func TestL2OutputSubmitter_OutputRetry(t *testing.T) {
ep.rollupClient.ExpectOutputAtBlock(
42,
&eth.OutputResponse{
Version: supportedL2OutputVersion,
Version: eth.OutputVersionV0,
BlockRef: eth.L2BlockRef{Number: 42},
Status: &eth.SyncStatus{
CurrentL1: eth.L1BlockRef{Hash: common.Hash{}},
Expand Down
1 change: 0 additions & 1 deletion op-proposer/proposer/source/source.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (
)

type Proposal struct {
Version eth.Bytes32
// Root is the proposal hash
Root common.Hash
// SequenceNum identifies the position in the overall state transition.
Expand Down
8 changes: 7 additions & 1 deletion op-proposer/proposer/source/source_rollup.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@ import (
"fmt"

"github.com/ethereum-optimism/optimism/op-service/dial"
"github.com/ethereum-optimism/optimism/op-service/eth"
"github.com/ethereum/go-ethereum/common"
)

var supportedL2OutputVersion = eth.Bytes32{}

type RollupProposalSource struct {
provider dial.RollupProvider
}
Expand Down Expand Up @@ -47,8 +50,11 @@ func (r *RollupProposalSource) ProposalAtSequenceNum(ctx context.Context, blockN
if err != nil {
return Proposal{}, err
}

if output.Version != supportedL2OutputVersion {
return Proposal{}, fmt.Errorf("unsupported l2 output version: %v, supported: %v", output.Version, supportedL2OutputVersion)
}
return Proposal{
Version: output.Version,
Root: common.Hash(output.OutputRoot),
SequenceNum: output.BlockRef.Number,
CurrentL1: output.Status.CurrentL1.ID(),
Expand Down
1 change: 0 additions & 1 deletion op-proposer/proposer/source/source_supervisor.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,6 @@ func (s *SupervisorProposalSource) ProposalAtSequenceNum(ctx context.Context, ti
continue
}
return Proposal{
Version: eth.Bytes32{output.Version},
Root: common.Hash(output.SuperRoot),
SequenceNum: output.Timestamp,
CurrentL1: output.CrossSafeDerivedFrom,
Expand Down
1 change: 0 additions & 1 deletion op-proposer/proposer/source/source_supervisor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,6 @@ func TestSupervisorSource_ProposalAtSequenceNum(t *testing.T) {
Chains: nil,
}
expected := Proposal{
Version: eth.Bytes32{3},
Root: common.Hash(response.SuperRoot),
SequenceNum: response.Timestamp,
CurrentL1: response.CrossSafeDerivedFrom,
Expand Down
Loading