Commit 1e956691 authored by Andreas Bigger's avatar Andreas Bigger

Update with position type in trace provider

parent 5d0c3b3e
...@@ -15,8 +15,7 @@ var ( ...@@ -15,8 +15,7 @@ var (
NoProvidersErr = fmt.Errorf("no trace providers configured") NoProvidersErr = fmt.Errorf("no trace providers configured")
) )
// todo(refcell): the Get method traceIndex is update to be a Position so we have the depth var _ types.TraceProvider = (*SplitTraceProvider)(nil)
// var _ types.TraceProvider = (*SplitTraceProvider)(nil)
// SplitTraceProvider is a [types.TraceProvider] implementation that // SplitTraceProvider is a [types.TraceProvider] implementation that
// routes requests to the correct internal trace provider based on the // routes requests to the correct internal trace provider based on the
...@@ -56,8 +55,7 @@ func (s *SplitTraceProvider) Get(ctx context.Context, pos types.Position) (commo ...@@ -56,8 +55,7 @@ func (s *SplitTraceProvider) Get(ctx context.Context, pos types.Position) (commo
} }
reduced, provider := s.providerForDepth(uint64(pos.Depth())) reduced, provider := s.providerForDepth(uint64(pos.Depth()))
localizedPosition := pos.Localize(reduced) localizedPosition := pos.Localize(reduced)
// todo(refcell): we should just pass the localized position once `Get` is updated to accept a Position return provider.Get(ctx, localizedPosition)
return provider.Get(ctx, localizedPosition.ToGIndex())
} }
// AbsolutePreStateCommitment returns the absolute prestate from the lowest internal [types.TraceProvider] // AbsolutePreStateCommitment returns the absolute prestate from the lowest internal [types.TraceProvider]
...@@ -77,7 +75,7 @@ func (s *SplitTraceProvider) AbsolutePreState(ctx context.Context) (preimage []b ...@@ -77,7 +75,7 @@ func (s *SplitTraceProvider) AbsolutePreState(ctx context.Context) (preimage []b
} }
// GetStepData routes the GetStepData request to the lowest internal [types.TraceProvider]. // GetStepData routes the GetStepData request to the lowest internal [types.TraceProvider].
func (s *SplitTraceProvider) GetStepData(ctx context.Context, i uint64) (prestate []byte, proofData []byte, preimageData *types.PreimageOracleData, err error) { func (s *SplitTraceProvider) GetStepData(ctx context.Context, i types.Position) (prestate []byte, proofData []byte, preimageData *types.PreimageOracleData, err error) {
if len(s.providers) == 0 { if len(s.providers) == 0 {
return nil, nil, nil, NoProvidersErr return nil, nil, nil, NoProvidersErr
} }
......
...@@ -6,7 +6,7 @@ import ( ...@@ -6,7 +6,7 @@ import (
"testing" "testing"
"github.com/ethereum-optimism/optimism/op-challenger/game/fault/types" "github.com/ethereum-optimism/optimism/op-challenger/game/fault/types"
"github.com/ethereum-optimism/optimism/op-node/testlog" "github.com/ethereum-optimism/optimism/op-service/testlog"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/log"
...@@ -105,7 +105,7 @@ func TestGetStepData(t *testing.T) { ...@@ -105,7 +105,7 @@ func TestGetStepData(t *testing.T) {
providers: []types.TraceProvider{&mockOutputProvider}, providers: []types.TraceProvider{&mockOutputProvider},
depthTiers: []uint64{40}, depthTiers: []uint64{40},
} }
_, _, _, err := splitProvider.GetStepData(context.Background(), 0) _, _, _, err := splitProvider.GetStepData(context.Background(), types.NewPosition(0, 0))
require.ErrorIs(t, err, mockGetError) require.ErrorIs(t, err, mockGetError)
}) })
} }
...@@ -119,11 +119,11 @@ type mockTraceProvider struct { ...@@ -119,11 +119,11 @@ type mockTraceProvider struct {
getStepDataError error getStepDataError error
} }
func (m *mockTraceProvider) Get(ctx context.Context, i uint64) (common.Hash, error) { func (m *mockTraceProvider) Get(ctx context.Context, pos types.Position) (common.Hash, error) {
if m.getError != nil { if m.getError != nil {
return common.Hash{}, m.getError return common.Hash{}, m.getError
} }
return common.BytesToHash([]byte{byte(i)}), nil return common.BytesToHash([]byte{byte(pos.ToGIndex())}), nil
} }
func (m *mockTraceProvider) AbsolutePreStateCommitment(ctx context.Context) (hash common.Hash, err error) { func (m *mockTraceProvider) AbsolutePreStateCommitment(ctx context.Context) (hash common.Hash, err error) {
...@@ -140,7 +140,7 @@ func (m *mockTraceProvider) AbsolutePreState(ctx context.Context) (preimage []by ...@@ -140,7 +140,7 @@ func (m *mockTraceProvider) AbsolutePreState(ctx context.Context) (preimage []by
return []byte{}, nil return []byte{}, nil
} }
func (m *mockTraceProvider) GetStepData(ctx context.Context, i uint64) ([]byte, []byte, *types.PreimageOracleData, error) { func (m *mockTraceProvider) GetStepData(ctx context.Context, pos types.Position) ([]byte, []byte, *types.PreimageOracleData, error) {
if m.getStepDataError != nil { if m.getStepDataError != nil {
return nil, nil, nil, m.getStepDataError return nil, nil, nil, m.getStepDataError
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment