evm

package
v1.0.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Nov 29, 2024 License: AGPL-3.0 Imports: 33 Imported by: 1

Documentation

Index

Constants

View Source
const (
	UnitIDLength   = UnitPartLength + TypePartLength
	UnitPartLength = 32
	TypePartLength = 0
)
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, partitionIdentifier 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 NewFeeCreditRecordID

func NewFeeCreditRecordID(shardPart []byte, unitPart []byte) types.UnitID

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

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(partitionIdentifier 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

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

type Observability

type Observability interface {
	RoundLogger(curRound func() uint64) *slog.Logger
}

type Option

type Option func(*Options)

func WithBlockDB

func WithBlockDB(blockDB keyvaluedb.KeyValueDB) Option

func WithBlockGasLimit

func WithBlockGasLimit(limit uint64) Option

func WithGasPrice

func WithGasPrice(gasPrice uint64) Option

func WithHashAlgorithm

func WithHashAlgorithm(algorithm gocrypto.Hash) Option

func WithMoneyPartitionID

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

func (m *TxSystem) IsFeelessMode() bool

func (*TxSystem) IsPermissionedMode

func (m *TxSystem) IsPermissionedMode() bool

func (*TxSystem) Revert

func (m *TxSystem) Revert()

func (*TxSystem) State

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

func (*TxSystem) StateSize

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

func (*TxSystem) StateSummary

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

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

func (vc *TxValidationContext) CalculateCost() uint64

func (*TxValidationContext) CurrentRound

func (vc *TxValidationContext) CurrentRound() uint64

func (*TxValidationContext) GasAvailable

func (vc *TxValidationContext) GasAvailable() uint64

func (*TxValidationContext) GetData

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

func (*TxValidationContext) GetUnit

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

func (*TxValidationContext) SetData

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

func (*TxValidationContext) SpendGas

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

func (*TxValidationContext) TransactionOrder

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

func (*TxValidationContext) TrustBase

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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