communicate id between haandlers and listeners

This commit is contained in:
D-Stacks 2022-06-15 08:14:00 +02:00
parent 764bb26356
commit fe927bf46e
11 changed files with 39 additions and 34 deletions

View File

@ -54,6 +54,7 @@ func NewPruningPointUTXOSetOverrideNotificationMessage(id string) *PruningPointU
// its respective RPC message // its respective RPC message
type StopNotifyingPruningPointUTXOSetOverrideRequestMessage struct { type StopNotifyingPruningPointUTXOSetOverrideRequestMessage struct {
baseMessage baseMessage
Id string
} }
// Command returns the protocol command string for the message // Command returns the protocol command string for the message
@ -63,7 +64,7 @@ func (msg *StopNotifyingPruningPointUTXOSetOverrideRequestMessage) Command() Mes
// NewStopNotifyingPruningPointUTXOSetOverrideRequestMessage returns a instance of the message // NewStopNotifyingPruningPointUTXOSetOverrideRequestMessage returns a instance of the message
func NewStopNotifyingPruningPointUTXOSetOverrideRequestMessage(id string) *StopNotifyingPruningPointUTXOSetOverrideRequestMessage { func NewStopNotifyingPruningPointUTXOSetOverrideRequestMessage(id string) *StopNotifyingPruningPointUTXOSetOverrideRequestMessage {
return &StopNotifyingPruningPointUTXOSetOverrideRequestMessage{} return &StopNotifyingPruningPointUTXOSetOverrideRequestMessage{Id: id}
} }
// StopNotifyingPruningPointUTXOSetOverrideResponseMessage is an appmessage corresponding to // StopNotifyingPruningPointUTXOSetOverrideResponseMessage is an appmessage corresponding to

View File

