Commit 0e44785f authored by Mark Tyneway's avatar Mark Tyneway Committed by GitHub

Merge pull request #4096 from ethereum-optimism/fix/log-set-storage

op-chain-ops: log when setting storage
parents 3b1dce10 7bd83a55
package bindings package bindings
import ( import (
"errors"
"fmt" "fmt"
"github.com/ethereum-optimism/optimism/op-bindings/solc" "github.com/ethereum-optimism/optimism/op-bindings/solc"
...@@ -15,7 +14,7 @@ var deployedBytecodes = make(map[string]string) ...@@ -15,7 +14,7 @@ var deployedBytecodes = make(map[string]string)
func GetStorageLayout(name string) (*solc.StorageLayout, error) { func GetStorageLayout(name string) (*solc.StorageLayout, error) {
layout := layouts[name] layout := layouts[name]
if layout == nil { if layout == nil {
return nil, errors.New("storage layout not found") return nil, fmt.Errorf("%s: storage layout not found", name)
} }
return layout, nil return layout, nil
} }
...@@ -23,7 +22,7 @@ func GetStorageLayout(name string) (*solc.StorageLayout, error) { ...@@ -23,7 +22,7 @@ func GetStorageLayout(name string) (*solc.StorageLayout, error) {
func GetDeployedBytecode(name string) ([]byte, error) { func GetDeployedBytecode(name string) ([]byte, error) {
bc := deployedBytecodes[name] bc := deployedBytecodes[name]
if bc == "" { if bc == "" {
return nil, fmt.Errorf("deployed bytecode %s not found", name) return nil, fmt.Errorf("%s: deployed bytecode not found", name)
} }
return common.FromHex(bc), nil return common.FromHex(bc), nil
......
...@@ -9,6 +9,7 @@ import ( ...@@ -9,6 +9,7 @@ import (
"github.com/ethereum-optimism/optimism/op-bindings/solc" "github.com/ethereum-optimism/optimism/op-bindings/solc"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/vm" "github.com/ethereum/go-ethereum/core/vm"
"github.com/ethereum/go-ethereum/log"
) )
var ( var (
...@@ -50,7 +51,7 @@ func EncodeStorage(entry solc.StorageLayoutEntry, value any, storageType solc.St ...@@ -50,7 +51,7 @@ func EncodeStorage(entry solc.StorageLayoutEntry, value any, storageType solc.St
func SetStorage(name string, address common.Address, values StorageValues, db vm.StateDB) error { func SetStorage(name string, address common.Address, values StorageValues, db vm.StateDB) error {
layout, err := bindings.GetStorageLayout(name) layout, err := bindings.GetStorageLayout(name)
if err != nil { if err != nil {
return err return fmt.Errorf("cannot set storage: %w", err)
} }
slots, err := ComputeStorageSlots(layout, values) slots, err := ComputeStorageSlots(layout, values)
if err != nil { if err != nil {
...@@ -58,6 +59,7 @@ func SetStorage(name string, address common.Address, values StorageValues, db vm ...@@ -58,6 +59,7 @@ func SetStorage(name string, address common.Address, values StorageValues, db vm
} }
for _, slot := range slots { for _, slot := range slots {
db.SetState(address, slot.Key, slot.Value) db.SetState(address, slot.Key, slot.Value)
log.Trace("setting storage", "address", address.Hex(), "key", slot.Key.Hex(), "value", slot.Value.Hex())
} }
return nil return nil
} }
......
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