Documentation ¶
Index ¶
- type SimulatedBackend
- func NewSimulatedBackend(t *testing.T, alloc types.GenesisAlloc, gasLimit uint64) *SimulatedBackend
- func NewSimulatedBackendWithConfig(alloc types.GenesisAlloc, config *chain.Config, gasLimit uint64) *SimulatedBackend
- func NewTestSimulatedBackendWithConfig(t *testing.T, alloc types.GenesisAlloc, config *chain.Config, gasLimit uint64) *SimulatedBackend
- func (b *SimulatedBackend) AdjustTime(adjustment time.Duration) error
- func (b *SimulatedBackend) Agg() *state2.AggregatorV3
- func (b *SimulatedBackend) BalanceAt(ctx context.Context, contract libcommon.Address, blockNumber *big.Int) (*uint256.Int, error)
- func (b *SimulatedBackend) BlockByHash(ctx context.Context, hash libcommon.Hash) (*types.Block, error)
- func (b *SimulatedBackend) BlockByNumber(ctx context.Context, number *big.Int) (*types.Block, error)
- func (b *SimulatedBackend) BlockReader() services.FullBlockReader
- func (b *SimulatedBackend) CallContract(ctx context.Context, call ethereum.CallMsg, blockNumber *big.Int) ([]byte, error)
- func (b *SimulatedBackend) Close()
- func (b *SimulatedBackend) CodeAt(ctx context.Context, contract libcommon.Address, blockNumber *big.Int) ([]byte, error)
- func (b *SimulatedBackend) Commit()
- func (b *SimulatedBackend) DB() kv.RwDB
- func (b *SimulatedBackend) Engine() consensus.Engine
- func (b *SimulatedBackend) EstimateGas(ctx context.Context, call ethereum.CallMsg) (uint64, error)
- func (b *SimulatedBackend) FilterLogs(ctx context.Context, query ethereum.FilterQuery) ([]types.Log, error)
- func (b *SimulatedBackend) HeaderByHash(ctx context.Context, hash libcommon.Hash) (*types.Header, error)
- func (b *SimulatedBackend) HeaderByNumber(ctx context.Context, number *big.Int) (*types.Header, error)
- func (b *SimulatedBackend) HistoryV3() bool
- func (b *SimulatedBackend) NonceAt(ctx context.Context, contract libcommon.Address, blockNumber *big.Int) (uint64, error)
- func (b *SimulatedBackend) PendingCallContract(ctx context.Context, call ethereum.CallMsg) ([]byte, error)
- func (b *SimulatedBackend) PendingCodeAt(ctx context.Context, contract libcommon.Address) ([]byte, error)
- func (b *SimulatedBackend) PendingNonceAt(ctx context.Context, account libcommon.Address) (uint64, error)
- func (b *SimulatedBackend) Rollback()
- func (b *SimulatedBackend) SendTransaction(ctx context.Context, tx types.Transaction) error
- func (b *SimulatedBackend) StorageAt(ctx context.Context, contract libcommon.Address, key libcommon.Hash, ...) ([]byte, error)
- func (b *SimulatedBackend) SubscribeFilterLogs(ctx context.Context, query ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error)
- func (b *SimulatedBackend) SubscribeNewHead(ctx context.Context, ch chan<- *types.Header) (ethereum.Subscription, error)
- func (b *SimulatedBackend) SuggestGasPrice(ctx context.Context) (*big.Int, error)
- func (b *SimulatedBackend) TransactionByHash(ctx context.Context, txHash libcommon.Hash) (types.Transaction, bool, error)
- func (b *SimulatedBackend) TransactionCount(ctx context.Context, blockHash libcommon.Hash) (uint, error)
- func (b *SimulatedBackend) TransactionInBlock(ctx context.Context, blockHash libcommon.Hash, index uint) (types.Transaction, error)
- func (b *SimulatedBackend) TransactionReceipt(ctx context.Context, txHash libcommon.Hash) (*types.Receipt, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type SimulatedBackend ¶
type SimulatedBackend struct {
// contains filtered or unexported fields
}
SimulatedBackend implements bind.ContractBackend, simulating a blockchain in the background. Its main purpose is to allow for easy testing of contract bindings. Simulated backend implements the following interfaces: ChainReader, ChainStateReader, ContractBackend, ContractCaller, ContractFilterer, ContractTransactor, DeployBackend, GasEstimator, GasPricer, LogFilterer, PendingContractCaller, TransactionReader, and TransactionSender
func NewSimulatedBackend ¶
func NewSimulatedBackend(t *testing.T, alloc types.GenesisAlloc, gasLimit uint64) *SimulatedBackend
A simulated backend always uses chainID 1337.
func NewSimulatedBackendWithConfig ¶
func NewSimulatedBackendWithConfig(alloc types.GenesisAlloc, config *chain.Config, gasLimit uint64) *SimulatedBackend
NewSimulatedBackend creates a new binding backend using a simulated blockchain for testing purposes.
func NewTestSimulatedBackendWithConfig ¶
func NewTestSimulatedBackendWithConfig(t *testing.T, alloc types.GenesisAlloc, config *chain.Config, gasLimit uint64) *SimulatedBackend
func (*SimulatedBackend) AdjustTime ¶
func (b *SimulatedBackend) AdjustTime(adjustment time.Duration) error
AdjustTime adds a time shift to the simulated clock. It can only be called on empty blocks.
func (*SimulatedBackend) Agg ¶
func (b *SimulatedBackend) Agg() *state2.AggregatorV3
func (*SimulatedBackend) BalanceAt ¶
func (b *SimulatedBackend) BalanceAt(ctx context.Context, contract libcommon.Address, blockNumber *big.Int) (*uint256.Int, error)
BalanceAt returns the wei balance of a certain account in the blockchain.
func (*SimulatedBackend) BlockByHash ¶
func (b *SimulatedBackend) BlockByHash(ctx context.Context, hash libcommon.Hash) (*types.Block, error)
BlockByHash retrieves a block based on the block hash.
func (*SimulatedBackend) BlockByNumber ¶
func (b *SimulatedBackend) BlockByNumber(ctx context.Context, number *big.Int) (*types.Block, error)
BlockByNumber retrieves a block from the database by number, caching it (associated with its hash) if found.
func (*SimulatedBackend) BlockReader ¶
func (b *SimulatedBackend) BlockReader() services.FullBlockReader
func (*SimulatedBackend) CallContract ¶
func (b *SimulatedBackend) CallContract(ctx context.Context, call ethereum.CallMsg, blockNumber *big.Int) ([]byte, error)
CallContract executes a contract call.
func (*SimulatedBackend) Close ¶
func (b *SimulatedBackend) Close()
Close terminates the underlying blockchain's update loop.
func (*SimulatedBackend) CodeAt ¶
func (b *SimulatedBackend) CodeAt(ctx context.Context, contract libcommon.Address, blockNumber *big.Int) ([]byte, error)
CodeAt returns the code associated with a certain account in the blockchain.
func (*SimulatedBackend) Commit ¶
func (b *SimulatedBackend) Commit()
Commit imports all the pending transactions as a single block and starts a fresh new state.
func (*SimulatedBackend) DB ¶
func (b *SimulatedBackend) DB() kv.RwDB
func (*SimulatedBackend) Engine ¶
func (b *SimulatedBackend) Engine() consensus.Engine
func (*SimulatedBackend) EstimateGas ¶
EstimateGas executes the requested code against the currently pending block/state and returns the used amount of gas.
func (*SimulatedBackend) FilterLogs ¶
func (b *SimulatedBackend) FilterLogs(ctx context.Context, query ethereum.FilterQuery) ([]types.Log, error)
FilterLogs executes a log filter operation, blocking during execution and returning all the results in one batch.
TODO(karalabe): Deprecate when the subscription one can return past data too.
func (*SimulatedBackend) HeaderByHash ¶
func (b *SimulatedBackend) HeaderByHash(ctx context.Context, hash libcommon.Hash) (*types.Header, error)
HeaderByHash returns a block header from the current canonical chain.
func (*SimulatedBackend) HeaderByNumber ¶
func (b *SimulatedBackend) HeaderByNumber(ctx context.Context, number *big.Int) (*types.Header, error)
HeaderByNumber returns a block header from the current canonical chain. If number is nil, the latest known header is returned.
func (*SimulatedBackend) HistoryV3 ¶
func (b *SimulatedBackend) HistoryV3() bool
func (*SimulatedBackend) NonceAt ¶
func (b *SimulatedBackend) NonceAt(ctx context.Context, contract libcommon.Address, blockNumber *big.Int) (uint64, error)
NonceAt returns the nonce of a certain account in the blockchain.
func (*SimulatedBackend) PendingCallContract ¶
func (b *SimulatedBackend) PendingCallContract(ctx context.Context, call ethereum.CallMsg) ([]byte, error)
PendingCallContract executes a contract call on the pending state.
func (*SimulatedBackend) PendingCodeAt ¶
func (b *SimulatedBackend) PendingCodeAt(ctx context.Context, contract libcommon.Address) ([]byte, error)
PendingCodeAt returns the code associated with an account in the pending state.
func (*SimulatedBackend) PendingNonceAt ¶
func (b *SimulatedBackend) PendingNonceAt(ctx context.Context, account libcommon.Address) (uint64, error)
PendingNonceAt implements PendingStateReader.PendingNonceAt, retrieving the nonce currently pending for the account.
func (*SimulatedBackend) Rollback ¶
func (b *SimulatedBackend) Rollback()
Rollback aborts all pending transactions, reverting to the last committed state.
func (*SimulatedBackend) SendTransaction ¶
func (b *SimulatedBackend) SendTransaction(ctx context.Context, tx types.Transaction) error
SendTransaction updates the pending block to include the given transaction. It panics if the transaction is invalid.
func (*SimulatedBackend) StorageAt ¶
func (b *SimulatedBackend) StorageAt(ctx context.Context, contract libcommon.Address, key libcommon.Hash, blockNumber *big.Int) ([]byte, error)
StorageAt returns the value of key in the storage of an account in the blockchain.
func (*SimulatedBackend) SubscribeFilterLogs ¶
func (b *SimulatedBackend) SubscribeFilterLogs(ctx context.Context, query ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error)
SubscribeFilterLogs creates a background log filtering operation, returning a subscription immediately, which can be used to stream the found events.
func (*SimulatedBackend) SubscribeNewHead ¶
func (b *SimulatedBackend) SubscribeNewHead(ctx context.Context, ch chan<- *types.Header) (ethereum.Subscription, error)
SubscribeNewHead returns an event subscription for a new header.
func (*SimulatedBackend) SuggestGasPrice ¶
SuggestGasPrice implements ContractTransactor.SuggestGasPrice. Since the simulated chain doesn't have miners, we just return a gas price of 1 for any call.
func (*SimulatedBackend) TransactionByHash ¶
func (b *SimulatedBackend) TransactionByHash(ctx context.Context, txHash libcommon.Hash) (types.Transaction, bool, error)
TransactionByHash checks the pool of pending transactions in addition to the blockchain. The isPending return value indicates whether the transaction has been mined yet. Note that the transaction may not be part of the canonical chain even if it's not pending.
func (*SimulatedBackend) TransactionCount ¶
func (b *SimulatedBackend) TransactionCount(ctx context.Context, blockHash libcommon.Hash) (uint, error)
TransactionCount returns the number of transactions in a given block.
func (*SimulatedBackend) TransactionInBlock ¶
func (b *SimulatedBackend) TransactionInBlock(ctx context.Context, blockHash libcommon.Hash, index uint) (types.Transaction, error)
TransactionInBlock returns the transaction for a specific block at a specific index.
func (*SimulatedBackend) TransactionReceipt ¶
func (b *SimulatedBackend) TransactionReceipt(ctx context.Context, txHash libcommon.Hash) (*types.Receipt, error)
TransactionReceipt returns the receipt of a transaction.