simulated

package
v0.1.17 Latest Latest
Warning

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

Go to latest
Published: Dec 9, 2024 License: GPL-3.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

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 NewAutoMineBackend

func NewAutoMineBackend(alloc types.GenesisAlloc, mineOption MineOption) *Backend

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 NewBackendFromConfig

func NewBackendFromConfig(conf ethconfig.Config) *Backend

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() *ethclient.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() common.Hash

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

func (*Backend) CommitAndExpectTx

func (n *Backend) CommitAndExpectTx(txHash common.Hash) common.Hash

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.

type MineOption

type MineOption struct {
	Miner    common.Address
	Duration time.Duration
}

Jump to

Keyboard shortcuts

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