diff --git a/domain/miningmanager/mempool/mempool.go b/domain/miningmanager/mempool/mempool.go index d4d4f17a9..2fa483b00 100644 --- a/domain/miningmanager/mempool/mempool.go +++ b/domain/miningmanager/mempool/mempool.go @@ -34,8 +34,8 @@ func (mp *mempool) RemoveTransaction(transactionID *externalapi.DomainTransactio panic("mempool.RemoveTransaction not implemented") // TODO (Mike) } -func (mp *mempool) BlockCandidateTransactions() ([]*externalapi.DomainTransaction, error) { - panic("mempool.BlockCandidateTransactions not implemented") // TODO (Mike) +func (mp *mempool) BlockCandidateTransactions() []*externalapi.DomainTransaction { + return mp.transactionsPool.allReadyTransactions() } func (mp *mempool) RevalidateHighPriorityTransactions() (validTransactions []*externalapi.DomainTransaction, err error) { diff --git a/domain/miningmanager/mempool/model.go b/domain/miningmanager/mempool/model.go index 2f3b10a7f..381c91083 100644 --- a/domain/miningmanager/mempool/model.go +++ b/domain/miningmanager/mempool/model.go @@ -5,7 +5,7 @@ import "github.com/kaspanet/kaspad/domain/consensus/model/externalapi" type idToTransaction map[externalapi.DomainTransactionID]*mempoolTransaction type mempoolTransaction struct { - transaction externalapi.DomainTransaction + transaction *externalapi.DomainTransaction parentsInPool idToTransaction isHighPriority bool addAtDAAScore uint64 diff --git a/domain/miningmanager/mempool/transactions_pool.go b/domain/miningmanager/mempool/transactions_pool.go index 829e7dd45..d21f41326 100644 --- a/domain/miningmanager/mempool/transactions_pool.go +++ b/domain/miningmanager/mempool/transactions_pool.go @@ -35,3 +35,15 @@ func (tp *transactionsPool) addMempoolTransaction(transaction mempoolTransaction func (tp *transactionsPool) expireOldTransactions() error { panic("transactionsPool.expireOldTransactions not implemented") // TODO (Mike) } + +func (tp *transactionsPool) allReadyTransactions() []*externalapi.DomainTransaction { + result := []*externalapi.DomainTransaction{} + + for _, mempoolTransaction := range tp.allTransactions { + if len(mempoolTransaction.parentsInPool) == 0 { + result = append(result, mempoolTransaction.transaction) + } + } + + return result +}