Versions in this module Expand all Collapse all v0 v0.8.0 May 3, 2022 Changes in this version + const BlockChainVersion + const TriesInMemory + var BadHashes = map[common.Hash]bool + var DefaultJamConfig = TxJamConfig + var DefaultTxPoolConfig = TxPoolConfig + var ErrAlreadyKnown = errors.New("already known") + var ErrBannedHash = errors.New("banned hash") + var ErrFeeCapTooLow = errors.New("max fee per gas less than block base fee") + var ErrFeeCapVeryHigh = errors.New("max fee per gas higher than 2^256-1") + var ErrGasLimit = errors.New("exceeds block gas limit") + var ErrGasLimitReached = errors.New("gas limit reached") + var ErrGasUintOverflow = errors.New("gas uint64 overflow") + var ErrInsufficientFunds = errors.New("insufficient funds for gas * price + value") + var ErrInsufficientFundsForTransfer = errors.New("insufficient funds for transfer") + var ErrInsufficientMetaFunds = errors.New("meta address insufficient funds for gas * price + value") + var ErrIntrinsicGas = errors.New("intrinsic gas too low") + var ErrInvalidSender = errors.New("invalid sender") + var ErrKnownBlock = errors.New("block already known") + var ErrMetaTrans = errors.New("ErrMetaTrans") + var ErrNegativeValue = errors.New("negative value") + var ErrNoGenesis = errors.New("genesis not found in chain") + var ErrNonceTooHigh = errors.New("nonce too high") + var ErrNonceTooLow = errors.New("nonce too low") + var ErrOversizedData = errors.New("oversized data") + var ErrReplaceUnderpriced = errors.New("replacement transaction underpriced") + var ErrSenderNoEOA = errors.New("sender not an eoa") + var ErrTipAboveFeeCap = errors.New("max priority fee per gas higher than max fee per gas") + var ErrTipVeryHigh = errors.New("max priority fee per gas higher than 2^256-1") + var ErrTxPoolOverflow = errors.New("txpool is full") + var ErrTxTypeNotSupported = types.ErrTxTypeNotSupported + var ErrUnauthorizedDeveloper = errors.New("unauthorized developer") + var ErrUnderpriced = errors.New("transaction underpriced") + func ApplyTransaction(config *params.ChainConfig, bc ChainContext, author *common.Address, ...) (*types.Receipt, error) + func CalcGasLimit(parentGasLimit, desiredLimit uint64) uint64 + func CanTransfer(db vm.StateDB, addr common.Address, amount *big.Int) bool + func GenerateChain(config *params.ChainConfig, parent *types.Block, engine consensus.Engine, ...) ([]*types.Block, []types.Receipts) + func GenesisBlockForTesting(db ethdb.Database, addr common.Address, balance *big.Int) *types.Block + func GetCanCreateFn(chain ChainContext) vm.CanCreateFunc + func GetHashFn(ref *types.Header, chain ChainContext) func(n uint64) common.Hash + func IntrinsicGas(data []byte, accessList types.AccessList, isContractCreation bool, ...) (uint64, error) + func NewEVMBlockContext(header *types.Header, chain ChainContext, author *common.Address) vm.BlockContext + func NewEVMTxContext(msg Message) vm.TxContext + func SetupGenesisBlock(db ethdb.Database, genesis *Genesis) (*params.ChainConfig, common.Hash, error) + func SetupGenesisBlockWithOverride(db ethdb.Database, genesis *Genesis, overrideLondon *big.Int) (*params.ChainConfig, common.Hash, error) + func Transfer(db vm.StateDB, sender, recipient common.Address, amount *big.Int) + type BlockChain struct + func NewBlockChain(db ethdb.Database, cacheConfig *CacheConfig, chainConfig *params.ChainConfig, ...) (*BlockChain, error) + func (bc *BlockChain) Config() *params.ChainConfig + func (bc *BlockChain) ContractCode(hash common.Hash) ([]byte, error) + func (bc *BlockChain) ContractCodeWithPrefix(hash common.Hash) ([]byte, error) + func (bc *BlockChain) CurrentBlock() *types.Block + func (bc *BlockChain) CurrentFastBlock() *types.Block + func (bc *BlockChain) CurrentHeader() *types.Header + func (bc *BlockChain) Engine() consensus.Engine + func (bc *BlockChain) Export(w io.Writer) error + func (bc *BlockChain) ExportN(w io.Writer, first uint64, last uint64) error + func (bc *BlockChain) FastSyncCommitHead(hash common.Hash) error + func (bc *BlockChain) GasLimit() uint64 + func (bc *BlockChain) Genesis() *types.Block + func (bc *BlockChain) GetAncestor(hash common.Hash, number, ancestor uint64, maxNonCanonical *uint64) (common.Hash, uint64) + func (bc *BlockChain) GetBlock(hash common.Hash, number uint64) *types.Block + func (bc *BlockChain) GetBlockByHash(hash common.Hash) *types.Block + func (bc *BlockChain) GetBlockByNumber(number uint64) *types.Block + func (bc *BlockChain) GetBlockHashesFromHash(hash common.Hash, max uint64) []common.Hash + func (bc *BlockChain) GetBlocksFromHash(hash common.Hash, n int) (blocks []*types.Block) + func (bc *BlockChain) GetBody(hash common.Hash) *types.Body + func (bc *BlockChain) GetBodyRLP(hash common.Hash) rlp.RawValue + func (bc *BlockChain) GetCanonicalHash(number uint64) common.Hash + func (bc *BlockChain) GetHeader(hash common.Hash, number uint64) *types.Header + func (bc *BlockChain) GetHeaderByHash(hash common.Hash) *types.Header + func (bc *BlockChain) GetHeaderByNumber(number uint64) *types.Header + func (bc *BlockChain) GetReceiptsByHash(hash common.Hash) types.Receipts + func (bc *BlockChain) GetTd(hash common.Hash, number uint64) *big.Int + func (bc *BlockChain) GetTdByHash(hash common.Hash) *big.Int + func (bc *BlockChain) GetTransactionLookup(hash common.Hash) *rawdb.LegacyTxLookupEntry + func (bc *BlockChain) GetUnclesInChain(block *types.Block, length int) []*types.Header + func (bc *BlockChain) GetVMConfig() *vm.Config + func (bc *BlockChain) HasBlock(hash common.Hash, number uint64) bool + func (bc *BlockChain) HasBlockAndState(hash common.Hash, number uint64) bool + func (bc *BlockChain) HasFastBlock(hash common.Hash, number uint64) bool + func (bc *BlockChain) HasHeader(hash common.Hash, number uint64) bool + func (bc *BlockChain) HasState(hash common.Hash) bool + func (bc *BlockChain) InsertChain(chain types.Blocks) (int, error) + func (bc *BlockChain) InsertChainWithoutSealVerification(block *types.Block) (int, error) + func (bc *BlockChain) InsertHeaderChain(chain []*types.Header, checkFreq int) (int, error) + func (bc *BlockChain) InsertReceiptChain(blockChain types.Blocks, receiptChain []types.Receipts, ancientLimit uint64) (int, error) + func (bc *BlockChain) Processor() Processor + func (bc *BlockChain) Reset() error + func (bc *BlockChain) ResetWithGenesisBlock(genesis *types.Block) error + func (bc *BlockChain) SetHead(head uint64) error + func (bc *BlockChain) SetHeadBeyondRoot(head uint64, root common.Hash) (uint64, error) + func (bc *BlockChain) SetTxLookupLimit(limit uint64) + func (bc *BlockChain) Snapshots() *snapshot.Tree + func (bc *BlockChain) State() (*state.StateDB, error) + func (bc *BlockChain) StateAt(root common.Hash) (*state.StateDB, error) + func (bc *BlockChain) StateCache() state.Database + func (bc *BlockChain) Stop() + func (bc *BlockChain) StopInsert() + func (bc *BlockChain) SubscribeBlockProcessingEvent(ch chan<- bool) event.Subscription + func (bc *BlockChain) SubscribeChainEvent(ch chan<- ChainEvent) event.Subscription +