Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
1,404 changes: 1,404 additions & 0 deletions op-node/bindings/disputegamefactory.go

Large diffs are not rendered by default.

647 changes: 647 additions & 0 deletions op-node/bindings/l1block.go

Large diffs are not rendered by default.

1,373 changes: 1,373 additions & 0 deletions op-node/bindings/l2outputoracle.go

Large diffs are not rendered by default.

699 changes: 699 additions & 0 deletions op-node/bindings/l2tol1messagepasser.go

Large diffs are not rendered by default.

1,360 changes: 1,360 additions & 0 deletions op-node/bindings/optimismportal.go

Large diffs are not rendered by default.

1,633 changes: 1,633 additions & 0 deletions op-node/bindings/preview/optimismportal2.go

Large diffs are not rendered by default.

46 changes: 25 additions & 21 deletions op-node/rollup/derive/fuzz_parsers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,15 @@ import (
"github.com/ethereum/go-ethereum/core/vm/runtime"
"github.com/ethereum/go-ethereum/crypto"

"github.com/ethereum-optimism/optimism/op-bindings/bindings"
"github.com/ethereum-optimism/optimism/op-node/bindings"
"github.com/ethereum-optimism/optimism/op-service/eth"
"github.com/ethereum-optimism/optimism/op-service/testutils"
)

var (
pk, _ = crypto.GenerateKey()
addr = common.Address{0x42, 0xff}
opts, _ = bind.NewKeyedTransactorWithChainID(pk, common.Big1)
from = crypto.PubkeyToAddress(pk.PublicKey)
portalContract, _ = bindings.NewOptimismPortal(addr, nil)
l1BlockInfoContract, _ = bindings.NewL1Block(addr, nil)
pk, _ = crypto.GenerateKey()
opts, _ = bind.NewKeyedTransactorWithChainID(pk, common.Big1)
from = crypto.PubkeyToAddress(pk.PublicKey)
)

func cap_byte_slice(b []byte, c int) []byte {
Expand Down Expand Up @@ -104,6 +101,9 @@ func FuzzL1InfoEcotoneRoundTrip(f *testing.F) {
// bindings. Note that we don't test setL1BlockValuesEcotone since it accepts only custom packed
// calldata and cannot be invoked using the generated bindings.
func FuzzL1InfoBedrockAgainstContract(f *testing.F) {
l1BlockInfoContract, err := bindings.NewL1Block(common.Address{0x42, 0xff}, nil)
require.NoError(f, err)

f.Fuzz(func(t *testing.T, number, time uint64, baseFee, hash []byte, seqNumber uint64, batcherHash []byte, l1FeeOverhead []byte, l1FeeScalar []byte) {
expected := L1BlockInfo{
Number: number,
Expand Down Expand Up @@ -231,6 +231,23 @@ func FuzzUnmarshallLogEvent(f *testing.F) {
f.Add(c.to.Bytes(), b(c.mint), b(c.value), []byte(c.data), c.gasLimit, c.isCreation)
}

// Set the EVM state up once to fuzz against
state, err := state.New(common.Hash{}, state.NewDatabase(rawdb.NewMemoryDatabase()), nil)
require.NoError(f, err)
state.SetBalance(from, uint256.MustFromBig(BytesToBigInt([]byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff})))
_, addr, _, err := runtime.Create(common.FromHex(bindings.OptimismPortalMetaData.Bin), &runtime.Config{
Origin: from,
State: state,
GasLimit: 20_000_000,
})
require.NoError(f, err)

_, err = state.Commit(0, false)
require.NoError(f, err)

portalContract, err := bindings.NewOptimismPortal(addr, nil)
require.NoError(f, err)
Comment thread
protolambda marked this conversation as resolved.

f.Fuzz(func(t *testing.T, _to, _mint, _value, data []byte, l2GasLimit uint64, isCreation bool) {
to := common.BytesToAddress(_to)
mint := BytesToBigInt(_mint)
Expand All @@ -244,20 +261,7 @@ func FuzzUnmarshallLogEvent(f *testing.F) {
opts.Nonce = common.Big0
// Create the deposit transaction
tx, err := portalContract.DepositTransaction(opts, to, value, l2GasLimit, isCreation, data)
if err != nil {
t.Fatal(err)
}

state, err := state.New(common.Hash{}, state.NewDatabase(rawdb.NewMemoryDatabase()), nil)
if err != nil {
t.Fatal(err)
}
state.SetBalance(from, uint256.MustFromBig(BytesToBigInt([]byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff})))
state.SetCode(addr, common.FromHex(bindings.OptimismPortalDeployedBin))
_, err = state.Commit(0, false)
if err != nil {
t.Fatal(err)
}
require.NoError(t, err)

cfg := runtime.Config{
Origin: from,
Expand Down
2 changes: 1 addition & 1 deletion op-node/rollup/output_root.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package rollup
import (
"errors"

"github.com/ethereum-optimism/optimism/op-bindings/bindings"
"github.com/ethereum-optimism/optimism/op-node/bindings"
"github.com/ethereum-optimism/optimism/op-service/eth"
)

Expand Down
4 changes: 2 additions & 2 deletions op-node/withdrawals/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ import (
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethclient/gethclient"

"github.com/ethereum-optimism/optimism/op-bindings/bindings"
"github.com/ethereum-optimism/optimism/op-bindings/bindingspreview"
"github.com/ethereum-optimism/optimism/op-bindings/predeploys"
"github.com/ethereum-optimism/optimism/op-node/bindings"
bindingspreview "github.com/ethereum-optimism/optimism/op-node/bindings/preview"
)

var MessagePassedTopic = crypto.Keccak256Hash([]byte("MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)"))
Expand Down
2 changes: 1 addition & 1 deletion op-node/withdrawals/utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
"path"
"testing"

"github.com/ethereum-optimism/optimism/op-bindings/bindings"
"github.com/ethereum-optimism/optimism/op-node/bindings"
"github.com/ethereum-optimism/optimism/op-service/testutils"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/hexutil"
Expand Down