mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-11-28 08:11:08 +00:00
Add constructors to all main objects
This commit is contained in:
parent
94ddf0aab0
commit
04c98ac6df
@ -3,6 +3,19 @@ package mempool
|
||||
import "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
||||
|
||||
type mempool struct {
|
||||
mempoolUTXOSet *mempoolUTXOSet
|
||||
transactionsPool *transactionsPool
|
||||
orphansPool *orphansPool
|
||||
}
|
||||
|
||||
func newMempool() *mempool {
|
||||
mp := &mempool{}
|
||||
|
||||
mp.mempoolUTXOSet = newMempoolUTXOSet(mp)
|
||||
mp.transactionsPool = newTransactionsPool(mp)
|
||||
mp.orphansPool = newOrphansPool(mp)
|
||||
|
||||
return mp
|
||||
}
|
||||
|
||||
func (mp *mempool) ValidateAndInsertTransaction(transaction *externalapi.DomainTransaction, isHighPriority bool) (
|
||||
|
||||
@ -5,9 +5,17 @@ import "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
||||
type outpointToUTXOEntry map[externalapi.DomainOutpoint]externalapi.UTXOEntry
|
||||
|
||||
type mempoolUTXOSet struct {
|
||||
mempool *mempool
|
||||
poolUnspentOutputs outpointToUTXOEntry
|
||||
}
|
||||
|
||||
func newMempoolUTXOSet(mp *mempool) *mempoolUTXOSet {
|
||||
return &mempoolUTXOSet{
|
||||
mempool: mp,
|
||||
poolUnspentOutputs: outpointToUTXOEntry{},
|
||||
}
|
||||
}
|
||||
|
||||
func (mpus *mempoolUTXOSet) getParentsInPool(transaction *mempoolTransaction) ([]*mempoolTransaction, error) {
|
||||
panic("mempoolUTXOSet.getParentsInPool not implemented") // TODO (Mike)
|
||||
}
|
||||
|
||||
@ -2,14 +2,24 @@ package mempool
|
||||
|
||||
import "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
||||
|
||||
type orphanByPreviousOutpoint map[externalapi.DomainOutpoint]idToTransaction
|
||||
type previousOutpointToOrphans map[externalapi.DomainOutpoint]idToTransaction
|
||||
|
||||
type orphansPool struct {
|
||||
mempool *mempool
|
||||
allOrphans idToTransaction
|
||||
orphanByPreviousOutpoint orphanByPreviousOutpoint
|
||||
orphanByPreviousOutpoint previousOutpointToOrphans
|
||||
previousExpireScan uint64
|
||||
}
|
||||
|
||||
func newOrphansPool(mp *mempool) *orphansPool {
|
||||
return &orphansPool{
|
||||
mempool: mp,
|
||||
allOrphans: idToTransaction{},
|
||||
orphanByPreviousOutpoint: previousOutpointToOrphans{},
|
||||
previousExpireScan: 0,
|
||||
}
|
||||
}
|
||||
|
||||
func (op *orphansPool) maybeAddOrphan(transaction *externalapi.DomainTransaction,
|
||||
missingParents []*externalapi.DomainTransactionID, isHighPriority bool) error {
|
||||
|
||||
|
||||
@ -7,12 +7,23 @@ type outpointToTransaction map[externalapi.DomainOutpoint]*mempoolTransaction
|
||||
type transactionsByFeeHeap []*mempoolTransaction
|
||||
|
||||
type transactionsPool struct {
|
||||
mempool *mempool
|
||||
allTransactions idToTransaction
|
||||
highPriorityTransactions idToTransaction
|
||||
chainedTransactionsByPreviousOutpoint outpointToTransaction
|
||||
transactionsByFeeRate transactionsByFeeHeap
|
||||
}
|
||||
|
||||
func newTransactionsPool(mp *mempool) *transactionsPool {
|
||||
return &transactionsPool{
|
||||
mempool: mp,
|
||||
allTransactions: idToTransaction{},
|
||||
highPriorityTransactions: idToTransaction{},
|
||||
chainedTransactionsByPreviousOutpoint: outpointToTransaction{},
|
||||
transactionsByFeeRate: transactionsByFeeHeap{},
|
||||
}
|
||||
}
|
||||
|
||||
func (tp *transactionsPool) addTransaction(transaction *externalapi.DomainTransaction, parentsInPool []*mempoolTransaction) error {
|
||||
panic("transactionsPool.addTransaction not implemented") // TODO (Mike)
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user