mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-11-28 16:13:56 +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"
|
import "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
||||||
|
|
||||||
type mempool struct {
|
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) (
|
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 outpointToUTXOEntry map[externalapi.DomainOutpoint]externalapi.UTXOEntry
|
||||||
|
|
||||||
type mempoolUTXOSet struct {
|
type mempoolUTXOSet struct {
|
||||||
|
mempool *mempool
|
||||||
poolUnspentOutputs outpointToUTXOEntry
|
poolUnspentOutputs outpointToUTXOEntry
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func newMempoolUTXOSet(mp *mempool) *mempoolUTXOSet {
|
||||||
|
return &mempoolUTXOSet{
|
||||||
|
mempool: mp,
|
||||||
|
poolUnspentOutputs: outpointToUTXOEntry{},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (mpus *mempoolUTXOSet) getParentsInPool(transaction *mempoolTransaction) ([]*mempoolTransaction, error) {
|
func (mpus *mempoolUTXOSet) getParentsInPool(transaction *mempoolTransaction) ([]*mempoolTransaction, error) {
|
||||||
panic("mempoolUTXOSet.getParentsInPool not implemented") // TODO (Mike)
|
panic("mempoolUTXOSet.getParentsInPool not implemented") // TODO (Mike)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,14 +2,24 @@ package mempool
|
|||||||
|
|
||||||
import "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
import "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
||||||
|
|
||||||
type orphanByPreviousOutpoint map[externalapi.DomainOutpoint]idToTransaction
|
type previousOutpointToOrphans map[externalapi.DomainOutpoint]idToTransaction
|
||||||
|
|
||||||
type orphansPool struct {
|
type orphansPool struct {
|
||||||
|
mempool *mempool
|
||||||
allOrphans idToTransaction
|
allOrphans idToTransaction
|
||||||
orphanByPreviousOutpoint orphanByPreviousOutpoint
|
orphanByPreviousOutpoint previousOutpointToOrphans
|
||||||
previousExpireScan uint64
|
previousExpireScan uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func newOrphansPool(mp *mempool) *orphansPool {
|
||||||
|
return &orphansPool{
|
||||||
|
mempool: mp,
|
||||||
|
allOrphans: idToTransaction{},
|
||||||
|
orphanByPreviousOutpoint: previousOutpointToOrphans{},
|
||||||
|
previousExpireScan: 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (op *orphansPool) maybeAddOrphan(transaction *externalapi.DomainTransaction,
|
func (op *orphansPool) maybeAddOrphan(transaction *externalapi.DomainTransaction,
|
||||||
missingParents []*externalapi.DomainTransactionID, isHighPriority bool) error {
|
missingParents []*externalapi.DomainTransactionID, isHighPriority bool) error {
|
||||||
|
|
||||||
|
|||||||
@ -7,12 +7,23 @@ type outpointToTransaction map[externalapi.DomainOutpoint]*mempoolTransaction
|
|||||||
type transactionsByFeeHeap []*mempoolTransaction
|
type transactionsByFeeHeap []*mempoolTransaction
|
||||||
|
|
||||||
type transactionsPool struct {
|
type transactionsPool struct {
|
||||||
|
mempool *mempool
|
||||||
allTransactions idToTransaction
|
allTransactions idToTransaction
|
||||||
highPriorityTransactions idToTransaction
|
highPriorityTransactions idToTransaction
|
||||||
chainedTransactionsByPreviousOutpoint outpointToTransaction
|
chainedTransactionsByPreviousOutpoint outpointToTransaction
|
||||||
transactionsByFeeRate transactionsByFeeHeap
|
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 {
|
func (tp *transactionsPool) addTransaction(transaction *externalapi.DomainTransaction, parentsInPool []*mempoolTransaction) error {
|
||||||
panic("transactionsPool.addTransaction not implemented") // TODO (Mike)
|
panic("transactionsPool.addTransaction not implemented") // TODO (Mike)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user