some fixes, not all commands working

This commit is contained in:
D-Stacks 2022-10-10 17:12:24 +02:00
parent 1b5a236651
commit 1aa93d2fc4
11 changed files with 37 additions and 26 deletions

View File

@ -165,7 +165,6 @@ const (
CmdGetCoinSupplyResponseMessage CmdGetCoinSupplyResponseMessage
CmdGetAcceptingBlockHashOfTxRequestMessage CmdGetAcceptingBlockHashOfTxRequestMessage
CmdGetAcceptingBlockHashOfTxResponseMessage CmdGetAcceptingBlockHashOfTxResponseMessage
CmdGetAcceptingBlockHashesOfTxsRequestMessage CmdGetAcceptingBlockHashesOfTxsRequestMessage
CmdGetAcceptingBlockHashesOfTxsResponseMessage CmdGetAcceptingBlockHashesOfTxsResponseMessage
CmdGetAcceptingBlockOfTxRequestMessage CmdGetAcceptingBlockOfTxRequestMessage

View File

@ -10,13 +10,14 @@ type GetAcceptingBlockOfTxRequestMessage struct {
// Command returns the protocol command string for the message // Command returns the protocol command string for the message
func (msg *GetAcceptingBlockOfTxRequestMessage) Command() MessageCommand { func (msg *GetAcceptingBlockOfTxRequestMessage) Command() MessageCommand {
return CmdGetAcceptingBlockHashOfTxRequestMessage return CmdGetAcceptingBlockOfTxRequestMessage
} }
// NewGetAcceptingBlockOfTxRequest returns a instance of the message // NewGetAcceptingBlockOfTxRequest returns a instance of the message
func NewGetAcceptingBlockOfTxRequest(txID string) *GetAcceptingBlockOfTxRequestMessage { func NewGetAcceptingBlockOfTxRequest(txID string, includeTransactions bool) *GetAcceptingBlockOfTxRequestMessage {
return &GetAcceptingBlockOfTxRequestMessage{ return &GetAcceptingBlockOfTxRequestMessage{
TxID: txID, TxID: txID,
IncludeTransactions: includeTransactions,
} }
} }

View File

@ -21,9 +21,10 @@ func (msg *GetAcceptingBlocksOfTxsRequestMessage) Command() MessageCommand {
} }
// NewGetAcceptingBlocksOfTxsRequest returns a instance of the message // NewGetAcceptingBlocksOfTxsRequest returns a instance of the message
func NewGetAcceptingBlocksOfTxsRequest(txIDs []string) *GetAcceptingBlocksOfTxsRequestMessage { func NewGetAcceptingBlocksOfTxsRequest(txIDs []string, includeTransactions bool) *GetAcceptingBlocksOfTxsRequestMessage {
return &GetAcceptingBlocksOfTxsRequestMessage{ return &GetAcceptingBlocksOfTxsRequestMessage{
TxIDs: txIDs, TxIDs: txIDs,
IncludeTransactions: includeTransactions,
} }
} }

View File

@ -52,6 +52,15 @@ var handlers = map[appmessage.MessageCommand]handler{
appmessage.CmdGetCoinSupplyRequestMessage: rpchandlers.HandleGetCoinSupply, appmessage.CmdGetCoinSupplyRequestMessage: rpchandlers.HandleGetCoinSupply,
appmessage.CmdGetMempoolEntriesByAddressesRequestMessage: rpchandlers.HandleGetMempoolEntriesByAddresses, appmessage.CmdGetMempoolEntriesByAddressesRequestMessage: rpchandlers.HandleGetMempoolEntriesByAddresses,
appmessage.CmdGetAcceptingBlockHashOfTxRequestMessage: rpchandlers.HandleGetAcceptingBlockHashOfTx, appmessage.CmdGetAcceptingBlockHashOfTxRequestMessage: rpchandlers.HandleGetAcceptingBlockHashOfTx,
appmessage.CmdGetAcceptingBlockHashesOfTxsRequestMessage: rpchandlers.HandleGetAcceptingBlockHashesOfTxs,
appmessage.CmdGetAcceptingBlockOfTxRequestMessage: rpchandlers.HandleGetAcceptingBlockOfTx,
appmessage.CmdGetAcceptingBlocksOfTxsRequestMessage: rpchandlers.HandleGetAcceptingBlocksOfTxs,
appmessage.CmdGetIncludingBlockHashOfTxRequestMessage: rpchandlers.HandleGetIncludingBlockHashOfTx,
appmessage.CmdGetTxRequestMessage: rpchandlers.HandleGetTx,
appmessage.CmdGetTxsRequestMessage: rpchandlers.HandleGetTxs,
appmessage.CmdGetTxConfirmationsRequestMessage: rpchandlers.HandleGetTxConfirmations,
appmessage.CmdGetTxsConfirmationsRequestMessage: rpchandlers.HandleGetTxsConfirmations,
} }
func (m *Manager) routerInitializer(router *router.Router, netConnection *netadapter.NetConnection) { func (m *Manager) routerInitializer(router *router.Router, netConnection *netadapter.NetConnection) {

View File

@ -18,9 +18,9 @@ func HandleGetAcceptingBlockOfTx(context *rpccontext.Context, _ *router.Router,
return errorMessage, nil return errorMessage, nil
} }
getAcceptingBlockHashOfTxRequest := request.(*appmessage.GetAcceptingBlockOfTxRequestMessage) getAcceptingBlockOfTxRequest := request.(*appmessage.GetAcceptingBlockOfTxRequestMessage)
domainTxID, err := externalapi.NewDomainTransactionIDFromString(getAcceptingBlockHashOfTxRequest.TxID) domainTxID, err := externalapi.NewDomainTransactionIDFromString(getAcceptingBlockOfTxRequest.TxID)
if err != nil { if err != nil {
rpcError := &appmessage.RPCError{} rpcError := &appmessage.RPCError{}
if !errors.As(err, &rpcError) { if !errors.As(err, &rpcError) {
@ -48,7 +48,7 @@ func HandleGetAcceptingBlockOfTx(context *rpccontext.Context, _ *router.Router,
} }
rpcAcceptingBlock := appmessage.DomainBlockToRPCBlock(acceptingBlock) rpcAcceptingBlock := appmessage.DomainBlockToRPCBlock(acceptingBlock)
err = context.PopulateBlockWithVerboseData(rpcAcceptingBlock, acceptingBlock.Header, acceptingBlock, getAcceptingBlockHashOfTxRequest.IncludeTransactions) err = context.PopulateBlockWithVerboseData(rpcAcceptingBlock, acceptingBlock.Header, acceptingBlock, getAcceptingBlockOfTxRequest.IncludeTransactions)
if err != nil { if err != nil {
if errors.Is(err, rpccontext.ErrBuildBlockVerboseDataInvalidBlock) { if errors.Is(err, rpccontext.ErrBuildBlockVerboseDataInvalidBlock) {
errorMessage := &appmessage.GetAcceptingBlockOfTxResponseMessage{} errorMessage := &appmessage.GetAcceptingBlockOfTxResponseMessage{}

View File

@ -10,8 +10,8 @@ import (
"github.com/pkg/errors" "github.com/pkg/errors"
) )
// HandleGetAcceptingBlocksOfTx handles the respectively named RPC command // HandleGetAcceptingBlocksOfTxs handles the respectively named RPC command
func HandleGetAcceptingBlocksOfTx(context *rpccontext.Context, _ *router.Router, request appmessage.Message) (appmessage.Message, error) { func HandleGetAcceptingBlocksOfTxs(context *rpccontext.Context, _ *router.Router, request appmessage.Message) (appmessage.Message, error) {
var err error var err error
if !context.Config.TXIndex { if !context.Config.TXIndex {

View File

@ -2,6 +2,7 @@ package rpchandlers
import ( import (
"errors" "errors"
"fmt"
"github.com/kaspanet/kaspad/app/appmessage" "github.com/kaspanet/kaspad/app/appmessage"
"github.com/kaspanet/kaspad/app/rpc/rpccontext" "github.com/kaspanet/kaspad/app/rpc/rpccontext"
@ -54,6 +55,9 @@ func HandleGetTxsConfirmations(context *rpccontext.Context, _ *router.Router, re
i++ i++
} }
fmt.Println(txIDConfirmationPairs[0].Confirmations)
fmt.Println(txIDConfirmationPairs[1].Confirmations)
response := appmessage.NewGetTxsConfirmationsResponse(txIDConfirmationPairs) response := appmessage.NewGetTxsConfirmationsResponse(txIDConfirmationPairs)
return response, nil return response, nil

View File

@ -34,7 +34,7 @@ func New(domain domain.Domain, database database.Database) (*TXIndex, error) {
return nil, err return nil, err
} }
if !isSynced { if !isSynced || true {
err := txIndex.Reset() err := txIndex.Reset()
if err != nil { if err != nil {
@ -187,7 +187,7 @@ func (ti *TXIndex) addTXIDs(selectedParentChainChanges *externalapi.SelectedChai
if err != nil { if err != nil {
return err return err
} }
for i, addedChainBlock := range chainBlocksChunk { for i := range chainBlocksChunk {
chainBlockAcceptanceData := chainBlocksAcceptanceData[i] chainBlockAcceptanceData := chainBlocksAcceptanceData[i]
for _, blockAcceptanceData := range chainBlockAcceptanceData { for _, blockAcceptanceData := range chainBlockAcceptanceData {
for _, transactionAcceptanceData := range blockAcceptanceData.TransactionAcceptanceData { for _, transactionAcceptanceData := range blockAcceptanceData.TransactionAcceptanceData {
@ -195,7 +195,7 @@ func (ti *TXIndex) addTXIDs(selectedParentChainChanges *externalapi.SelectedChai
if transactionAcceptanceData.IsAccepted { if transactionAcceptanceData.IsAccepted {
ti.store.add( ti.store.add(
*consensushashing.TransactionID(transactionAcceptanceData.Transaction), *consensushashing.TransactionID(transactionAcceptanceData.Transaction),
addedChainBlock, blockAcceptanceData.BlockHash,
) )
} }
} }
@ -222,7 +222,7 @@ func (ti *TXIndex) removeTXIDs(selectedParentChainChanges *externalapi.SelectedC
if err != nil { if err != nil {
return err return err
} }
for i, removedChainBlock := range chainBlocksChunk { for i := range chainBlocksChunk {
chainBlockAcceptanceData := chainBlocksAcceptanceData[i] chainBlockAcceptanceData := chainBlocksAcceptanceData[i]
for _, blockAcceptanceData := range chainBlockAcceptanceData { for _, blockAcceptanceData := range chainBlockAcceptanceData {
log.Tracef("TX index Removing: %d transactions", len(blockAcceptanceData.TransactionAcceptanceData)) log.Tracef("TX index Removing: %d transactions", len(blockAcceptanceData.TransactionAcceptanceData))
@ -230,7 +230,7 @@ func (ti *TXIndex) removeTXIDs(selectedParentChainChanges *externalapi.SelectedC
if transactionAcceptanceData.IsAccepted { if transactionAcceptanceData.IsAccepted {
ti.store.remove( ti.store.remove(
*consensushashing.TransactionID(transactionAcceptanceData.Transaction), *consensushashing.TransactionID(transactionAcceptanceData.Transaction),
removedChainBlock, blockAcceptanceData.BlockHash,
) )
} }
} }
@ -350,12 +350,9 @@ func (ti *TXIndex) GetTX(txID *externalapi.DomainTransactionID) (
return nil, false, err return nil, false, err
} }
var transaction *externalapi.DomainTransaction for i := range acceptingBlock.Transactions {
if consensushashing.TransactionID(acceptingBlock.Transactions[i]).Equal(txID) {
for _, tx := range acceptingBlock.Transactions { return acceptingBlock.Transactions[i].Clone(), true, nil
if consensushashing.TransactionID(tx).Equal(txID) {
transaction = tx
return transaction, true, nil
} }
} }

View File

@ -3,8 +3,8 @@ package rpcclient
import "github.com/kaspanet/kaspad/app/appmessage" import "github.com/kaspanet/kaspad/app/appmessage"
// GetAcceptingBlockOfTx sends an RPC request respective to the function's name and returns the RPC server's response // GetAcceptingBlockOfTx sends an RPC request respective to the function's name and returns the RPC server's response
func (c *RPCClient) GetAcceptingBlockOfTx(txID string) (*appmessage.GetAcceptingBlockOfTxResponseMessage, error) { func (c *RPCClient) GetAcceptingBlockOfTx(txID string, includeTransactions bool) (*appmessage.GetAcceptingBlockOfTxResponseMessage, error) {
err := c.rpcRouter.outgoingRoute().Enqueue(appmessage.NewGetAcceptingBlockOfTxRequest(txID)) err := c.rpcRouter.outgoingRoute().Enqueue(appmessage.NewGetAcceptingBlockOfTxRequest(txID, includeTransactions))
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -2,8 +2,8 @@ package rpcclient
import "github.com/kaspanet/kaspad/app/appmessage" import "github.com/kaspanet/kaspad/app/appmessage"
// GetAcceptingBlockHashOfTxs sends an RPC request respective to the function's name and returns the RPC server's response // GetAcceptingBlockHashOfTx sends an RPC request respective to the function's name and returns the RPC server's response
func (c *RPCClient) GetAcceptingBlockHashOfTxs(txID string) (*appmessage.GetAcceptingBlockHashOfTxResponseMessage, error) { func (c *RPCClient) GetAcceptingBlockHashOfTx(txID string) (*appmessage.GetAcceptingBlockHashOfTxResponseMessage, error) {
err := c.rpcRouter.outgoingRoute().Enqueue(appmessage.NewGetAcceptingBlockHashOfTxRequest(txID)) err := c.rpcRouter.outgoingRoute().Enqueue(appmessage.NewGetAcceptingBlockHashOfTxRequest(txID))
if err != nil { if err != nil {
return nil, err return nil, err

View File

@ -3,8 +3,8 @@ package rpcclient
import "github.com/kaspanet/kaspad/app/appmessage" import "github.com/kaspanet/kaspad/app/appmessage"
// GetAcceptingBlocksTxs sends an RPC request respective to the function's name and returns the RPC server's response // GetAcceptingBlocksTxs sends an RPC request respective to the function's name and returns the RPC server's response
func (c *RPCClient) GetAcceptingBlocksTxs(txIDs []string) (*appmessage.GetAcceptingBlocksOfTxsResponseMessage, error) { func (c *RPCClient) GetAcceptingBlocksTxs(txIDs []string, includeTransactions bool) (*appmessage.GetAcceptingBlocksOfTxsResponseMessage, error) {
err := c.rpcRouter.outgoingRoute().Enqueue(appmessage.NewGetAcceptingBlocksOfTxsRequest(txIDs)) err := c.rpcRouter.outgoingRoute().Enqueue(appmessage.NewGetAcceptingBlocksOfTxsRequest(txIDs, includeTransactions))
if err != nil { if err != nil {
return nil, err return nil, err
} }