mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-05-25 16:26:48 +00:00

* [NOD-1551] Add SigCache * [NOD-1551] Add option to edit SigCache in TestConsensus * [NOD-1551] Fix comments and make SetSigCache pointer-receiver
36 lines
1.2 KiB
Go
36 lines
1.2 KiB
Go
package transactionvalidator
|
|
|
|
import (
|
|
"github.com/kaspanet/kaspad/domain/consensus/model"
|
|
"github.com/kaspanet/kaspad/domain/consensus/utils/txscript"
|
|
)
|
|
|
|
const sigCacheSize = 10_000
|
|
|
|
// transactionValidator exposes a set of validation classes, after which
|
|
// it's possible to determine whether either a transaction is valid
|
|
type transactionValidator struct {
|
|
blockCoinbaseMaturity uint64
|
|
databaseContext model.DBReader
|
|
pastMedianTimeManager model.PastMedianTimeManager
|
|
ghostdagDataStore model.GHOSTDAGDataStore
|
|
enableNonNativeSubnetworks bool
|
|
sigCache *txscript.SigCache
|
|
}
|
|
|
|
// New instantiates a new TransactionValidator
|
|
func New(blockCoinbaseMaturity uint64,
|
|
enableNonNativeSubnetworks bool,
|
|
databaseContext model.DBReader,
|
|
pastMedianTimeManager model.PastMedianTimeManager,
|
|
ghostdagDataStore model.GHOSTDAGDataStore) model.TransactionValidator {
|
|
return &transactionValidator{
|
|
blockCoinbaseMaturity: blockCoinbaseMaturity,
|
|
enableNonNativeSubnetworks: enableNonNativeSubnetworks,
|
|
databaseContext: databaseContext,
|
|
pastMedianTimeManager: pastMedianTimeManager,
|
|
ghostdagDataStore: ghostdagDataStore,
|
|
sigCache: txscript.NewSigCache(sigCacheSize),
|
|
}
|
|
}
|