Documentation
¶
Overview ¶
Package eth implements the Ethereum protocol.
Index ¶
- Constants
- Variables
- func NewBloomIndexer(db ethdb.Database, size, confirms uint64) *core.ChainIndexer
- type AdminAPI
- type BloomIndexer
- type Config
- type DebugAPI
- func (api *DebugAPI) AccountRange(blockNrOrHash rpc.BlockNumberOrHash, start hexutil.Bytes, maxResults int, ...) (state.Dump, error)
- func (api *DebugAPI) DumpBlock(blockNr rpc.BlockNumber) (state.Dump, error)
- func (api *DebugAPI) GetAccessibleState(from, to rpc.BlockNumber) (uint64, error)
- func (api *DebugAPI) GetBadBlocks(ctx context.Context) ([]*ethapi.BadBlockArgs, error)
- func (api *DebugAPI) GetModifiedAccountsByHash(startHash common.Hash, endHash *common.Hash) ([]common.Address, error)
- func (api *DebugAPI) GetModifiedAccountsByNumber(startNum uint64, endNum *uint64) ([]common.Address, error)
- func (api *DebugAPI) Preimage(ctx context.Context, hash common.Hash) (hexutil.Bytes, error)
- func (api *DebugAPI) StorageRangeAt(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash, txIndex int, ...) (StorageRangeResult, error)
- type DevAPI
- func (api *DevAPI) AutoImpersonate(ctx context.Context, enabled bool) error
- func (api *DevAPI) DumpState(ctx context.Context) (state.Dump, error)
- func (api *DevAPI) ImpersonateAccount(ctx context.Context, address common.Address) error
- func (api *DevAPI) IncreaseTime(ctx context.Context, seconds hexutil.Uint64) (hexutil.Uint64, error)
- func (api *DevAPI) Mine(ctx context.Context, timestamp *hexutil.Uint64) (common.Hash, error)
- func (api *DevAPI) Revert(ctx context.Context, snapID hexutil.Uint64) (bool, error)
- func (api *DevAPI) SetBalance(ctx context.Context, address common.Address, balance hexutil.Big) error
- func (api *DevAPI) SetCode(ctx context.Context, address common.Address, code hexutil.Bytes) error
- func (api *DevAPI) SetNextBlockTimestamp(ctx context.Context, timestamp hexutil.Uint64) error
- func (api *DevAPI) SetNonce(ctx context.Context, address common.Address, nonce hexutil.Uint64) error
- func (api *DevAPI) SetStorageAt(ctx context.Context, address common.Address, slot common.Hash, ...) error
- func (api *DevAPI) Snapshot(ctx context.Context) hexutil.Uint64
- func (api *DevAPI) StopImpersonatingAccount(ctx context.Context, address common.Address) error
- type EthAPIBackend
- func (b *EthAPIBackend) AccountManager() *accounts.Manager
- func (b *EthAPIBackend) BadBlocks() ([]*types.Block, []*core.BadBlockReason)
- func (b *EthAPIBackend) BlockByHash(ctx context.Context, hash common.Hash) (*types.Block, error)
- func (b *EthAPIBackend) BlockByNumber(ctx context.Context, number rpc.BlockNumber) (*types.Block, error)
- func (b *EthAPIBackend) BlockByNumberOrHash(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*types.Block, error)
- func (b *EthAPIBackend) BloomStatus() (uint64, uint64)
- func (b *EthAPIBackend) ChainConfig() *params.ChainConfig
- func (b *EthAPIBackend) ChainDb() ethdb.Database
- func (b *EthAPIBackend) CurrentBlock() *types.Header
- func (b *EthAPIBackend) CurrentHeader() *types.Header
- func (b *EthAPIBackend) Engine() consensus.Engine
- func (b *EthAPIBackend) EstimateBaseFee(ctx context.Context) (*big.Int, error)
- func (b *EthAPIBackend) EventMux() *event.TypeMux
- func (b *EthAPIBackend) ExtRPCEnabled() bool
- func (b *EthAPIBackend) FeeHistory(ctx context.Context, blockCount uint64, lastBlock rpc.BlockNumber, ...) (firstBlock *big.Int, reward [][]*big.Int, baseFee []*big.Int, ...)
- func (b *EthAPIBackend) GetBody(ctx context.Context, hash common.Hash, number rpc.BlockNumber) (*types.Body, error)
- func (b *EthAPIBackend) GetEVM(ctx context.Context, msg *core.Message, state *state.StateDB, ...) *vm.EVM
- func (b *EthAPIBackend) GetFeeConfigAt(parent *types.Header) (commontype.FeeConfig, *big.Int, error)
- func (b *EthAPIBackend) GetLogs(ctx context.Context, hash common.Hash, number uint64) ([][]*types.Log, error)
- func (b *EthAPIBackend) GetMaxBlocksPerRequest() int64
- func (b *EthAPIBackend) GetPoolNonce(ctx context.Context, addr common.Address) (uint64, error)
- func (b *EthAPIBackend) GetPoolTransaction(hash common.Hash) *types.Transaction
- func (b *EthAPIBackend) GetPoolTransactions() (types.Transactions, error)
- func (b *EthAPIBackend) GetReceipts(ctx context.Context, hash common.Hash) (types.Receipts, error)
- func (b *EthAPIBackend) GetTransaction(ctx context.Context, txHash common.Hash) (bool, *types.Transaction, common.Hash, uint64, uint64, error)
- func (b *EthAPIBackend) HeaderByHash(ctx context.Context, hash common.Hash) (*types.Header, error)
- func (b *EthAPIBackend) HeaderByNumber(ctx context.Context, number rpc.BlockNumber) (*types.Header, error)
- func (b *EthAPIBackend) HeaderByNumberOrHash(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*types.Header, error)
- func (b *EthAPIBackend) HistoricalProofQueryWindow() uint64
- func (b *EthAPIBackend) IsAllowUnfinalizedQueries() bool
- func (b *EthAPIBackend) IsArchive() bool
- func (b *EthAPIBackend) LastAcceptedBlock() *types.Block
- func (b *EthAPIBackend) MinRequiredTip(ctx context.Context, header *types.Header) (*big.Int, error)
- func (b *EthAPIBackend) RPCEVMTimeout() time.Duration
- func (b *EthAPIBackend) RPCGasCap() uint64
- func (b *EthAPIBackend) RPCTxFeeCap() float64
- func (b *EthAPIBackend) SendTx(ctx context.Context, signedTx *types.Transaction) error
- func (b *EthAPIBackend) ServiceFilter(ctx context.Context, session *bloombits.MatcherSession)
- func (b *EthAPIBackend) SetAllowUnfinalizedQueries(allow bool)
- func (b *EthAPIBackend) StateAndHeaderByNumber(ctx context.Context, number rpc.BlockNumber) (*state.StateDB, *types.Header, error)
- func (b *EthAPIBackend) StateAndHeaderByNumberOrHash(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*state.StateDB, *types.Header, error)
- func (b *EthAPIBackend) StateAtBlock(ctx context.Context, block *types.Block, reexec uint64, base *state.StateDB, ...) (*state.StateDB, tracers.StateReleaseFunc, error)
- func (b *EthAPIBackend) StateAtNextBlock(ctx context.Context, parent, nextBlock *types.Block, reexec uint64, ...) (*state.StateDB, tracers.StateReleaseFunc, error)
- func (b *EthAPIBackend) StateAtTransaction(ctx context.Context, block *types.Block, txIndex int, reexec uint64) (*core.Message, vm.BlockContext, *state.StateDB, tracers.StateReleaseFunc, ...)
- func (b *EthAPIBackend) Stats() (runnable int, blocked int)
- func (b *EthAPIBackend) SubscribeAcceptedLogsEvent(ch chan<- []*types.Log) event.Subscription
- func (b *EthAPIBackend) SubscribeAcceptedTransactionEvent(ch chan<- core.NewTxsEvent) event.Subscription
- func (b *EthAPIBackend) SubscribeChainAcceptedEvent(ch chan<- core.ChainEvent) event.Subscription
- func (b *EthAPIBackend) SubscribeChainEvent(ch chan<- core.ChainEvent) event.Subscription
- func (b *EthAPIBackend) SubscribeChainHeadEvent(ch chan<- core.ChainHeadEvent) event.Subscription
- func (b *EthAPIBackend) SubscribeChainSideEvent(ch chan<- core.ChainSideEvent) event.Subscription
- func (b *EthAPIBackend) SubscribeLogsEvent(ch chan<- []*types.Log) event.Subscription
- func (b *EthAPIBackend) SubscribeNewTxsEvent(ch chan<- core.NewTxsEvent) event.Subscription
- func (b *EthAPIBackend) SubscribePendingLogsEvent(ch chan<- []*types.Log) event.Subscription
- func (b *EthAPIBackend) SubscribeRemovedLogsEvent(ch chan<- core.RemovedLogsEvent) event.Subscription
- func (b *EthAPIBackend) SuggestGasTipCap(ctx context.Context) (*big.Int, error)
- func (b *EthAPIBackend) SuggestPrice(ctx context.Context) (*big.Int, error)
- func (b *EthAPIBackend) TxPoolContent() (map[common.Address][]*types.Transaction, ...)
- func (b *EthAPIBackend) TxPoolContentFrom(addr common.Address) ([]*types.Transaction, []*types.Transaction)
- func (b *EthAPIBackend) UnprotectedAllowed(tx *types.Transaction) bool
- type Ethereum
- func (s *Ethereum) APIs() []rpc.API
- func (s *Ethereum) AccountManager() *accounts.Manager
- func (s *Ethereum) ArchiveMode() bool
- func (s *Ethereum) BlockChain() *core.BlockChain
- func (s *Ethereum) BloomIndexer() *core.ChainIndexer
- func (s *Ethereum) CallPostImportCallback(lastBlockHash common.Hash, lastBlockHeight uint64) error
- func (s *Ethereum) ChainDb() ethdb.Database
- func (s *Ethereum) Engine() consensus.Engine
- func (s *Ethereum) Etherbase() (eb common.Address, err error)
- func (s *Ethereum) EventMux() *event.TypeMux
- func (s *Ethereum) LastAcceptedBlock() *types.Block
- func (s *Ethereum) Miner() *miner.Miner
- func (s *Ethereum) NetVersion() uint64
- func (s *Ethereum) SetEtherbase(etherbase common.Address)
- func (s *Ethereum) SetPostImportCallback(cb func(lastBlockHash common.Hash, lastBlockHeight uint64) error)
- func (s *Ethereum) Start()
- func (eth *Ethereum) StateAtNextBlock(ctx context.Context, parent *types.Block, nextBlock *types.Block, ...) (*state.StateDB, tracers.StateReleaseFunc, error)
- func (s *Ethereum) Stop() error
- func (s *Ethereum) TxPool() *txpool.TxPool
- type EthereumAPI
- type PushGossiper
- type Settings
- type StorageRangeResult
Constants ¶
const AccountRangeMaxResults = 256
AccountRangeMaxResults is the maximum number of results to be returned per call
Variables ¶
var ErrUnfinalizedData = errors.New("cannot query unfinalized data")
Functions ¶
func NewBloomIndexer ¶ added in v0.8.6
func NewBloomIndexer(db ethdb.Database, size, confirms uint64) *core.ChainIndexer
NewBloomIndexer returns a bloom chain indexer that generates bloom bits data for the canonical chain for fast logs filtering.
Types ¶
type AdminAPI ¶
type AdminAPI struct {
// contains filtered or unexported fields
}
AdminAPI is the collection of Ethereum full node related APIs for node administration.
func NewAdminAPI ¶
NewAdminAPI creates a new instance of AdminAPI.
func (*AdminAPI) ExportChain ¶
ExportChain exports the current blockchain into a local file, or a range of blocks if first and last are non-nil.
func (*AdminAPI) ImportChain ¶
ImportChain imports a blockchain from a local file.
func (*AdminAPI) WriteGenesisStateSpec ¶ added in v0.8.23
WriteGenesisStateSpec writes the genesis state spec to the database. This is required for RLP import to work when the genesis state trie is not accessible. The genesis allocs are stored in the database, enabling block_validator.go's special handling for block 1 (which allows import even without the genesis state trie).
type BloomIndexer ¶ added in v0.8.6
type BloomIndexer struct {
// contains filtered or unexported fields
}
BloomIndexer implements core.ChainIndexerBackend, building up a rotated bloom bits index for the Ethereum header bloom filters, permitting blazing fast filtering.
func (*BloomIndexer) Commit ¶ added in v0.8.6
func (b *BloomIndexer) Commit() error
Commit implements core.ChainIndexerBackend, finalizing the bloom section and writing it out into the database.
func (*BloomIndexer) Process ¶ added in v0.8.6
Process implements core.ChainIndexerBackend, adding a new header's bloom into the index.
func (*BloomIndexer) Prune ¶ added in v0.8.6
func (b *BloomIndexer) Prune(threshold uint64) error
Prune returns an empty error since we don't support pruning here.
type Config ¶
Config contains the configuration options of the ETH protocol. Deprecated: use ethconfig.Config instead.
type DebugAPI ¶
type DebugAPI struct {
// contains filtered or unexported fields
}
DebugAPI is the collection of Ethereum full node APIs for debugging the protocol.
func NewDebugAPI ¶
NewDebugAPI creates a new DebugAPI instance.
func (*DebugAPI) AccountRange ¶
func (api *DebugAPI) AccountRange(blockNrOrHash rpc.BlockNumberOrHash, start hexutil.Bytes, maxResults int, nocode, nostorage, incompletes bool) (state.Dump, error)
AccountRange enumerates all accounts in the given block and start point in paging request
func (*DebugAPI) GetAccessibleState ¶
func (api *DebugAPI) GetAccessibleState(from, to rpc.BlockNumber) (uint64, error)
GetAccessibleState returns the first number where the node has accessible state on disk. Note this being the post-state of that block and the pre-state of the next block. The (from, to) parameters are the sequence of blocks to search, which can go either forwards or backwards
func (*DebugAPI) GetBadBlocks ¶
GetBadBlocks returns a list of the last 'bad blocks' that the client has seen on the network and returns them as a JSON list of block hashes.
func (*DebugAPI) GetModifiedAccountsByHash ¶
func (api *DebugAPI) GetModifiedAccountsByHash(startHash common.Hash, endHash *common.Hash) ([]common.Address, error)
GetModifiedAccountsByHash returns all accounts that have changed between the two blocks specified. A change is defined as a difference in nonce, balance, code hash, or storage hash.
With one parameter, returns the list of accounts modified in the specified block.
func (*DebugAPI) GetModifiedAccountsByNumber ¶
func (api *DebugAPI) GetModifiedAccountsByNumber(startNum uint64, endNum *uint64) ([]common.Address, error)
GetModifiedAccountsByNumber returns all accounts that have changed between the two blocks specified. A change is defined as a difference in nonce, balance, code hash, or storage hash.
With one parameter, returns the list of accounts modified in the specified block.
func (*DebugAPI) Preimage ¶
Preimage is a debug API function that returns the preimage for a sha3 hash, if known.
func (*DebugAPI) StorageRangeAt ¶
func (api *DebugAPI) StorageRangeAt(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash, txIndex int, contractAddress common.Address, keyStart hexutil.Bytes, maxResult int) (StorageRangeResult, error)
StorageRangeAt returns the storage at the given block height and transaction index.
type DevAPI ¶ added in v0.8.26
type DevAPI struct {
// contains filtered or unexported fields
}
DevAPI provides Anvil/Hardhat-compatible RPC methods for dev mode. These methods allow manipulation of blockchain state for testing purposes.
func (*DevAPI) AutoImpersonate ¶ added in v0.8.26
AutoImpersonate enables or disables auto-impersonation of all accounts. Anvil: anvil_autoImpersonateAccount
func (*DevAPI) DumpState ¶ added in v0.8.26
DumpState returns a dump of the current state (for debugging).
func (*DevAPI) ImpersonateAccount ¶ added in v0.8.26
ImpersonateAccount starts impersonating an account (allows sending tx without private key). Anvil: anvil_impersonateAccount Hardhat: hardhat_impersonateAccount
func (*DevAPI) IncreaseTime ¶ added in v0.8.26
func (api *DevAPI) IncreaseTime(ctx context.Context, seconds hexutil.Uint64) (hexutil.Uint64, error)
IncreaseTime increases the block timestamp by mining a new block with adjusted time. Anvil: evm_increaseTime Hardhat: evm_increaseTime
func (*DevAPI) Mine ¶ added in v0.8.26
Mine forces mining of a new block. Anvil: evm_mine Hardhat: evm_mine
func (*DevAPI) Revert ¶ added in v0.8.26
Revert reverts the state to a previous snapshot. Note: In subnet-evm, revert is limited - it can only revert to the current or recent state. Full reorg capabilities are not available. Anvil: evm_revert Hardhat: evm_revert
func (*DevAPI) SetBalance ¶ added in v0.8.26
func (api *DevAPI) SetBalance(ctx context.Context, address common.Address, balance hexutil.Big) error
SetBalance sets the balance of an address. Anvil: anvil_setBalance Hardhat: hardhat_setBalance
func (*DevAPI) SetCode ¶ added in v0.8.26
SetCode sets the code of an address. Anvil: anvil_setCode Hardhat: hardhat_setCode
func (*DevAPI) SetNextBlockTimestamp ¶ added in v0.8.26
SetNextBlockTimestamp sets the timestamp for the next block by mining one. Anvil: evm_setNextBlockTimestamp Hardhat: evm_setNextBlockTimestamp
func (*DevAPI) SetNonce ¶ added in v0.8.26
func (api *DevAPI) SetNonce(ctx context.Context, address common.Address, nonce hexutil.Uint64) error
SetNonce sets the nonce of an address. Anvil: anvil_setNonce Hardhat: hardhat_setNonce
func (*DevAPI) SetStorageAt ¶ added in v0.8.26
func (api *DevAPI) SetStorageAt(ctx context.Context, address common.Address, slot common.Hash, value common.Hash) error
SetStorageAt sets a storage slot value for an address. Anvil: anvil_setStorageAt Hardhat: hardhat_setStorageAt
type EthAPIBackend ¶
type EthAPIBackend struct {
// contains filtered or unexported fields
}
EthAPIBackend implements ethapi.Backend and tracers.Backend for full nodes
func (*EthAPIBackend) AccountManager ¶
func (b *EthAPIBackend) AccountManager() *accounts.Manager
func (*EthAPIBackend) BadBlocks ¶
func (b *EthAPIBackend) BadBlocks() ([]*types.Block, []*core.BadBlockReason)
func (*EthAPIBackend) BlockByHash ¶
func (*EthAPIBackend) BlockByNumber ¶
func (b *EthAPIBackend) BlockByNumber(ctx context.Context, number rpc.BlockNumber) (*types.Block, error)
func (*EthAPIBackend) BlockByNumberOrHash ¶
func (b *EthAPIBackend) BlockByNumberOrHash(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*types.Block, error)
func (*EthAPIBackend) BloomStatus ¶
func (b *EthAPIBackend) BloomStatus() (uint64, uint64)
func (*EthAPIBackend) ChainConfig ¶
func (b *EthAPIBackend) ChainConfig() *params.ChainConfig
ChainConfig returns the active chain configuration.
func (*EthAPIBackend) ChainDb ¶
func (b *EthAPIBackend) ChainDb() ethdb.Database
func (*EthAPIBackend) CurrentBlock ¶
func (b *EthAPIBackend) CurrentBlock() *types.Header
func (*EthAPIBackend) CurrentHeader ¶
func (b *EthAPIBackend) CurrentHeader() *types.Header
func (*EthAPIBackend) Engine ¶
func (b *EthAPIBackend) Engine() consensus.Engine
func (*EthAPIBackend) EstimateBaseFee ¶
func (*EthAPIBackend) EventMux ¶
func (b *EthAPIBackend) EventMux() *event.TypeMux
func (*EthAPIBackend) ExtRPCEnabled ¶
func (b *EthAPIBackend) ExtRPCEnabled() bool
func (*EthAPIBackend) FeeHistory ¶
func (*EthAPIBackend) GetBody ¶
func (b *EthAPIBackend) GetBody(ctx context.Context, hash common.Hash, number rpc.BlockNumber) (*types.Body, error)
GetBody returns body of a block. It does not resolve special block numbers.
func (*EthAPIBackend) GetFeeConfigAt ¶
func (b *EthAPIBackend) GetFeeConfigAt(parent *types.Header) (commontype.FeeConfig, *big.Int, error)
func (*EthAPIBackend) GetMaxBlocksPerRequest ¶
func (b *EthAPIBackend) GetMaxBlocksPerRequest() int64
func (*EthAPIBackend) GetPoolNonce ¶
func (*EthAPIBackend) GetPoolTransaction ¶
func (b *EthAPIBackend) GetPoolTransaction(hash common.Hash) *types.Transaction
func (*EthAPIBackend) GetPoolTransactions ¶
func (b *EthAPIBackend) GetPoolTransactions() (types.Transactions, error)
func (*EthAPIBackend) GetReceipts ¶
func (*EthAPIBackend) GetTransaction ¶
func (*EthAPIBackend) HeaderByHash ¶
func (*EthAPIBackend) HeaderByNumber ¶
func (b *EthAPIBackend) HeaderByNumber(ctx context.Context, number rpc.BlockNumber) (*types.Header, error)
func (*EthAPIBackend) HeaderByNumberOrHash ¶
func (b *EthAPIBackend) HeaderByNumberOrHash(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*types.Header, error)
func (*EthAPIBackend) HistoricalProofQueryWindow ¶
func (b *EthAPIBackend) HistoricalProofQueryWindow() uint64
HistoricalProofQueryWindow returns the number of blocks before the last accepted block to be accepted for state queries. It returns 0 to indicate to accept any block number for state queries.
func (*EthAPIBackend) IsAllowUnfinalizedQueries ¶
func (b *EthAPIBackend) IsAllowUnfinalizedQueries() bool
func (*EthAPIBackend) IsArchive ¶
func (b *EthAPIBackend) IsArchive() bool
IsArchive returns true if the node is running in archive mode, false otherwise.
func (*EthAPIBackend) LastAcceptedBlock ¶
func (b *EthAPIBackend) LastAcceptedBlock() *types.Block
func (*EthAPIBackend) MinRequiredTip ¶
func (*EthAPIBackend) RPCEVMTimeout ¶
func (b *EthAPIBackend) RPCEVMTimeout() time.Duration
func (*EthAPIBackend) RPCGasCap ¶
func (b *EthAPIBackend) RPCGasCap() uint64
func (*EthAPIBackend) RPCTxFeeCap ¶
func (b *EthAPIBackend) RPCTxFeeCap() float64
func (*EthAPIBackend) SendTx ¶
func (b *EthAPIBackend) SendTx(ctx context.Context, signedTx *types.Transaction) error
func (*EthAPIBackend) ServiceFilter ¶
func (b *EthAPIBackend) ServiceFilter(ctx context.Context, session *bloombits.MatcherSession)
func (*EthAPIBackend) SetAllowUnfinalizedQueries ¶
func (b *EthAPIBackend) SetAllowUnfinalizedQueries(allow bool)
func (*EthAPIBackend) StateAndHeaderByNumber ¶
func (b *EthAPIBackend) StateAndHeaderByNumber(ctx context.Context, number rpc.BlockNumber) (*state.StateDB, *types.Header, error)
func (*EthAPIBackend) StateAndHeaderByNumberOrHash ¶
func (b *EthAPIBackend) StateAndHeaderByNumberOrHash(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*state.StateDB, *types.Header, error)
func (*EthAPIBackend) StateAtBlock ¶
func (*EthAPIBackend) StateAtNextBlock ¶
func (*EthAPIBackend) StateAtTransaction ¶
func (*EthAPIBackend) Stats ¶
func (b *EthAPIBackend) Stats() (runnable int, blocked int)
func (*EthAPIBackend) SubscribeAcceptedLogsEvent ¶
func (b *EthAPIBackend) SubscribeAcceptedLogsEvent(ch chan<- []*types.Log) event.Subscription
func (*EthAPIBackend) SubscribeAcceptedTransactionEvent ¶
func (b *EthAPIBackend) SubscribeAcceptedTransactionEvent(ch chan<- core.NewTxsEvent) event.Subscription
func (*EthAPIBackend) SubscribeChainAcceptedEvent ¶
func (b *EthAPIBackend) SubscribeChainAcceptedEvent(ch chan<- core.ChainEvent) event.Subscription
func (*EthAPIBackend) SubscribeChainEvent ¶
func (b *EthAPIBackend) SubscribeChainEvent(ch chan<- core.ChainEvent) event.Subscription
func (*EthAPIBackend) SubscribeChainHeadEvent ¶
func (b *EthAPIBackend) SubscribeChainHeadEvent(ch chan<- core.ChainHeadEvent) event.Subscription
func (*EthAPIBackend) SubscribeChainSideEvent ¶
func (b *EthAPIBackend) SubscribeChainSideEvent(ch chan<- core.ChainSideEvent) event.Subscription
func (*EthAPIBackend) SubscribeLogsEvent ¶
func (b *EthAPIBackend) SubscribeLogsEvent(ch chan<- []*types.Log) event.Subscription
func (*EthAPIBackend) SubscribeNewTxsEvent ¶
func (b *EthAPIBackend) SubscribeNewTxsEvent(ch chan<- core.NewTxsEvent) event.Subscription
func (*EthAPIBackend) SubscribePendingLogsEvent ¶
func (b *EthAPIBackend) SubscribePendingLogsEvent(ch chan<- []*types.Log) event.Subscription
func (*EthAPIBackend) SubscribeRemovedLogsEvent ¶
func (b *EthAPIBackend) SubscribeRemovedLogsEvent(ch chan<- core.RemovedLogsEvent) event.Subscription
func (*EthAPIBackend) SuggestGasTipCap ¶
func (*EthAPIBackend) SuggestPrice ¶
func (*EthAPIBackend) TxPoolContent ¶
func (b *EthAPIBackend) TxPoolContent() (map[common.Address][]*types.Transaction, map[common.Address][]*types.Transaction)
func (*EthAPIBackend) TxPoolContentFrom ¶
func (b *EthAPIBackend) TxPoolContentFrom(addr common.Address) ([]*types.Transaction, []*types.Transaction)
func (*EthAPIBackend) UnprotectedAllowed ¶
func (b *EthAPIBackend) UnprotectedAllowed(tx *types.Transaction) bool
type Ethereum ¶
type Ethereum struct {
APIBackend *EthAPIBackend
// contains filtered or unexported fields
}
Ethereum implements the Ethereum full node service.
func New ¶
func New( stack *node.Node, config *Config, gossiper PushGossiper, chainDb ethdb.Database, settings Settings, lastAcceptedHash common.Hash, engine consensus.Engine, clock *mockable.Clock, ) (*Ethereum, error)
New creates a new Ethereum object (including the initialisation of the common Ethereum object)
func (*Ethereum) APIs ¶
APIs return the collection of RPC services the ethereum package offers. NOTE, some of these services probably need to be moved to somewhere else.
func (*Ethereum) AccountManager ¶
func (*Ethereum) ArchiveMode ¶
func (*Ethereum) BlockChain ¶
func (s *Ethereum) BlockChain() *core.BlockChain
func (*Ethereum) BloomIndexer ¶
func (s *Ethereum) BloomIndexer() *core.ChainIndexer
func (*Ethereum) CallPostImportCallback ¶ added in v0.8.23
CallPostImportCallback invokes the post-import callback if set. Returns nil if no callback is registered.
func (*Ethereum) LastAcceptedBlock ¶
func (*Ethereum) NetVersion ¶
func (*Ethereum) SetEtherbase ¶
SetEtherbase sets the mining reward address.
func (*Ethereum) SetPostImportCallback ¶ added in v0.8.23
func (s *Ethereum) SetPostImportCallback(cb func(lastBlockHash common.Hash, lastBlockHeight uint64) error)
SetPostImportCallback registers a callback that is called after successful block import via admin_importChain. This allows the VM layer to update its acceptedBlockDB after admin API imports.
func (*Ethereum) Start ¶
func (s *Ethereum) Start()
Start implements node.Lifecycle, starting all internal goroutines needed by the Ethereum protocol implementation.
func (*Ethereum) StateAtNextBlock ¶
func (eth *Ethereum) StateAtNextBlock(ctx context.Context, parent *types.Block, nextBlock *types.Block, reexec uint64, base *state.StateDB, readOnly bool, preferDisk bool) (*state.StateDB, tracers.StateReleaseFunc, error)
StateAtNextBlock is a helper function that returns the state at the next block. It wraps StateAtBlock and handles the case where Upgrades are applied to the next block. This is different than using StateAtBlock with [nextBlock] because it will apply the upgrades to the [parent] state before returning it.
type EthereumAPI ¶
type EthereumAPI struct {
// contains filtered or unexported fields
}
EthereumAPI provides an API to access Ethereum full node-related information.
func NewEthereumAPI ¶
func NewEthereumAPI(e *Ethereum) *EthereumAPI
NewEthereumAPI creates a new Ethereum protocol API for full nodes.
type PushGossiper ¶
type PushGossiper interface {
Add(*types.Transaction)
}
PushGossiper sends pushes pending transactions to peers until they are removed from the mempool.
type Settings ¶
type Settings struct {
MaxBlocksPerRequest int64 // Maximum number of blocks to serve per getLogs request
}
type StorageRangeResult ¶
type StorageRangeResult struct {
Storage storageMap `json:"storage"`
NextKey *common.Hash `json:"nextKey"` // nil if Storage includes the last key in the trie.
}
StorageRangeResult is the result of a debug_storageRangeAt API call.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package filters implements an ethereum filtering system for block, transactions and log events.
|
Package filters implements an ethereum filtering system for block, transactions and log events. |
|
Package tracers is a manager for transaction tracing engines.
|
Package tracers is a manager for transaction tracing engines. |