@ -8,15 +8,14 @@ import (
// HandleNotifyBlockAdded handles the respectively named RPC command // HandleNotifyBlockAdded handles the respectively named RPC command
func HandleNotifyBlockAdded(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) { func HandleNotifyBlockAdded(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) {
notifyBlockAddedRequestMessage := request.(*appmessage.NotifyBlockAddedRequestMessage) notifyBlockAddedRequestMessage := request.(*appmessage.NotifyBlockAddedRequestMessage)
notifyUTXOsChangedRequest := request.(*appmessage.NotifyUTXOsChangedRequestMessage)
listener, err := context.NotificationManager.Listener(router) listener, err := context.NotificationManager.Listener(router)
if err != nil { if err != nil {
return nil, err return nil, err
} }
listener.PropagateBlockAddedNotifications() listener.PropagateBlockAddedNotifications(notifyBlockAddedRequestMessage.Id)
response := appmessage.NewNotifyBlockAddedResponseMessage(notifyBlockAddedRequestMessage.Id) response := appmessage.NewNotifyBlockAddedResponseMessage(notifyBlockAddedRequestMessage.Id)
return response, nil return response, nil

View File

@ -9,15 +9,15 @@ import (
// HandleNotifyFinalityConflicts handles the respectively named RPC command // HandleNotifyFinalityConflicts handles the respectively named RPC command
func HandleNotifyFinalityConflicts(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) { func HandleNotifyFinalityConflicts(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) {
notifyUTXOsChangedRequest := request.(*appmessage.NotifyUTXOsChangedRequestMessage) notifyFinalityConflictsRequest := request.(*appmessage.NotifyFinalityConflictsRequestMessage)
listener, err := context.NotificationManager.Listener(router) listener, err := context.NotificationManager.Listener(router)
if err != nil { if err != nil {
return nil, err return nil, err
} }
listener.PropagateFinalityConflictNotifications() listener.PropagateFinalityConflictNotifications(notifyFinalityConflictsRequest.Id)
listener.PropagateFinalityConflictResolvedNotifications() listener.PropagateFinalityConflictResolvedNotifications(notifyFinalityConflictsRequest.Id)
response := appmessage.NewNotifyFinalityConflictsResponseMessage() response := appmessage.NewNotifyFinalityConflictsResponseMessage(notifyFinalityConflictsRequest.Id)
return response, nil return response, nil
} }

View File

@ -9,14 +9,14 @@ import (
// HandleNotifyNewBlockTemplate handles the respectively named RPC command // HandleNotifyNewBlockTemplate handles the respectively named RPC command
func HandleNotifyNewBlockTemplate(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) { func HandleNotifyNewBlockTemplate(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) {
notifyUTXOsChangedRequest := request.(*appmessage.NotifyUTXOsChangedRequestMessage) notifyNewBlockTemplateRequest := request.(*appmessage.NotifyNewBlockTemplateRequestMessage)
listener, err := context.NotificationManager.Listener(router) listener, err := context.NotificationManager.Listener(router)
if err != nil { if err != nil {
return nil, err return nil, err
} }
listener.PropagateNewBlockTemplateNotifications() listener.PropagateNewBlockTemplateNotifications(notifyNewBlockTemplateRequest.Id)
response := appmessage.NewNotifyNewBlockTemplateResponseMessage() response := appmessage.NewNotifyNewBlockTemplateResponseMessage(notifyNewBlockTemplateRequest.Id)
return response, nil return response, nil
} }

View File

@ -9,14 +9,14 @@ import (
// HandleNotifyPruningPointUTXOSetOverrideRequest handles the respectively named RPC command // HandleNotifyPruningPointUTXOSetOverrideRequest handles the respectively named RPC command
func HandleNotifyPruningPointUTXOSetOverrideRequest(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) { func HandleNotifyPruningPointUTXOSetOverrideRequest(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) {
notifyUTXOsChangedRequest := request.(*appmessage.NotifyUTXOsChangedRequestMessage) notifyPruningPointUTXOSetOverrideRequest := request.(*appmessage.NotifyPruningPointUTXOSetOverrideRequestMessage)
listener, err := context.NotificationManager.Listener(router) listener, err := context.NotificationManager.Listener(router)
if err != nil { if err != nil {
return nil, err return nil, err
} }
listener.PropagatePruningPointUTXOSetOverrideNotifications() listener.PropagatePruningPointUTXOSetOverrideNotifications(notifyPruningPointUTXOSetOverrideRequest.Id)
response := appmessage.NewNotifyPruningPointUTXOSetOverrideResponseMessage() response := appmessage.NewNotifyPruningPointUTXOSetOverrideResponseMessage(notifyPruningPointUTXOSetOverrideRequest.Id)
return response, nil return response, nil
} }

View File

@ -8,16 +8,18 @@ import (
// HandleNotifyUTXOsChanged handles the respectively named RPC command // HandleNotifyUTXOsChanged handles the respectively named RPC command
func HandleNotifyUTXOsChanged(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) { func HandleNotifyUTXOsChanged(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) {
notifyUTXOsChangedRequest := request.(*appmessage.NotifyUTXOsChangedRequestMessage)
if !context.Config.UTXOIndex { if !context.Config.UTXOIndex {
errorMessage := appmessage.NewNotifyUTXOsChangedResponseMessage() errorMessage := appmessage.NewNotifyUTXOsChangedResponseMessage(notifyUTXOsChangedRequest.Id)
errorMessage.Error = appmessage.RPCErrorf("Method unavailable when kaspad is run without --utxoindex") errorMessage.Error = appmessage.RPCErrorf("Method unavailable when kaspad is run without --utxoindex")
return errorMessage, nil return errorMessage, nil
} }
notifyUTXOsChangedRequest := request.(*appmessage.NotifyUTXOsChangedRequestMessage)
addresses, err := context.ConvertAddressStringsToUTXOsChangedNotificationAddresses(notifyUTXOsChangedRequest.Addresses) addresses, err := context.ConvertAddressStringsToUTXOsChangedNotificationAddresses(notifyUTXOsChangedRequest.Addresses)
if err != nil { if err != nil {
errorMessage := appmessage.NewNotifyUTXOsChangedResponseMessage() errorMessage := appmessage.NewNotifyUTXOsChangedResponseMessage(notifyUTXOsChangedRequest.Id)
errorMessage.Error = appmessage.RPCErrorf("Parsing error: %s", err) errorMessage.Error = appmessage.RPCErrorf("Parsing error: %s", err)
return errorMessage, nil return errorMessage, nil
} }
@ -26,8 +28,8 @@ func HandleNotifyUTXOsChanged(context *rpccontext.Context, router *router.Router
if err != nil { if err != nil {
return nil, err return nil, err
} }
listener.PropagateUTXOsChangedNotifications(addresses) listener.PropagateUTXOsChangedNotifications(addresses, notifyUTXOsChangedRequest.Id)
response := appmessage.NewNotifyUTXOsChangedResponseMessage() response := appmessage.NewNotifyUTXOsChangedResponseMessage(notifyUTXOsChangedRequest.Id)
return response, nil return response, nil
} }

View File

@ -9,14 +9,14 @@ import (
// HandleNotifyVirtualDaaScoreChanged handles the respectively named RPC command // HandleNotifyVirtualDaaScoreChanged handles the respectively named RPC command
func HandleNotifyVirtualDaaScoreChanged(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) { func HandleNotifyVirtualDaaScoreChanged(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) {
notifyUTXOsChangedRequest := request.(*appmessage.NotifyUTXOsChangedRequestMessage) notifyVirtualDaaScoreChangedRequest := request.(*appmessage.NotifyVirtualDaaScoreChangedRequestMessage)
listener, err := context.NotificationManager.Listener(router) listener, err := context.NotificationManager.Listener(router)
if err != nil { if err != nil {
return nil, err return nil, err
} }
listener.PropagateVirtualDaaScoreChangedNotifications() listener.PropagateVirtualDaaScoreChangedNotifications(notifyVirtualDaaScoreChangedRequest.Id)
response := appmessage.NewNotifyVirtualDaaScoreChangedResponseMessage() response := appmessage.NewNotifyVirtualDaaScoreChangedResponseMessage(notifyVirtualDaaScoreChangedRequest.Id)
return response, nil return response, nil
} }

View File

@ -9,14 +9,14 @@ import (
// HandleNotifyVirtualSelectedParentBlueScoreChanged handles the respectively named RPC command // HandleNotifyVirtualSelectedParentBlueScoreChanged handles the respectively named RPC command
func HandleNotifyVirtualSelectedParentBlueScoreChanged(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) { func HandleNotifyVirtualSelectedParentBlueScoreChanged(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) {
notifyUTXOsChangedRequest := request.(*appmessage.NotifyUTXOsChangedRequestMessage) notifyVirtualSelectedParentBlueScoreChangedRequest := request.(*appmessage.NotifyVirtualSelectedParentBlueScoreChangedRequestMessage)
listener, err := context.NotificationManager.Listener(router) listener, err := context.NotificationManager.Listener(router)
if err != nil { if err != nil {
return nil, err return nil, err
} }
listener.PropagateVirtualSelectedParentBlueScoreChangedNotifications() listener.PropagateVirtualSelectedParentBlueScoreChangedNotifications(notifyVirtualSelectedParentBlueScoreChangedRequest.Id)
response := appmessage.NewNotifyVirtualSelectedParentBlueScoreChangedResponseMessage() response := appmessage.NewNotifyVirtualSelectedParentBlueScoreChangedResponseMessage(notifyVirtualSelectedParentBlueScoreChangedRequest.Id)
return response, nil return response, nil
} }

View File

@ -17,8 +17,9 @@ func HandleNotifyVirtualSelectedParentChainChanged(context *rpccontext.Context,
return nil, err return nil, err
} }
listener.PropagateVirtualSelectedParentChainChangedNotifications( listener.PropagateVirtualSelectedParentChainChangedNotifications(
notifyVirtualSelectedParentChainChangedRequest.IncludeAcceptedTransactionIDs) notifyVirtualSelectedParentChainChangedRequest.IncludeAcceptedTransactionIDs,
notifyVirtualSelectedParentChainChangedRequest.Id)
response := appmessage.NewNotifyVirtualSelectedParentChainChangedResponseMessage() response := appmessage.NewNotifyVirtualSelectedParentChainChangedResponseMessage(notifyVirtualSelectedParentChainChangedRequest.Id)
return response, nil return response, nil
} }

View File

@ -9,14 +9,14 @@ import (
// HandleStopNotifyingPruningPointUTXOSetOverrideRequest handles the respectively named RPC command // HandleStopNotifyingPruningPointUTXOSetOverrideRequest handles the respectively named RPC command
func HandleStopNotifyingPruningPointUTXOSetOverrideRequest(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) { func HandleStopNotifyingPruningPointUTXOSetOverrideRequest(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) {
notifyUTXOsChangedRequest := request.(*appmessage.NotifyUTXOsChangedRequestMessage) stopNotifyingPruningPointUTXOSetOverrideRequest := request.(*appmessage.StopNotifyingPruningPointUTXOSetOverrideRequestMessage)
listener, err := context.NotificationManager.Listener(router) listener, err := context.NotificationManager.Listener(router)
if err != nil { if err != nil {
return nil, err return nil, err
} }
listener.StopPropagatingPruningPointUTXOSetOverrideNotifications() listener.StopPropagatingPruningPointUTXOSetOverrideNotifications(stopNotifyingPruningPointUTXOSetOverrideRequest.Id)
response := appmessage.NewStopNotifyingPruningPointUTXOSetOverrideResponseMessage() response := appmessage.NewStopNotifyingPruningPointUTXOSetOverrideResponseMessage(stopNotifyingPruningPointUTXOSetOverrideRequest.Id)
return response, nil return response, nil
} }

View File

@ -8,16 +8,18 @@ import (
// HandleStopNotifyingUTXOsChanged handles the respectively named RPC command // HandleStopNotifyingUTXOsChanged handles the respectively named RPC command
func HandleStopNotifyingUTXOsChanged(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) { func HandleStopNotifyingUTXOsChanged(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) {
stopNotifyingUTXOsChangedRequest := request.(*appmessage.StopNotifyingUTXOsChangedRequestMessage)
if !context.Config.UTXOIndex { if !context.Config.UTXOIndex {
errorMessage := appmessage.NewStopNotifyingUTXOsChangedResponseMessage() errorMessage := appmessage.NewStopNotifyingUTXOsChangedResponseMessage(stopNotifyingUTXOsChangedRequest.Id)
errorMessage.Error = appmessage.RPCErrorf("Method unavailable when kaspad is run without --utxoindex") errorMessage.Error = appmessage.RPCErrorf("Method unavailable when kaspad is run without --utxoindex")
return errorMessage, nil return errorMessage, nil
} }
stopNotifyingUTXOsChangedRequest := request.(*appmessage.StopNotifyingUTXOsChangedRequestMessage)
addresses, err := context.ConvertAddressStringsToUTXOsChangedNotificationAddresses(stopNotifyingUTXOsChangedRequest.Addresses) addresses, err := context.ConvertAddressStringsToUTXOsChangedNotificationAddresses(stopNotifyingUTXOsChangedRequest.Addresses)
if err != nil { if err != nil {
errorMessage := appmessage.NewNotifyUTXOsChangedResponseMessage() errorMessage := appmessage.NewNotifyUTXOsChangedResponseMessage(stopNotifyingUTXOsChangedRequest.Id)
errorMessage.Error = appmessage.RPCErrorf("Parsing error: %s", err) errorMessage.Error = appmessage.RPCErrorf("Parsing error: %s", err)
return errorMessage, nil return errorMessage, nil
} }
@ -28,6 +30,6 @@ func HandleStopNotifyingUTXOsChanged(context *rpccontext.Context, router *router
} }
listener.StopPropagatingUTXOsChangedNotifications(addresses) listener.StopPropagatingUTXOsChangedNotifications(addresses)
response := appmessage.NewStopNotifyingUTXOsChangedResponseMessage() response := appmessage.NewStopNotifyingUTXOsChangedResponseMessage(stopNotifyingUTXOsChangedRequest.Id)
return response, nil return response, nil
} }