// Copyright 2014 The go-ethereum Authors// This file is part of the go-ethereum library.//// The go-ethereum library is free software: you can redistribute it and/or modify// it under the terms of the GNU Lesser General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// The go-ethereum library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU Lesser General Public License for more details.//// You should have received a copy of the GNU Lesser General Public License// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.packagecoreimport("errors""fmt""math""math/big""sort""sync""time""github.com/ava-labs/go-ethereum/common""github.com/ava-labs/go-ethereum/common/prque""github.com/ava-labs/go-ethereum/core/state""github.com/ava-labs/go-ethereum/core/types""github.com/ava-labs/go-ethereum/event""github.com/ava-labs/go-ethereum/log""github.com/ava-labs/go-ethereum/metrics""github.com/ava-labs/go-ethereum/params")const(// chainHeadChanSize is the size of channel listening to ChainHeadEvent.chainHeadChanSize=10)var(// ErrInvalidSender is returned if the transaction contains an invalid signature.ErrInvalidSender=errors.New("invalid sender")// ErrNonceTooLow is returned if the nonce of a transaction is lower than the// one present in the local chain.ErrNonceTooLow=errors.New("nonce too low")// ErrUnderpriced is returned if a transaction's gas price is below the minimum// configured for the transaction pool.ErrUnderpriced=errors.New("transaction underpriced")// ErrReplaceUnderpriced is returned if a transaction is attempted to be replaced// with a different one without the required price bump.ErrReplaceUnderpriced=errors.New("replacement transaction underpriced")// ErrInsufficientFunds is returned if the total cost of executing a transaction// is higher than the balance of the user's account.ErrInsufficientFunds=errors.New("insufficient funds for gas * price + value")// ErrIntrinsicGas is returned if the transaction is specified to use less gas// than required to start the invocation.ErrIntrinsicGas=errors.New("intrinsic gas too low")// ErrGasLimit is returned if a transaction's requested gas limit exceeds the// maximum allowance of the current block.ErrGasLimit=errors