mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-05-23 15:26:42 +00:00
85 lines
3.4 KiB
Go
85 lines
3.4 KiB
Go
package testapi
|
|
|
|
import (
|
|
"github.com/kaspanet/kaspad/domain/consensus/model"
|
|
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
|
"github.com/kaspanet/kaspad/domain/dagconfig"
|
|
"github.com/kaspanet/kaspad/infrastructure/db/database"
|
|
"io"
|
|
)
|
|
|
|
// MineJSONBlockType indicates which type of blocks MineJSON mines
|
|
type MineJSONBlockType int
|
|
|
|
const (
|
|
// MineJSONBlockTypeUTXOValidBlock indicates for MineJSON to mine valid blocks.
|
|
MineJSONBlockTypeUTXOValidBlock MineJSONBlockType = iota
|
|
|
|
// MineJSONBlockTypeUTXOInvalidBlock indicates for MineJSON to mine UTXO invalid blocks.
|
|
MineJSONBlockTypeUTXOInvalidBlock
|
|
|
|
// MineJSONBlockTypeUTXOInvalidHeader indicates for MineJSON to mine UTXO invalid headers.
|
|
MineJSONBlockTypeUTXOInvalidHeader
|
|
)
|
|
|
|
// TestConsensus wraps the Consensus interface with some methods that are needed by tests only
|
|
type TestConsensus interface {
|
|
externalapi.Consensus
|
|
|
|
DAGParams() *dagconfig.Params
|
|
DatabaseContext() model.DBManager
|
|
Database() database.Database
|
|
|
|
BuildBlockWithParents(parentHashes []*externalapi.DomainHash, coinbaseData *externalapi.DomainCoinbaseData,
|
|
transactions []*externalapi.DomainTransaction) (*externalapi.DomainBlock, model.UTXODiff, error)
|
|
|
|
BuildHeaderWithParents(parentHashes []*externalapi.DomainHash) (externalapi.BlockHeader, error)
|
|
|
|
BuildUTXOInvalidBlock(parentHashes []*externalapi.DomainHash) (*externalapi.DomainBlock, error)
|
|
|
|
// AddBlock builds a block with given information, solves it, and adds to the DAG.
|
|
// Returns the hash of the added block
|
|
AddBlock(parentHashes []*externalapi.DomainHash, coinbaseData *externalapi.DomainCoinbaseData,
|
|
transactions []*externalapi.DomainTransaction) (*externalapi.DomainHash, *externalapi.BlockInsertionResult, error)
|
|
|
|
AddUTXOInvalidHeader(parentHashes []*externalapi.DomainHash) (*externalapi.DomainHash, *externalapi.BlockInsertionResult, error)
|
|
|
|
AddUTXOInvalidBlock(parentHashes []*externalapi.DomainHash) (*externalapi.DomainHash,
|
|
*externalapi.BlockInsertionResult, error)
|
|
|
|
MineJSON(r io.Reader, blockType MineJSONBlockType) (tips []*externalapi.DomainHash, err error)
|
|
DiscardAllStores()
|
|
|
|
AcceptanceDataStore() model.AcceptanceDataStore
|
|
BlockHeaderStore() model.BlockHeaderStore
|
|
BlockRelationStore() model.BlockRelationStore
|
|
BlockStatusStore() model.BlockStatusStore
|
|
BlockStore() model.BlockStore
|
|
ConsensusStateStore() model.ConsensusStateStore
|
|
GHOSTDAGDataStore() model.GHOSTDAGDataStore
|
|
HeaderTipsStore() model.HeaderSelectedTipStore
|
|
MultisetStore() model.MultisetStore
|
|
PruningStore() model.PruningStore
|
|
ReachabilityDataStore() model.ReachabilityDataStore
|
|
UTXODiffStore() model.UTXODiffStore
|
|
HeadersSelectedChainStore() model.HeadersSelectedChainStore
|
|
|
|
BlockBuilder() TestBlockBuilder
|
|
BlockProcessor() model.BlockProcessor
|
|
BlockValidator() model.BlockValidator
|
|
CoinbaseManager() model.CoinbaseManager
|
|
ConsensusStateManager() TestConsensusStateManager
|
|
FinalityManager() model.FinalityManager
|
|
DAGTopologyManager() model.DAGTopologyManager
|
|
DAGTraversalManager() model.DAGTraversalManager
|
|
DifficultyManager() model.DifficultyManager
|
|
GHOSTDAGManager() model.GHOSTDAGManager
|
|
HeaderTipsManager() model.HeadersSelectedTipManager
|
|
MergeDepthManager() model.MergeDepthManager
|
|
PastMedianTimeManager() model.PastMedianTimeManager
|
|
PruningManager() model.PruningManager
|
|
ReachabilityManager() TestReachabilityManager
|
|
SyncManager() model.SyncManager
|
|
TransactionValidator() TestTransactionValidator
|
|
}
|