evm

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 24, 2025 License: AGPL-3.0 Imports: 38 Imported by: 1

Documentation

Index

Constants

View Source
const DefaultBlockGasLimit = 15000000
View Source
const DefaultGasPrice = 210000000

Variables

This section is empty.

Functions

func Execute

func Execute(currentBlockNumber uint64, stateDB *statedb.StateDB, blockDB keyvaluedb.KeyValueDB, attr *evmsdk.TxAttributes, _ *evmsdk.TxAuthProof, partitionID types.PartitionID, gp *core.GasPool, gasUnitPrice *big.Int, fake bool, log *slog.Logger) (*types.ServerMetadata, error)

func NewBlockContext

func NewBlockContext(currentBlockNumber uint64, blockDB keyvaluedb.KeyValueDB) vm.BlockContext

func NewChainConfig

func NewChainConfig(chainID *big.Int) *params.ChainConfig

NewChainConfig returns an Ethereum ChainConfig for EVM state transitions.

func NewTxContext

func NewTxContext(attr *evmsdk.TxAttributes, gasPrice *big.Int) vm.TxContext

func NewUnitData

func NewUnitData(unitID types.UnitID) (types.UnitData, error)

func NewVMConfig

func NewVMConfig() vm.Config

Types

type FeeAccount

type FeeAccount struct {
	// contains filtered or unexported fields
}

func (*FeeAccount) GenericTransactionValidator

func (f *FeeAccount) GenericTransactionValidator() genericTransactionValidator

func (*FeeAccount) TxHandlers added in v1.0.0

func (f *FeeAccount) TxHandlers() map[uint16]txtypes.TxExecutor

type FeeCalculator

type FeeCalculator func() uint64

func FixedFee

func FixedFee(fee uint64) FeeCalculator

type Module

type Module struct {
	// contains filtered or unexported fields
}

func NewEVMModule

func NewEVMModule(partitionID types.PartitionID, opts *Options, log *slog.Logger) (*Module, error)

func (*Module) GenericTransactionValidator

func (m *Module) GenericTransactionValidator() genericTransactionValidator

func (*Module) StartBlockFunc

func (m *Module) StartBlockFunc(blockGasLimit uint64) []func(blockNr uint64) error

func (*Module) TxHandlers added in v1.0.0

func (m *Module) TxHandlers() map[uint16]txtypes.TxExecutor

type Observability added in v1.0.0

type Observability interface {
	Tracer(name string, options ...trace.TracerOption) trace.Tracer
	TracerProvider() trace.TracerProvider

	Meter(name string, opts ...metric.MeterOption) metric.Meter
	PrometheusRegisterer() prometheus.Registerer

	Logger() *slog.Logger
	RoundLogger(curRound func() uint64) *slog.Logger

	Shutdown() error
}

type Option

type Option func(*Options)

func WithBlockDB

func WithBlockDB(blockDB keyvaluedb.KeyValueDB) Option

func WithBlockGasLimit

func WithBlockGasLimit(limit uint64) Option

func WithExecutedTransactions added in v1.0.0

func WithExecutedTransactions(executedTransactions map[string]uint64) Option

func WithGasPrice

func WithGasPrice(gasPrice uint64) Option

func WithHashAlgorithm

func WithHashAlgorithm(algorithm crypto.Hash) Option

func WithMoneyPartitionID added in v1.0.0

func WithMoneyPartitionID(moneyPartitionID types.PartitionID) Option

func WithState

func WithState(s *state.State) Option

func WithTrustBase

func WithTrustBase(tb types.RootTrustBase) Option

type Options

type Options struct {
	// contains filtered or unexported fields
}

type TxSystem

type TxSystem struct {
	// contains filtered or unexported fields
}

func NewEVMTxSystem

func NewEVMTxSystem(networkID types.NetworkID, partitionID types.PartitionID, observe Observability, opts ...Option) (*TxSystem, error)

func (*TxSystem) BeginBlock

func (m *TxSystem) BeginBlock(roundNo uint64) error

func (*TxSystem) Commit

func (m *TxSystem) Commit(uc *types.UnicityCertificate) error

func (*TxSystem) CommittedUC

func (m *TxSystem) CommittedUC() *types.UnicityCertificate

func (*TxSystem) CurrentBlockNumber

func (m *TxSystem) CurrentBlockNumber() uint64

func (*TxSystem) EndBlock

func (m *TxSystem) EndBlock() (*txsystem.StateSummary, error)

func (*TxSystem) Execute

func (m *TxSystem) Execute(tx *types.TransactionOrder) (txr *types.TransactionRecord, err error)

func (*TxSystem) IsFeelessMode added in v1.0.0

func (m *TxSystem) IsFeelessMode() bool

func (*TxSystem) IsPermissionedMode added in v1.0.0

func (m *TxSystem) IsPermissionedMode() bool

func (*TxSystem) Revert

func (m *TxSystem) Revert()

func (*TxSystem) SerializeState

func (m *TxSystem) SerializeState(w io.Writer) error

func (*TxSystem) State

func (m *TxSystem) State() txsystem.StateReader

func (*TxSystem) StateSize added in v1.0.0

func (m *TxSystem) StateSize() (uint64, error)

func (*TxSystem) StateSummary

func (m *TxSystem) StateSummary() (*txsystem.StateSummary, error)

func (*TxSystem) TypeID added in v1.0.0

func (m *TxSystem) TypeID() types.PartitionTypeID

type TxValidationContext

type TxValidationContext struct {
	Tx *types.TransactionOrder

	NetworkID   types.NetworkID
	PartitionID types.PartitionID
	BlockNumber uint64
	CustomData  []byte
	// contains filtered or unexported fields
}

func (*TxValidationContext) CalculateCost added in v1.0.0

func (vc *TxValidationContext) CalculateCost() uint64

func (*TxValidationContext) CommittedUC added in v1.0.0

func (vc *TxValidationContext) CommittedUC() *types.UnicityCertificate

func (*TxValidationContext) CurrentRound added in v1.0.0

func (vc *TxValidationContext) CurrentRound() uint64

func (*TxValidationContext) ExecutionType added in v1.0.0

func (vc *TxValidationContext) ExecutionType() txtypes.ExecutionType

func (*TxValidationContext) ExtraArgument added in v1.0.0

func (vc *TxValidationContext) ExtraArgument() ([]byte, error)

func (*TxValidationContext) GasAvailable added in v1.0.0

func (vc *TxValidationContext) GasAvailable() uint64

func (*TxValidationContext) GetData added in v1.0.0

func (vc *TxValidationContext) GetData() []byte

func (*TxValidationContext) GetUnit added in v1.0.0

func (vc *TxValidationContext) GetUnit(id types.UnitID, committed bool) (state.Unit, error)

func (*TxValidationContext) SetData added in v1.0.0

func (vc *TxValidationContext) SetData(data []byte)

func (*TxValidationContext) SetExecutionType added in v1.0.0

func (vc *TxValidationContext) SetExecutionType(exeType txtypes.ExecutionType)

func (*TxValidationContext) SpendGas added in v1.0.0

func (vc *TxValidationContext) SpendGas(gas uint64) error

func (*TxValidationContext) TransactionOrder added in v1.0.0

func (vc *TxValidationContext) TransactionOrder() (*types.TransactionOrder, error)

func (*TxValidationContext) TrustBase added in v1.0.0

func (vc *TxValidationContext) TrustBase(epoch uint64) (types.RootTrustBase, error)

func (*TxValidationContext) WithExArg added in v1.0.0

func (vc *TxValidationContext) WithExArg(f func() ([]byte, error)) txtypes.ExecutionContext

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL