From 95a5fc2fdb16e510e9dc056cfc932b61980c2862 Mon Sep 17 00:00:00 2001 From: Adrian Sutton Date: Fri, 19 Apr 2024 13:11:21 +1000 Subject: [PATCH 1/5] challenger: Load ABIs from the snapshots dir Removes dependency on generated bindings --- .../game/fault/contracts/faultdisputegame.go | 4 +-- .../op-stack-go/Dockerfile.dockerignore | 1 + ops/scripts/find-version.sh | 6 ++++ packages/contracts-bedrock/evil-abl.go | 28 +++++++++++++++++++ packages/contracts-bedrock/evil-abl_test.go | 25 +++++++++++++++++ 5 files changed, 62 insertions(+), 2 deletions(-) create mode 100755 ops/scripts/find-version.sh create mode 100644 packages/contracts-bedrock/evil-abl.go create mode 100644 packages/contracts-bedrock/evil-abl_test.go diff --git a/op-challenger/game/fault/contracts/faultdisputegame.go b/op-challenger/game/fault/contracts/faultdisputegame.go index 7c2472c5a4fe5..5d70d2af47553 100644 --- a/op-challenger/game/fault/contracts/faultdisputegame.go +++ b/op-challenger/game/fault/contracts/faultdisputegame.go @@ -8,13 +8,13 @@ import ( "math/big" "time" - "github.com/ethereum-optimism/optimism/op-bindings/bindings" "github.com/ethereum-optimism/optimism/op-challenger/game/fault/contracts/metrics" "github.com/ethereum-optimism/optimism/op-challenger/game/fault/types" gameTypes "github.com/ethereum-optimism/optimism/op-challenger/game/types" "github.com/ethereum-optimism/optimism/op-service/sources/batching" "github.com/ethereum-optimism/optimism/op-service/sources/batching/rpcblock" "github.com/ethereum-optimism/optimism/op-service/txmgr" + contracts_bedrock "github.com/ethereum-optimism/optimism/packages/contracts-bedrock" "github.com/ethereum/go-ethereum/common" ) @@ -58,7 +58,7 @@ type Proposal struct { } func NewFaultDisputeGameContract(metrics metrics.ContractMetricer, addr common.Address, caller *batching.MultiCaller) (*FaultDisputeGameContract, error) { - contractAbi, err := bindings.FaultDisputeGameMetaData.GetAbi() + contractAbi, err := contracts_bedrock.LoadFaultDisputeGameABI() if err != nil { return nil, fmt.Errorf("failed to load fault dispute game ABI: %w", err) } diff --git a/ops/docker/op-stack-go/Dockerfile.dockerignore b/ops/docker/op-stack-go/Dockerfile.dockerignore index 821978fb79921..0c648c54bd61e 100644 --- a/ops/docker/op-stack-go/Dockerfile.dockerignore +++ b/ops/docker/op-stack-go/Dockerfile.dockerignore @@ -8,6 +8,7 @@ !/op-bootnode !/op-chain-ops !/op-challenger +!/packages/contracts-bedrock !/op-dispute-mon !/op-conductor !/op-heartbeat diff --git a/ops/scripts/find-version.sh b/ops/scripts/find-version.sh new file mode 100755 index 0000000000000..f0e3392ed197c --- /dev/null +++ b/ops/scripts/find-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +set -euo pipefail + +NAME=${1:?Must specify release name} + +git describe --tags --candidates=100 --match="${NAME}/*" | sed "s/${NAME}\///" diff --git a/packages/contracts-bedrock/evil-abl.go b/packages/contracts-bedrock/evil-abl.go new file mode 100644 index 0000000000000..7bce7df768126 --- /dev/null +++ b/packages/contracts-bedrock/evil-abl.go @@ -0,0 +1,28 @@ +package contracts_bedrock + +import ( + "embed" + "fmt" + "path/filepath" + + "github.com/ethereum/go-ethereum/accounts/abi" +) + +//go:embed snapshots/abi +var abis embed.FS + +func LoadFaultDisputeGameABI() (*abi.ABI, error) { + return loadABI("FaultDisputeGame") +} + +func loadABI(name string) (*abi.ABI, error) { + in, err := abis.Open(filepath.Join("snapshots/abi", name+".json")) + if err != nil { + return nil, fmt.Errorf("failed to load ABI for contract %v: %w", name, err) + } + if parsed, err := abi.JSON(in); err != nil { + return nil, err + } else { + return &parsed, nil + } +} diff --git a/packages/contracts-bedrock/evil-abl_test.go b/packages/contracts-bedrock/evil-abl_test.go new file mode 100644 index 0000000000000..daa6bfd64ec60 --- /dev/null +++ b/packages/contracts-bedrock/evil-abl_test.go @@ -0,0 +1,25 @@ +package contracts_bedrock + +import ( + "testing" + + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/stretchr/testify/require" +) + +func TestLoadABIs(t *testing.T) { + tests := []struct { + contract string + method func() (*abi.ABI, error) + }{ + {"FaultDisputeGame", LoadFaultDisputeGameABI}, + } + for _, test := range tests { + test := test + t.Run(test.contract, func(t *testing.T) { + actual, err := test.method() + require.NoError(t, err) + require.NotNil(t, actual) + }) + } +} From f871f43df06ee6ed17b60f72e756a057cb1ba854 Mon Sep 17 00:00:00 2001 From: Adrian Sutton Date: Fri, 19 Apr 2024 13:30:10 +1000 Subject: [PATCH 2/5] Move loader to snapshots and convert the remaining challenger contract bindings --- .../game/fault/contracts/delayed_weth.go | 4 ++-- .../game/fault/contracts/faultdisputegame.go | 4 ++-- .../game/fault/contracts/gamefactory.go | 4 ++-- op-challenger/game/fault/contracts/oracle.go | 3 ++- op-challenger/game/fault/contracts/vm.go | 4 ++-- ops/docker/op-stack-go/Dockerfile.dockerignore | 2 +- .../{evil-abl.go => snapshots/abi_loader.go} | 18 +++++++++++++++--- .../abi_loader_test.go} | 2 +- 8 files changed, 27 insertions(+), 14 deletions(-) rename packages/contracts-bedrock/{evil-abl.go => snapshots/abi_loader.go} (52%) rename packages/contracts-bedrock/{evil-abl_test.go => snapshots/abi_loader_test.go} (94%) diff --git a/op-challenger/game/fault/contracts/delayed_weth.go b/op-challenger/game/fault/contracts/delayed_weth.go index 73f93e0e9b13a..ead18c42fe101 100644 --- a/op-challenger/game/fault/contracts/delayed_weth.go +++ b/op-challenger/game/fault/contracts/delayed_weth.go @@ -5,10 +5,10 @@ import ( "fmt" "math/big" - "github.com/ethereum-optimism/optimism/op-bindings/bindings" "github.com/ethereum-optimism/optimism/op-challenger/game/fault/contracts/metrics" "github.com/ethereum-optimism/optimism/op-service/sources/batching" "github.com/ethereum-optimism/optimism/op-service/sources/batching/rpcblock" + "github.com/ethereum-optimism/optimism/packages/contracts-bedrock/snapshots" "github.com/ethereum/go-ethereum/common" ) @@ -28,7 +28,7 @@ type WithdrawalRequest struct { } func NewDelayedWETHContract(metrics metrics.ContractMetricer, addr common.Address, caller *batching.MultiCaller) (*DelayedWETHContract, error) { - contractAbi, err := bindings.DelayedWETHMetaData.GetAbi() + contractAbi, err := snapshots.LoadDelayedWETHABI() if err != nil { return nil, fmt.Errorf("failed to load delayed weth ABI: %w", err) } diff --git a/op-challenger/game/fault/contracts/faultdisputegame.go b/op-challenger/game/fault/contracts/faultdisputegame.go index 5d70d2af47553..0ea6e5b53266d 100644 --- a/op-challenger/game/fault/contracts/faultdisputegame.go +++ b/op-challenger/game/fault/contracts/faultdisputegame.go @@ -14,7 +14,7 @@ import ( "github.com/ethereum-optimism/optimism/op-service/sources/batching" "github.com/ethereum-optimism/optimism/op-service/sources/batching/rpcblock" "github.com/ethereum-optimism/optimism/op-service/txmgr" - contracts_bedrock "github.com/ethereum-optimism/optimism/packages/contracts-bedrock" + "github.com/ethereum-optimism/optimism/packages/contracts-bedrock/snapshots" "github.com/ethereum/go-ethereum/common" ) @@ -58,7 +58,7 @@ type Proposal struct { } func NewFaultDisputeGameContract(metrics metrics.ContractMetricer, addr common.Address, caller *batching.MultiCaller) (*FaultDisputeGameContract, error) { - contractAbi, err := contracts_bedrock.LoadFaultDisputeGameABI() + contractAbi, err := snapshots.LoadFaultDisputeGameABI() if err != nil { return nil, fmt.Errorf("failed to load fault dispute game ABI: %w", err) } diff --git a/op-challenger/game/fault/contracts/gamefactory.go b/op-challenger/game/fault/contracts/gamefactory.go index e9a3d077691ea..97bbd68ae3aec 100644 --- a/op-challenger/game/fault/contracts/gamefactory.go +++ b/op-challenger/game/fault/contracts/gamefactory.go @@ -5,12 +5,12 @@ import ( "fmt" "math/big" - "github.com/ethereum-optimism/optimism/op-bindings/bindings" "github.com/ethereum-optimism/optimism/op-challenger/game/fault/contracts/metrics" "github.com/ethereum-optimism/optimism/op-challenger/game/types" "github.com/ethereum-optimism/optimism/op-service/sources/batching" "github.com/ethereum-optimism/optimism/op-service/sources/batching/rpcblock" "github.com/ethereum-optimism/optimism/op-service/txmgr" + "github.com/ethereum-optimism/optimism/packages/contracts-bedrock/snapshots" "github.com/ethereum/go-ethereum/common" ) @@ -30,7 +30,7 @@ type DisputeGameFactoryContract struct { } func NewDisputeGameFactoryContract(m metrics.ContractMetricer, addr common.Address, caller *batching.MultiCaller) (*DisputeGameFactoryContract, error) { - factoryAbi, err := bindings.DisputeGameFactoryMetaData.GetAbi() + factoryAbi, err := snapshots.LoadDisputeGameFactoryABI() if err != nil { return nil, fmt.Errorf("failed to load dispute game factory ABI: %w", err) } diff --git a/op-challenger/game/fault/contracts/oracle.go b/op-challenger/game/fault/contracts/oracle.go index 4524034cffe9e..c52fb7d464ac5 100644 --- a/op-challenger/game/fault/contracts/oracle.go +++ b/op-challenger/game/fault/contracts/oracle.go @@ -17,6 +17,7 @@ import ( "github.com/ethereum-optimism/optimism/op-service/sources/batching" "github.com/ethereum-optimism/optimism/op-service/sources/batching/rpcblock" "github.com/ethereum-optimism/optimism/op-service/txmgr" + "github.com/ethereum-optimism/optimism/packages/contracts-bedrock/snapshots" "github.com/ethereum/go-ethereum/common" ) @@ -72,7 +73,7 @@ func toPreimageOracleLeaf(l keccakTypes.Leaf) bindings.PreimageOracleLeaf { } func NewPreimageOracleContract(addr common.Address, caller *batching.MultiCaller) (*PreimageOracleContract, error) { - oracleAbi, err := bindings.PreimageOracleMetaData.GetAbi() + oracleAbi, err := snapshots.LoadPreimageOracleABI() if err != nil { return nil, fmt.Errorf("failed to load preimage oracle ABI: %w", err) } diff --git a/op-challenger/game/fault/contracts/vm.go b/op-challenger/game/fault/contracts/vm.go index 2fb354d89bd8f..806925a477ca7 100644 --- a/op-challenger/game/fault/contracts/vm.go +++ b/op-challenger/game/fault/contracts/vm.go @@ -4,9 +4,9 @@ import ( "context" "fmt" - "github.com/ethereum-optimism/optimism/op-bindings/bindings" "github.com/ethereum-optimism/optimism/op-service/sources/batching" "github.com/ethereum-optimism/optimism/op-service/sources/batching/rpcblock" + "github.com/ethereum-optimism/optimism/packages/contracts-bedrock/snapshots" "github.com/ethereum/go-ethereum/common" ) @@ -21,7 +21,7 @@ type VMContract struct { } func NewVMContract(addr common.Address, caller *batching.MultiCaller) (*VMContract, error) { - mipsAbi, err := bindings.MIPSMetaData.GetAbi() + mipsAbi, err := snapshots.LoadMIPSABI() if err != nil { return nil, fmt.Errorf("failed to load VM ABI: %w", err) } diff --git a/ops/docker/op-stack-go/Dockerfile.dockerignore b/ops/docker/op-stack-go/Dockerfile.dockerignore index 0c648c54bd61e..9512fe9fbc7c6 100644 --- a/ops/docker/op-stack-go/Dockerfile.dockerignore +++ b/ops/docker/op-stack-go/Dockerfile.dockerignore @@ -8,7 +8,7 @@ !/op-bootnode !/op-chain-ops !/op-challenger -!/packages/contracts-bedrock +!/packages/contracts-bedrock/snapshots !/op-dispute-mon !/op-conductor !/op-heartbeat diff --git a/packages/contracts-bedrock/evil-abl.go b/packages/contracts-bedrock/snapshots/abi_loader.go similarity index 52% rename from packages/contracts-bedrock/evil-abl.go rename to packages/contracts-bedrock/snapshots/abi_loader.go index 7bce7df768126..7a85327a2ed8f 100644 --- a/packages/contracts-bedrock/evil-abl.go +++ b/packages/contracts-bedrock/snapshots/abi_loader.go @@ -1,4 +1,4 @@ -package contracts_bedrock +package snapshots import ( "embed" @@ -8,15 +8,27 @@ import ( "github.com/ethereum/go-ethereum/accounts/abi" ) -//go:embed snapshots/abi +//go:embed abi var abis embed.FS +func LoadDisputeGameFactoryABI() (*abi.ABI, error) { + return loadABI("DisputeGameFactory") +} func LoadFaultDisputeGameABI() (*abi.ABI, error) { return loadABI("FaultDisputeGame") } +func LoadPreimageOracleABI() (*abi.ABI, error) { + return loadABI("PreimageOracle") +} +func LoadMIPSABI() (*abi.ABI, error) { + return loadABI("MIPS") +} +func LoadDelayedWETHABI() (*abi.ABI, error) { + return loadABI("DelayedWETH") +} func loadABI(name string) (*abi.ABI, error) { - in, err := abis.Open(filepath.Join("snapshots/abi", name+".json")) + in, err := abis.Open(filepath.Join("abi", name+".json")) if err != nil { return nil, fmt.Errorf("failed to load ABI for contract %v: %w", name, err) } diff --git a/packages/contracts-bedrock/evil-abl_test.go b/packages/contracts-bedrock/snapshots/abi_loader_test.go similarity index 94% rename from packages/contracts-bedrock/evil-abl_test.go rename to packages/contracts-bedrock/snapshots/abi_loader_test.go index daa6bfd64ec60..190abff59f2a5 100644 --- a/packages/contracts-bedrock/evil-abl_test.go +++ b/packages/contracts-bedrock/snapshots/abi_loader_test.go @@ -1,4 +1,4 @@ -package contracts_bedrock +package snapshots import ( "testing" From 9d9d5f2038fbea3177649585b6f34249b9a48f46 Mon Sep 17 00:00:00 2001 From: Adrian Sutton Date: Fri, 19 Apr 2024 13:38:48 +1000 Subject: [PATCH 3/5] Update tests --- packages/contracts-bedrock/snapshots/abi_loader_test.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/contracts-bedrock/snapshots/abi_loader_test.go b/packages/contracts-bedrock/snapshots/abi_loader_test.go index 190abff59f2a5..93c493ce05199 100644 --- a/packages/contracts-bedrock/snapshots/abi_loader_test.go +++ b/packages/contracts-bedrock/snapshots/abi_loader_test.go @@ -12,7 +12,11 @@ func TestLoadABIs(t *testing.T) { contract string method func() (*abi.ABI, error) }{ + {"DisputeGameFactory", LoadDisputeGameFactoryABI}, {"FaultDisputeGame", LoadFaultDisputeGameABI}, + {"PreimageOracle", LoadPreimageOracleABI}, + {"MIPS", LoadMIPSABI}, + {"DelayedWETH", LoadDelayedWETHABI}, } for _, test := range tests { test := test From 4c196b42665c6f9d00f2c8000d9b5489b31d26cb Mon Sep 17 00:00:00 2001 From: Adrian Sutton Date: Fri, 19 Apr 2024 13:50:22 +1000 Subject: [PATCH 4/5] Remove remaining references to bindings package. --- .../game/fault/contracts/delayed_weth_test.go | 4 ++-- .../fault/contracts/faultdisputegame_test.go | 8 +++---- .../game/fault/contracts/gamefactory_test.go | 4 ++-- op-challenger/game/fault/contracts/oracle.go | 21 ++++++++++++++----- .../game/fault/contracts/oracle_test.go | 12 +++++------ op-challenger/game/fault/contracts/vm_test.go | 4 ++-- 6 files changed, 32 insertions(+), 21 deletions(-) diff --git a/op-challenger/game/fault/contracts/delayed_weth_test.go b/op-challenger/game/fault/contracts/delayed_weth_test.go index 30d5b6c1aa68f..747172306e806 100644 --- a/op-challenger/game/fault/contracts/delayed_weth_test.go +++ b/op-challenger/game/fault/contracts/delayed_weth_test.go @@ -5,11 +5,11 @@ import ( "math/big" "testing" - "github.com/ethereum-optimism/optimism/op-bindings/bindings" contractMetrics "github.com/ethereum-optimism/optimism/op-challenger/game/fault/contracts/metrics" "github.com/ethereum-optimism/optimism/op-service/sources/batching" "github.com/ethereum-optimism/optimism/op-service/sources/batching/rpcblock" batchingTest "github.com/ethereum-optimism/optimism/op-service/sources/batching/test" + "github.com/ethereum-optimism/optimism/packages/contracts-bedrock/snapshots" "github.com/ethereum/go-ethereum/common" "github.com/stretchr/testify/require" ) @@ -42,7 +42,7 @@ func TestDelayedWeth_GetWithdrawals(t *testing.T) { } func setupDelayedWethTest(t *testing.T) (*batchingTest.AbiBasedRpc, *DelayedWETHContract) { - delayedWethAbi, err := bindings.DelayedWETHMetaData.GetAbi() + delayedWethAbi, err := snapshots.LoadDelayedWETHABI() require.NoError(t, err) stubRpc := batchingTest.NewAbiBasedRpc(t, delayedWeth, delayedWethAbi) caller := batching.NewMultiCaller(stubRpc, batching.DefaultBatchSize) diff --git a/op-challenger/game/fault/contracts/faultdisputegame_test.go b/op-challenger/game/fault/contracts/faultdisputegame_test.go index 5b3f965e3ddfb..8c9e9d398393a 100644 --- a/op-challenger/game/fault/contracts/faultdisputegame_test.go +++ b/op-challenger/game/fault/contracts/faultdisputegame_test.go @@ -8,7 +8,6 @@ import ( "testing" "time" - "github.com/ethereum-optimism/optimism/op-bindings/bindings" contractMetrics "github.com/ethereum-optimism/optimism/op-challenger/game/fault/contracts/metrics" faultTypes "github.com/ethereum-optimism/optimism/op-challenger/game/fault/types" "github.com/ethereum-optimism/optimism/op-challenger/game/types" @@ -16,6 +15,7 @@ import ( "github.com/ethereum-optimism/optimism/op-service/sources/batching/rpcblock" batchingTest "github.com/ethereum-optimism/optimism/op-service/sources/batching/test" "github.com/ethereum-optimism/optimism/op-service/txmgr" + "github.com/ethereum-optimism/optimism/packages/contracts-bedrock/snapshots" "github.com/ethereum/go-ethereum/common" "github.com/stretchr/testify/require" ) @@ -456,12 +456,12 @@ func TestFaultDisputeGame_ClaimCreditTx(t *testing.T) { } func setupFaultDisputeGameTest(t *testing.T) (*batchingTest.AbiBasedRpc, *FaultDisputeGameContract) { - fdgAbi, err := bindings.FaultDisputeGameMetaData.GetAbi() + fdgAbi, err := snapshots.LoadFaultDisputeGameABI() require.NoError(t, err) - vmAbi, err := bindings.MIPSMetaData.GetAbi() + vmAbi, err := snapshots.LoadMIPSABI() require.NoError(t, err) - oracleAbi, err := bindings.PreimageOracleMetaData.GetAbi() + oracleAbi, err := snapshots.LoadPreimageOracleABI() require.NoError(t, err) stubRpc := batchingTest.NewAbiBasedRpc(t, fdgAddr, fdgAbi) diff --git a/op-challenger/game/fault/contracts/gamefactory_test.go b/op-challenger/game/fault/contracts/gamefactory_test.go index 466215658f17c..bae27895e3669 100644 --- a/op-challenger/game/fault/contracts/gamefactory_test.go +++ b/op-challenger/game/fault/contracts/gamefactory_test.go @@ -7,12 +7,12 @@ import ( "slices" "testing" - "github.com/ethereum-optimism/optimism/op-bindings/bindings" "github.com/ethereum-optimism/optimism/op-challenger/game/fault/contracts/metrics" "github.com/ethereum-optimism/optimism/op-challenger/game/types" "github.com/ethereum-optimism/optimism/op-service/sources/batching" "github.com/ethereum-optimism/optimism/op-service/sources/batching/rpcblock" batchingTest "github.com/ethereum-optimism/optimism/op-service/sources/batching/test" + "github.com/ethereum-optimism/optimism/packages/contracts-bedrock/snapshots" "github.com/ethereum/go-ethereum/common" "github.com/stretchr/testify/require" ) @@ -224,7 +224,7 @@ func TestCreateTx(t *testing.T) { } func setupDisputeGameFactoryTest(t *testing.T) (*batchingTest.AbiBasedRpc, *DisputeGameFactoryContract) { - fdgAbi, err := bindings.DisputeGameFactoryMetaData.GetAbi() + fdgAbi, err := snapshots.LoadDisputeGameFactoryABI() require.NoError(t, err) stubRpc := batchingTest.NewAbiBasedRpc(t, factoryAddr, fdgAbi) diff --git a/op-challenger/game/fault/contracts/oracle.go b/op-challenger/game/fault/contracts/oracle.go index c52fb7d464ac5..95ba59ce7881b 100644 --- a/op-challenger/game/fault/contracts/oracle.go +++ b/op-challenger/game/fault/contracts/oracle.go @@ -9,7 +9,6 @@ import ( "math/big" "sync/atomic" - "github.com/ethereum-optimism/optimism/op-bindings/bindings" "github.com/ethereum-optimism/optimism/op-challenger/game/fault/types" "github.com/ethereum-optimism/optimism/op-challenger/game/keccak/merkle" keccakTypes "github.com/ethereum-optimism/optimism/op-challenger/game/keccak/types" @@ -49,6 +48,18 @@ var ( ErrUnsupportedKeyType = errors.New("unsupported preimage key type") ) +// preimageOracleLeaf matches the contract representation of a large preimage leaf +type preimageOracleLeaf struct { + Input []byte + Index *big.Int + StateCommitment [32]byte +} + +// libKeccakStateMatrix matches the contract representation of a keccak state matrix +type libKeccakStateMatrix struct { + State [25]uint64 +} + // PreimageOracleContract is a binding that works with contracts implementing the IPreimageOracle interface type PreimageOracleContract struct { addr common.Address @@ -64,8 +75,8 @@ type PreimageOracleContract struct { } // toPreimageOracleLeaf converts a Leaf to the contract [bindings.PreimageOracleLeaf] type. -func toPreimageOracleLeaf(l keccakTypes.Leaf) bindings.PreimageOracleLeaf { - return bindings.PreimageOracleLeaf{ +func toPreimageOracleLeaf(l keccakTypes.Leaf) preimageOracleLeaf { + return preimageOracleLeaf{ Input: l.Input[:], Index: new(big.Int).SetUint64(l.Index), StateCommitment: l.StateCommitment, @@ -193,8 +204,8 @@ func (c *PreimageOracleContract) Squeeze( return call.ToTxCandidate() } -func abiEncodeSnapshot(packedState keccakTypes.StateSnapshot) bindings.LibKeccakStateMatrix { - return bindings.LibKeccakStateMatrix{State: packedState} +func abiEncodeSnapshot(packedState keccakTypes.StateSnapshot) libKeccakStateMatrix { + return libKeccakStateMatrix{State: packedState} } func (c *PreimageOracleContract) GetActivePreimages(ctx context.Context, blockHash common.Hash) ([]keccakTypes.LargePreimageMetaData, error) { diff --git a/op-challenger/game/fault/contracts/oracle_test.go b/op-challenger/game/fault/contracts/oracle_test.go index 0a65b239aef4a..415d671ed650f 100644 --- a/op-challenger/game/fault/contracts/oracle_test.go +++ b/op-challenger/game/fault/contracts/oracle_test.go @@ -8,7 +8,6 @@ import ( "math/rand" "testing" - "github.com/ethereum-optimism/optimism/op-bindings/bindings" "github.com/ethereum-optimism/optimism/op-challenger/game/fault/types" "github.com/ethereum-optimism/optimism/op-challenger/game/keccak/merkle" keccakTypes "github.com/ethereum-optimism/optimism/op-challenger/game/keccak/types" @@ -17,6 +16,7 @@ import ( "github.com/ethereum-optimism/optimism/op-service/sources/batching/rpcblock" batchingTest "github.com/ethereum-optimism/optimism/op-service/sources/batching/test" "github.com/ethereum-optimism/optimism/op-service/testutils" + "github.com/ethereum-optimism/optimism/packages/contracts-bedrock/snapshots" "github.com/ethereum/go-ethereum/common" "github.com/stretchr/testify/require" ) @@ -355,7 +355,7 @@ func setupPreimageOracleTestWithProposals(t *testing.T, block rpcblock.Block) (* } func setupPreimageOracleTest(t *testing.T) (*batchingTest.AbiBasedRpc, *PreimageOracleContract) { - oracleAbi, err := bindings.PreimageOracleMetaData.GetAbi() + oracleAbi, err := snapshots.LoadPreimageOracleABI() require.NoError(t, err) stubRpc := batchingTest.NewAbiBasedRpc(t, oracleAddr, oracleAbi) @@ -593,7 +593,7 @@ func TestChallenge_First(t *testing.T) { stubRpc.SetResponse(oracleAddr, methodChallengeFirstLPP, rpcblock.Latest, []interface{}{ ident.Claimant, ident.UUID, - bindings.PreimageOracleLeaf{ + preimageOracleLeaf{ Input: challenge.Poststate.Input[:], Index: new(big.Int).SetUint64(challenge.Poststate.Index), StateCommitment: challenge.Poststate.StateCommitment, @@ -631,14 +631,14 @@ func TestChallenge_NotFirst(t *testing.T) { stubRpc.SetResponse(oracleAddr, methodChallengeLPP, rpcblock.Latest, []interface{}{ ident.Claimant, ident.UUID, - bindings.LibKeccakStateMatrix{State: challenge.StateMatrix}, - bindings.PreimageOracleLeaf{ + libKeccakStateMatrix{State: challenge.StateMatrix}, + preimageOracleLeaf{ Input: challenge.Prestate.Input[:], Index: new(big.Int).SetUint64(challenge.Prestate.Index), StateCommitment: challenge.Prestate.StateCommitment, }, challenge.PrestateProof, - bindings.PreimageOracleLeaf{ + preimageOracleLeaf{ Input: challenge.Poststate.Input[:], Index: new(big.Int).SetUint64(challenge.Poststate.Index), StateCommitment: challenge.Poststate.StateCommitment, diff --git a/op-challenger/game/fault/contracts/vm_test.go b/op-challenger/game/fault/contracts/vm_test.go index 13758ccd6500c..ede05eac19233 100644 --- a/op-challenger/game/fault/contracts/vm_test.go +++ b/op-challenger/game/fault/contracts/vm_test.go @@ -4,18 +4,18 @@ import ( "context" "testing" - "github.com/ethereum-optimism/optimism/op-bindings/bindings" "github.com/ethereum-optimism/optimism/op-challenger/game/fault/types" preimage "github.com/ethereum-optimism/optimism/op-preimage" "github.com/ethereum-optimism/optimism/op-service/sources/batching" "github.com/ethereum-optimism/optimism/op-service/sources/batching/rpcblock" batchingTest "github.com/ethereum-optimism/optimism/op-service/sources/batching/test" + "github.com/ethereum-optimism/optimism/packages/contracts-bedrock/snapshots" "github.com/ethereum/go-ethereum/common" "github.com/stretchr/testify/require" ) func TestVMContract_Oracle(t *testing.T) { - vmAbi, err := bindings.MIPSMetaData.GetAbi() + vmAbi, err := snapshots.LoadMIPSABI() require.NoError(t, err) stubRpc := batchingTest.NewAbiBasedRpc(t, vmAddr, vmAbi) From 9c386aa1eb2106048ed3ac1f9233880c7d96669f Mon Sep 17 00:00:00 2001 From: Adrian Sutton Date: Fri, 19 Apr 2024 13:57:05 +1000 Subject: [PATCH 5/5] Fix comment --- op-challenger/game/fault/contracts/oracle.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/op-challenger/game/fault/contracts/oracle.go b/op-challenger/game/fault/contracts/oracle.go index 95ba59ce7881b..22577665b48be 100644 --- a/op-challenger/game/fault/contracts/oracle.go +++ b/op-challenger/game/fault/contracts/oracle.go @@ -74,7 +74,7 @@ type PreimageOracleContract struct { minBondSizeLPP atomic.Uint64 } -// toPreimageOracleLeaf converts a Leaf to the contract [bindings.PreimageOracleLeaf] type. +// toPreimageOracleLeaf converts a Leaf to the contract format. func toPreimageOracleLeaf(l keccakTypes.Leaf) preimageOracleLeaf { return preimageOracleLeaf{ Input: l.Input[:],