addresses as string

This commit is contained in:
D-Stacks 2022-07-02 19:01:03 +02:00
parent 75a2af1d71
commit 518aa6b351
6 changed files with 65 additions and 59 deletions

View File

@ -34,7 +34,7 @@ func HandleGetMempoolEntriesByAddresses(context *rpccontext.Context, _ *router.R
return nil, err return nil, err
} }
if transaction, found := sendingInMempool[address]; found { if transaction, found := sendingInMempool[address.String()]; found {
rpcTransaction := appmessage.DomainTransactionToRPCTransaction(transaction) rpcTransaction := appmessage.DomainTransactionToRPCTransaction(transaction)
err := context.PopulateTransactionWithVerboseData(rpcTransaction, nil) err := context.PopulateTransactionWithVerboseData(rpcTransaction, nil)
if err != nil { if err != nil {
@ -44,10 +44,12 @@ func HandleGetMempoolEntriesByAddresses(context *rpccontext.Context, _ *router.R
sending = append(sending, &appmessage.MempoolEntry{ sending = append(sending, &appmessage.MempoolEntry{
Fee: transaction.Fee, Fee: transaction.Fee,
Transaction: rpcTransaction, Transaction: rpcTransaction,
IsOrphan: false}) IsOrphan: false,
},
)
} }
if transaction, found := receivingInMempool[address]; found { if transaction, found := receivingInMempool[address.String()]; found {
rpcTransaction := appmessage.DomainTransactionToRPCTransaction(transaction) rpcTransaction := appmessage.DomainTransactionToRPCTransaction(transaction)
err := context.PopulateTransactionWithVerboseData(rpcTransaction, nil) err := context.PopulateTransactionWithVerboseData(rpcTransaction, nil)
if err != nil { if err != nil {
@ -57,7 +59,9 @@ func HandleGetMempoolEntriesByAddresses(context *rpccontext.Context, _ *router.R
receiving = append(receiving, &appmessage.MempoolEntry{ receiving = append(receiving, &appmessage.MempoolEntry{
Fee: transaction.Fee, Fee: transaction.Fee,
Transaction: rpcTransaction, Transaction: rpcTransaction,
IsOrphan: false}) IsOrphan: false,
},
)
} }
} }
if getMempoolEntriesByAddressesRequest.IncludeOrphanPool { if getMempoolEntriesByAddressesRequest.IncludeOrphanPool {
@ -67,7 +71,7 @@ func HandleGetMempoolEntriesByAddresses(context *rpccontext.Context, _ *router.R
return nil, err return nil, err
} }
if transaction, found := sendingInOrphanPool[address]; found { if transaction, found := sendingInOrphanPool[address.String()]; found {
rpcTransaction := appmessage.DomainTransactionToRPCTransaction(transaction) rpcTransaction := appmessage.DomainTransactionToRPCTransaction(transaction)
err := context.PopulateTransactionWithVerboseData(rpcTransaction, nil) err := context.PopulateTransactionWithVerboseData(rpcTransaction, nil)
if err != nil { if err != nil {
@ -77,10 +81,12 @@ func HandleGetMempoolEntriesByAddresses(context *rpccontext.Context, _ *router.R
sending = append(sending, &appmessage.MempoolEntry{ sending = append(sending, &appmessage.MempoolEntry{
Fee: transaction.Fee, Fee: transaction.Fee,
Transaction: rpcTransaction, Transaction: rpcTransaction,
IsOrphan: true}) IsOrphan: true,
},
)
} }
if transaction, found := receivingInOrphanPool[address]; found { if transaction, found := receivingInOrphanPool[address.String()]; found {
rpcTransaction := appmessage.DomainTransactionToRPCTransaction(transaction) rpcTransaction := appmessage.DomainTransactionToRPCTransaction(transaction)
err := context.PopulateTransactionWithVerboseData(rpcTransaction, nil) err := context.PopulateTransactionWithVerboseData(rpcTransaction, nil)
if err != nil { if err != nil {
@ -90,7 +96,9 @@ func HandleGetMempoolEntriesByAddresses(context *rpccontext.Context, _ *router.R
receiving = append(receiving, &appmessage.MempoolEntry{ receiving = append(receiving, &appmessage.MempoolEntry{
Fee: transaction.Fee, Fee: transaction.Fee,
Transaction: rpcTransaction, Transaction: rpcTransaction,
IsOrphan: true}) IsOrphan: true,
},
)
} }
} }

View File

@ -5,7 +5,6 @@ import (
"github.com/kaspanet/kaspad/domain/consensusreference" "github.com/kaspanet/kaspad/domain/consensusreference"
"github.com/kaspanet/kaspad/domain/dagconfig" "github.com/kaspanet/kaspad/domain/dagconfig"
"github.com/kaspanet/kaspad/util"
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi" "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
miningmanagermodel "github.com/kaspanet/kaspad/domain/miningmanager/model" miningmanagermodel "github.com/kaspanet/kaspad/domain/miningmanager/model"
@ -55,8 +54,8 @@ func (mp *mempool) GetTransaction(transactionID *externalapi.DomainTransactionID
} }
func (mp *mempool) GetTransactionsByAddresses() ( func (mp *mempool) GetTransactionsByAddresses() (
sending map[util.Address]*externalapi.DomainTransaction, sending map[string]*externalapi.DomainTransaction,
receiving map[util.Address]*externalapi.DomainTransaction, receiving map[string]*externalapi.DomainTransaction,
err error, err error,
) { ) {
mp.mtx.RLock() mp.mtx.RLock()
@ -80,8 +79,8 @@ func (mp *mempool) GetOrphanTransaction(transactionID *externalapi.DomainTransac
} }
func (mp *mempool) GetOrphanTransactionsByAddresses() ( func (mp *mempool) GetOrphanTransactionsByAddresses() (
sending map[util.Address]*externalapi.DomainTransaction, sending map[string]*externalapi.DomainTransaction,
receiving map[util.Address]*externalapi.DomainTransaction, receiving map[string]*externalapi.DomainTransaction,
err error, err error,
) { ) {
mp.mtx.RLock() mp.mtx.RLock()

View File

@ -5,7 +5,6 @@ import (
"github.com/kaspanet/kaspad/domain/consensus/utils/constants" "github.com/kaspanet/kaspad/domain/consensus/utils/constants"
"github.com/kaspanet/kaspad/domain/consensus/utils/txscript" "github.com/kaspanet/kaspad/domain/consensus/utils/txscript"
"github.com/kaspanet/kaspad/util"
"github.com/kaspanet/kaspad/domain/consensus/ruleerrors" "github.com/kaspanet/kaspad/domain/consensus/ruleerrors"
@ -346,11 +345,11 @@ func (op *orphansPool) getOrphanTransaction(transactionID *externalapi.DomainTra
} }
func (op *orphansPool) getOrphanTransactionsByAddresses(clone bool) ( func (op *orphansPool) getOrphanTransactionsByAddresses(clone bool) (
sending map[util.Address]*externalapi.DomainTransaction, sending map[string]*externalapi.DomainTransaction,
receiving map[util.Address]*externalapi.DomainTransaction, receiving map[string]*externalapi.DomainTransaction,
err error) { err error) {
sending = make(map[util.Address]*externalapi.DomainTransaction) sending = make(map[string]*externalapi.DomainTransaction)
receiving = make(map[util.Address]*externalapi.DomainTransaction) receiving = make(map[string]*externalapi.DomainTransaction)
var transaction *externalapi.DomainTransaction var transaction *externalapi.DomainTransaction
for _, mempoolTransaction := range op.allOrphans { for _, mempoolTransaction := range op.allOrphans {
if clone { if clone {
@ -369,7 +368,8 @@ func (op *orphansPool) getOrphanTransactionsByAddresses(clone bool) (
if address == nil { //none standard tx if address == nil { //none standard tx
continue continue
} }
sending[address] = transaction sending[address.String()] = transaction
}
for _, output := range transaction.Outputs { for _, output := range transaction.Outputs {
_, address, err := txscript.ExtractScriptPubKeyAddress(output.ScriptPublicKey, op.mempool.params) _, address, err := txscript.ExtractScriptPubKeyAddress(output.ScriptPublicKey, op.mempool.params)
if err != nil { if err != nil {
@ -378,12 +378,10 @@ func (op *orphansPool) getOrphanTransactionsByAddresses(clone bool) (
if address == nil { //none standard tx if address == nil { //none standard tx
continue continue
} }
receiving[address] = transaction receiving[address.String()] = transaction
} }
} }
}
return sending, receiving, nil return sending, receiving, nil
} }

View File

@ -8,7 +8,6 @@ import (
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi" "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
"github.com/kaspanet/kaspad/domain/consensus/utils/txscript" "github.com/kaspanet/kaspad/domain/consensus/utils/txscript"
"github.com/kaspanet/kaspad/domain/miningmanager/mempool/model" "github.com/kaspanet/kaspad/domain/miningmanager/mempool/model"
"github.com/kaspanet/kaspad/util"
) )
type transactionsPool struct { type transactionsPool struct {
@ -221,11 +220,11 @@ func (tp *transactionsPool) getTransaction(transactionID *externalapi.DomainTran
} }
func (tp *transactionsPool) getTransactionsByAddresses(clone bool) ( func (tp *transactionsPool) getTransactionsByAddresses(clone bool) (
sending map[util.Address]*externalapi.DomainTransaction, sending map[string]*externalapi.DomainTransaction,
receiving map[util.Address]*externalapi.DomainTransaction, receiving map[string]*externalapi.DomainTransaction,
err error) { err error) {
sending = make(map[util.Address]*externalapi.DomainTransaction) sending = make(map[string]*externalapi.DomainTransaction)
receiving = make(map[util.Address]*externalapi.DomainTransaction) receiving = make(map[string]*externalapi.DomainTransaction)
var transaction *externalapi.DomainTransaction var transaction *externalapi.DomainTransaction
for _, mempoolTransaction := range tp.allTransactions { for _, mempoolTransaction := range tp.allTransactions {
if clone { if clone {
@ -234,6 +233,9 @@ func (tp *transactionsPool) getTransactionsByAddresses(clone bool) (
transaction = mempoolTransaction.Transaction() transaction = mempoolTransaction.Transaction()
} }
for _, input := range transaction.Inputs { for _, input := range transaction.Inputs {
if input.UTXOEntry == nil { //this should be fixed
return nil, nil, err
}
_, address, err := txscript.ExtractScriptPubKeyAddress(input.UTXOEntry.ScriptPublicKey(), tp.mempool.params) _, address, err := txscript.ExtractScriptPubKeyAddress(input.UTXOEntry.ScriptPublicKey(), tp.mempool.params)
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
@ -241,7 +243,8 @@ func (tp *transactionsPool) getTransactionsByAddresses(clone bool) (
if address == nil { //ignore none-standard script if address == nil { //ignore none-standard script
continue continue
} }
sending[address] = transaction sending[address.String()] = transaction
}
for _, output := range transaction.Outputs { for _, output := range transaction.Outputs {
_, address, err := txscript.ExtractScriptPubKeyAddress(output.ScriptPublicKey, tp.mempool.params) _, address, err := txscript.ExtractScriptPubKeyAddress(output.ScriptPublicKey, tp.mempool.params)
if err != nil { if err != nil {
@ -250,10 +253,10 @@ func (tp *transactionsPool) getTransactionsByAddresses(clone bool) (
if address == nil { //ignore none-standard script if address == nil { //ignore none-standard script
continue continue
} }
receiving[address] = transaction receiving[address.String()] = transaction
}
} }
} }
return sending, receiving, nil return sending, receiving, nil
} }

View File

@ -7,7 +7,6 @@ import (
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi" "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
"github.com/kaspanet/kaspad/domain/consensusreference" "github.com/kaspanet/kaspad/domain/consensusreference"
miningmanagermodel "github.com/kaspanet/kaspad/domain/miningmanager/model" miningmanagermodel "github.com/kaspanet/kaspad/domain/miningmanager/model"
"github.com/kaspanet/kaspad/util"
) )
// MiningManager creates block templates for mining as well as maintaining // MiningManager creates block templates for mining as well as maintaining
@ -18,14 +17,14 @@ type MiningManager interface {
GetBlockTemplateBuilder() miningmanagermodel.BlockTemplateBuilder GetBlockTemplateBuilder() miningmanagermodel.BlockTemplateBuilder
GetTransaction(transactionID *externalapi.DomainTransactionID) (*externalapi.DomainTransaction, bool) GetTransaction(transactionID *externalapi.DomainTransactionID) (*externalapi.DomainTransaction, bool)
GetTransactionsByAddresses() ( GetTransactionsByAddresses() (
sending map[util.Address]*externalapi.DomainTransaction, sending map[string]*externalapi.DomainTransaction,
receiving map[util.Address]*externalapi.DomainTransaction, receiving map[string]*externalapi.DomainTransaction,
err error) err error)
AllTransactions() []*externalapi.DomainTransaction AllTransactions() []*externalapi.DomainTransaction
GetOrphanTransaction(transactionID *externalapi.DomainTransactionID) (*externalapi.DomainTransaction, bool) GetOrphanTransaction(transactionID *externalapi.DomainTransactionID) (*externalapi.DomainTransaction, bool)
GetOrphanTransactionsByAddresses() ( GetOrphanTransactionsByAddresses() (
sending map[util.Address]*externalapi.DomainTransaction, sending map[string]*externalapi.DomainTransaction,
receiving map[util.Address]*externalapi.DomainTransaction, receiving map[string]*externalapi.DomainTransaction,
err error) err error)
AllOrphanTransactions() []*externalapi.DomainTransaction AllOrphanTransactions() []*externalapi.DomainTransaction
TransactionCount() int TransactionCount() int
@ -128,8 +127,8 @@ func (mm *miningManager) AllTransactions() []*externalapi.DomainTransaction {
} }
func (mm *miningManager) GetTransactionsByAddresses() ( func (mm *miningManager) GetTransactionsByAddresses() (
sending map[util.Address]*externalapi.DomainTransaction, sending map[string]*externalapi.DomainTransaction,
receiving map[util.Address]*externalapi.DomainTransaction, receiving map[string]*externalapi.DomainTransaction,
err error) { err error) {
return mm.mempool.GetTransactionsByAddresses() return mm.mempool.GetTransactionsByAddresses()
} }
@ -141,8 +140,8 @@ func (mm *miningManager) GetOrphanTransaction(
} }
func (mm *miningManager) GetOrphanTransactionsByAddresses() ( func (mm *miningManager) GetOrphanTransactionsByAddresses() (
sending map[util.Address]*externalapi.DomainTransaction, sending map[string]*externalapi.DomainTransaction,
receiving map[util.Address]*externalapi.DomainTransaction, receiving map[string]*externalapi.DomainTransaction,
err error) { err error) {
return mm.mempool.GetTransactionsByAddresses() return mm.mempool.GetTransactionsByAddresses()
} }

View File

@ -2,7 +2,6 @@ package model
import ( import (
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi" "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
"github.com/kaspanet/kaspad/util"
) )
// Mempool maintains a set of known transactions that // Mempool maintains a set of known transactions that
@ -15,14 +14,14 @@ type Mempool interface {
RemoveTransactions(txs []*externalapi.DomainTransaction, removeRedeemers bool) error RemoveTransactions(txs []*externalapi.DomainTransaction, removeRedeemers bool) error
GetTransaction(transactionID *externalapi.DomainTransactionID) (*externalapi.DomainTransaction, bool) GetTransaction(transactionID *externalapi.DomainTransactionID) (*externalapi.DomainTransaction, bool)
GetTransactionsByAddresses() ( GetTransactionsByAddresses() (
sending map[util.Address]*externalapi.DomainTransaction, sending map[string]*externalapi.DomainTransaction,
receiving map[util.Address]*externalapi.DomainTransaction, receiving map[string]*externalapi.DomainTransaction,
err error) err error)
AllTransactions() []*externalapi.DomainTransaction AllTransactions() []*externalapi.DomainTransaction
GetOrphanTransaction(transactionID *externalapi.DomainTransactionID) (*externalapi.DomainTransaction, bool) GetOrphanTransaction(transactionID *externalapi.DomainTransactionID) (*externalapi.DomainTransaction, bool)
GetOrphanTransactionsByAddresses() ( GetOrphanTransactionsByAddresses() (
sending map[util.Address]*externalapi.DomainTransaction, sending map[string]*externalapi.DomainTransaction,
receiving map[util.Address]*externalapi.DomainTransaction, receiving map[string]*externalapi.DomainTransaction,
err error) err error)
AllOrphanTransactions() []*externalapi.DomainTransaction AllOrphanTransactions() []*externalapi.DomainTransaction
TransactionCount() int TransactionCount() int