diff --git a/app/appmessage/message.go b/app/appmessage/message.go index bf8bd9e03..f3cd332d6 100644 --- a/app/appmessage/message.go +++ b/app/appmessage/message.go @@ -117,6 +117,8 @@ const ( CmdNotifyUTXOsChangedRequestMessage CmdNotifyUTXOsChangedResponseMessage CmdUTXOsChangedNotificationMessage + CmdStopNotifyingUTXOsChangedRequestMessage + CmdStopNotifyingUTXOsChangedResponseMessage CmdGetUTXOsByAddressesRequestMessage CmdGetUTXOsByAddressesResponseMessage CmdGetVirtualSelectedParentBlueScoreRequestMessage @@ -221,6 +223,8 @@ var RPCMessageCommandToString = map[MessageCommand]string{ CmdNotifyUTXOsChangedRequestMessage: "NotifyUTXOsChangedRequest", CmdNotifyUTXOsChangedResponseMessage: "NotifyUTXOsChangedResponse", CmdUTXOsChangedNotificationMessage: "UTXOsChangedNotification", + CmdStopNotifyingUTXOsChangedRequestMessage: "StopNotifyingUTXOsChangedRequest", + CmdStopNotifyingUTXOsChangedResponseMessage: "StopNotifyingUTXOsChangedResponse", CmdGetUTXOsByAddressesRequestMessage: "GetUTXOsByAddressesRequest", CmdGetUTXOsByAddressesResponseMessage: "GetUTXOsByAddressesResponse", CmdGetVirtualSelectedParentBlueScoreRequestMessage: "GetVirtualSelectedParentBlueScoreRequest", diff --git a/app/appmessage/rpc_stop_notifying_utxos_changed.go b/app/appmessage/rpc_stop_notifying_utxos_changed.go new file mode 100644 index 000000000..16e0e34e8 --- /dev/null +++ b/app/appmessage/rpc_stop_notifying_utxos_changed.go @@ -0,0 +1,37 @@ +package appmessage + +// StopNotifyingUTXOsChangedRequestMessage is an appmessage corresponding to +// its respective RPC message +type StopNotifyingUTXOsChangedRequestMessage struct { + baseMessage + Addresses []string +} + +// Command returns the protocol command string for the message +func (msg *StopNotifyingUTXOsChangedRequestMessage) Command() MessageCommand { + return CmdStopNotifyingUTXOsChangedRequestMessage +} + +// NewStopNotifyingUTXOsChangedRequestMessage returns a instance of the message +func NewStopNotifyingUTXOsChangedRequestMessage(addresses []string) *StopNotifyingUTXOsChangedRequestMessage { + return &StopNotifyingUTXOsChangedRequestMessage{ + Addresses: addresses, + } +} + +// StopNotifyingUTXOsChangedResponseMessage is an appmessage corresponding to +// its respective RPC message +type StopNotifyingUTXOsChangedResponseMessage struct { + baseMessage + Error *RPCError +} + +// Command returns the protocol command string for the message +func (msg *StopNotifyingUTXOsChangedResponseMessage) Command() MessageCommand { + return CmdStopNotifyingUTXOsChangedResponseMessage +} + +// NewStopNotifyingUTXOsChangedResponseMessage returns a instance of the message +func NewStopNotifyingUTXOsChangedResponseMessage() *StopNotifyingUTXOsChangedResponseMessage { + return &StopNotifyingUTXOsChangedResponseMessage{} +} diff --git a/app/rpc/rpc.go b/app/rpc/rpc.go index 57e6a4f0c..f9e25050e 100644 --- a/app/rpc/rpc.go +++ b/app/rpc/rpc.go @@ -35,6 +35,7 @@ var handlers = map[appmessage.MessageCommand]handler{ appmessage.CmdShutDownRequestMessage: rpchandlers.HandleShutDown, appmessage.CmdGetHeadersRequestMessage: rpchandlers.HandleGetHeaders, appmessage.CmdNotifyUTXOsChangedRequestMessage: rpchandlers.HandleNotifyUTXOsChanged, + appmessage.CmdStopNotifyingUTXOsChangedRequestMessage: rpchandlers.HandleStopNotifyingUTXOsChanged, appmessage.CmdGetUTXOsByAddressesRequestMessage: rpchandlers.HandleGetUTXOsByAddresses, appmessage.CmdGetVirtualSelectedParentBlueScoreRequestMessage: rpchandlers.HandleGetVirtualSelectedParentBlueScore, appmessage.CmdNotifyVirtualSelectedParentBlueScoreChangedRequestMessage: rpchandlers.HandleNotifyVirtualSelectedParentBlueScoreChanged, diff --git a/app/rpc/rpccontext/notificationmanager.go b/app/rpc/rpccontext/notificationmanager.go index 119d31fef..c88189f4d 100644 --- a/app/rpc/rpccontext/notificationmanager.go +++ b/app/rpc/rpccontext/notificationmanager.go @@ -31,7 +31,7 @@ type NotificationListener struct { propagateUTXOsChangedNotifications bool propagateVirtualSelectedParentBlueScoreChangedNotifications bool - propagateUTXOsChangedNotificationAddresses []*UTXOsChangedNotificationAddress + propagateUTXOsChangedNotificationAddresses map[utxoindex.ScriptPublicKeyString]*UTXOsChangedNotificationAddress } // NewNotificationManager creates a new NotificationManager @@ -216,34 +216,70 @@ func (nl *NotificationListener) PropagateFinalityConflictResolvedNotifications() } // PropagateUTXOsChangedNotifications instructs the listener to send UTXOs changed notifications -// to the remote listener +// to the remote listener for the given addresses. Subsequent calls instruct the listener to +// send UTXOs changed notifications for those addresses along with the old ones. Duplicate addresses +// are ignored. func (nl *NotificationListener) PropagateUTXOsChangedNotifications(addresses []*UTXOsChangedNotificationAddress) { - nl.propagateUTXOsChangedNotifications = true - nl.propagateUTXOsChangedNotificationAddresses = addresses + if !nl.propagateUTXOsChangedNotifications { + nl.propagateUTXOsChangedNotifications = true + nl.propagateUTXOsChangedNotificationAddresses = + make(map[utxoindex.ScriptPublicKeyString]*UTXOsChangedNotificationAddress, len(addresses)) + } + + for _, address := range addresses { + nl.propagateUTXOsChangedNotificationAddresses[address.ScriptPublicKeyString] = address + } +} + +// StopPropagatingUTXOsChangedNotifications instructs the listener to stop sending UTXOs +// changed notifications to the remote listener for the given addresses. Addresses for which +// notifications are not currently sent are ignored. +func (nl *NotificationListener) StopPropagatingUTXOsChangedNotifications(addresses []*UTXOsChangedNotificationAddress) { + if !nl.propagateUTXOsChangedNotifications { + return + } + + for _, address := range addresses { + delete(nl.propagateUTXOsChangedNotificationAddresses, address.ScriptPublicKeyString) + } } func (nl *NotificationListener) convertUTXOChangesToUTXOsChangedNotification( utxoChanges *utxoindex.UTXOChanges) *appmessage.UTXOsChangedNotificationMessage { + // As an optimization, we iterate over the smaller set (O(n)) among the two below + // and check existence over the larger set (O(1)) + utxoChangesSize := len(utxoChanges.Added) + len(utxoChanges.Removed) + addressesSize := len(nl.propagateUTXOsChangedNotificationAddresses) + notification := &appmessage.UTXOsChangedNotificationMessage{} - for _, listenerAddress := range nl.propagateUTXOsChangedNotificationAddresses { - listenerScriptPublicKeyString := listenerAddress.ScriptPublicKeyString - if addedPairs, ok := utxoChanges.Added[listenerScriptPublicKeyString]; ok { - notification.Added = append(notification.Added, - ConvertUTXOOutpointEntryPairsToUTXOsByAddressesEntries(listenerAddress.Address, addedPairs)...) + if utxoChangesSize < addressesSize { + for scriptPublicKeyString, addedPairs := range utxoChanges.Added { + if listenerAddress, ok := nl.propagateUTXOsChangedNotificationAddresses[scriptPublicKeyString]; ok { + utxosByAddressesEntries := ConvertUTXOOutpointEntryPairsToUTXOsByAddressesEntries(listenerAddress.Address, addedPairs) + notification.Added = append(notification.Added, utxosByAddressesEntries...) + } } - if removedOutpoints, ok := utxoChanges.Removed[listenerScriptPublicKeyString]; ok { - for outpoint := range removedOutpoints { - notification.Removed = append(notification.Removed, &appmessage.UTXOsByAddressesEntry{ - Address: listenerAddress.Address, - Outpoint: &appmessage.RPCOutpoint{ - TransactionID: outpoint.TransactionID.String(), - Index: outpoint.Index, - }, - }) + for scriptPublicKeyString, removedOutpoints := range utxoChanges.Removed { + if listenerAddress, ok := nl.propagateUTXOsChangedNotificationAddresses[scriptPublicKeyString]; ok { + utxosByAddressesEntries := convertUTXOOutpointsToUTXOsByAddressesEntries(listenerAddress.Address, removedOutpoints) + notification.Removed = append(notification.Removed, utxosByAddressesEntries...) + } + } + } else { + for _, listenerAddress := range nl.propagateUTXOsChangedNotificationAddresses { + listenerScriptPublicKeyString := listenerAddress.ScriptPublicKeyString + if addedPairs, ok := utxoChanges.Added[listenerScriptPublicKeyString]; ok { + utxosByAddressesEntries := ConvertUTXOOutpointEntryPairsToUTXOsByAddressesEntries(listenerAddress.Address, addedPairs) + notification.Added = append(notification.Added, utxosByAddressesEntries...) + } + if removedOutpoints, ok := utxoChanges.Removed[listenerScriptPublicKeyString]; ok { + utxosByAddressesEntries := convertUTXOOutpointsToUTXOsByAddressesEntries(listenerAddress.Address, removedOutpoints) + notification.Removed = append(notification.Removed, utxosByAddressesEntries...) } } } + return notification } diff --git a/app/rpc/rpccontext/utxos_by_addresses.go b/app/rpc/rpccontext/utxos_by_addresses.go index cea7db747..ff73d9862 100644 --- a/app/rpc/rpccontext/utxos_by_addresses.go +++ b/app/rpc/rpccontext/utxos_by_addresses.go @@ -2,6 +2,9 @@ package rpccontext import ( "encoding/hex" + "github.com/kaspanet/kaspad/domain/consensus/utils/txscript" + "github.com/kaspanet/kaspad/util" + "github.com/pkg/errors" "github.com/kaspanet/kaspad/app/appmessage" "github.com/kaspanet/kaspad/domain/utxoindex" @@ -28,3 +31,43 @@ func ConvertUTXOOutpointEntryPairsToUTXOsByAddressesEntries(address string, pair } return utxosByAddressesEntries } + +// convertUTXOOutpointsToUTXOsByAddressesEntries converts +// UTXOOutpoints to a slice of UTXOsByAddressesEntry +func convertUTXOOutpointsToUTXOsByAddressesEntries(address string, outpoints utxoindex.UTXOOutpoints) []*appmessage.UTXOsByAddressesEntry { + utxosByAddressesEntries := make([]*appmessage.UTXOsByAddressesEntry, 0, len(outpoints)) + for outpoint := range outpoints { + utxosByAddressesEntries = append(utxosByAddressesEntries, &appmessage.UTXOsByAddressesEntry{ + Address: address, + Outpoint: &appmessage.RPCOutpoint{ + TransactionID: outpoint.TransactionID.String(), + Index: outpoint.Index, + }, + }) + } + return utxosByAddressesEntries +} + +// ConvertAddressStringsToUTXOsChangedNotificationAddresses converts address strings +// to UTXOsChangedNotificationAddresses +func (ctx *Context) ConvertAddressStringsToUTXOsChangedNotificationAddresses( + addressStrings []string) ([]*UTXOsChangedNotificationAddress, error) { + + addresses := make([]*UTXOsChangedNotificationAddress, len(addressStrings)) + for i, addressString := range addressStrings { + address, err := util.DecodeAddress(addressString, ctx.Config.ActiveNetParams.Prefix) + if err != nil { + return nil, errors.Errorf("Could not decode address '%s': %s", addressString, err) + } + scriptPublicKey, err := txscript.PayToAddrScript(address) + if err != nil { + return nil, errors.Errorf("Could not create a scriptPublicKey for address '%s': %s", addressString, err) + } + scriptPublicKeyString := utxoindex.ConvertScriptPublicKeyToString(scriptPublicKey) + addresses[i] = &UTXOsChangedNotificationAddress{ + Address: addressString, + ScriptPublicKeyString: scriptPublicKeyString, + } + } + return addresses, nil +} diff --git a/app/rpc/rpchandlers/notify_utxos_changed.go b/app/rpc/rpchandlers/notify_utxos_changed.go index e3acb31dd..41ffe0dd3 100644 --- a/app/rpc/rpchandlers/notify_utxos_changed.go +++ b/app/rpc/rpchandlers/notify_utxos_changed.go @@ -3,10 +3,7 @@ package rpchandlers import ( "github.com/kaspanet/kaspad/app/appmessage" "github.com/kaspanet/kaspad/app/rpc/rpccontext" - "github.com/kaspanet/kaspad/domain/consensus/utils/txscript" - "github.com/kaspanet/kaspad/domain/utxoindex" "github.com/kaspanet/kaspad/infrastructure/network/netadapter/router" - "github.com/kaspanet/kaspad/util" ) // HandleNotifyUTXOsChanged handles the respectively named RPC command @@ -18,26 +15,11 @@ func HandleNotifyUTXOsChanged(context *rpccontext.Context, router *router.Router } notifyUTXOsChangedRequest := request.(*appmessage.NotifyUTXOsChangedRequestMessage) - - addresses := make([]*rpccontext.UTXOsChangedNotificationAddress, len(notifyUTXOsChangedRequest.Addresses)) - for i, addressString := range notifyUTXOsChangedRequest.Addresses { - address, err := util.DecodeAddress(addressString, context.Config.ActiveNetParams.Prefix) - if err != nil { - errorMessage := appmessage.NewNotifyUTXOsChangedResponseMessage() - errorMessage.Error = appmessage.RPCErrorf("Could not decode address '%s': %s", addressString, err) - return errorMessage, nil - } - scriptPublicKey, err := txscript.PayToAddrScript(address) - if err != nil { - errorMessage := appmessage.NewNotifyUTXOsChangedResponseMessage() - errorMessage.Error = appmessage.RPCErrorf("Could not create a scriptPublicKey for address '%s': %s", addressString, err) - return errorMessage, nil - } - scriptPublicKeyString := utxoindex.ConvertScriptPublicKeyToString(scriptPublicKey) - addresses[i] = &rpccontext.UTXOsChangedNotificationAddress{ - Address: addressString, - ScriptPublicKeyString: scriptPublicKeyString, - } + addresses, err := context.ConvertAddressStringsToUTXOsChangedNotificationAddresses(notifyUTXOsChangedRequest.Addresses) + if err != nil { + errorMessage := appmessage.NewNotifyUTXOsChangedResponseMessage() + errorMessage.Error = appmessage.RPCErrorf("Parsing error: %s", err) + return errorMessage, nil } listener, err := context.NotificationManager.Listener(router) diff --git a/app/rpc/rpchandlers/stop_notifying_utxos_changed.go b/app/rpc/rpchandlers/stop_notifying_utxos_changed.go new file mode 100644 index 000000000..0da89a9bf --- /dev/null +++ b/app/rpc/rpchandlers/stop_notifying_utxos_changed.go @@ -0,0 +1,33 @@ +package rpchandlers + +import ( + "github.com/kaspanet/kaspad/app/appmessage" + "github.com/kaspanet/kaspad/app/rpc/rpccontext" + "github.com/kaspanet/kaspad/infrastructure/network/netadapter/router" +) + +// HandleStopNotifyingUTXOsChanged handles the respectively named RPC command +func HandleStopNotifyingUTXOsChanged(context *rpccontext.Context, router *router.Router, request appmessage.Message) (appmessage.Message, error) { + if !context.Config.UTXOIndex { + errorMessage := appmessage.NewStopNotifyingUTXOsChangedResponseMessage() + errorMessage.Error = appmessage.RPCErrorf("Method unavailable when kaspad is run without --utxoindex") + return errorMessage, nil + } + + stopNotifyingUTXOsChangedRequest := request.(*appmessage.StopNotifyingUTXOsChangedRequestMessage) + addresses, err := context.ConvertAddressStringsToUTXOsChangedNotificationAddresses(stopNotifyingUTXOsChangedRequest.Addresses) + if err != nil { + errorMessage := appmessage.NewNotifyUTXOsChangedResponseMessage() + errorMessage.Error = appmessage.RPCErrorf("Parsing error: %s", err) + return errorMessage, nil + } + + listener, err := context.NotificationManager.Listener(router) + if err != nil { + return nil, err + } + listener.StopPropagatingUTXOsChangedNotifications(addresses) + + response := appmessage.NewStopNotifyingUTXOsChangedResponseMessage() + return response, nil +} diff --git a/infrastructure/network/netadapter/server/grpcserver/protowire/messages.pb.go b/infrastructure/network/netadapter/server/grpcserver/protowire/messages.pb.go index 73f4851d5..351cb942b 100644 --- a/infrastructure/network/netadapter/server/grpcserver/protowire/messages.pb.go +++ b/infrastructure/network/netadapter/server/grpcserver/protowire/messages.pb.go @@ -127,6 +127,8 @@ type KaspadMessage struct { // *KaspadMessage_UnbanResponse // *KaspadMessage_GetInfoRequest // *KaspadMessage_GetInfoResponse + // *KaspadMessage_StopNotifyingUtxosChangedRequest + // *KaspadMessage_StopNotifyingUtxosChangedResponse Payload isKaspadMessage_Payload `protobuf_oneof:"payload"` } @@ -841,6 +843,20 @@ func (x *KaspadMessage) GetGetInfoResponse() *GetInfoResponseMessage { return nil } +func (x *KaspadMessage) GetStopNotifyingUtxosChangedRequest() *StopNotifyingUtxosChangedRequestMessage { + if x, ok := x.GetPayload().(*KaspadMessage_StopNotifyingUtxosChangedRequest); ok { + return x.StopNotifyingUtxosChangedRequest + } + return nil +} + +func (x *KaspadMessage) GetStopNotifyingUtxosChangedResponse() *StopNotifyingUtxosChangedResponseMessage { + if x, ok := x.GetPayload().(*KaspadMessage_StopNotifyingUtxosChangedResponse); ok { + return x.StopNotifyingUtxosChangedResponse + } + return nil +} + type isKaspadMessage_Payload interface { isKaspadMessage_Payload() } @@ -1229,6 +1245,14 @@ type KaspadMessage_GetInfoResponse struct { GetInfoResponse *GetInfoResponseMessage `protobuf:"bytes,1064,opt,name=getInfoResponse,proto3,oneof"` } +type KaspadMessage_StopNotifyingUtxosChangedRequest struct { + StopNotifyingUtxosChangedRequest *StopNotifyingUtxosChangedRequestMessage `protobuf:"bytes,1065,opt,name=stopNotifyingUtxosChangedRequest,proto3,oneof"` +} + +type KaspadMessage_StopNotifyingUtxosChangedResponse struct { + StopNotifyingUtxosChangedResponse *StopNotifyingUtxosChangedResponseMessage `protobuf:"bytes,1066,opt,name=stopNotifyingUtxosChangedResponse,proto3,oneof"` +} + func (*KaspadMessage_Addresses) isKaspadMessage_Payload() {} func (*KaspadMessage_Block) isKaspadMessage_Payload() {} @@ -1421,13 +1445,17 @@ func (*KaspadMessage_GetInfoRequest) isKaspadMessage_Payload() {} func (*KaspadMessage_GetInfoResponse) isKaspadMessage_Payload() {} +func (*KaspadMessage_StopNotifyingUtxosChangedRequest) isKaspadMessage_Payload() {} + +func (*KaspadMessage_StopNotifyingUtxosChangedResponse) isKaspadMessage_Payload() {} + var File_messages_proto protoreflect.FileDescriptor var file_messages_proto_rawDesc = []byte{ 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x1a, 0x09, 0x70, 0x32, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x09, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0xe0, 0x4c, 0x0a, 0x0d, 0x4b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x6f, 0x22, 0xeb, 0x4e, 0x0a, 0x0d, 0x4b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, @@ -2040,21 +2068,38 @@ var file_messages_proto_rawDesc = []byte{ 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x32, 0x50, 0x0a, 0x03, 0x50, 0x32, 0x50, 0x12, 0x49, 0x0a, 0x0d, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x18, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x4b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, - 0x72, 0x65, 0x2e, 0x4b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x32, 0x50, 0x0a, 0x03, 0x52, 0x50, 0x43, 0x12, 0x49, 0x0a, - 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x18, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x4b, 0x61, 0x73, 0x70, 0x61, - 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x77, 0x69, 0x72, 0x65, 0x2e, 0x4b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x42, 0x26, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x61, 0x73, 0x70, 0x61, 0x6e, 0x65, 0x74, 0x2f, - 0x6b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x20, 0x73, 0x74, + 0x6f, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x55, 0x74, 0x78, 0x6f, 0x73, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0xa9, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, + 0x65, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x55, + 0x74, 0x78, 0x6f, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x20, 0x73, 0x74, 0x6f, + 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x84, 0x01, + 0x0a, 0x21, 0x73, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x55, + 0x74, 0x78, 0x6f, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x18, 0xaa, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x69, 0x6e, 0x67, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, + 0x00, 0x52, 0x21, 0x73, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, + 0x55, 0x74, 0x78, 0x6f, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x32, + 0x50, 0x0a, 0x03, 0x50, 0x32, 0x50, 0x12, 0x49, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, + 0x69, 0x72, 0x65, 0x2e, 0x4b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x4b, 0x61, + 0x73, 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, + 0x01, 0x32, 0x50, 0x0a, 0x03, 0x52, 0x50, 0x43, 0x12, 0x49, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x4b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, + 0x4b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x28, + 0x01, 0x30, 0x01, 0x42, 0x26, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x6b, 0x61, 0x73, 0x70, 0x61, 0x6e, 0x65, 0x74, 0x2f, 0x6b, 0x61, 0x73, 0x70, 0x61, + 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -2167,113 +2212,117 @@ var file_messages_proto_goTypes = []interface{}{ (*UnbanResponseMessage)(nil), // 93: protowire.UnbanResponseMessage (*GetInfoRequestMessage)(nil), // 94: protowire.GetInfoRequestMessage (*GetInfoResponseMessage)(nil), // 95: protowire.GetInfoResponseMessage + (*StopNotifyingUtxosChangedRequestMessage)(nil), // 96: protowire.StopNotifyingUtxosChangedRequestMessage + (*StopNotifyingUtxosChangedResponseMessage)(nil), // 97: protowire.StopNotifyingUtxosChangedResponseMessage } var file_messages_proto_depIdxs = []int32{ - 1, // 0: protowire.KaspadMessage.addresses:type_name -> protowire.AddressesMessage - 2, // 1: protowire.KaspadMessage.block:type_name -> protowire.BlockMessage - 3, // 2: protowire.KaspadMessage.transaction:type_name -> protowire.TransactionMessage - 4, // 3: protowire.KaspadMessage.requestBlockLocator:type_name -> protowire.RequestBlockLocatorMessage - 5, // 4: protowire.KaspadMessage.blockLocator:type_name -> protowire.BlockLocatorMessage - 6, // 5: protowire.KaspadMessage.requestAddresses:type_name -> protowire.RequestAddressesMessage - 7, // 6: protowire.KaspadMessage.requestHeaders:type_name -> protowire.RequestHeadersMessage - 8, // 7: protowire.KaspadMessage.requestNextHeaders:type_name -> protowire.RequestNextHeadersMessage - 9, // 8: protowire.KaspadMessage.DoneHeaders:type_name -> protowire.DoneHeadersMessage - 10, // 9: protowire.KaspadMessage.requestRelayBlocks:type_name -> protowire.RequestRelayBlocksMessage - 11, // 10: protowire.KaspadMessage.requestTransactions:type_name -> protowire.RequestTransactionsMessage - 2, // 11: protowire.KaspadMessage.ibdBlock:type_name -> protowire.BlockMessage - 12, // 12: protowire.KaspadMessage.invRelayBlock:type_name -> protowire.InvRelayBlockMessage - 13, // 13: protowire.KaspadMessage.invTransactions:type_name -> protowire.InvTransactionsMessage - 14, // 14: protowire.KaspadMessage.ping:type_name -> protowire.PingMessage - 15, // 15: protowire.KaspadMessage.pong:type_name -> protowire.PongMessage - 16, // 16: protowire.KaspadMessage.verack:type_name -> protowire.VerackMessage - 17, // 17: protowire.KaspadMessage.version:type_name -> protowire.VersionMessage - 18, // 18: protowire.KaspadMessage.transactionNotFound:type_name -> protowire.TransactionNotFoundMessage - 19, // 19: protowire.KaspadMessage.reject:type_name -> protowire.RejectMessage - 20, // 20: protowire.KaspadMessage.requestPruningPointUTXOSetAndBlock:type_name -> protowire.RequestPruningPointUTXOSetAndBlockMessage - 21, // 21: protowire.KaspadMessage.pruningPointUtxoSetChunk:type_name -> protowire.PruningPointUtxoSetChunkMessage - 22, // 22: protowire.KaspadMessage.requestIBDBlocks:type_name -> protowire.RequestIBDBlocksMessage - 23, // 23: protowire.KaspadMessage.unexpectedPruningPoint:type_name -> protowire.UnexpectedPruningPointMessage - 24, // 24: protowire.KaspadMessage.requestPruningPointHash:type_name -> protowire.RequestPruningPointHashMessage - 25, // 25: protowire.KaspadMessage.pruningPointHash:type_name -> protowire.PruningPointHashMessage - 26, // 26: protowire.KaspadMessage.ibdBlockLocator:type_name -> protowire.IbdBlockLocatorMessage - 27, // 27: protowire.KaspadMessage.ibdBlockLocatorHighestHash:type_name -> protowire.IbdBlockLocatorHighestHashMessage - 28, // 28: protowire.KaspadMessage.blockHeaders:type_name -> protowire.BlockHeadersMessage - 29, // 29: protowire.KaspadMessage.requestNextPruningPointUtxoSetChunk:type_name -> protowire.RequestNextPruningPointUtxoSetChunkMessage - 30, // 30: protowire.KaspadMessage.donePruningPointUtxoSetChunks:type_name -> protowire.DonePruningPointUtxoSetChunksMessage - 31, // 31: protowire.KaspadMessage.ibdBlockLocatorHighestHashNotFound:type_name -> protowire.IbdBlockLocatorHighestHashNotFoundMessage - 32, // 32: protowire.KaspadMessage.getCurrentNetworkRequest:type_name -> protowire.GetCurrentNetworkRequestMessage - 33, // 33: protowire.KaspadMessage.getCurrentNetworkResponse:type_name -> protowire.GetCurrentNetworkResponseMessage - 34, // 34: protowire.KaspadMessage.submitBlockRequest:type_name -> protowire.SubmitBlockRequestMessage - 35, // 35: protowire.KaspadMessage.submitBlockResponse:type_name -> protowire.SubmitBlockResponseMessage - 36, // 36: protowire.KaspadMessage.getBlockTemplateRequest:type_name -> protowire.GetBlockTemplateRequestMessage - 37, // 37: protowire.KaspadMessage.getBlockTemplateResponse:type_name -> protowire.GetBlockTemplateResponseMessage - 38, // 38: protowire.KaspadMessage.notifyBlockAddedRequest:type_name -> protowire.NotifyBlockAddedRequestMessage - 39, // 39: protowire.KaspadMessage.notifyBlockAddedResponse:type_name -> protowire.NotifyBlockAddedResponseMessage - 40, // 40: protowire.KaspadMessage.blockAddedNotification:type_name -> protowire.BlockAddedNotificationMessage - 41, // 41: protowire.KaspadMessage.getPeerAddressesRequest:type_name -> protowire.GetPeerAddressesRequestMessage - 42, // 42: protowire.KaspadMessage.getPeerAddressesResponse:type_name -> protowire.GetPeerAddressesResponseMessage - 43, // 43: protowire.KaspadMessage.getSelectedTipHashRequest:type_name -> protowire.GetSelectedTipHashRequestMessage - 44, // 44: protowire.KaspadMessage.getSelectedTipHashResponse:type_name -> protowire.GetSelectedTipHashResponseMessage - 45, // 45: protowire.KaspadMessage.getMempoolEntryRequest:type_name -> protowire.GetMempoolEntryRequestMessage - 46, // 46: protowire.KaspadMessage.getMempoolEntryResponse:type_name -> protowire.GetMempoolEntryResponseMessage - 47, // 47: protowire.KaspadMessage.getConnectedPeerInfoRequest:type_name -> protowire.GetConnectedPeerInfoRequestMessage - 48, // 48: protowire.KaspadMessage.getConnectedPeerInfoResponse:type_name -> protowire.GetConnectedPeerInfoResponseMessage - 49, // 49: protowire.KaspadMessage.addPeerRequest:type_name -> protowire.AddPeerRequestMessage - 50, // 50: protowire.KaspadMessage.addPeerResponse:type_name -> protowire.AddPeerResponseMessage - 51, // 51: protowire.KaspadMessage.submitTransactionRequest:type_name -> protowire.SubmitTransactionRequestMessage - 52, // 52: protowire.KaspadMessage.submitTransactionResponse:type_name -> protowire.SubmitTransactionResponseMessage - 53, // 53: protowire.KaspadMessage.notifyVirtualSelectedParentChainChangedRequest:type_name -> protowire.NotifyVirtualSelectedParentChainChangedRequestMessage - 54, // 54: protowire.KaspadMessage.notifyVirtualSelectedParentChainChangedResponse:type_name -> protowire.NotifyVirtualSelectedParentChainChangedResponseMessage - 55, // 55: protowire.KaspadMessage.virtualSelectedParentChainChangedNotification:type_name -> protowire.VirtualSelectedParentChainChangedNotificationMessage - 56, // 56: protowire.KaspadMessage.getBlockRequest:type_name -> protowire.GetBlockRequestMessage - 57, // 57: protowire.KaspadMessage.getBlockResponse:type_name -> protowire.GetBlockResponseMessage - 58, // 58: protowire.KaspadMessage.getSubnetworkRequest:type_name -> protowire.GetSubnetworkRequestMessage - 59, // 59: protowire.KaspadMessage.getSubnetworkResponse:type_name -> protowire.GetSubnetworkResponseMessage - 60, // 60: protowire.KaspadMessage.getVirtualSelectedParentChainFromBlockRequest:type_name -> protowire.GetVirtualSelectedParentChainFromBlockRequestMessage - 61, // 61: protowire.KaspadMessage.getVirtualSelectedParentChainFromBlockResponse:type_name -> protowire.GetVirtualSelectedParentChainFromBlockResponseMessage - 62, // 62: protowire.KaspadMessage.getBlocksRequest:type_name -> protowire.GetBlocksRequestMessage - 63, // 63: protowire.KaspadMessage.getBlocksResponse:type_name -> protowire.GetBlocksResponseMessage - 64, // 64: protowire.KaspadMessage.getBlockCountRequest:type_name -> protowire.GetBlockCountRequestMessage - 65, // 65: protowire.KaspadMessage.getBlockCountResponse:type_name -> protowire.GetBlockCountResponseMessage - 66, // 66: protowire.KaspadMessage.getBlockDagInfoRequest:type_name -> protowire.GetBlockDagInfoRequestMessage - 67, // 67: protowire.KaspadMessage.getBlockDagInfoResponse:type_name -> protowire.GetBlockDagInfoResponseMessage - 68, // 68: protowire.KaspadMessage.resolveFinalityConflictRequest:type_name -> protowire.ResolveFinalityConflictRequestMessage - 69, // 69: protowire.KaspadMessage.resolveFinalityConflictResponse:type_name -> protowire.ResolveFinalityConflictResponseMessage - 70, // 70: protowire.KaspadMessage.notifyFinalityConflictsRequest:type_name -> protowire.NotifyFinalityConflictsRequestMessage - 71, // 71: protowire.KaspadMessage.notifyFinalityConflictsResponse:type_name -> protowire.NotifyFinalityConflictsResponseMessage - 72, // 72: protowire.KaspadMessage.finalityConflictNotification:type_name -> protowire.FinalityConflictNotificationMessage - 73, // 73: protowire.KaspadMessage.finalityConflictResolvedNotification:type_name -> protowire.FinalityConflictResolvedNotificationMessage - 74, // 74: protowire.KaspadMessage.getMempoolEntriesRequest:type_name -> protowire.GetMempoolEntriesRequestMessage - 75, // 75: protowire.KaspadMessage.getMempoolEntriesResponse:type_name -> protowire.GetMempoolEntriesResponseMessage - 76, // 76: protowire.KaspadMessage.shutDownRequest:type_name -> protowire.ShutDownRequestMessage - 77, // 77: protowire.KaspadMessage.shutDownResponse:type_name -> protowire.ShutDownResponseMessage - 78, // 78: protowire.KaspadMessage.getHeadersRequest:type_name -> protowire.GetHeadersRequestMessage - 79, // 79: protowire.KaspadMessage.getHeadersResponse:type_name -> protowire.GetHeadersResponseMessage - 80, // 80: protowire.KaspadMessage.notifyUtxosChangedRequest:type_name -> protowire.NotifyUtxosChangedRequestMessage - 81, // 81: protowire.KaspadMessage.notifyUtxosChangedResponse:type_name -> protowire.NotifyUtxosChangedResponseMessage - 82, // 82: protowire.KaspadMessage.utxosChangedNotification:type_name -> protowire.UtxosChangedNotificationMessage - 83, // 83: protowire.KaspadMessage.getUtxosByAddressesRequest:type_name -> protowire.GetUtxosByAddressesRequestMessage - 84, // 84: protowire.KaspadMessage.getUtxosByAddressesResponse:type_name -> protowire.GetUtxosByAddressesResponseMessage - 85, // 85: protowire.KaspadMessage.getVirtualSelectedParentBlueScoreRequest:type_name -> protowire.GetVirtualSelectedParentBlueScoreRequestMessage - 86, // 86: protowire.KaspadMessage.getVirtualSelectedParentBlueScoreResponse:type_name -> protowire.GetVirtualSelectedParentBlueScoreResponseMessage - 87, // 87: protowire.KaspadMessage.notifyVirtualSelectedParentBlueScoreChangedRequest:type_name -> protowire.NotifyVirtualSelectedParentBlueScoreChangedRequestMessage - 88, // 88: protowire.KaspadMessage.notifyVirtualSelectedParentBlueScoreChangedResponse:type_name -> protowire.NotifyVirtualSelectedParentBlueScoreChangedResponseMessage - 89, // 89: protowire.KaspadMessage.virtualSelectedParentBlueScoreChangedNotification:type_name -> protowire.VirtualSelectedParentBlueScoreChangedNotificationMessage - 90, // 90: protowire.KaspadMessage.banRequest:type_name -> protowire.BanRequestMessage - 91, // 91: protowire.KaspadMessage.banResponse:type_name -> protowire.BanResponseMessage - 92, // 92: protowire.KaspadMessage.unbanRequest:type_name -> protowire.UnbanRequestMessage - 93, // 93: protowire.KaspadMessage.unbanResponse:type_name -> protowire.UnbanResponseMessage - 94, // 94: protowire.KaspadMessage.getInfoRequest:type_name -> protowire.GetInfoRequestMessage - 95, // 95: protowire.KaspadMessage.getInfoResponse:type_name -> protowire.GetInfoResponseMessage - 0, // 96: protowire.P2P.MessageStream:input_type -> protowire.KaspadMessage - 0, // 97: protowire.RPC.MessageStream:input_type -> protowire.KaspadMessage - 0, // 98: protowire.P2P.MessageStream:output_type -> protowire.KaspadMessage - 0, // 99: protowire.RPC.MessageStream:output_type -> protowire.KaspadMessage - 98, // [98:100] is the sub-list for method output_type - 96, // [96:98] is the sub-list for method input_type - 96, // [96:96] is the sub-list for extension type_name - 96, // [96:96] is the sub-list for extension extendee - 0, // [0:96] is the sub-list for field type_name + 1, // 0: protowire.KaspadMessage.addresses:type_name -> protowire.AddressesMessage + 2, // 1: protowire.KaspadMessage.block:type_name -> protowire.BlockMessage + 3, // 2: protowire.KaspadMessage.transaction:type_name -> protowire.TransactionMessage + 4, // 3: protowire.KaspadMessage.requestBlockLocator:type_name -> protowire.RequestBlockLocatorMessage + 5, // 4: protowire.KaspadMessage.blockLocator:type_name -> protowire.BlockLocatorMessage + 6, // 5: protowire.KaspadMessage.requestAddresses:type_name -> protowire.RequestAddressesMessage + 7, // 6: protowire.KaspadMessage.requestHeaders:type_name -> protowire.RequestHeadersMessage + 8, // 7: protowire.KaspadMessage.requestNextHeaders:type_name -> protowire.RequestNextHeadersMessage + 9, // 8: protowire.KaspadMessage.DoneHeaders:type_name -> protowire.DoneHeadersMessage + 10, // 9: protowire.KaspadMessage.requestRelayBlocks:type_name -> protowire.RequestRelayBlocksMessage + 11, // 10: protowire.KaspadMessage.requestTransactions:type_name -> protowire.RequestTransactionsMessage + 2, // 11: protowire.KaspadMessage.ibdBlock:type_name -> protowire.BlockMessage + 12, // 12: protowire.KaspadMessage.invRelayBlock:type_name -> protowire.InvRelayBlockMessage + 13, // 13: protowire.KaspadMessage.invTransactions:type_name -> protowire.InvTransactionsMessage + 14, // 14: protowire.KaspadMessage.ping:type_name -> protowire.PingMessage + 15, // 15: protowire.KaspadMessage.pong:type_name -> protowire.PongMessage + 16, // 16: protowire.KaspadMessage.verack:type_name -> protowire.VerackMessage + 17, // 17: protowire.KaspadMessage.version:type_name -> protowire.VersionMessage + 18, // 18: protowire.KaspadMessage.transactionNotFound:type_name -> protowire.TransactionNotFoundMessage + 19, // 19: protowire.KaspadMessage.reject:type_name -> protowire.RejectMessage + 20, // 20: protowire.KaspadMessage.requestPruningPointUTXOSetAndBlock:type_name -> protowire.RequestPruningPointUTXOSetAndBlockMessage + 21, // 21: protowire.KaspadMessage.pruningPointUtxoSetChunk:type_name -> protowire.PruningPointUtxoSetChunkMessage + 22, // 22: protowire.KaspadMessage.requestIBDBlocks:type_name -> protowire.RequestIBDBlocksMessage + 23, // 23: protowire.KaspadMessage.unexpectedPruningPoint:type_name -> protowire.UnexpectedPruningPointMessage + 24, // 24: protowire.KaspadMessage.requestPruningPointHash:type_name -> protowire.RequestPruningPointHashMessage + 25, // 25: protowire.KaspadMessage.pruningPointHash:type_name -> protowire.PruningPointHashMessage + 26, // 26: protowire.KaspadMessage.ibdBlockLocator:type_name -> protowire.IbdBlockLocatorMessage + 27, // 27: protowire.KaspadMessage.ibdBlockLocatorHighestHash:type_name -> protowire.IbdBlockLocatorHighestHashMessage + 28, // 28: protowire.KaspadMessage.blockHeaders:type_name -> protowire.BlockHeadersMessage + 29, // 29: protowire.KaspadMessage.requestNextPruningPointUtxoSetChunk:type_name -> protowire.RequestNextPruningPointUtxoSetChunkMessage + 30, // 30: protowire.KaspadMessage.donePruningPointUtxoSetChunks:type_name -> protowire.DonePruningPointUtxoSetChunksMessage + 31, // 31: protowire.KaspadMessage.ibdBlockLocatorHighestHashNotFound:type_name -> protowire.IbdBlockLocatorHighestHashNotFoundMessage + 32, // 32: protowire.KaspadMessage.getCurrentNetworkRequest:type_name -> protowire.GetCurrentNetworkRequestMessage + 33, // 33: protowire.KaspadMessage.getCurrentNetworkResponse:type_name -> protowire.GetCurrentNetworkResponseMessage + 34, // 34: protowire.KaspadMessage.submitBlockRequest:type_name -> protowire.SubmitBlockRequestMessage + 35, // 35: protowire.KaspadMessage.submitBlockResponse:type_name -> protowire.SubmitBlockResponseMessage + 36, // 36: protowire.KaspadMessage.getBlockTemplateRequest:type_name -> protowire.GetBlockTemplateRequestMessage + 37, // 37: protowire.KaspadMessage.getBlockTemplateResponse:type_name -> protowire.GetBlockTemplateResponseMessage + 38, // 38: protowire.KaspadMessage.notifyBlockAddedRequest:type_name -> protowire.NotifyBlockAddedRequestMessage + 39, // 39: protowire.KaspadMessage.notifyBlockAddedResponse:type_name -> protowire.NotifyBlockAddedResponseMessage + 40, // 40: protowire.KaspadMessage.blockAddedNotification:type_name -> protowire.BlockAddedNotificationMessage + 41, // 41: protowire.KaspadMessage.getPeerAddressesRequest:type_name -> protowire.GetPeerAddressesRequestMessage + 42, // 42: protowire.KaspadMessage.getPeerAddressesResponse:type_name -> protowire.GetPeerAddressesResponseMessage + 43, // 43: protowire.KaspadMessage.getSelectedTipHashRequest:type_name -> protowire.GetSelectedTipHashRequestMessage + 44, // 44: protowire.KaspadMessage.getSelectedTipHashResponse:type_name -> protowire.GetSelectedTipHashResponseMessage + 45, // 45: protowire.KaspadMessage.getMempoolEntryRequest:type_name -> protowire.GetMempoolEntryRequestMessage + 46, // 46: protowire.KaspadMessage.getMempoolEntryResponse:type_name -> protowire.GetMempoolEntryResponseMessage + 47, // 47: protowire.KaspadMessage.getConnectedPeerInfoRequest:type_name -> protowire.GetConnectedPeerInfoRequestMessage + 48, // 48: protowire.KaspadMessage.getConnectedPeerInfoResponse:type_name -> protowire.GetConnectedPeerInfoResponseMessage + 49, // 49: protowire.KaspadMessage.addPeerRequest:type_name -> protowire.AddPeerRequestMessage + 50, // 50: protowire.KaspadMessage.addPeerResponse:type_name -> protowire.AddPeerResponseMessage + 51, // 51: protowire.KaspadMessage.submitTransactionRequest:type_name -> protowire.SubmitTransactionRequestMessage + 52, // 52: protowire.KaspadMessage.submitTransactionResponse:type_name -> protowire.SubmitTransactionResponseMessage + 53, // 53: protowire.KaspadMessage.notifyVirtualSelectedParentChainChangedRequest:type_name -> protowire.NotifyVirtualSelectedParentChainChangedRequestMessage + 54, // 54: protowire.KaspadMessage.notifyVirtualSelectedParentChainChangedResponse:type_name -> protowire.NotifyVirtualSelectedParentChainChangedResponseMessage + 55, // 55: protowire.KaspadMessage.virtualSelectedParentChainChangedNotification:type_name -> protowire.VirtualSelectedParentChainChangedNotificationMessage + 56, // 56: protowire.KaspadMessage.getBlockRequest:type_name -> protowire.GetBlockRequestMessage + 57, // 57: protowire.KaspadMessage.getBlockResponse:type_name -> protowire.GetBlockResponseMessage + 58, // 58: protowire.KaspadMessage.getSubnetworkRequest:type_name -> protowire.GetSubnetworkRequestMessage + 59, // 59: protowire.KaspadMessage.getSubnetworkResponse:type_name -> protowire.GetSubnetworkResponseMessage + 60, // 60: protowire.KaspadMessage.getVirtualSelectedParentChainFromBlockRequest:type_name -> protowire.GetVirtualSelectedParentChainFromBlockRequestMessage + 61, // 61: protowire.KaspadMessage.getVirtualSelectedParentChainFromBlockResponse:type_name -> protowire.GetVirtualSelectedParentChainFromBlockResponseMessage + 62, // 62: protowire.KaspadMessage.getBlocksRequest:type_name -> protowire.GetBlocksRequestMessage + 63, // 63: protowire.KaspadMessage.getBlocksResponse:type_name -> protowire.GetBlocksResponseMessage + 64, // 64: protowire.KaspadMessage.getBlockCountRequest:type_name -> protowire.GetBlockCountRequestMessage + 65, // 65: protowire.KaspadMessage.getBlockCountResponse:type_name -> protowire.GetBlockCountResponseMessage + 66, // 66: protowire.KaspadMessage.getBlockDagInfoRequest:type_name -> protowire.GetBlockDagInfoRequestMessage + 67, // 67: protowire.KaspadMessage.getBlockDagInfoResponse:type_name -> protowire.GetBlockDagInfoResponseMessage + 68, // 68: protowire.KaspadMessage.resolveFinalityConflictRequest:type_name -> protowire.ResolveFinalityConflictRequestMessage + 69, // 69: protowire.KaspadMessage.resolveFinalityConflictResponse:type_name -> protowire.ResolveFinalityConflictResponseMessage + 70, // 70: protowire.KaspadMessage.notifyFinalityConflictsRequest:type_name -> protowire.NotifyFinalityConflictsRequestMessage + 71, // 71: protowire.KaspadMessage.notifyFinalityConflictsResponse:type_name -> protowire.NotifyFinalityConflictsResponseMessage + 72, // 72: protowire.KaspadMessage.finalityConflictNotification:type_name -> protowire.FinalityConflictNotificationMessage + 73, // 73: protowire.KaspadMessage.finalityConflictResolvedNotification:type_name -> protowire.FinalityConflictResolvedNotificationMessage + 74, // 74: protowire.KaspadMessage.getMempoolEntriesRequest:type_name -> protowire.GetMempoolEntriesRequestMessage + 75, // 75: protowire.KaspadMessage.getMempoolEntriesResponse:type_name -> protowire.GetMempoolEntriesResponseMessage + 76, // 76: protowire.KaspadMessage.shutDownRequest:type_name -> protowire.ShutDownRequestMessage + 77, // 77: protowire.KaspadMessage.shutDownResponse:type_name -> protowire.ShutDownResponseMessage + 78, // 78: protowire.KaspadMessage.getHeadersRequest:type_name -> protowire.GetHeadersRequestMessage + 79, // 79: protowire.KaspadMessage.getHeadersResponse:type_name -> protowire.GetHeadersResponseMessage + 80, // 80: protowire.KaspadMessage.notifyUtxosChangedRequest:type_name -> protowire.NotifyUtxosChangedRequestMessage + 81, // 81: protowire.KaspadMessage.notifyUtxosChangedResponse:type_name -> protowire.NotifyUtxosChangedResponseMessage + 82, // 82: protowire.KaspadMessage.utxosChangedNotification:type_name -> protowire.UtxosChangedNotificationMessage + 83, // 83: protowire.KaspadMessage.getUtxosByAddressesRequest:type_name -> protowire.GetUtxosByAddressesRequestMessage + 84, // 84: protowire.KaspadMessage.getUtxosByAddressesResponse:type_name -> protowire.GetUtxosByAddressesResponseMessage + 85, // 85: protowire.KaspadMessage.getVirtualSelectedParentBlueScoreRequest:type_name -> protowire.GetVirtualSelectedParentBlueScoreRequestMessage + 86, // 86: protowire.KaspadMessage.getVirtualSelectedParentBlueScoreResponse:type_name -> protowire.GetVirtualSelectedParentBlueScoreResponseMessage + 87, // 87: protowire.KaspadMessage.notifyVirtualSelectedParentBlueScoreChangedRequest:type_name -> protowire.NotifyVirtualSelectedParentBlueScoreChangedRequestMessage + 88, // 88: protowire.KaspadMessage.notifyVirtualSelectedParentBlueScoreChangedResponse:type_name -> protowire.NotifyVirtualSelectedParentBlueScoreChangedResponseMessage + 89, // 89: protowire.KaspadMessage.virtualSelectedParentBlueScoreChangedNotification:type_name -> protowire.VirtualSelectedParentBlueScoreChangedNotificationMessage + 90, // 90: protowire.KaspadMessage.banRequest:type_name -> protowire.BanRequestMessage + 91, // 91: protowire.KaspadMessage.banResponse:type_name -> protowire.BanResponseMessage + 92, // 92: protowire.KaspadMessage.unbanRequest:type_name -> protowire.UnbanRequestMessage + 93, // 93: protowire.KaspadMessage.unbanResponse:type_name -> protowire.UnbanResponseMessage + 94, // 94: protowire.KaspadMessage.getInfoRequest:type_name -> protowire.GetInfoRequestMessage + 95, // 95: protowire.KaspadMessage.getInfoResponse:type_name -> protowire.GetInfoResponseMessage + 96, // 96: protowire.KaspadMessage.stopNotifyingUtxosChangedRequest:type_name -> protowire.StopNotifyingUtxosChangedRequestMessage + 97, // 97: protowire.KaspadMessage.stopNotifyingUtxosChangedResponse:type_name -> protowire.StopNotifyingUtxosChangedResponseMessage + 0, // 98: protowire.P2P.MessageStream:input_type -> protowire.KaspadMessage + 0, // 99: protowire.RPC.MessageStream:input_type -> protowire.KaspadMessage + 0, // 100: protowire.P2P.MessageStream:output_type -> protowire.KaspadMessage + 0, // 101: protowire.RPC.MessageStream:output_type -> protowire.KaspadMessage + 100, // [100:102] is the sub-list for method output_type + 98, // [98:100] is the sub-list for method input_type + 98, // [98:98] is the sub-list for extension type_name + 98, // [98:98] is the sub-list for extension extendee + 0, // [0:98] is the sub-list for field type_name } func init() { file_messages_proto_init() } @@ -2394,6 +2443,8 @@ func file_messages_proto_init() { (*KaspadMessage_UnbanResponse)(nil), (*KaspadMessage_GetInfoRequest)(nil), (*KaspadMessage_GetInfoResponse)(nil), + (*KaspadMessage_StopNotifyingUtxosChangedRequest)(nil), + (*KaspadMessage_StopNotifyingUtxosChangedResponse)(nil), } type x struct{} out := protoimpl.TypeBuilder{ diff --git a/infrastructure/network/netadapter/server/grpcserver/protowire/messages.proto b/infrastructure/network/netadapter/server/grpcserver/protowire/messages.proto index af9b87550..9ebe9db6b 100644 --- a/infrastructure/network/netadapter/server/grpcserver/protowire/messages.proto +++ b/infrastructure/network/netadapter/server/grpcserver/protowire/messages.proto @@ -105,6 +105,8 @@ message KaspadMessage { UnbanResponseMessage unbanResponse = 1062; GetInfoRequestMessage getInfoRequest = 1063; GetInfoResponseMessage getInfoResponse = 1064; + StopNotifyingUtxosChangedRequestMessage stopNotifyingUtxosChangedRequest = 1065; + StopNotifyingUtxosChangedResponseMessage stopNotifyingUtxosChangedResponse = 1066; } } diff --git a/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.md b/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.md index 0b99f9ba0..c729ca6e7 100644 --- a/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.md +++ b/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.md @@ -58,26 +58,28 @@ - [ResolveFinalityConflictResponseMessage](#protowire.ResolveFinalityConflictResponseMessage) - [NotifyFinalityConflictsRequestMessage](#protowire.NotifyFinalityConflictsRequestMessage) - [NotifyFinalityConflictsResponseMessage](#protowire.NotifyFinalityConflictsResponseMessage) - - [FinalityConflictNotificationMessage](#protowire.FinalityConflictNotificationMessage) - - [FinalityConflictResolvedNotificationMessage](#protowire.FinalityConflictResolvedNotificationMessage) - - [ShutDownRequestMessage](#protowire.ShutDownRequestMessage) - - [ShutDownResponseMessage](#protowire.ShutDownResponseMessage) - - [GetHeadersRequestMessage](#protowire.GetHeadersRequestMessage) - - [GetHeadersResponseMessage](#protowire.GetHeadersResponseMessage) - - [NotifyUtxosChangedRequestMessage](#protowire.NotifyUtxosChangedRequestMessage) - - [NotifyUtxosChangedResponseMessage](#protowire.NotifyUtxosChangedResponseMessage) - - [UtxosChangedNotificationMessage](#protowire.UtxosChangedNotificationMessage) - - [UtxosByAddressesEntry](#protowire.UtxosByAddressesEntry) - - [RpcTransaction](#protowire.RpcTransaction) - - [RpcTransactionInput](#protowire.RpcTransactionInput) - - [RpcScriptPublicKey](#protowire.RpcScriptPublicKey) - - [RpcTransactionOutput](#protowire.RpcTransactionOutput) - - [RpcOutpoint](#protowire.RpcOutpoint) - - [RpcUtxoEntry](#protowire.RpcUtxoEntry) - - [GetUtxosByAddressesRequestMessage](#protowire.GetUtxosByAddressesRequestMessage) - - [GetUtxosByAddressesResponseMessage](#protowire.GetUtxosByAddressesResponseMessage) - - [GetVirtualSelectedParentBlueScoreRequestMessage](#protowire.GetVirtualSelectedParentBlueScoreRequestMessage) - - [GetVirtualSelectedParentBlueScoreResponseMessage](#protowire.GetVirtualSelectedParentBlueScoreResponseMessage) + - [FinalityConflictNotificationMessage](#protowire.FinalityConflictNotificationMessage) + - [FinalityConflictResolvedNotificationMessage](#protowire.FinalityConflictResolvedNotificationMessage) + - [ShutDownRequestMessage](#protowire.ShutDownRequestMessage) + - [ShutDownResponseMessage](#protowire.ShutDownResponseMessage) + - [GetHeadersRequestMessage](#protowire.GetHeadersRequestMessage) + - [GetHeadersResponseMessage](#protowire.GetHeadersResponseMessage) + - [NotifyUtxosChangedRequestMessage](#protowire.NotifyUtxosChangedRequestMessage) + - [NotifyUtxosChangedResponseMessage](#protowire.NotifyUtxosChangedResponseMessage) + - [UtxosChangedNotificationMessage](#protowire.UtxosChangedNotificationMessage) + - [UtxosByAddressesEntry](#protowire.UtxosByAddressesEntry) + - [StopNotifyingUtxosChangedRequestMessage](#protowire.StopNotifyingUtxosChangedRequestMessage) + - [StopNotifyingUtxosChangedResponseMessage](#protowire.StopNotifyingUtxosChangedResponseMessage) + - [RpcTransaction](#protowire.RpcTransaction) + - [RpcTransactionInput](#protowire.RpcTransactionInput) + - [RpcScriptPublicKey](#protowire.RpcScriptPublicKey) + - [RpcTransactionOutput](#protowire.RpcTransactionOutput) + - [RpcOutpoint](#protowire.RpcOutpoint) + - [RpcUtxoEntry](#protowire.RpcUtxoEntry) + - [GetUtxosByAddressesRequestMessage](#protowire.GetUtxosByAddressesRequestMessage) + - [GetUtxosByAddressesResponseMessage](#protowire.GetUtxosByAddressesResponseMessage) + - [GetVirtualSelectedParentBlueScoreRequestMessage](#protowire.GetVirtualSelectedParentBlueScoreRequestMessage) + - [GetVirtualSelectedParentBlueScoreResponseMessage](#protowire.GetVirtualSelectedParentBlueScoreResponseMessage) - [NotifyVirtualSelectedParentBlueScoreChangedRequestMessage](#protowire.NotifyVirtualSelectedParentBlueScoreChangedRequestMessage) - [NotifyVirtualSelectedParentBlueScoreChangedResponseMessage](#protowire.NotifyVirtualSelectedParentBlueScoreChangedResponseMessage) - [VirtualSelectedParentBlueScoreChangedNotificationMessage](#protowire.VirtualSelectedParentBlueScoreChangedNotificationMessage) @@ -857,7 +859,6 @@ kaspad's current virtual. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | blockHashes | [string](#string) | repeated | | -| blockHexes | [string](#string) | repeated | | | blockVerboseData | [BlockVerboseData](#protowire.BlockVerboseData) | repeated | | | error | [RPCError](#protowire.RPCError) | | | @@ -1128,25 +1129,39 @@ See: NotifyUtxosChangedRequestMessage ### UtxosByAddressesEntry - - | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | address | [string](#string) | | | | outpoint | [RpcOutpoint](#protowire.RpcOutpoint) | | | | utxoEntry | [RpcUtxoEntry](#protowire.RpcUtxoEntry) | | | + +### StopNotifyingUtxosChangedRequestMessage +StopNotifyingUtxosChangedRequestMessage unregisters this connection for utxoChanged notifications for the given +addresses. +This call is only available when this kaspad was started with `--utxoindex` +See: UtxosChangedNotificationMessage + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| addresses | [string](#string) | repeated | | + + + +### StopNotifyingUtxosChangedResponseMessage + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| error | [RPCError](#protowire.RPCError) | | | ### RpcTransaction - - | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | version | [uint32](#uint32) | | | diff --git a/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.pb.go b/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.pb.go index a028b571a..e6c32338d 100644 --- a/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.pb.go +++ b/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.pb.go @@ -3773,6 +3773,106 @@ func (x *UtxosByAddressesEntry) GetUtxoEntry() *RpcUtxoEntry { return nil } +// StopNotifyingUtxosChangedRequestMessage unregisters this connection for utxoChanged notifications +// for the given addresses. +// +// This call is only available when this kaspad was started with `--utxoindex` +// +// See: UtxosChangedNotificationMessage +type StopNotifyingUtxosChangedRequestMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` +} + +func (x *StopNotifyingUtxosChangedRequestMessage) Reset() { + *x = StopNotifyingUtxosChangedRequestMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StopNotifyingUtxosChangedRequestMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StopNotifyingUtxosChangedRequestMessage) ProtoMessage() {} + +func (x *StopNotifyingUtxosChangedRequestMessage) ProtoReflect() protoreflect.Message { + mi := &file_rpc_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StopNotifyingUtxosChangedRequestMessage.ProtoReflect.Descriptor instead. +func (*StopNotifyingUtxosChangedRequestMessage) Descriptor() ([]byte, []int) { + return file_rpc_proto_rawDescGZIP(), []int{64} +} + +func (x *StopNotifyingUtxosChangedRequestMessage) GetAddresses() []string { + if x != nil { + return x.Addresses + } + return nil +} + +type StopNotifyingUtxosChangedResponseMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error *RPCError `protobuf:"bytes,1000,opt,name=error,proto3" json:"error,omitempty"` +} + +func (x *StopNotifyingUtxosChangedResponseMessage) Reset() { + *x = StopNotifyingUtxosChangedResponseMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StopNotifyingUtxosChangedResponseMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StopNotifyingUtxosChangedResponseMessage) ProtoMessage() {} + +func (x *StopNotifyingUtxosChangedResponseMessage) ProtoReflect() protoreflect.Message { + mi := &file_rpc_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StopNotifyingUtxosChangedResponseMessage.ProtoReflect.Descriptor instead. +func (*StopNotifyingUtxosChangedResponseMessage) Descriptor() ([]byte, []int) { + return file_rpc_proto_rawDescGZIP(), []int{65} +} + +func (x *StopNotifyingUtxosChangedResponseMessage) GetError() *RPCError { + if x != nil { + return x.Error + } + return nil +} + type RpcTransaction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3791,7 +3891,7 @@ type RpcTransaction struct { func (x *RpcTransaction) Reset() { *x = RpcTransaction{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[64] + mi := &file_rpc_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3804,7 +3904,7 @@ func (x *RpcTransaction) String() string { func (*RpcTransaction) ProtoMessage() {} func (x *RpcTransaction) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[64] + mi := &file_rpc_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3817,7 +3917,7 @@ func (x *RpcTransaction) ProtoReflect() protoreflect.Message { // Deprecated: Use RpcTransaction.ProtoReflect.Descriptor instead. func (*RpcTransaction) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{64} + return file_rpc_proto_rawDescGZIP(), []int{66} } func (x *RpcTransaction) GetVersion() uint32 { @@ -3889,7 +3989,7 @@ type RpcTransactionInput struct { func (x *RpcTransactionInput) Reset() { *x = RpcTransactionInput{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[65] + mi := &file_rpc_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3902,7 +4002,7 @@ func (x *RpcTransactionInput) String() string { func (*RpcTransactionInput) ProtoMessage() {} func (x *RpcTransactionInput) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[65] + mi := &file_rpc_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3915,7 +4015,7 @@ func (x *RpcTransactionInput) ProtoReflect() protoreflect.Message { // Deprecated: Use RpcTransactionInput.ProtoReflect.Descriptor instead. func (*RpcTransactionInput) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{65} + return file_rpc_proto_rawDescGZIP(), []int{67} } func (x *RpcTransactionInput) GetPreviousOutpoint() *RpcOutpoint { @@ -3951,7 +4051,7 @@ type RpcScriptPublicKey struct { func (x *RpcScriptPublicKey) Reset() { *x = RpcScriptPublicKey{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[66] + mi := &file_rpc_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3964,7 +4064,7 @@ func (x *RpcScriptPublicKey) String() string { func (*RpcScriptPublicKey) ProtoMessage() {} func (x *RpcScriptPublicKey) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[66] + mi := &file_rpc_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3977,7 +4077,7 @@ func (x *RpcScriptPublicKey) ProtoReflect() protoreflect.Message { // Deprecated: Use RpcScriptPublicKey.ProtoReflect.Descriptor instead. func (*RpcScriptPublicKey) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{66} + return file_rpc_proto_rawDescGZIP(), []int{68} } func (x *RpcScriptPublicKey) GetVersion() uint32 { @@ -4006,7 +4106,7 @@ type RpcTransactionOutput struct { func (x *RpcTransactionOutput) Reset() { *x = RpcTransactionOutput{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[67] + mi := &file_rpc_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4019,7 +4119,7 @@ func (x *RpcTransactionOutput) String() string { func (*RpcTransactionOutput) ProtoMessage() {} func (x *RpcTransactionOutput) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[67] + mi := &file_rpc_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4032,7 +4132,7 @@ func (x *RpcTransactionOutput) ProtoReflect() protoreflect.Message { // Deprecated: Use RpcTransactionOutput.ProtoReflect.Descriptor instead. func (*RpcTransactionOutput) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{67} + return file_rpc_proto_rawDescGZIP(), []int{69} } func (x *RpcTransactionOutput) GetAmount() uint64 { @@ -4061,7 +4161,7 @@ type RpcOutpoint struct { func (x *RpcOutpoint) Reset() { *x = RpcOutpoint{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[68] + mi := &file_rpc_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4074,7 +4174,7 @@ func (x *RpcOutpoint) String() string { func (*RpcOutpoint) ProtoMessage() {} func (x *RpcOutpoint) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[68] + mi := &file_rpc_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4087,7 +4187,7 @@ func (x *RpcOutpoint) ProtoReflect() protoreflect.Message { // Deprecated: Use RpcOutpoint.ProtoReflect.Descriptor instead. func (*RpcOutpoint) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{68} + return file_rpc_proto_rawDescGZIP(), []int{70} } func (x *RpcOutpoint) GetTransactionId() string { @@ -4118,7 +4218,7 @@ type RpcUtxoEntry struct { func (x *RpcUtxoEntry) Reset() { *x = RpcUtxoEntry{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[69] + mi := &file_rpc_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4131,7 +4231,7 @@ func (x *RpcUtxoEntry) String() string { func (*RpcUtxoEntry) ProtoMessage() {} func (x *RpcUtxoEntry) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[69] + mi := &file_rpc_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4144,7 +4244,7 @@ func (x *RpcUtxoEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use RpcUtxoEntry.ProtoReflect.Descriptor instead. func (*RpcUtxoEntry) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{69} + return file_rpc_proto_rawDescGZIP(), []int{71} } func (x *RpcUtxoEntry) GetAmount() uint64 { @@ -4189,7 +4289,7 @@ type GetUtxosByAddressesRequestMessage struct { func (x *GetUtxosByAddressesRequestMessage) Reset() { *x = GetUtxosByAddressesRequestMessage{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[70] + mi := &file_rpc_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4202,7 +4302,7 @@ func (x *GetUtxosByAddressesRequestMessage) String() string { func (*GetUtxosByAddressesRequestMessage) ProtoMessage() {} func (x *GetUtxosByAddressesRequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[70] + mi := &file_rpc_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4215,7 +4315,7 @@ func (x *GetUtxosByAddressesRequestMessage) ProtoReflect() protoreflect.Message // Deprecated: Use GetUtxosByAddressesRequestMessage.ProtoReflect.Descriptor instead. func (*GetUtxosByAddressesRequestMessage) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{70} + return file_rpc_proto_rawDescGZIP(), []int{72} } func (x *GetUtxosByAddressesRequestMessage) GetAddresses() []string { @@ -4237,7 +4337,7 @@ type GetUtxosByAddressesResponseMessage struct { func (x *GetUtxosByAddressesResponseMessage) Reset() { *x = GetUtxosByAddressesResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[71] + mi := &file_rpc_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4250,7 +4350,7 @@ func (x *GetUtxosByAddressesResponseMessage) String() string { func (*GetUtxosByAddressesResponseMessage) ProtoMessage() {} func (x *GetUtxosByAddressesResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[71] + mi := &file_rpc_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4263,7 +4363,7 @@ func (x *GetUtxosByAddressesResponseMessage) ProtoReflect() protoreflect.Message // Deprecated: Use GetUtxosByAddressesResponseMessage.ProtoReflect.Descriptor instead. func (*GetUtxosByAddressesResponseMessage) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{71} + return file_rpc_proto_rawDescGZIP(), []int{73} } func (x *GetUtxosByAddressesResponseMessage) GetEntries() []*UtxosByAddressesEntry { @@ -4291,7 +4391,7 @@ type GetVirtualSelectedParentBlueScoreRequestMessage struct { func (x *GetVirtualSelectedParentBlueScoreRequestMessage) Reset() { *x = GetVirtualSelectedParentBlueScoreRequestMessage{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[72] + mi := &file_rpc_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4304,7 +4404,7 @@ func (x *GetVirtualSelectedParentBlueScoreRequestMessage) String() string { func (*GetVirtualSelectedParentBlueScoreRequestMessage) ProtoMessage() {} func (x *GetVirtualSelectedParentBlueScoreRequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[72] + mi := &file_rpc_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4317,7 +4417,7 @@ func (x *GetVirtualSelectedParentBlueScoreRequestMessage) ProtoReflect() protore // Deprecated: Use GetVirtualSelectedParentBlueScoreRequestMessage.ProtoReflect.Descriptor instead. func (*GetVirtualSelectedParentBlueScoreRequestMessage) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{72} + return file_rpc_proto_rawDescGZIP(), []int{74} } type GetVirtualSelectedParentBlueScoreResponseMessage struct { @@ -4332,7 +4432,7 @@ type GetVirtualSelectedParentBlueScoreResponseMessage struct { func (x *GetVirtualSelectedParentBlueScoreResponseMessage) Reset() { *x = GetVirtualSelectedParentBlueScoreResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[73] + mi := &file_rpc_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4345,7 +4445,7 @@ func (x *GetVirtualSelectedParentBlueScoreResponseMessage) String() string { func (*GetVirtualSelectedParentBlueScoreResponseMessage) ProtoMessage() {} func (x *GetVirtualSelectedParentBlueScoreResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[73] + mi := &file_rpc_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4358,7 +4458,7 @@ func (x *GetVirtualSelectedParentBlueScoreResponseMessage) ProtoReflect() protor // Deprecated: Use GetVirtualSelectedParentBlueScoreResponseMessage.ProtoReflect.Descriptor instead. func (*GetVirtualSelectedParentBlueScoreResponseMessage) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{73} + return file_rpc_proto_rawDescGZIP(), []int{75} } func (x *GetVirtualSelectedParentBlueScoreResponseMessage) GetBlueScore() uint64 { @@ -4388,7 +4488,7 @@ type NotifyVirtualSelectedParentBlueScoreChangedRequestMessage struct { func (x *NotifyVirtualSelectedParentBlueScoreChangedRequestMessage) Reset() { *x = NotifyVirtualSelectedParentBlueScoreChangedRequestMessage{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[74] + mi := &file_rpc_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4401,7 +4501,7 @@ func (x *NotifyVirtualSelectedParentBlueScoreChangedRequestMessage) String() str func (*NotifyVirtualSelectedParentBlueScoreChangedRequestMessage) ProtoMessage() {} func (x *NotifyVirtualSelectedParentBlueScoreChangedRequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[74] + mi := &file_rpc_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4414,7 +4514,7 @@ func (x *NotifyVirtualSelectedParentBlueScoreChangedRequestMessage) ProtoReflect // Deprecated: Use NotifyVirtualSelectedParentBlueScoreChangedRequestMessage.ProtoReflect.Descriptor instead. func (*NotifyVirtualSelectedParentBlueScoreChangedRequestMessage) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{74} + return file_rpc_proto_rawDescGZIP(), []int{76} } type NotifyVirtualSelectedParentBlueScoreChangedResponseMessage struct { @@ -4428,7 +4528,7 @@ type NotifyVirtualSelectedParentBlueScoreChangedResponseMessage struct { func (x *NotifyVirtualSelectedParentBlueScoreChangedResponseMessage) Reset() { *x = NotifyVirtualSelectedParentBlueScoreChangedResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[75] + mi := &file_rpc_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4441,7 +4541,7 @@ func (x *NotifyVirtualSelectedParentBlueScoreChangedResponseMessage) String() st func (*NotifyVirtualSelectedParentBlueScoreChangedResponseMessage) ProtoMessage() {} func (x *NotifyVirtualSelectedParentBlueScoreChangedResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[75] + mi := &file_rpc_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4454,7 +4554,7 @@ func (x *NotifyVirtualSelectedParentBlueScoreChangedResponseMessage) ProtoReflec // Deprecated: Use NotifyVirtualSelectedParentBlueScoreChangedResponseMessage.ProtoReflect.Descriptor instead. func (*NotifyVirtualSelectedParentBlueScoreChangedResponseMessage) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{75} + return file_rpc_proto_rawDescGZIP(), []int{77} } func (x *NotifyVirtualSelectedParentBlueScoreChangedResponseMessage) GetError() *RPCError { @@ -4479,7 +4579,7 @@ type VirtualSelectedParentBlueScoreChangedNotificationMessage struct { func (x *VirtualSelectedParentBlueScoreChangedNotificationMessage) Reset() { *x = VirtualSelectedParentBlueScoreChangedNotificationMessage{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[76] + mi := &file_rpc_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4492,7 +4592,7 @@ func (x *VirtualSelectedParentBlueScoreChangedNotificationMessage) String() stri func (*VirtualSelectedParentBlueScoreChangedNotificationMessage) ProtoMessage() {} func (x *VirtualSelectedParentBlueScoreChangedNotificationMessage) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[76] + mi := &file_rpc_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4505,7 +4605,7 @@ func (x *VirtualSelectedParentBlueScoreChangedNotificationMessage) ProtoReflect( // Deprecated: Use VirtualSelectedParentBlueScoreChangedNotificationMessage.ProtoReflect.Descriptor instead. func (*VirtualSelectedParentBlueScoreChangedNotificationMessage) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{76} + return file_rpc_proto_rawDescGZIP(), []int{78} } func (x *VirtualSelectedParentBlueScoreChangedNotificationMessage) GetVirtualSelectedParentBlueScore() uint64 { @@ -4527,7 +4627,7 @@ type BanRequestMessage struct { func (x *BanRequestMessage) Reset() { *x = BanRequestMessage{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[77] + mi := &file_rpc_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4540,7 +4640,7 @@ func (x *BanRequestMessage) String() string { func (*BanRequestMessage) ProtoMessage() {} func (x *BanRequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[77] + mi := &file_rpc_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4553,7 +4653,7 @@ func (x *BanRequestMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use BanRequestMessage.ProtoReflect.Descriptor instead. func (*BanRequestMessage) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{77} + return file_rpc_proto_rawDescGZIP(), []int{79} } func (x *BanRequestMessage) GetIp() string { @@ -4574,7 +4674,7 @@ type BanResponseMessage struct { func (x *BanResponseMessage) Reset() { *x = BanResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[78] + mi := &file_rpc_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4587,7 +4687,7 @@ func (x *BanResponseMessage) String() string { func (*BanResponseMessage) ProtoMessage() {} func (x *BanResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[78] + mi := &file_rpc_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4600,7 +4700,7 @@ func (x *BanResponseMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use BanResponseMessage.ProtoReflect.Descriptor instead. func (*BanResponseMessage) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{78} + return file_rpc_proto_rawDescGZIP(), []int{80} } func (x *BanResponseMessage) GetError() *RPCError { @@ -4622,7 +4722,7 @@ type UnbanRequestMessage struct { func (x *UnbanRequestMessage) Reset() { *x = UnbanRequestMessage{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[79] + mi := &file_rpc_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4635,7 +4735,7 @@ func (x *UnbanRequestMessage) String() string { func (*UnbanRequestMessage) ProtoMessage() {} func (x *UnbanRequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[79] + mi := &file_rpc_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4648,7 +4748,7 @@ func (x *UnbanRequestMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use UnbanRequestMessage.ProtoReflect.Descriptor instead. func (*UnbanRequestMessage) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{79} + return file_rpc_proto_rawDescGZIP(), []int{81} } func (x *UnbanRequestMessage) GetIp() string { @@ -4669,7 +4769,7 @@ type UnbanResponseMessage struct { func (x *UnbanResponseMessage) Reset() { *x = UnbanResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[80] + mi := &file_rpc_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4682,7 +4782,7 @@ func (x *UnbanResponseMessage) String() string { func (*UnbanResponseMessage) ProtoMessage() {} func (x *UnbanResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[80] + mi := &file_rpc_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4695,7 +4795,7 @@ func (x *UnbanResponseMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use UnbanResponseMessage.ProtoReflect.Descriptor instead. func (*UnbanResponseMessage) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{80} + return file_rpc_proto_rawDescGZIP(), []int{82} } func (x *UnbanResponseMessage) GetError() *RPCError { @@ -4715,7 +4815,7 @@ type GetInfoRequestMessage struct { func (x *GetInfoRequestMessage) Reset() { *x = GetInfoRequestMessage{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[81] + mi := &file_rpc_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4728,7 +4828,7 @@ func (x *GetInfoRequestMessage) String() string { func (*GetInfoRequestMessage) ProtoMessage() {} func (x *GetInfoRequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[81] + mi := &file_rpc_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4741,7 +4841,7 @@ func (x *GetInfoRequestMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use GetInfoRequestMessage.ProtoReflect.Descriptor instead. func (*GetInfoRequestMessage) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{81} + return file_rpc_proto_rawDescGZIP(), []int{83} } type GetInfoResponseMessage struct { @@ -4756,7 +4856,7 @@ type GetInfoResponseMessage struct { func (x *GetInfoResponseMessage) Reset() { *x = GetInfoResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_proto_msgTypes[82] + mi := &file_rpc_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4769,7 +4869,7 @@ func (x *GetInfoResponseMessage) String() string { func (*GetInfoResponseMessage) ProtoMessage() {} func (x *GetInfoResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_rpc_proto_msgTypes[82] + mi := &file_rpc_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4782,7 +4882,7 @@ func (x *GetInfoResponseMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use GetInfoResponseMessage.ProtoReflect.Descriptor instead. func (*GetInfoResponseMessage) Descriptor() ([]byte, []int) { - return file_rpc_proto_rawDescGZIP(), []int{82} + return file_rpc_proto_rawDescGZIP(), []int{84} } func (x *GetInfoResponseMessage) GetP2PId() string { @@ -5299,131 +5399,141 @@ var file_rpc_proto_rawDesc = []byte{ 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x52, 0x70, 0x63, 0x55, 0x74, 0x78, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x75, 0x74, 0x78, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x22, 0xab, 0x02, 0x0a, 0x0e, 0x52, 0x70, 0x63, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, - 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x52, 0x70, 0x63, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x06, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, - 0x72, 0x65, 0x2e, 0x52, 0x70, 0x63, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, - 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x67, 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x67, - 0x61, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x61, 0x73, - 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x9f, - 0x01, 0x0a, 0x13, 0x52, 0x70, 0x63, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x42, 0x0a, 0x10, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, - 0x75, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x52, 0x70, 0x63, - 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x10, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, - 0x75, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x22, 0x58, 0x0a, 0x12, 0x52, 0x70, 0x63, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0x77, 0x0a, 0x14, 0x52, 0x70, - 0x63, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0f, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, - 0x52, 0x70, 0x63, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, - 0x65, 0x79, 0x52, 0x0f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x4b, 0x65, 0x79, 0x22, 0x49, 0x0a, 0x0b, 0x52, 0x70, 0x63, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xb7, - 0x01, 0x0a, 0x0c, 0x52, 0x70, 0x63, 0x55, 0x74, 0x78, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0f, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x52, 0x70, 0x63, - 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, - 0x0f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, - 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6c, 0x75, 0x65, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x42, - 0x6c, 0x75, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x43, 0x6f, - 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, - 0x43, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x22, 0x41, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x55, - 0x74, 0x78, 0x6f, 0x73, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x22, - 0x47, 0x65, 0x74, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, + 0x22, 0x47, 0x0a, 0x27, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x69, 0x6e, + 0x67, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x56, 0x0a, 0x28, 0x53, 0x74, 0x6f, + 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0xe8, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, + 0x65, 0x2e, 0x52, 0x50, 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x22, 0xab, 0x02, 0x0a, 0x0e, 0x52, 0x70, 0x63, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, + 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x52, 0x70, 0x63, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x06, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, + 0x69, 0x72, 0x65, 0x2e, 0x52, 0x70, 0x63, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x67, 0x61, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x61, + 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, + 0x9f, 0x01, 0x0a, 0x13, 0x52, 0x70, 0x63, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x42, 0x0a, 0x10, 0x70, 0x72, 0x65, 0x76, 0x69, + 0x6f, 0x75, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x52, 0x70, + 0x63, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x10, 0x70, 0x72, 0x65, 0x76, 0x69, + 0x6f, 0x75, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x22, 0x58, 0x0a, 0x12, 0x52, 0x70, 0x63, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0x77, 0x0a, 0x14, 0x52, + 0x70, 0x63, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0f, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, + 0x2e, 0x52, 0x70, 0x63, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x4b, 0x65, 0x79, 0x52, 0x0f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x4b, 0x65, 0x79, 0x22, 0x49, 0x0a, 0x0b, 0x52, 0x70, 0x63, 0x4f, 0x75, 0x74, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, + 0xb7, 0x01, 0x0a, 0x0c, 0x52, 0x70, 0x63, 0x55, 0x74, 0x78, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0f, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x52, 0x70, + 0x63, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, + 0x52, 0x0f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, + 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6c, 0x75, 0x65, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x42, 0x6c, 0x75, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x43, + 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, + 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x22, 0x41, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2a, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x52, 0x50, 0x43, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x31, 0x0a, 0x2f, 0x47, 0x65, - 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x75, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x7c, 0x0a, - 0x30, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x75, 0x65, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x6c, 0x75, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x62, 0x6c, 0x75, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x8c, 0x01, 0x0a, + 0x22, 0x47, 0x65, 0x74, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, + 0x2e, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x52, 0x50, 0x43, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x3b, 0x0a, 0x39, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x79, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x75, 0x65, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x68, 0x0a, 0x3a, 0x4e, 0x6f, 0x74, 0x69, - 0x66, 0x79, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x31, 0x0a, 0x2f, 0x47, + 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x75, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, - 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, - 0x72, 0x65, 0x2e, 0x52, 0x50, 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x22, 0x82, 0x01, 0x0a, 0x38, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x75, 0x65, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x46, 0x0a, 0x1e, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x7c, + 0x0a, 0x30, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x75, 0x65, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x6c, 0x75, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x62, 0x6c, 0x75, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x52, 0x50, 0x43, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x3b, 0x0a, 0x39, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x75, 0x65, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x68, 0x0a, 0x3a, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x75, 0x65, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1e, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, - 0x75, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x23, 0x0a, 0x11, 0x42, 0x61, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x22, 0x40, 0x0a, 0x12, - 0x42, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0xe8, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x52, - 0x50, 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x25, - 0x0a, 0x13, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x70, 0x22, 0x42, 0x0a, 0x14, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x52, 0x50, 0x43, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x17, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x22, 0x5a, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x70, 0x32, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x32, 0x70, - 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0xe8, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x52, - 0x50, 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x26, - 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x61, 0x73, - 0x70, 0x61, 0x6e, 0x65, 0x74, 0x2f, 0x6b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, + 0x69, 0x72, 0x65, 0x2e, 0x52, 0x50, 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x22, 0x82, 0x01, 0x0a, 0x38, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x75, + 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x46, 0x0a, 0x1e, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x75, 0x65, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1e, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, + 0x6c, 0x75, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x23, 0x0a, 0x11, 0x42, 0x61, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x22, 0x40, 0x0a, + 0x12, 0x42, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0xe8, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, + 0x52, 0x50, 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, + 0x25, 0x0a, 0x13, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x22, 0x42, 0x0a, 0x14, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x52, 0x50, 0x43, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x17, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x22, 0x5a, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x70, 0x32, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x32, + 0x70, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0xe8, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, + 0x52, 0x50, 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, + 0x26, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x61, + 0x73, 0x70, 0x61, 0x6e, 0x65, 0x74, 0x2f, 0x6b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5439,7 +5549,7 @@ func file_rpc_proto_rawDescGZIP() []byte { } var file_rpc_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 83) +var file_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 85) var file_rpc_proto_goTypes = []interface{}{ (SubmitBlockResponseMessage_RejectReason)(0), // 0: protowire.SubmitBlockResponseMessage.RejectReason (*RPCError)(nil), // 1: protowire.RPCError @@ -5506,36 +5616,38 @@ var file_rpc_proto_goTypes = []interface{}{ (*NotifyUtxosChangedResponseMessage)(nil), // 62: protowire.NotifyUtxosChangedResponseMessage (*UtxosChangedNotificationMessage)(nil), // 63: protowire.UtxosChangedNotificationMessage (*UtxosByAddressesEntry)(nil), // 64: protowire.UtxosByAddressesEntry - (*RpcTransaction)(nil), // 65: protowire.RpcTransaction - (*RpcTransactionInput)(nil), // 66: protowire.RpcTransactionInput - (*RpcScriptPublicKey)(nil), // 67: protowire.RpcScriptPublicKey - (*RpcTransactionOutput)(nil), // 68: protowire.RpcTransactionOutput - (*RpcOutpoint)(nil), // 69: protowire.RpcOutpoint - (*RpcUtxoEntry)(nil), // 70: protowire.RpcUtxoEntry - (*GetUtxosByAddressesRequestMessage)(nil), // 71: protowire.GetUtxosByAddressesRequestMessage - (*GetUtxosByAddressesResponseMessage)(nil), // 72: protowire.GetUtxosByAddressesResponseMessage - (*GetVirtualSelectedParentBlueScoreRequestMessage)(nil), // 73: protowire.GetVirtualSelectedParentBlueScoreRequestMessage - (*GetVirtualSelectedParentBlueScoreResponseMessage)(nil), // 74: protowire.GetVirtualSelectedParentBlueScoreResponseMessage - (*NotifyVirtualSelectedParentBlueScoreChangedRequestMessage)(nil), // 75: protowire.NotifyVirtualSelectedParentBlueScoreChangedRequestMessage - (*NotifyVirtualSelectedParentBlueScoreChangedResponseMessage)(nil), // 76: protowire.NotifyVirtualSelectedParentBlueScoreChangedResponseMessage - (*VirtualSelectedParentBlueScoreChangedNotificationMessage)(nil), // 77: protowire.VirtualSelectedParentBlueScoreChangedNotificationMessage - (*BanRequestMessage)(nil), // 78: protowire.BanRequestMessage - (*BanResponseMessage)(nil), // 79: protowire.BanResponseMessage - (*UnbanRequestMessage)(nil), // 80: protowire.UnbanRequestMessage - (*UnbanResponseMessage)(nil), // 81: protowire.UnbanResponseMessage - (*GetInfoRequestMessage)(nil), // 82: protowire.GetInfoRequestMessage - (*GetInfoResponseMessage)(nil), // 83: protowire.GetInfoResponseMessage - (*BlockMessage)(nil), // 84: protowire.BlockMessage + (*StopNotifyingUtxosChangedRequestMessage)(nil), // 65: protowire.StopNotifyingUtxosChangedRequestMessage + (*StopNotifyingUtxosChangedResponseMessage)(nil), // 66: protowire.StopNotifyingUtxosChangedResponseMessage + (*RpcTransaction)(nil), // 67: protowire.RpcTransaction + (*RpcTransactionInput)(nil), // 68: protowire.RpcTransactionInput + (*RpcScriptPublicKey)(nil), // 69: protowire.RpcScriptPublicKey + (*RpcTransactionOutput)(nil), // 70: protowire.RpcTransactionOutput + (*RpcOutpoint)(nil), // 71: protowire.RpcOutpoint + (*RpcUtxoEntry)(nil), // 72: protowire.RpcUtxoEntry + (*GetUtxosByAddressesRequestMessage)(nil), // 73: protowire.GetUtxosByAddressesRequestMessage + (*GetUtxosByAddressesResponseMessage)(nil), // 74: protowire.GetUtxosByAddressesResponseMessage + (*GetVirtualSelectedParentBlueScoreRequestMessage)(nil), // 75: protowire.GetVirtualSelectedParentBlueScoreRequestMessage + (*GetVirtualSelectedParentBlueScoreResponseMessage)(nil), // 76: protowire.GetVirtualSelectedParentBlueScoreResponseMessage + (*NotifyVirtualSelectedParentBlueScoreChangedRequestMessage)(nil), // 77: protowire.NotifyVirtualSelectedParentBlueScoreChangedRequestMessage + (*NotifyVirtualSelectedParentBlueScoreChangedResponseMessage)(nil), // 78: protowire.NotifyVirtualSelectedParentBlueScoreChangedResponseMessage + (*VirtualSelectedParentBlueScoreChangedNotificationMessage)(nil), // 79: protowire.VirtualSelectedParentBlueScoreChangedNotificationMessage + (*BanRequestMessage)(nil), // 80: protowire.BanRequestMessage + (*BanResponseMessage)(nil), // 81: protowire.BanResponseMessage + (*UnbanRequestMessage)(nil), // 82: protowire.UnbanRequestMessage + (*UnbanResponseMessage)(nil), // 83: protowire.UnbanResponseMessage + (*GetInfoRequestMessage)(nil), // 84: protowire.GetInfoRequestMessage + (*GetInfoResponseMessage)(nil), // 85: protowire.GetInfoResponseMessage + (*BlockMessage)(nil), // 86: protowire.BlockMessage } var file_rpc_proto_depIdxs = []int32{ 1, // 0: protowire.GetCurrentNetworkResponseMessage.error:type_name -> protowire.RPCError - 84, // 1: protowire.SubmitBlockRequestMessage.block:type_name -> protowire.BlockMessage + 86, // 1: protowire.SubmitBlockRequestMessage.block:type_name -> protowire.BlockMessage 0, // 2: protowire.SubmitBlockResponseMessage.rejectReason:type_name -> protowire.SubmitBlockResponseMessage.RejectReason 1, // 3: protowire.SubmitBlockResponseMessage.error:type_name -> protowire.RPCError - 84, // 4: protowire.GetBlockTemplateResponseMessage.blockMessage:type_name -> protowire.BlockMessage + 86, // 4: protowire.GetBlockTemplateResponseMessage.blockMessage:type_name -> protowire.BlockMessage 1, // 5: protowire.GetBlockTemplateResponseMessage.error:type_name -> protowire.RPCError 1, // 6: protowire.NotifyBlockAddedResponseMessage.error:type_name -> protowire.RPCError - 84, // 7: protowire.BlockAddedNotificationMessage.block:type_name -> protowire.BlockMessage + 86, // 7: protowire.BlockAddedNotificationMessage.block:type_name -> protowire.BlockMessage 35, // 8: protowire.BlockAddedNotificationMessage.blockVerboseData:type_name -> protowire.BlockVerboseData 13, // 9: protowire.GetPeerAddressesResponseMessage.addresses:type_name -> protowire.GetPeerAddressesKnownAddressMessage 13, // 10: protowire.GetPeerAddressesResponseMessage.bannedAddresses:type_name -> protowire.GetPeerAddressesKnownAddressMessage @@ -5549,7 +5661,7 @@ var file_rpc_proto_depIdxs = []int32{ 23, // 18: protowire.GetConnectedPeerInfoResponseMessage.infos:type_name -> protowire.GetConnectedPeerInfoMessage 1, // 19: protowire.GetConnectedPeerInfoResponseMessage.error:type_name -> protowire.RPCError 1, // 20: protowire.AddPeerResponseMessage.error:type_name -> protowire.RPCError - 65, // 21: protowire.SubmitTransactionRequestMessage.transaction:type_name -> protowire.RpcTransaction + 67, // 21: protowire.SubmitTransactionRequestMessage.transaction:type_name -> protowire.RpcTransaction 1, // 22: protowire.SubmitTransactionResponseMessage.error:type_name -> protowire.RPCError 1, // 23: protowire.NotifyVirtualSelectedParentChainChangedResponseMessage.error:type_name -> protowire.RPCError 31, // 24: protowire.VirtualSelectedParentChainChangedNotificationMessage.addedChainBlocks:type_name -> protowire.ChainBlock @@ -5575,25 +5687,26 @@ var file_rpc_proto_depIdxs = []int32{ 1, // 44: protowire.NotifyUtxosChangedResponseMessage.error:type_name -> protowire.RPCError 64, // 45: protowire.UtxosChangedNotificationMessage.added:type_name -> protowire.UtxosByAddressesEntry 64, // 46: protowire.UtxosChangedNotificationMessage.removed:type_name -> protowire.UtxosByAddressesEntry - 69, // 47: protowire.UtxosByAddressesEntry.outpoint:type_name -> protowire.RpcOutpoint - 70, // 48: protowire.UtxosByAddressesEntry.utxoEntry:type_name -> protowire.RpcUtxoEntry - 66, // 49: protowire.RpcTransaction.inputs:type_name -> protowire.RpcTransactionInput - 68, // 50: protowire.RpcTransaction.outputs:type_name -> protowire.RpcTransactionOutput - 69, // 51: protowire.RpcTransactionInput.previousOutpoint:type_name -> protowire.RpcOutpoint - 67, // 52: protowire.RpcTransactionOutput.scriptPublicKey:type_name -> protowire.RpcScriptPublicKey - 67, // 53: protowire.RpcUtxoEntry.scriptPublicKey:type_name -> protowire.RpcScriptPublicKey - 64, // 54: protowire.GetUtxosByAddressesResponseMessage.entries:type_name -> protowire.UtxosByAddressesEntry - 1, // 55: protowire.GetUtxosByAddressesResponseMessage.error:type_name -> protowire.RPCError - 1, // 56: protowire.GetVirtualSelectedParentBlueScoreResponseMessage.error:type_name -> protowire.RPCError - 1, // 57: protowire.NotifyVirtualSelectedParentBlueScoreChangedResponseMessage.error:type_name -> protowire.RPCError - 1, // 58: protowire.BanResponseMessage.error:type_name -> protowire.RPCError - 1, // 59: protowire.UnbanResponseMessage.error:type_name -> protowire.RPCError - 1, // 60: protowire.GetInfoResponseMessage.error:type_name -> protowire.RPCError - 61, // [61:61] is the sub-list for method output_type - 61, // [61:61] is the sub-list for method input_type - 61, // [61:61] is the sub-list for extension type_name - 61, // [61:61] is the sub-list for extension extendee - 0, // [0:61] is the sub-list for field type_name + 71, // 47: protowire.UtxosByAddressesEntry.outpoint:type_name -> protowire.RpcOutpoint + 72, // 48: protowire.UtxosByAddressesEntry.utxoEntry:type_name -> protowire.RpcUtxoEntry + 1, // 49: protowire.StopNotifyingUtxosChangedResponseMessage.error:type_name -> protowire.RPCError + 68, // 50: protowire.RpcTransaction.inputs:type_name -> protowire.RpcTransactionInput + 70, // 51: protowire.RpcTransaction.outputs:type_name -> protowire.RpcTransactionOutput + 71, // 52: protowire.RpcTransactionInput.previousOutpoint:type_name -> protowire.RpcOutpoint + 69, // 53: protowire.RpcTransactionOutput.scriptPublicKey:type_name -> protowire.RpcScriptPublicKey + 69, // 54: protowire.RpcUtxoEntry.scriptPublicKey:type_name -> protowire.RpcScriptPublicKey + 64, // 55: protowire.GetUtxosByAddressesResponseMessage.entries:type_name -> protowire.UtxosByAddressesEntry + 1, // 56: protowire.GetUtxosByAddressesResponseMessage.error:type_name -> protowire.RPCError + 1, // 57: protowire.GetVirtualSelectedParentBlueScoreResponseMessage.error:type_name -> protowire.RPCError + 1, // 58: protowire.NotifyVirtualSelectedParentBlueScoreChangedResponseMessage.error:type_name -> protowire.RPCError + 1, // 59: protowire.BanResponseMessage.error:type_name -> protowire.RPCError + 1, // 60: protowire.UnbanResponseMessage.error:type_name -> protowire.RPCError + 1, // 61: protowire.GetInfoResponseMessage.error:type_name -> protowire.RPCError + 62, // [62:62] is the sub-list for method output_type + 62, // [62:62] is the sub-list for method input_type + 62, // [62:62] is the sub-list for extension type_name + 62, // [62:62] is the sub-list for extension extendee + 0, // [0:62] is the sub-list for field type_name } func init() { file_rpc_proto_init() } @@ -6372,7 +6485,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RpcTransaction); i { + switch v := v.(*StopNotifyingUtxosChangedRequestMessage); i { case 0: return &v.state case 1: @@ -6384,7 +6497,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RpcTransactionInput); i { + switch v := v.(*StopNotifyingUtxosChangedResponseMessage); i { case 0: return &v.state case 1: @@ -6396,7 +6509,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RpcScriptPublicKey); i { + switch v := v.(*RpcTransaction); i { case 0: return &v.state case 1: @@ -6408,7 +6521,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RpcTransactionOutput); i { + switch v := v.(*RpcTransactionInput); i { case 0: return &v.state case 1: @@ -6420,7 +6533,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RpcOutpoint); i { + switch v := v.(*RpcScriptPublicKey); i { case 0: return &v.state case 1: @@ -6432,7 +6545,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RpcUtxoEntry); i { + switch v := v.(*RpcTransactionOutput); i { case 0: return &v.state case 1: @@ -6444,7 +6557,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUtxosByAddressesRequestMessage); i { + switch v := v.(*RpcOutpoint); i { case 0: return &v.state case 1: @@ -6456,7 +6569,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUtxosByAddressesResponseMessage); i { + switch v := v.(*RpcUtxoEntry); i { case 0: return &v.state case 1: @@ -6468,7 +6581,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVirtualSelectedParentBlueScoreRequestMessage); i { + switch v := v.(*GetUtxosByAddressesRequestMessage); i { case 0: return &v.state case 1: @@ -6480,7 +6593,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVirtualSelectedParentBlueScoreResponseMessage); i { + switch v := v.(*GetUtxosByAddressesResponseMessage); i { case 0: return &v.state case 1: @@ -6492,7 +6605,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotifyVirtualSelectedParentBlueScoreChangedRequestMessage); i { + switch v := v.(*GetVirtualSelectedParentBlueScoreRequestMessage); i { case 0: return &v.state case 1: @@ -6504,7 +6617,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotifyVirtualSelectedParentBlueScoreChangedResponseMessage); i { + switch v := v.(*GetVirtualSelectedParentBlueScoreResponseMessage); i { case 0: return &v.state case 1: @@ -6516,7 +6629,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VirtualSelectedParentBlueScoreChangedNotificationMessage); i { + switch v := v.(*NotifyVirtualSelectedParentBlueScoreChangedRequestMessage); i { case 0: return &v.state case 1: @@ -6528,7 +6641,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BanRequestMessage); i { + switch v := v.(*NotifyVirtualSelectedParentBlueScoreChangedResponseMessage); i { case 0: return &v.state case 1: @@ -6540,7 +6653,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BanResponseMessage); i { + switch v := v.(*VirtualSelectedParentBlueScoreChangedNotificationMessage); i { case 0: return &v.state case 1: @@ -6552,7 +6665,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnbanRequestMessage); i { + switch v := v.(*BanRequestMessage); i { case 0: return &v.state case 1: @@ -6564,7 +6677,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnbanResponseMessage); i { + switch v := v.(*BanResponseMessage); i { case 0: return &v.state case 1: @@ -6576,7 +6689,7 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetInfoRequestMessage); i { + switch v := v.(*UnbanRequestMessage); i { case 0: return &v.state case 1: @@ -6588,6 +6701,30 @@ func file_rpc_proto_init() { } } file_rpc_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnbanResponseMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rpc_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetInfoRequestMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rpc_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetInfoResponseMessage); i { case 0: return &v.state @@ -6606,7 +6743,7 @@ func file_rpc_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_rpc_proto_rawDesc, NumEnums: 1, - NumMessages: 83, + NumMessages: 85, NumExtensions: 0, NumServices: 0, }, diff --git a/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.proto b/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.proto index 8e074ddeb..8ff4add42 100644 --- a/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.proto +++ b/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.proto @@ -450,6 +450,20 @@ message UtxosByAddressesEntry { RpcUtxoEntry utxoEntry = 3; } +// StopNotifyingUtxosChangedRequestMessage unregisters this connection for utxoChanged notifications +// for the given addresses. +// +// This call is only available when this kaspad was started with `--utxoindex` +// +// See: UtxosChangedNotificationMessage +message StopNotifyingUtxosChangedRequestMessage { + repeated string addresses = 1; +} + +message StopNotifyingUtxosChangedResponseMessage { + RPCError error = 1000; +} + message RpcTransaction { uint32 version = 1; repeated RpcTransactionInput inputs = 2; diff --git a/infrastructure/network/netadapter/server/grpcserver/protowire/rpc_stop_notifying_utxos_changed.go b/infrastructure/network/netadapter/server/grpcserver/protowire/rpc_stop_notifying_utxos_changed.go new file mode 100644 index 000000000..9717e920d --- /dev/null +++ b/infrastructure/network/netadapter/server/grpcserver/protowire/rpc_stop_notifying_utxos_changed.go @@ -0,0 +1,39 @@ +package protowire + +import ( + "github.com/kaspanet/kaspad/app/appmessage" +) + +func (x *KaspadMessage_StopNotifyingUtxosChangedRequest) toAppMessage() (appmessage.Message, error) { + return &appmessage.StopNotifyingUTXOsChangedRequestMessage{ + Addresses: x.StopNotifyingUtxosChangedRequest.Addresses, + }, nil +} + +func (x *KaspadMessage_StopNotifyingUtxosChangedRequest) fromAppMessage(message *appmessage.StopNotifyingUTXOsChangedRequestMessage) error { + x.StopNotifyingUtxosChangedRequest = &StopNotifyingUtxosChangedRequestMessage{ + Addresses: message.Addresses, + } + return nil +} + +func (x *KaspadMessage_StopNotifyingUtxosChangedResponse) toAppMessage() (appmessage.Message, error) { + var err *appmessage.RPCError + if x.StopNotifyingUtxosChangedResponse.Error != nil { + err = &appmessage.RPCError{Message: x.StopNotifyingUtxosChangedResponse.Error.Message} + } + return &appmessage.StopNotifyingUTXOsChangedResponseMessage{ + Error: err, + }, nil +} + +func (x *KaspadMessage_StopNotifyingUtxosChangedResponse) fromAppMessage(message *appmessage.StopNotifyingUTXOsChangedResponseMessage) error { + var err *RPCError + if message.Error != nil { + err = &RPCError{Message: message.Error.Message} + } + x.StopNotifyingUtxosChangedResponse = &StopNotifyingUtxosChangedResponseMessage{ + Error: err, + } + return nil +} diff --git a/infrastructure/network/netadapter/server/grpcserver/protowire/wire.go b/infrastructure/network/netadapter/server/grpcserver/protowire/wire.go index 89fad67ae..0bee7335e 100644 --- a/infrastructure/network/netadapter/server/grpcserver/protowire/wire.go +++ b/infrastructure/network/netadapter/server/grpcserver/protowire/wire.go @@ -643,6 +643,20 @@ func toRPCPayload(message appmessage.Message) (isKaspadMessage_Payload, error) { return nil, err } return payload, nil + case *appmessage.StopNotifyingUTXOsChangedRequestMessage: + payload := new(KaspadMessage_StopNotifyingUtxosChangedRequest) + err := payload.fromAppMessage(message) + if err != nil { + return nil, err + } + return payload, nil + case *appmessage.StopNotifyingUTXOsChangedResponseMessage: + payload := new(KaspadMessage_StopNotifyingUtxosChangedResponse) + err := payload.fromAppMessage(message) + if err != nil { + return nil, err + } + return payload, nil case *appmessage.GetUTXOsByAddressesRequestMessage: payload := new(KaspadMessage_GetUtxosByAddressesRequest) err := payload.fromAppMessage(message)