github.1485827954.workers.dev/ethereum/go-ethereum@v1.14.3/eth/tracers/live/noop.go (about)

     1  package live
     2  
     3  import (
     4  	"encoding/json"
     5  	"math/big"
     6  
     7  	"github.com/ethereum/go-ethereum/common"
     8  	"github.com/ethereum/go-ethereum/core/tracing"
     9  	"github.com/ethereum/go-ethereum/core/types"
    10  	"github.com/ethereum/go-ethereum/eth/tracers"
    11  	"github.com/ethereum/go-ethereum/params"
    12  )
    13  
    14  func init() {
    15  	tracers.LiveDirectory.Register("noop", newNoopTracer)
    16  }
    17  
    18  // noop is a no-op live tracer. It's there to
    19  // catch changes in the tracing interface, as well as
    20  // for testing live tracing performance. Can be removed
    21  // as soon as we have a real live tracer.
    22  type noop struct{}
    23  
    24  func newNoopTracer(_ json.RawMessage) (*tracing.Hooks, error) {
    25  	t := &noop{}
    26  	return &tracing.Hooks{
    27  		OnTxStart:        t.OnTxStart,
    28  		OnTxEnd:          t.OnTxEnd,
    29  		OnEnter:          t.OnEnter,
    30  		OnExit:           t.OnExit,
    31  		OnOpcode:         t.OnOpcode,
    32  		OnFault:          t.OnFault,
    33  		OnGasChange:      t.OnGasChange,
    34  		OnBlockchainInit: t.OnBlockchainInit,
    35  		OnBlockStart:     t.OnBlockStart,
    36  		OnBlockEnd:       t.OnBlockEnd,
    37  		OnSkippedBlock:   t.OnSkippedBlock,
    38  		OnGenesisBlock:   t.OnGenesisBlock,
    39  		OnBalanceChange:  t.OnBalanceChange,
    40  		OnNonceChange:    t.OnNonceChange,
    41  		OnCodeChange:     t.OnCodeChange,
    42  		OnStorageChange:  t.OnStorageChange,
    43  		OnLog:            t.OnLog,
    44  	}, nil
    45  }
    46  
    47  func (t *noop) OnOpcode(pc uint64, op byte, gas, cost uint64, scope tracing.OpContext, rData []byte, depth int, err error) {
    48  }
    49  
    50  func (t *noop) OnFault(pc uint64, op byte, gas, cost uint64, _ tracing.OpContext, depth int, err error) {
    51  }
    52  
    53  func (t *noop) OnEnter(depth int, typ byte, from common.Address, to common.Address, input []byte, gas uint64, value *big.Int) {
    54  }
    55  
    56  func (t *noop) OnExit(depth int, output []byte, gasUsed uint64, err error, reverted bool) {
    57  }
    58  
    59  func (t *noop) OnTxStart(vm *tracing.VMContext, tx *types.Transaction, from common.Address) {
    60  }
    61  
    62  func (t *noop) OnTxEnd(receipt *types.Receipt, err error) {
    63  }
    64  
    65  func (t *noop) OnBlockStart(ev tracing.BlockEvent) {
    66  }
    67  
    68  func (t *noop) OnBlockEnd(err error) {
    69  }
    70  
    71  func (t *noop) OnSkippedBlock(ev tracing.BlockEvent) {}
    72  
    73  func (t *noop) OnBlockchainInit(chainConfig *params.ChainConfig) {
    74  }
    75  
    76  func (t *noop) OnGenesisBlock(b *types.Block, alloc types.GenesisAlloc) {
    77  }
    78  
    79  func (t *noop) OnBalanceChange(a common.Address, prev, new *big.Int, reason tracing.BalanceChangeReason) {
    80  }
    81  
    82  func (t *noop) OnNonceChange(a common.Address, prev, new uint64) {
    83  }
    84  
    85  func (t *noop) OnCodeChange(a common.Address, prevCodeHash common.Hash, prev []byte, codeHash common.Hash, code []byte) {
    86  }
    87  
    88  func (t *noop) OnStorageChange(a common.Address, k, prev, new common.Hash) {
    89  }
    90  
    91  func (t *noop) OnLog(l *types.Log) {
    92  
    93  }
    94  
    95  func (t *noop) OnGasChange(old, new uint64, reason tracing.GasChangeReason) {
    96  }