Documentation ¶
Index ¶
- type SimulatedBackend
- func (b *SimulatedBackend) AcceptedCallContract(ctx context.Context, call interfaces.CallMsg) ([]byte, error)
- func (b *SimulatedBackend) AcceptedCodeAt(ctx context.Context, contract common.Address) ([]byte, error)
- func (b *SimulatedBackend) AcceptedNonceAt(ctx context.Context, account common.Address) (uint64, error)
- func (b *SimulatedBackend) AdjustTime(adjustment time.Duration) error
- func (b *SimulatedBackend) BalanceAt(ctx context.Context, contract common.Address, blockNumber *big.Int) (*big.Int, error)
- func (b *SimulatedBackend) BlockByHash(ctx context.Context, hash common.Hash) (*types.Block, error)
- func (b *SimulatedBackend) BlockByNumber(ctx context.Context, number *big.Int) (*types.Block, error)
- func (b *SimulatedBackend) Blockchain() *core.BlockChain
- func (b *SimulatedBackend) CallContract(ctx context.Context, call interfaces.CallMsg, blockNumber *big.Int) ([]byte, error)
- func (b *SimulatedBackend) Close() error
- func (b *SimulatedBackend) CodeAt(ctx context.Context, contract common.Address, blockNumber *big.Int) ([]byte, error)
- func (b *SimulatedBackend) Commit(accept bool) common.Hash
- func (b *SimulatedBackend) EstimateGas(ctx context.Context, call interfaces.CallMsg) (uint64, error)
- func (b *SimulatedBackend) FilterLogs(ctx context.Context, query interfaces.FilterQuery) ([]types.Log, error)
- func (b *SimulatedBackend) Fork(ctx context.Context, parent common.Hash) error
- func (b *SimulatedBackend) HeaderByHash(ctx context.Context, hash common.Hash) (*types.Header, error)
- func (b *SimulatedBackend) HeaderByNumber(ctx context.Context, block *big.Int) (*types.Header, error)
- func (b *SimulatedBackend) NonceAt(ctx context.Context, contract common.Address, blockNumber *big.Int) (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 common.Address, key common.Hash, ...) ([]byte, error)
- func (b *SimulatedBackend) SubscribeFilterLogs(ctx context.Context, query interfaces.FilterQuery, ch chan<- types.Log) (interfaces.Subscription, error)
- func (b *SimulatedBackend) SubscribeNewHead(ctx context.Context, ch chan<- *types.Header) (interfaces.Subscription, error)
- func (b *SimulatedBackend) SuggestGasPrice(ctx context.Context) (*big.Int, error)
- func (b *SimulatedBackend) SuggestGasTipCap(ctx context.Context) (*big.Int, error)
- func (b *SimulatedBackend) TransactionByHash(ctx context.Context, txHash common.Hash) (*types.Transaction, bool, error)
- func (b *SimulatedBackend) TransactionCount(ctx context.Context, blockHash common.Hash) (uint, error)
- func (b *SimulatedBackend) TransactionInBlock(ctx context.Context, blockHash common.Hash, index uint) (*types.Transaction, error)
- func (b *SimulatedBackend) TransactionReceipt(ctx context.Context, txHash common.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, AcceptedContractCaller, TransactionReader, and TransactionSender
func NewSimulatedBackend ¶
func NewSimulatedBackend(alloc core.GenesisAlloc, gasLimit uint64) *SimulatedBackend
NewSimulatedBackend creates a new binding backend using a simulated blockchain for testing purposes. A simulated backend always uses chainID 1337.
func NewSimulatedBackendWithDatabase ¶
func NewSimulatedBackendWithDatabase(database ethdb.Database, alloc core.GenesisAlloc, gasLimit uint64) *SimulatedBackend
NewSimulatedBackendWithDatabase creates a new binding backend based on the given database and uses a simulated blockchain for testing purposes. A simulated backend always uses chainID 1337.
func (*SimulatedBackend) AcceptedCallContract ¶
func (b *SimulatedBackend) AcceptedCallContract(ctx context.Context, call interfaces.CallMsg) ([]byte, error)
AcceptedCallContract executes a contract call on the accepted state.
func (*SimulatedBackend) AcceptedCodeAt ¶
func (b *SimulatedBackend) AcceptedCodeAt(ctx context.Context, contract common.Address) ([]byte, error)
AcceptedCodeAt returns the code associated with an account in the accepted state.
func (*SimulatedBackend) AcceptedNonceAt ¶
func (b *SimulatedBackend) AcceptedNonceAt(ctx context.Context, account common.Address) (uint64, error)
AcceptedNonceAt implements AcceptedStateReader.AcceptedNonceAt, retrieving the nonce currently accepted for the account.
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) BalanceAt ¶
func (b *SimulatedBackend) BalanceAt(ctx context.Context, contract common.Address, blockNumber *big.Int) (*big.Int, error)
BalanceAt returns the wei balance of a certain account in the blockchain.
func (*SimulatedBackend) BlockByHash ¶
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) Blockchain ¶
func (b *SimulatedBackend) Blockchain() *core.BlockChain
Blockchain returns the underlying blockchain.
func (*SimulatedBackend) CallContract ¶
func (b *SimulatedBackend) CallContract(ctx context.Context, call interfaces.CallMsg, blockNumber *big.Int) ([]byte, error)
CallContract executes a contract call.
func (*SimulatedBackend) Close ¶
func (b *SimulatedBackend) Close() error
Close terminates the underlying blockchain's update loop.
func (*SimulatedBackend) CodeAt ¶
func (b *SimulatedBackend) CodeAt(ctx context.Context, contract common.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(accept bool) common.Hash
Commit imports all the accepted transactions as a single block and starts a fresh new state.
func (*SimulatedBackend) EstimateGas ¶
func (b *SimulatedBackend) EstimateGas(ctx context.Context, call interfaces.CallMsg) (uint64, error)
EstimateGas executes the requested code against the currently accepted block/state and returns the used amount of gas.
func (*SimulatedBackend) FilterLogs ¶
func (b *SimulatedBackend) FilterLogs(ctx context.Context, query interfaces.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) Fork ¶
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 (*SimulatedBackend) HeaderByHash ¶
func (b *SimulatedBackend) HeaderByHash(ctx context.Context, hash common.Hash) (*types.Header, error)
HeaderByHash returns a block header from the current canonical chain.
func (*SimulatedBackend) HeaderByNumber ¶
func (b *SimulatedBackend) HeaderByNumber(ctx context.Context, block *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) NonceAt ¶
func (b *SimulatedBackend) NonceAt(ctx context.Context, contract common.Address, blockNumber *big.Int) (uint64, error)
NonceAt returns the nonce of a certain account in the blockchain.
func (*SimulatedBackend) Rollback ¶
func (b *SimulatedBackend) Rollback()
Rollback aborts all accepted transactions, reverting to the last committed state.
func (*SimulatedBackend) SendTransaction ¶
func (b *SimulatedBackend) SendTransaction(ctx context.Context, tx *types.Transaction) error
SendTransaction updates the accepted block to include the given transaction.
func (*SimulatedBackend) StorageAt ¶
func (b *SimulatedBackend) StorageAt(ctx context.Context, contract common.Address, key common.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 interfaces.FilterQuery, ch chan<- types.Log) (interfaces.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) (interfaces.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) SuggestGasTipCap ¶
SuggestGasTipCap implements ContractTransactor.SuggestGasTipCap. Since the simulated chain doesn't have miners, we just return a gas tip of 1 for any call.
func (*SimulatedBackend) TransactionByHash ¶
func (b *SimulatedBackend) TransactionByHash(ctx context.Context, txHash common.Hash) (*types.Transaction, bool, error)
TransactionByHash checks the pool of accepted transactions in addition to the blockchain. The isAccepted 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 accepted.
func (*SimulatedBackend) TransactionCount ¶
func (b *SimulatedBackend) TransactionCount(ctx context.Context, blockHash common.Hash) (uint, error)
TransactionCount returns the number of transactions in a given block.
func (*SimulatedBackend) TransactionInBlock ¶
func (b *SimulatedBackend) TransactionInBlock(ctx context.Context, blockHash common.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 common.Hash) (*types.Receipt, error)
TransactionReceipt returns the receipt of a transaction.