simulated

package
v0.6.12-fuji-example Latest Latest
Warning

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

Go to latest
Published: Nov 26, 2024 License: GPL-3.0, LGPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WithBlockGasLimit

func WithBlockGasLimit(gaslimit uint64) func(nodeConf *node.Config, ethConf *ethconfig.Config)

WithBlockGasLimit configures the simulated backend to target a specific gas limit when producing blocks.

func WithCallGasLimit

func WithCallGasLimit(gaslimit uint64) func(nodeConf *node.Config, ethConf *ethconfig.Config)

WithCallGasLimit configures the simulated backend to cap eth_calls to a specific gas limit when running client operations.

Types

type Backend

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

Backend is a simulated blockchain. You can use it to test your contracts or other code that interacts with the Ethereum chain.

func NewBackend

func NewBackend(alloc types.GenesisAlloc, options ...func(nodeConf *node.Config, ethConf *ethconfig.Config)) *Backend

NewBackend creates a new simulated blockchain that can be used as a backend for contract bindings in unit tests.

A simulated backend always uses chainID 1337.

func (*Backend) AdjustTime

func (n *Backend) AdjustTime(adjustment time.Duration) error

AdjustTime changes the block timestamp and creates a new block. It can only be called on empty blocks.

func (*Backend) Client

func (n *Backend) Client() Client

Client returns a client that accesses the simulated chain.

func (*Backend) Close

func (n *Backend) Close() error

Close shuts down the simBackend. The simulated backend can't be used afterwards.

func (*Backend) Commit

func (n *Backend) Commit(accept bool) common.Hash

Commit seals a block and moves the chain forward to a new empty block.

func (*Backend) Fork

func (n *Backend) Fork(parentHash common.Hash) error

Fork creates a side-chain that can be used to simulate reorgs.

This function should be called with the ancestor block where the new side chain should be started. Transactions (old and new) can then be applied on top and Commit-ed.

Note, the side-chain will only become canonical (and trigger the events) when it becomes longer. Until then CallContract will still operate on the current canonical chain.

There is a % chance that the side chain becomes canonical at the same length to simulate live network behavior.

func (*Backend) Rollback

func (n *Backend) Rollback()

Rollback removes all pending transactions, reverting to the last committed state.

Jump to

Keyboard shortcuts

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