From d52a5a2cc59c13f951c02f611fbe807d9f830122 Mon Sep 17 00:00:00 2001 From: Mohamed Awnallah Date: Tue, 19 Aug 2025 02:04:23 +0000 Subject: [PATCH 1/6] rpc: replace `regen.sh` with dockerized proto generation script In this commit, we replace the local protoc dependency with a Docker-based solution. This will help in give reproducable and deterministic results across different computing environments. --- rpc/documentation/serverchanges.md | 2 +- rpc/gen_protos_docker.sh | 16 ++++++++++++++++ rpc/regen.sh | 3 --- 3 files changed, 17 insertions(+), 4 deletions(-) create mode 100755 rpc/gen_protos_docker.sh delete mode 100644 rpc/regen.sh diff --git a/rpc/documentation/serverchanges.md b/rpc/documentation/serverchanges.md index 109d27334c..4a86e67939 100644 --- a/rpc/documentation/serverchanges.md +++ b/rpc/documentation/serverchanges.md @@ -66,7 +66,7 @@ A `sh` shell script is included to compile the Protocol Buffers descriptor. It must be run from the `rpc` directory. ```bash -$ sh regen.sh +$ sh gen_protos_docker.sh ``` If a `sh` shell is unavailable, the command can be run manually instead (again diff --git a/rpc/gen_protos_docker.sh b/rpc/gen_protos_docker.sh new file mode 100755 index 0000000000..1c07c90f09 --- /dev/null +++ b/rpc/gen_protos_docker.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +# golang docker image version used in this script. +GO_IMAGE=docker.io/library/golang:1.23.12-alpine + +# protobuf generator version with legacy plugins=grpc support. Using v1.4.3 to +# maintain backward compatibility - generates single file instead of separate +# .pb.go and _grpc.pb.go files (modern approach). +PROTOC_GEN_GO_VERSION=v1.4.3 + +docker run --rm --volume "$(pwd):/workspace" --workdir /workspace \ + ${GO_IMAGE} sh -c " + apk add --no-cache protobuf-dev && \ + go install github.com/golang/protobuf/protoc-gen-go@${PROTOC_GEN_GO_VERSION} && \ + protoc -I. api.proto --go_out=plugins=grpc:walletrpc && \ + chown -R $(id -u):$(id -g) walletrpc" diff --git a/rpc/regen.sh b/rpc/regen.sh deleted file mode 100644 index 79c61693bd..0000000000 --- a/rpc/regen.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -protoc -I. api.proto --go_out=plugins=grpc:walletrpc From f8741fcee9c1520ff9e0a56dcee6d40215b921a9 Mon Sep 17 00:00:00 2001 From: Mohamed Awnallah Date: Tue, 19 Aug 2025 02:08:29 +0000 Subject: [PATCH 2/6] Makefile: introduce `rpc` PHONY target --- Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Makefile b/Makefile index 20e34a84e7..fc1bd48845 100644 --- a/Makefile +++ b/Makefile @@ -131,6 +131,11 @@ lint: $(LINT_BIN) @$(call print, "Linting source.") $(LINT) +#? rpc: Compile protobuf definitions +rpc: + @$(call print, "Compiling protos.") + cd ./rpc; ./gen_protos_docker.sh + #? clean: Clean source clean: @$(call print, "Cleaning source.$(NC)") @@ -155,6 +160,7 @@ tidy-module-check: tidy-module fmt \ fmt-check \ lint \ + rpc \ clean #? help: Get more info on make commands From 8ab34175e3823f5911800fa0785d1edab1a19448 Mon Sep 17 00:00:00 2001 From: Mohamed Awnallah Date: Tue, 19 Aug 2025 02:09:23 +0000 Subject: [PATCH 3/6] rpc/walletrpc: apply changes suggested by `make rpc` --- rpc/walletrpc/api.pb.go | 5150 ++++++++++++++++++++++++++++++--------- 1 file changed, 3983 insertions(+), 1167 deletions(-) diff --git a/rpc/walletrpc/api.pb.go b/rpc/walletrpc/api.pb.go index fd0cbb3f9b..3d7d1a319d 100644 --- a/rpc/walletrpc/api.pb.go +++ b/rpc/walletrpc/api.pb.go @@ -1,86 +1,33 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.23.0 +// protoc v5.29.4 // source: api.proto -/* -Package walletrpc is a generated protocol buffer package. - -It is generated from these files: - - api.proto - -It has these top-level messages: - - VersionRequest - VersionResponse - TransactionDetails - BlockDetails - AccountBalance - PingRequest - PingResponse - NetworkRequest - NetworkResponse - AccountNumberRequest - AccountNumberResponse - AccountsRequest - AccountsResponse - RenameAccountRequest - RenameAccountResponse - NextAccountRequest - NextAccountResponse - NextAddressRequest - NextAddressResponse - ImportPrivateKeyRequest - ImportPrivateKeyResponse - BalanceRequest - BalanceResponse - GetTransactionsRequest - GetTransactionsResponse - ChangePassphraseRequest - ChangePassphraseResponse - FundTransactionRequest - FundTransactionResponse - SignTransactionRequest - SignTransactionResponse - PublishTransactionRequest - PublishTransactionResponse - TransactionNotificationsRequest - TransactionNotificationsResponse - SpentnessNotificationsRequest - SpentnessNotificationsResponse - AccountNotificationsRequest - AccountNotificationsResponse - CreateWalletRequest - CreateWalletResponse - OpenWalletRequest - OpenWalletResponse - CloseWalletRequest - CloseWalletResponse - WalletExistsRequest - WalletExistsResponse - StartConsensusRpcRequest - StartConsensusRpcResponse -*/ package walletrpc import ( - fmt "fmt" - math "math" - + context "context" proto "github.com/golang/protobuf/proto" - context "golang.org/x/net/context" grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 type NextAddressRequest_Kind int32 @@ -89,19 +36,44 @@ const ( NextAddressRequest_BIP0044_INTERNAL NextAddressRequest_Kind = 1 ) -var NextAddressRequest_Kind_name = map[int32]string{ - 0: "BIP0044_EXTERNAL", - 1: "BIP0044_INTERNAL", -} -var NextAddressRequest_Kind_value = map[string]int32{ - "BIP0044_EXTERNAL": 0, - "BIP0044_INTERNAL": 1, +// Enum value maps for NextAddressRequest_Kind. +var ( + NextAddressRequest_Kind_name = map[int32]string{ + 0: "BIP0044_EXTERNAL", + 1: "BIP0044_INTERNAL", + } + NextAddressRequest_Kind_value = map[string]int32{ + "BIP0044_EXTERNAL": 0, + "BIP0044_INTERNAL": 1, + } +) + +func (x NextAddressRequest_Kind) Enum() *NextAddressRequest_Kind { + p := new(NextAddressRequest_Kind) + *p = x + return p } func (x NextAddressRequest_Kind) String() string { - return proto.EnumName(NextAddressRequest_Kind_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (NextAddressRequest_Kind) Descriptor() protoreflect.EnumDescriptor { + return file_api_proto_enumTypes[0].Descriptor() +} + +func (NextAddressRequest_Kind) Type() protoreflect.EnumType { + return &file_api_proto_enumTypes[0] +} + +func (x NextAddressRequest_Kind) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use NextAddressRequest_Kind.Descriptor instead. +func (NextAddressRequest_Kind) EnumDescriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{17, 0} } -func (NextAddressRequest_Kind) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{17, 0} } type ChangePassphraseRequest_Key int32 @@ -110,656 +82,1269 @@ const ( ChangePassphraseRequest_PUBLIC ChangePassphraseRequest_Key = 1 ) -var ChangePassphraseRequest_Key_name = map[int32]string{ - 0: "PRIVATE", - 1: "PUBLIC", -} -var ChangePassphraseRequest_Key_value = map[string]int32{ - "PRIVATE": 0, - "PUBLIC": 1, +// Enum value maps for ChangePassphraseRequest_Key. +var ( + ChangePassphraseRequest_Key_name = map[int32]string{ + 0: "PRIVATE", + 1: "PUBLIC", + } + ChangePassphraseRequest_Key_value = map[string]int32{ + "PRIVATE": 0, + "PUBLIC": 1, + } +) + +func (x ChangePassphraseRequest_Key) Enum() *ChangePassphraseRequest_Key { + p := new(ChangePassphraseRequest_Key) + *p = x + return p } func (x ChangePassphraseRequest_Key) String() string { - return proto.EnumName(ChangePassphraseRequest_Key_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ChangePassphraseRequest_Key) Descriptor() protoreflect.EnumDescriptor { + return file_api_proto_enumTypes[1].Descriptor() +} + +func (ChangePassphraseRequest_Key) Type() protoreflect.EnumType { + return &file_api_proto_enumTypes[1] +} + +func (x ChangePassphraseRequest_Key) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } + +// Deprecated: Use ChangePassphraseRequest_Key.Descriptor instead. func (ChangePassphraseRequest_Key) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{25, 0} + return file_api_proto_rawDescGZIP(), []int{25, 0} } type VersionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *VersionRequest) Reset() { + *x = VersionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VersionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VersionRequest) ProtoMessage() {} + +func (x *VersionRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[0] + 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) } -func (m *VersionRequest) Reset() { *m = VersionRequest{} } -func (m *VersionRequest) String() string { return proto.CompactTextString(m) } -func (*VersionRequest) ProtoMessage() {} -func (*VersionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +// Deprecated: Use VersionRequest.ProtoReflect.Descriptor instead. +func (*VersionRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{0} +} type VersionResponse struct { - VersionString string `protobuf:"bytes,1,opt,name=version_string,json=versionString" json:"version_string,omitempty"` - Major uint32 `protobuf:"varint,2,opt,name=major" json:"major,omitempty"` - Minor uint32 `protobuf:"varint,3,opt,name=minor" json:"minor,omitempty"` - Patch uint32 `protobuf:"varint,4,opt,name=patch" json:"patch,omitempty"` - Prerelease string `protobuf:"bytes,5,opt,name=prerelease" json:"prerelease,omitempty"` - BuildMetadata string `protobuf:"bytes,6,opt,name=build_metadata,json=buildMetadata" json:"build_metadata,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + VersionString string `protobuf:"bytes,1,opt,name=version_string,json=versionString,proto3" json:"version_string,omitempty"` + Major uint32 `protobuf:"varint,2,opt,name=major,proto3" json:"major,omitempty"` + Minor uint32 `protobuf:"varint,3,opt,name=minor,proto3" json:"minor,omitempty"` + Patch uint32 `protobuf:"varint,4,opt,name=patch,proto3" json:"patch,omitempty"` + Prerelease string `protobuf:"bytes,5,opt,name=prerelease,proto3" json:"prerelease,omitempty"` + BuildMetadata string `protobuf:"bytes,6,opt,name=build_metadata,json=buildMetadata,proto3" json:"build_metadata,omitempty"` +} + +func (x *VersionResponse) Reset() { + *x = VersionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VersionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VersionResponse) ProtoMessage() {} + +func (x *VersionResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[1] + 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) } -func (m *VersionResponse) Reset() { *m = VersionResponse{} } -func (m *VersionResponse) String() string { return proto.CompactTextString(m) } -func (*VersionResponse) ProtoMessage() {} -func (*VersionResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } +// Deprecated: Use VersionResponse.ProtoReflect.Descriptor instead. +func (*VersionResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{1} +} -func (m *VersionResponse) GetVersionString() string { - if m != nil { - return m.VersionString +func (x *VersionResponse) GetVersionString() string { + if x != nil { + return x.VersionString } return "" } -func (m *VersionResponse) GetMajor() uint32 { - if m != nil { - return m.Major +func (x *VersionResponse) GetMajor() uint32 { + if x != nil { + return x.Major } return 0 } -func (m *VersionResponse) GetMinor() uint32 { - if m != nil { - return m.Minor +func (x *VersionResponse) GetMinor() uint32 { + if x != nil { + return x.Minor } return 0 } -func (m *VersionResponse) GetPatch() uint32 { - if m != nil { - return m.Patch +func (x *VersionResponse) GetPatch() uint32 { + if x != nil { + return x.Patch } return 0 } -func (m *VersionResponse) GetPrerelease() string { - if m != nil { - return m.Prerelease +func (x *VersionResponse) GetPrerelease() string { + if x != nil { + return x.Prerelease } return "" } -func (m *VersionResponse) GetBuildMetadata() string { - if m != nil { - return m.BuildMetadata +func (x *VersionResponse) GetBuildMetadata() string { + if x != nil { + return x.BuildMetadata } return "" } type TransactionDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` Transaction []byte `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"` - Debits []*TransactionDetails_Input `protobuf:"bytes,3,rep,name=debits" json:"debits,omitempty"` - Credits []*TransactionDetails_Output `protobuf:"bytes,4,rep,name=credits" json:"credits,omitempty"` - Fee int64 `protobuf:"varint,5,opt,name=fee" json:"fee,omitempty"` - Timestamp int64 `protobuf:"varint,6,opt,name=timestamp" json:"timestamp,omitempty"` + Debits []*TransactionDetails_Input `protobuf:"bytes,3,rep,name=debits,proto3" json:"debits,omitempty"` + Credits []*TransactionDetails_Output `protobuf:"bytes,4,rep,name=credits,proto3" json:"credits,omitempty"` + Fee int64 `protobuf:"varint,5,opt,name=fee,proto3" json:"fee,omitempty"` + Timestamp int64 `protobuf:"varint,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // May be earlier than a block timestamp, but never later. +} + +func (x *TransactionDetails) Reset() { + *x = TransactionDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransactionDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransactionDetails) ProtoMessage() {} + +func (x *TransactionDetails) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[2] + 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) } -func (m *TransactionDetails) Reset() { *m = TransactionDetails{} } -func (m *TransactionDetails) String() string { return proto.CompactTextString(m) } -func (*TransactionDetails) ProtoMessage() {} -func (*TransactionDetails) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } +// Deprecated: Use TransactionDetails.ProtoReflect.Descriptor instead. +func (*TransactionDetails) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{2} +} -func (m *TransactionDetails) GetHash() []byte { - if m != nil { - return m.Hash +func (x *TransactionDetails) GetHash() []byte { + if x != nil { + return x.Hash } return nil } -func (m *TransactionDetails) GetTransaction() []byte { - if m != nil { - return m.Transaction +func (x *TransactionDetails) GetTransaction() []byte { + if x != nil { + return x.Transaction } return nil } -func (m *TransactionDetails) GetDebits() []*TransactionDetails_Input { - if m != nil { - return m.Debits +func (x *TransactionDetails) GetDebits() []*TransactionDetails_Input { + if x != nil { + return x.Debits } return nil } -func (m *TransactionDetails) GetCredits() []*TransactionDetails_Output { - if m != nil { - return m.Credits +func (x *TransactionDetails) GetCredits() []*TransactionDetails_Output { + if x != nil { + return x.Credits } return nil } -func (m *TransactionDetails) GetFee() int64 { - if m != nil { - return m.Fee +func (x *TransactionDetails) GetFee() int64 { + if x != nil { + return x.Fee } return 0 } -func (m *TransactionDetails) GetTimestamp() int64 { - if m != nil { - return m.Timestamp +func (x *TransactionDetails) GetTimestamp() int64 { + if x != nil { + return x.Timestamp } return 0 } -type TransactionDetails_Input struct { - Index uint32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"` - PreviousAccount uint32 `protobuf:"varint,2,opt,name=previous_account,json=previousAccount" json:"previous_account,omitempty"` - PreviousAmount int64 `protobuf:"varint,3,opt,name=previous_amount,json=previousAmount" json:"previous_amount,omitempty"` -} +type BlockDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *TransactionDetails_Input) Reset() { *m = TransactionDetails_Input{} } -func (m *TransactionDetails_Input) String() string { return proto.CompactTextString(m) } -func (*TransactionDetails_Input) ProtoMessage() {} -func (*TransactionDetails_Input) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 0} } + Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` + Height int32 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + Timestamp int64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Transactions []*TransactionDetails `protobuf:"bytes,4,rep,name=transactions,proto3" json:"transactions,omitempty"` +} -func (m *TransactionDetails_Input) GetIndex() uint32 { - if m != nil { - return m.Index +func (x *BlockDetails) Reset() { + *x = BlockDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (m *TransactionDetails_Input) GetPreviousAccount() uint32 { - if m != nil { - return m.PreviousAccount - } - return 0 +func (x *BlockDetails) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *TransactionDetails_Input) GetPreviousAmount() int64 { - if m != nil { - return m.PreviousAmount +func (*BlockDetails) ProtoMessage() {} + +func (x *BlockDetails) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -type TransactionDetails_Output struct { - Index uint32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"` - Account uint32 `protobuf:"varint,2,opt,name=account" json:"account,omitempty"` - Internal bool `protobuf:"varint,3,opt,name=internal" json:"internal,omitempty"` +// Deprecated: Use BlockDetails.ProtoReflect.Descriptor instead. +func (*BlockDetails) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{3} } -func (m *TransactionDetails_Output) Reset() { *m = TransactionDetails_Output{} } -func (m *TransactionDetails_Output) String() string { return proto.CompactTextString(m) } -func (*TransactionDetails_Output) ProtoMessage() {} -func (*TransactionDetails_Output) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 1} } +func (x *BlockDetails) GetHash() []byte { + if x != nil { + return x.Hash + } + return nil +} -func (m *TransactionDetails_Output) GetIndex() uint32 { - if m != nil { - return m.Index +func (x *BlockDetails) GetHeight() int32 { + if x != nil { + return x.Height } return 0 } -func (m *TransactionDetails_Output) GetAccount() uint32 { - if m != nil { - return m.Account +func (x *BlockDetails) GetTimestamp() int64 { + if x != nil { + return x.Timestamp } return 0 } -func (m *TransactionDetails_Output) GetInternal() bool { - if m != nil { - return m.Internal +func (x *BlockDetails) GetTransactions() []*TransactionDetails { + if x != nil { + return x.Transactions } - return false + return nil } -type BlockDetails struct { - Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` - Height int32 `protobuf:"varint,2,opt,name=height" json:"height,omitempty"` - Timestamp int64 `protobuf:"varint,3,opt,name=timestamp" json:"timestamp,omitempty"` - Transactions []*TransactionDetails `protobuf:"bytes,4,rep,name=transactions" json:"transactions,omitempty"` +type AccountBalance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Account uint32 `protobuf:"varint,1,opt,name=account,proto3" json:"account,omitempty"` + TotalBalance int64 `protobuf:"varint,2,opt,name=total_balance,json=totalBalance,proto3" json:"total_balance,omitempty"` +} + +func (x *AccountBalance) Reset() { + *x = AccountBalance{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountBalance) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *BlockDetails) Reset() { *m = BlockDetails{} } -func (m *BlockDetails) String() string { return proto.CompactTextString(m) } -func (*BlockDetails) ProtoMessage() {} -func (*BlockDetails) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } +func (*AccountBalance) ProtoMessage() {} -func (m *BlockDetails) GetHash() []byte { - if m != nil { - return m.Hash +func (x *AccountBalance) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (m *BlockDetails) GetHeight() int32 { - if m != nil { - return m.Height +// Deprecated: Use AccountBalance.ProtoReflect.Descriptor instead. +func (*AccountBalance) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{4} +} + +func (x *AccountBalance) GetAccount() uint32 { + if x != nil { + return x.Account } return 0 } -func (m *BlockDetails) GetTimestamp() int64 { - if m != nil { - return m.Timestamp +func (x *AccountBalance) GetTotalBalance() int64 { + if x != nil { + return x.TotalBalance } return 0 } -func (m *BlockDetails) GetTransactions() []*TransactionDetails { - if m != nil { - return m.Transactions +type PingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PingRequest) Reset() { + *x = PingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -type AccountBalance struct { - Account uint32 `protobuf:"varint,1,opt,name=account" json:"account,omitempty"` - TotalBalance int64 `protobuf:"varint,2,opt,name=total_balance,json=totalBalance" json:"total_balance,omitempty"` +func (x *PingRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AccountBalance) Reset() { *m = AccountBalance{} } -func (m *AccountBalance) String() string { return proto.CompactTextString(m) } -func (*AccountBalance) ProtoMessage() {} -func (*AccountBalance) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } +func (*PingRequest) ProtoMessage() {} -func (m *AccountBalance) GetAccount() uint32 { - if m != nil { - return m.Account +func (x *PingRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (m *AccountBalance) GetTotalBalance() int64 { - if m != nil { - return m.TotalBalance +// Deprecated: Use PingRequest.ProtoReflect.Descriptor instead. +func (*PingRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{5} +} + +type PingResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PingResponse) Reset() { + *x = PingResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -type PingRequest struct { +func (x *PingResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *PingRequest) Reset() { *m = PingRequest{} } -func (m *PingRequest) String() string { return proto.CompactTextString(m) } -func (*PingRequest) ProtoMessage() {} -func (*PingRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } +func (*PingResponse) ProtoMessage() {} -type PingResponse struct { +func (x *PingResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[6] + 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) } -func (m *PingResponse) Reset() { *m = PingResponse{} } -func (m *PingResponse) String() string { return proto.CompactTextString(m) } -func (*PingResponse) ProtoMessage() {} -func (*PingResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } +// Deprecated: Use PingResponse.ProtoReflect.Descriptor instead. +func (*PingResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{6} +} type NetworkRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *NetworkRequest) Reset() { + *x = NetworkRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NetworkRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NetworkRequest) ProtoMessage() {} + +func (x *NetworkRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[7] + 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) } -func (m *NetworkRequest) Reset() { *m = NetworkRequest{} } -func (m *NetworkRequest) String() string { return proto.CompactTextString(m) } -func (*NetworkRequest) ProtoMessage() {} -func (*NetworkRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } +// Deprecated: Use NetworkRequest.ProtoReflect.Descriptor instead. +func (*NetworkRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{7} +} type NetworkResponse struct { - ActiveNetwork uint32 `protobuf:"varint,1,opt,name=active_network,json=activeNetwork" json:"active_network,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ActiveNetwork uint32 `protobuf:"varint,1,opt,name=active_network,json=activeNetwork,proto3" json:"active_network,omitempty"` +} + +func (x *NetworkResponse) Reset() { + *x = NetworkResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *NetworkResponse) Reset() { *m = NetworkResponse{} } -func (m *NetworkResponse) String() string { return proto.CompactTextString(m) } -func (*NetworkResponse) ProtoMessage() {} -func (*NetworkResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } +func (x *NetworkResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NetworkResponse) ProtoMessage() {} + +func (x *NetworkResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[8] + 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 NetworkResponse.ProtoReflect.Descriptor instead. +func (*NetworkResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{8} +} -func (m *NetworkResponse) GetActiveNetwork() uint32 { - if m != nil { - return m.ActiveNetwork +func (x *NetworkResponse) GetActiveNetwork() uint32 { + if x != nil { + return x.ActiveNetwork } return 0 } type AccountNumberRequest struct { - AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName" json:"account_name,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` } -func (m *AccountNumberRequest) Reset() { *m = AccountNumberRequest{} } -func (m *AccountNumberRequest) String() string { return proto.CompactTextString(m) } -func (*AccountNumberRequest) ProtoMessage() {} -func (*AccountNumberRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } +func (x *AccountNumberRequest) Reset() { + *x = AccountNumberRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountNumberRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountNumberRequest) ProtoMessage() {} + +func (x *AccountNumberRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[9] + 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) +} -func (m *AccountNumberRequest) GetAccountName() string { - if m != nil { - return m.AccountName +// Deprecated: Use AccountNumberRequest.ProtoReflect.Descriptor instead. +func (*AccountNumberRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{9} +} + +func (x *AccountNumberRequest) GetAccountName() string { + if x != nil { + return x.AccountName } return "" } type AccountNumberResponse struct { - AccountNumber uint32 `protobuf:"varint,1,opt,name=account_number,json=accountNumber" json:"account_number,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountNumber uint32 `protobuf:"varint,1,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` +} + +func (x *AccountNumberResponse) Reset() { + *x = AccountNumberResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountNumberResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AccountNumberResponse) Reset() { *m = AccountNumberResponse{} } -func (m *AccountNumberResponse) String() string { return proto.CompactTextString(m) } -func (*AccountNumberResponse) ProtoMessage() {} -func (*AccountNumberResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } +func (*AccountNumberResponse) ProtoMessage() {} -func (m *AccountNumberResponse) GetAccountNumber() uint32 { - if m != nil { - return m.AccountNumber +func (x *AccountNumberResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[10] + 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 AccountNumberResponse.ProtoReflect.Descriptor instead. +func (*AccountNumberResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{10} +} + +func (x *AccountNumberResponse) GetAccountNumber() uint32 { + if x != nil { + return x.AccountNumber } return 0 } type AccountsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (m *AccountsRequest) Reset() { *m = AccountsRequest{} } -func (m *AccountsRequest) String() string { return proto.CompactTextString(m) } -func (*AccountsRequest) ProtoMessage() {} -func (*AccountsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } +func (x *AccountsRequest) Reset() { + *x = AccountsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -type AccountsResponse struct { - Accounts []*AccountsResponse_Account `protobuf:"bytes,1,rep,name=accounts" json:"accounts,omitempty"` - CurrentBlockHash []byte `protobuf:"bytes,2,opt,name=current_block_hash,json=currentBlockHash,proto3" json:"current_block_hash,omitempty"` - CurrentBlockHeight int32 `protobuf:"varint,3,opt,name=current_block_height,json=currentBlockHeight" json:"current_block_height,omitempty"` +func (x *AccountsRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AccountsResponse) Reset() { *m = AccountsResponse{} } -func (m *AccountsResponse) String() string { return proto.CompactTextString(m) } -func (*AccountsResponse) ProtoMessage() {} -func (*AccountsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } +func (*AccountsRequest) ProtoMessage() {} -func (m *AccountsResponse) GetAccounts() []*AccountsResponse_Account { - if m != nil { - return m.Accounts +func (x *AccountsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (m *AccountsResponse) GetCurrentBlockHash() []byte { - if m != nil { - return m.CurrentBlockHash - } - return nil +// Deprecated: Use AccountsRequest.ProtoReflect.Descriptor instead. +func (*AccountsRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{11} +} + +type AccountsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Accounts []*AccountsResponse_Account `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts,omitempty"` + CurrentBlockHash []byte `protobuf:"bytes,2,opt,name=current_block_hash,json=currentBlockHash,proto3" json:"current_block_hash,omitempty"` + CurrentBlockHeight int32 `protobuf:"varint,3,opt,name=current_block_height,json=currentBlockHeight,proto3" json:"current_block_height,omitempty"` } -func (m *AccountsResponse) GetCurrentBlockHeight() int32 { - if m != nil { - return m.CurrentBlockHeight +func (x *AccountsResponse) Reset() { + *x = AccountsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -type AccountsResponse_Account struct { - AccountNumber uint32 `protobuf:"varint,1,opt,name=account_number,json=accountNumber" json:"account_number,omitempty"` - AccountName string `protobuf:"bytes,2,opt,name=account_name,json=accountName" json:"account_name,omitempty"` - TotalBalance int64 `protobuf:"varint,3,opt,name=total_balance,json=totalBalance" json:"total_balance,omitempty"` - ExternalKeyCount uint32 `protobuf:"varint,4,opt,name=external_key_count,json=externalKeyCount" json:"external_key_count,omitempty"` - InternalKeyCount uint32 `protobuf:"varint,5,opt,name=internal_key_count,json=internalKeyCount" json:"internal_key_count,omitempty"` - ImportedKeyCount uint32 `protobuf:"varint,6,opt,name=imported_key_count,json=importedKeyCount" json:"imported_key_count,omitempty"` +func (x *AccountsResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AccountsResponse_Account) Reset() { *m = AccountsResponse_Account{} } -func (m *AccountsResponse_Account) String() string { return proto.CompactTextString(m) } -func (*AccountsResponse_Account) ProtoMessage() {} -func (*AccountsResponse_Account) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12, 0} } +func (*AccountsResponse) ProtoMessage() {} -func (m *AccountsResponse_Account) GetAccountNumber() uint32 { - if m != nil { - return m.AccountNumber +func (x *AccountsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (m *AccountsResponse_Account) GetAccountName() string { - if m != nil { - return m.AccountName - } - return "" +// Deprecated: Use AccountsResponse.ProtoReflect.Descriptor instead. +func (*AccountsResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{12} } -func (m *AccountsResponse_Account) GetTotalBalance() int64 { - if m != nil { - return m.TotalBalance +func (x *AccountsResponse) GetAccounts() []*AccountsResponse_Account { + if x != nil { + return x.Accounts } - return 0 + return nil } -func (m *AccountsResponse_Account) GetExternalKeyCount() uint32 { - if m != nil { - return m.ExternalKeyCount +func (x *AccountsResponse) GetCurrentBlockHash() []byte { + if x != nil { + return x.CurrentBlockHash } - return 0 + return nil } -func (m *AccountsResponse_Account) GetInternalKeyCount() uint32 { - if m != nil { - return m.InternalKeyCount +func (x *AccountsResponse) GetCurrentBlockHeight() int32 { + if x != nil { + return x.CurrentBlockHeight } return 0 } -func (m *AccountsResponse_Account) GetImportedKeyCount() uint32 { - if m != nil { - return m.ImportedKeyCount +type RenameAccountRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountNumber uint32 `protobuf:"varint,1,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` + NewName string `protobuf:"bytes,2,opt,name=new_name,json=newName,proto3" json:"new_name,omitempty"` +} + +func (x *RenameAccountRequest) Reset() { + *x = RenameAccountRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -type RenameAccountRequest struct { - AccountNumber uint32 `protobuf:"varint,1,opt,name=account_number,json=accountNumber" json:"account_number,omitempty"` - NewName string `protobuf:"bytes,2,opt,name=new_name,json=newName" json:"new_name,omitempty"` +func (x *RenameAccountRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *RenameAccountRequest) Reset() { *m = RenameAccountRequest{} } -func (m *RenameAccountRequest) String() string { return proto.CompactTextString(m) } -func (*RenameAccountRequest) ProtoMessage() {} -func (*RenameAccountRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } +func (*RenameAccountRequest) ProtoMessage() {} -func (m *RenameAccountRequest) GetAccountNumber() uint32 { - if m != nil { - return m.AccountNumber +func (x *RenameAccountRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[13] + 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 RenameAccountRequest.ProtoReflect.Descriptor instead. +func (*RenameAccountRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{13} +} + +func (x *RenameAccountRequest) GetAccountNumber() uint32 { + if x != nil { + return x.AccountNumber } return 0 } -func (m *RenameAccountRequest) GetNewName() string { - if m != nil { - return m.NewName +func (x *RenameAccountRequest) GetNewName() string { + if x != nil { + return x.NewName } return "" } type RenameAccountResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RenameAccountResponse) Reset() { + *x = RenameAccountResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *RenameAccountResponse) Reset() { *m = RenameAccountResponse{} } -func (m *RenameAccountResponse) String() string { return proto.CompactTextString(m) } -func (*RenameAccountResponse) ProtoMessage() {} -func (*RenameAccountResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } +func (x *RenameAccountResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RenameAccountResponse) ProtoMessage() {} + +func (x *RenameAccountResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[14] + 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 RenameAccountResponse.ProtoReflect.Descriptor instead. +func (*RenameAccountResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{14} +} type NextAccountRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Passphrase []byte `protobuf:"bytes,1,opt,name=passphrase,proto3" json:"passphrase,omitempty"` - AccountName string `protobuf:"bytes,2,opt,name=account_name,json=accountName" json:"account_name,omitempty"` + AccountName string `protobuf:"bytes,2,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` } -func (m *NextAccountRequest) Reset() { *m = NextAccountRequest{} } -func (m *NextAccountRequest) String() string { return proto.CompactTextString(m) } -func (*NextAccountRequest) ProtoMessage() {} -func (*NextAccountRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } +func (x *NextAccountRequest) Reset() { + *x = NextAccountRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NextAccountRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NextAccountRequest) ProtoMessage() {} + +func (x *NextAccountRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[15] + 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) +} -func (m *NextAccountRequest) GetPassphrase() []byte { - if m != nil { - return m.Passphrase +// Deprecated: Use NextAccountRequest.ProtoReflect.Descriptor instead. +func (*NextAccountRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{15} +} + +func (x *NextAccountRequest) GetPassphrase() []byte { + if x != nil { + return x.Passphrase } return nil } -func (m *NextAccountRequest) GetAccountName() string { - if m != nil { - return m.AccountName +func (x *NextAccountRequest) GetAccountName() string { + if x != nil { + return x.AccountName } return "" } type NextAccountResponse struct { - AccountNumber uint32 `protobuf:"varint,1,opt,name=account_number,json=accountNumber" json:"account_number,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountNumber uint32 `protobuf:"varint,1,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` +} + +func (x *NextAccountResponse) Reset() { + *x = NextAccountResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NextAccountResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *NextAccountResponse) Reset() { *m = NextAccountResponse{} } -func (m *NextAccountResponse) String() string { return proto.CompactTextString(m) } -func (*NextAccountResponse) ProtoMessage() {} -func (*NextAccountResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } +func (*NextAccountResponse) ProtoMessage() {} -func (m *NextAccountResponse) GetAccountNumber() uint32 { - if m != nil { - return m.AccountNumber +func (x *NextAccountResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[16] + 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 NextAccountResponse.ProtoReflect.Descriptor instead. +func (*NextAccountResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{16} +} + +func (x *NextAccountResponse) GetAccountNumber() uint32 { + if x != nil { + return x.AccountNumber } return 0 } type NextAddressRequest struct { - Account uint32 `protobuf:"varint,1,opt,name=account" json:"account,omitempty"` - Kind NextAddressRequest_Kind `protobuf:"varint,2,opt,name=kind,enum=walletrpc.NextAddressRequest_Kind" json:"kind,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Account uint32 `protobuf:"varint,1,opt,name=account,proto3" json:"account,omitempty"` + Kind NextAddressRequest_Kind `protobuf:"varint,2,opt,name=kind,proto3,enum=walletrpc.NextAddressRequest_Kind" json:"kind,omitempty"` +} + +func (x *NextAddressRequest) Reset() { + *x = NextAddressRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NextAddressRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NextAddressRequest) ProtoMessage() {} + +func (x *NextAddressRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[17] + 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) } -func (m *NextAddressRequest) Reset() { *m = NextAddressRequest{} } -func (m *NextAddressRequest) String() string { return proto.CompactTextString(m) } -func (*NextAddressRequest) ProtoMessage() {} -func (*NextAddressRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } +// Deprecated: Use NextAddressRequest.ProtoReflect.Descriptor instead. +func (*NextAddressRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{17} +} -func (m *NextAddressRequest) GetAccount() uint32 { - if m != nil { - return m.Account +func (x *NextAddressRequest) GetAccount() uint32 { + if x != nil { + return x.Account } return 0 } -func (m *NextAddressRequest) GetKind() NextAddressRequest_Kind { - if m != nil { - return m.Kind +func (x *NextAddressRequest) GetKind() NextAddressRequest_Kind { + if x != nil { + return x.Kind } return NextAddressRequest_BIP0044_EXTERNAL } type NextAddressResponse struct { - Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *NextAddressResponse) Reset() { *m = NextAddressResponse{} } -func (m *NextAddressResponse) String() string { return proto.CompactTextString(m) } -func (*NextAddressResponse) ProtoMessage() {} -func (*NextAddressResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +} -func (m *NextAddressResponse) GetAddress() string { - if m != nil { - return m.Address +func (x *NextAddressResponse) Reset() { + *x = NextAddressResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -type ImportPrivateKeyRequest struct { - Passphrase []byte `protobuf:"bytes,1,opt,name=passphrase,proto3" json:"passphrase,omitempty"` - Account uint32 `protobuf:"varint,2,opt,name=account" json:"account,omitempty"` - PrivateKeyWif string `protobuf:"bytes,3,opt,name=private_key_wif,json=privateKeyWif" json:"private_key_wif,omitempty"` - Rescan bool `protobuf:"varint,4,opt,name=rescan" json:"rescan,omitempty"` +func (x *NextAddressResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ImportPrivateKeyRequest) Reset() { *m = ImportPrivateKeyRequest{} } -func (m *ImportPrivateKeyRequest) String() string { return proto.CompactTextString(m) } -func (*ImportPrivateKeyRequest) ProtoMessage() {} -func (*ImportPrivateKeyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } +func (*NextAddressResponse) ProtoMessage() {} -func (m *ImportPrivateKeyRequest) GetPassphrase() []byte { - if m != nil { - return m.Passphrase +func (x *NextAddressResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (m *ImportPrivateKeyRequest) GetAccount() uint32 { - if m != nil { - return m.Account - } - return 0 +// Deprecated: Use NextAddressResponse.ProtoReflect.Descriptor instead. +func (*NextAddressResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{18} } -func (m *ImportPrivateKeyRequest) GetPrivateKeyWif() string { - if m != nil { - return m.PrivateKeyWif +func (x *NextAddressResponse) GetAddress() string { + if x != nil { + return x.Address } return "" } -func (m *ImportPrivateKeyRequest) GetRescan() bool { - if m != nil { - return m.Rescan +type ImportPrivateKeyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Passphrase []byte `protobuf:"bytes,1,opt,name=passphrase,proto3" json:"passphrase,omitempty"` + Account uint32 `protobuf:"varint,2,opt,name=account,proto3" json:"account,omitempty"` + PrivateKeyWif string `protobuf:"bytes,3,opt,name=private_key_wif,json=privateKeyWif,proto3" json:"private_key_wif,omitempty"` + Rescan bool `protobuf:"varint,4,opt,name=rescan,proto3" json:"rescan,omitempty"` +} + +func (x *ImportPrivateKeyRequest) Reset() { + *x = ImportPrivateKeyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return false } -type ImportPrivateKeyResponse struct { +func (x *ImportPrivateKeyRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ImportPrivateKeyResponse) Reset() { *m = ImportPrivateKeyResponse{} } -func (m *ImportPrivateKeyResponse) String() string { return proto.CompactTextString(m) } -func (*ImportPrivateKeyResponse) ProtoMessage() {} -func (*ImportPrivateKeyResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } +func (*ImportPrivateKeyRequest) ProtoMessage() {} -type BalanceRequest struct { - AccountNumber uint32 `protobuf:"varint,1,opt,name=account_number,json=accountNumber" json:"account_number,omitempty"` - RequiredConfirmations int32 `protobuf:"varint,2,opt,name=required_confirmations,json=requiredConfirmations" json:"required_confirmations,omitempty"` +func (x *ImportPrivateKeyRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[19] + 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) } -func (m *BalanceRequest) Reset() { *m = BalanceRequest{} } -func (m *BalanceRequest) String() string { return proto.CompactTextString(m) } -func (*BalanceRequest) ProtoMessage() {} -func (*BalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } +// Deprecated: Use ImportPrivateKeyRequest.ProtoReflect.Descriptor instead. +func (*ImportPrivateKeyRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{19} +} -func (m *BalanceRequest) GetAccountNumber() uint32 { - if m != nil { - return m.AccountNumber +func (x *ImportPrivateKeyRequest) GetPassphrase() []byte { + if x != nil { + return x.Passphrase } - return 0 + return nil } -func (m *BalanceRequest) GetRequiredConfirmations() int32 { - if m != nil { - return m.RequiredConfirmations +func (x *ImportPrivateKeyRequest) GetAccount() uint32 { + if x != nil { + return x.Account } return 0 } -type BalanceResponse struct { - Total int64 `protobuf:"varint,1,opt,name=total" json:"total,omitempty"` - Spendable int64 `protobuf:"varint,2,opt,name=spendable" json:"spendable,omitempty"` - ImmatureReward int64 `protobuf:"varint,3,opt,name=immature_reward,json=immatureReward" json:"immature_reward,omitempty"` +func (x *ImportPrivateKeyRequest) GetPrivateKeyWif() string { + if x != nil { + return x.PrivateKeyWif + } + return "" } -func (m *BalanceResponse) Reset() { *m = BalanceResponse{} } -func (m *BalanceResponse) String() string { return proto.CompactTextString(m) } -func (*BalanceResponse) ProtoMessage() {} -func (*BalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } - -func (m *BalanceResponse) GetTotal() int64 { - if m != nil { - return m.Total +func (x *ImportPrivateKeyRequest) GetRescan() bool { + if x != nil { + return x.Rescan } - return 0 + return false } -func (m *BalanceResponse) GetSpendable() int64 { - if m != nil { - return m.Spendable - } - return 0 +type ImportPrivateKeyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (m *BalanceResponse) GetImmatureReward() int64 { - if m != nil { - return m.ImmatureReward +func (x *ImportPrivateKeyResponse) Reset() { + *x = ImportPrivateKeyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -type GetTransactionsRequest struct { - // Optionally specify the starting block from which to begin including all transactions. +func (x *ImportPrivateKeyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportPrivateKeyResponse) ProtoMessage() {} + +func (x *ImportPrivateKeyResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[20] + 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 ImportPrivateKeyResponse.ProtoReflect.Descriptor instead. +func (*ImportPrivateKeyResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{20} +} + +type BalanceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountNumber uint32 `protobuf:"varint,1,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` + RequiredConfirmations int32 `protobuf:"varint,2,opt,name=required_confirmations,json=requiredConfirmations,proto3" json:"required_confirmations,omitempty"` +} + +func (x *BalanceRequest) Reset() { + *x = BalanceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BalanceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BalanceRequest) ProtoMessage() {} + +func (x *BalanceRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[21] + 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 BalanceRequest.ProtoReflect.Descriptor instead. +func (*BalanceRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{21} +} + +func (x *BalanceRequest) GetAccountNumber() uint32 { + if x != nil { + return x.AccountNumber + } + return 0 +} + +func (x *BalanceRequest) GetRequiredConfirmations() int32 { + if x != nil { + return x.RequiredConfirmations + } + return 0 +} + +type BalanceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Spendable int64 `protobuf:"varint,2,opt,name=spendable,proto3" json:"spendable,omitempty"` + ImmatureReward int64 `protobuf:"varint,3,opt,name=immature_reward,json=immatureReward,proto3" json:"immature_reward,omitempty"` +} + +func (x *BalanceResponse) Reset() { + *x = BalanceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BalanceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BalanceResponse) ProtoMessage() {} + +func (x *BalanceResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[22] + 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 BalanceResponse.ProtoReflect.Descriptor instead. +func (*BalanceResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{22} +} + +func (x *BalanceResponse) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *BalanceResponse) GetSpendable() int64 { + if x != nil { + return x.Spendable + } + return 0 +} + +func (x *BalanceResponse) GetImmatureReward() int64 { + if x != nil { + return x.ImmatureReward + } + return 0 +} + +type GetTransactionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optionally specify the starting block from which to begin including all transactions. // Either the starting block hash or height may be specified, but not both. // If a block height is specified and is negative, the absolute value becomes the number of // last blocks to include. That is, given a current chain height of 1000 and a starting block @@ -767,811 +1352,3122 @@ type GetTransactionsRequest struct { // If both options are excluded, transaction results are created for transactions since the // genesis block. StartingBlockHash []byte `protobuf:"bytes,1,opt,name=starting_block_hash,json=startingBlockHash,proto3" json:"starting_block_hash,omitempty"` - StartingBlockHeight int32 `protobuf:"zigzag32,2,opt,name=starting_block_height,json=startingBlockHeight" json:"starting_block_height,omitempty"` + StartingBlockHeight int32 `protobuf:"zigzag32,2,opt,name=starting_block_height,json=startingBlockHeight,proto3" json:"starting_block_height,omitempty"` // Optionally specify the last block that transaction results may appear in. // Either the ending block hash or height may be specified, but not both. // If both are excluded, transaction results are created for all transactions // through the best block, and include all unmined transactions. EndingBlockHash []byte `protobuf:"bytes,3,opt,name=ending_block_hash,json=endingBlockHash,proto3" json:"ending_block_hash,omitempty"` - EndingBlockHeight int32 `protobuf:"varint,4,opt,name=ending_block_height,json=endingBlockHeight" json:"ending_block_height,omitempty"` + EndingBlockHeight int32 `protobuf:"varint,4,opt,name=ending_block_height,json=endingBlockHeight,proto3" json:"ending_block_height,omitempty"` // Include at least this many of the newest transactions if they exist. // Cannot be used when the ending block hash is specified. // // TODO: remove until spec adds it back in some way. - MinimumRecentTransactions int32 `protobuf:"varint,5,opt,name=minimum_recent_transactions,json=minimumRecentTransactions" json:"minimum_recent_transactions,omitempty"` + MinimumRecentTransactions int32 `protobuf:"varint,5,opt,name=minimum_recent_transactions,json=minimumRecentTransactions,proto3" json:"minimum_recent_transactions,omitempty"` +} + +func (x *GetTransactionsRequest) Reset() { + *x = GetTransactionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTransactionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTransactionsRequest) ProtoMessage() {} + +func (x *GetTransactionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[23] + 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 GetTransactionsRequest.ProtoReflect.Descriptor instead. +func (*GetTransactionsRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{23} +} + +func (x *GetTransactionsRequest) GetStartingBlockHash() []byte { + if x != nil { + return x.StartingBlockHash + } + return nil +} + +func (x *GetTransactionsRequest) GetStartingBlockHeight() int32 { + if x != nil { + return x.StartingBlockHeight + } + return 0 +} + +func (x *GetTransactionsRequest) GetEndingBlockHash() []byte { + if x != nil { + return x.EndingBlockHash + } + return nil +} + +func (x *GetTransactionsRequest) GetEndingBlockHeight() int32 { + if x != nil { + return x.EndingBlockHeight + } + return 0 +} + +func (x *GetTransactionsRequest) GetMinimumRecentTransactions() int32 { + if x != nil { + return x.MinimumRecentTransactions + } + return 0 +} + +type GetTransactionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MinedTransactions []*BlockDetails `protobuf:"bytes,1,rep,name=mined_transactions,json=minedTransactions,proto3" json:"mined_transactions,omitempty"` + UnminedTransactions []*TransactionDetails `protobuf:"bytes,2,rep,name=unmined_transactions,json=unminedTransactions,proto3" json:"unmined_transactions,omitempty"` +} + +func (x *GetTransactionsResponse) Reset() { + *x = GetTransactionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTransactionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTransactionsResponse) ProtoMessage() {} + +func (x *GetTransactionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[24] + 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 GetTransactionsResponse.ProtoReflect.Descriptor instead. +func (*GetTransactionsResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{24} +} + +func (x *GetTransactionsResponse) GetMinedTransactions() []*BlockDetails { + if x != nil { + return x.MinedTransactions + } + return nil +} + +func (x *GetTransactionsResponse) GetUnminedTransactions() []*TransactionDetails { + if x != nil { + return x.UnminedTransactions + } + return nil +} + +type ChangePassphraseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key ChangePassphraseRequest_Key `protobuf:"varint,1,opt,name=key,proto3,enum=walletrpc.ChangePassphraseRequest_Key" json:"key,omitempty"` + OldPassphrase []byte `protobuf:"bytes,2,opt,name=old_passphrase,json=oldPassphrase,proto3" json:"old_passphrase,omitempty"` + NewPassphrase []byte `protobuf:"bytes,3,opt,name=new_passphrase,json=newPassphrase,proto3" json:"new_passphrase,omitempty"` +} + +func (x *ChangePassphraseRequest) Reset() { + *x = ChangePassphraseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangePassphraseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangePassphraseRequest) ProtoMessage() {} + +func (x *ChangePassphraseRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[25] + 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 ChangePassphraseRequest.ProtoReflect.Descriptor instead. +func (*ChangePassphraseRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{25} +} + +func (x *ChangePassphraseRequest) GetKey() ChangePassphraseRequest_Key { + if x != nil { + return x.Key + } + return ChangePassphraseRequest_PRIVATE +} + +func (x *ChangePassphraseRequest) GetOldPassphrase() []byte { + if x != nil { + return x.OldPassphrase + } + return nil +} + +func (x *ChangePassphraseRequest) GetNewPassphrase() []byte { + if x != nil { + return x.NewPassphrase + } + return nil +} + +type ChangePassphraseResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ChangePassphraseResponse) Reset() { + *x = ChangePassphraseResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangePassphraseResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangePassphraseResponse) ProtoMessage() {} + +func (x *ChangePassphraseResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[26] + 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 ChangePassphraseResponse.ProtoReflect.Descriptor instead. +func (*ChangePassphraseResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{26} +} + +type FundTransactionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Account uint32 `protobuf:"varint,1,opt,name=account,proto3" json:"account,omitempty"` + TargetAmount int64 `protobuf:"varint,2,opt,name=target_amount,json=targetAmount,proto3" json:"target_amount,omitempty"` + RequiredConfirmations int32 `protobuf:"varint,3,opt,name=required_confirmations,json=requiredConfirmations,proto3" json:"required_confirmations,omitempty"` + IncludeImmatureCoinbases bool `protobuf:"varint,4,opt,name=include_immature_coinbases,json=includeImmatureCoinbases,proto3" json:"include_immature_coinbases,omitempty"` + IncludeChangeScript bool `protobuf:"varint,5,opt,name=include_change_script,json=includeChangeScript,proto3" json:"include_change_script,omitempty"` +} + +func (x *FundTransactionRequest) Reset() { + *x = FundTransactionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FundTransactionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FundTransactionRequest) ProtoMessage() {} + +func (x *FundTransactionRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[27] + 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 FundTransactionRequest.ProtoReflect.Descriptor instead. +func (*FundTransactionRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{27} +} + +func (x *FundTransactionRequest) GetAccount() uint32 { + if x != nil { + return x.Account + } + return 0 +} + +func (x *FundTransactionRequest) GetTargetAmount() int64 { + if x != nil { + return x.TargetAmount + } + return 0 +} + +func (x *FundTransactionRequest) GetRequiredConfirmations() int32 { + if x != nil { + return x.RequiredConfirmations + } + return 0 +} + +func (x *FundTransactionRequest) GetIncludeImmatureCoinbases() bool { + if x != nil { + return x.IncludeImmatureCoinbases + } + return false +} + +func (x *FundTransactionRequest) GetIncludeChangeScript() bool { + if x != nil { + return x.IncludeChangeScript + } + return false +} + +type FundTransactionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SelectedOutputs []*FundTransactionResponse_PreviousOutput `protobuf:"bytes,1,rep,name=selected_outputs,json=selectedOutputs,proto3" json:"selected_outputs,omitempty"` + TotalAmount int64 `protobuf:"varint,2,opt,name=total_amount,json=totalAmount,proto3" json:"total_amount,omitempty"` + ChangePkScript []byte `protobuf:"bytes,3,opt,name=change_pk_script,json=changePkScript,proto3" json:"change_pk_script,omitempty"` +} + +func (x *FundTransactionResponse) Reset() { + *x = FundTransactionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FundTransactionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FundTransactionResponse) ProtoMessage() {} + +func (x *FundTransactionResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[28] + 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 FundTransactionResponse.ProtoReflect.Descriptor instead. +func (*FundTransactionResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{28} +} + +func (x *FundTransactionResponse) GetSelectedOutputs() []*FundTransactionResponse_PreviousOutput { + if x != nil { + return x.SelectedOutputs + } + return nil +} + +func (x *FundTransactionResponse) GetTotalAmount() int64 { + if x != nil { + return x.TotalAmount + } + return 0 +} + +func (x *FundTransactionResponse) GetChangePkScript() []byte { + if x != nil { + return x.ChangePkScript + } + return nil +} + +type SignTransactionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Passphrase []byte `protobuf:"bytes,1,opt,name=passphrase,proto3" json:"passphrase,omitempty"` + SerializedTransaction []byte `protobuf:"bytes,2,opt,name=serialized_transaction,json=serializedTransaction,proto3" json:"serialized_transaction,omitempty"` + // If no indexes are specified, signatures scripts will be added for + // every input. If any input indexes are specified, only those inputs + // will be signed. Rather than returning an incompletely signed + // transaction if any of the inputs to be signed can not be, the RPC + // immediately errors. + InputIndexes []uint32 `protobuf:"varint,3,rep,packed,name=input_indexes,json=inputIndexes,proto3" json:"input_indexes,omitempty"` +} + +func (x *SignTransactionRequest) Reset() { + *x = SignTransactionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignTransactionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignTransactionRequest) ProtoMessage() {} + +func (x *SignTransactionRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[29] + 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 SignTransactionRequest.ProtoReflect.Descriptor instead. +func (*SignTransactionRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{29} +} + +func (x *SignTransactionRequest) GetPassphrase() []byte { + if x != nil { + return x.Passphrase + } + return nil } -func (m *GetTransactionsRequest) Reset() { *m = GetTransactionsRequest{} } -func (m *GetTransactionsRequest) String() string { return proto.CompactTextString(m) } -func (*GetTransactionsRequest) ProtoMessage() {} -func (*GetTransactionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } +func (x *SignTransactionRequest) GetSerializedTransaction() []byte { + if x != nil { + return x.SerializedTransaction + } + return nil +} -func (m *GetTransactionsRequest) GetStartingBlockHash() []byte { - if m != nil { - return m.StartingBlockHash +func (x *SignTransactionRequest) GetInputIndexes() []uint32 { + if x != nil { + return x.InputIndexes } return nil } -func (m *GetTransactionsRequest) GetStartingBlockHeight() int32 { - if m != nil { - return m.StartingBlockHeight - } - return 0 +type SignTransactionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Transaction []byte `protobuf:"bytes,1,opt,name=transaction,proto3" json:"transaction,omitempty"` + UnsignedInputIndexes []uint32 `protobuf:"varint,2,rep,packed,name=unsigned_input_indexes,json=unsignedInputIndexes,proto3" json:"unsigned_input_indexes,omitempty"` +} + +func (x *SignTransactionResponse) Reset() { + *x = SignTransactionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignTransactionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignTransactionResponse) ProtoMessage() {} + +func (x *SignTransactionResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[30] + 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 SignTransactionResponse.ProtoReflect.Descriptor instead. +func (*SignTransactionResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{30} +} + +func (x *SignTransactionResponse) GetTransaction() []byte { + if x != nil { + return x.Transaction + } + return nil +} + +func (x *SignTransactionResponse) GetUnsignedInputIndexes() []uint32 { + if x != nil { + return x.UnsignedInputIndexes + } + return nil +} + +type PublishTransactionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SignedTransaction []byte `protobuf:"bytes,1,opt,name=signed_transaction,json=signedTransaction,proto3" json:"signed_transaction,omitempty"` +} + +func (x *PublishTransactionRequest) Reset() { + *x = PublishTransactionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PublishTransactionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PublishTransactionRequest) ProtoMessage() {} + +func (x *PublishTransactionRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[31] + 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 PublishTransactionRequest.ProtoReflect.Descriptor instead. +func (*PublishTransactionRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{31} +} + +func (x *PublishTransactionRequest) GetSignedTransaction() []byte { + if x != nil { + return x.SignedTransaction + } + return nil +} + +type PublishTransactionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PublishTransactionResponse) Reset() { + *x = PublishTransactionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PublishTransactionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PublishTransactionResponse) ProtoMessage() {} + +func (x *PublishTransactionResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[32] + 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 PublishTransactionResponse.ProtoReflect.Descriptor instead. +func (*PublishTransactionResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{32} +} + +type TransactionNotificationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *TransactionNotificationsRequest) Reset() { + *x = TransactionNotificationsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransactionNotificationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransactionNotificationsRequest) ProtoMessage() {} + +func (x *TransactionNotificationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[33] + 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 TransactionNotificationsRequest.ProtoReflect.Descriptor instead. +func (*TransactionNotificationsRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{33} +} + +type TransactionNotificationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Sorted by increasing height. This is a repeated field so many new blocks + // in a new best chain can be notified at once during a reorganize. + AttachedBlocks []*BlockDetails `protobuf:"bytes,1,rep,name=attached_blocks,json=attachedBlocks,proto3" json:"attached_blocks,omitempty"` + // If there was a chain reorganize, there may have been blocks with wallet + // transactions that are no longer in the best chain. These are those + // block's hashes. + DetachedBlocks [][]byte `protobuf:"bytes,2,rep,name=detached_blocks,json=detachedBlocks,proto3" json:"detached_blocks,omitempty"` + // Any new unmined transactions are included here. These unmined transactions + // refer to the current best chain, so transactions from detached blocks may + // be moved to mempool and included here if they are not mined or double spent + // in the new chain. Additonally, if no new blocks were attached but a relevant + // unmined transaction is seen by the wallet, it will be reported here. + UnminedTransactions []*TransactionDetails `protobuf:"bytes,3,rep,name=unmined_transactions,json=unminedTransactions,proto3" json:"unmined_transactions,omitempty"` + // Instead of notifying all of the removed unmined transactions, + // just send all of the current hashes. + UnminedTransactionHashes [][]byte `protobuf:"bytes,4,rep,name=unmined_transaction_hashes,json=unminedTransactionHashes,proto3" json:"unmined_transaction_hashes,omitempty"` +} + +func (x *TransactionNotificationsResponse) Reset() { + *x = TransactionNotificationsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransactionNotificationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransactionNotificationsResponse) ProtoMessage() {} + +func (x *TransactionNotificationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[34] + 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 TransactionNotificationsResponse.ProtoReflect.Descriptor instead. +func (*TransactionNotificationsResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{34} +} + +func (x *TransactionNotificationsResponse) GetAttachedBlocks() []*BlockDetails { + if x != nil { + return x.AttachedBlocks + } + return nil +} + +func (x *TransactionNotificationsResponse) GetDetachedBlocks() [][]byte { + if x != nil { + return x.DetachedBlocks + } + return nil +} + +func (x *TransactionNotificationsResponse) GetUnminedTransactions() []*TransactionDetails { + if x != nil { + return x.UnminedTransactions + } + return nil +} + +func (x *TransactionNotificationsResponse) GetUnminedTransactionHashes() [][]byte { + if x != nil { + return x.UnminedTransactionHashes + } + return nil +} + +type SpentnessNotificationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Account uint32 `protobuf:"varint,1,opt,name=account,proto3" json:"account,omitempty"` + NoNotifyUnspent bool `protobuf:"varint,2,opt,name=no_notify_unspent,json=noNotifyUnspent,proto3" json:"no_notify_unspent,omitempty"` + NoNotifySpent bool `protobuf:"varint,3,opt,name=no_notify_spent,json=noNotifySpent,proto3" json:"no_notify_spent,omitempty"` +} + +func (x *SpentnessNotificationsRequest) Reset() { + *x = SpentnessNotificationsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpentnessNotificationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpentnessNotificationsRequest) ProtoMessage() {} + +func (x *SpentnessNotificationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[35] + 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 SpentnessNotificationsRequest.ProtoReflect.Descriptor instead. +func (*SpentnessNotificationsRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{35} +} + +func (x *SpentnessNotificationsRequest) GetAccount() uint32 { + if x != nil { + return x.Account + } + return 0 +} + +func (x *SpentnessNotificationsRequest) GetNoNotifyUnspent() bool { + if x != nil { + return x.NoNotifyUnspent + } + return false +} + +func (x *SpentnessNotificationsRequest) GetNoNotifySpent() bool { + if x != nil { + return x.NoNotifySpent + } + return false +} + +type SpentnessNotificationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TransactionHash []byte `protobuf:"bytes,1,opt,name=transaction_hash,json=transactionHash,proto3" json:"transaction_hash,omitempty"` + OutputIndex uint32 `protobuf:"varint,2,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty"` + Spender *SpentnessNotificationsResponse_Spender `protobuf:"bytes,3,opt,name=spender,proto3" json:"spender,omitempty"` +} + +func (x *SpentnessNotificationsResponse) Reset() { + *x = SpentnessNotificationsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpentnessNotificationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpentnessNotificationsResponse) ProtoMessage() {} + +func (x *SpentnessNotificationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[36] + 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 SpentnessNotificationsResponse.ProtoReflect.Descriptor instead. +func (*SpentnessNotificationsResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{36} +} + +func (x *SpentnessNotificationsResponse) GetTransactionHash() []byte { + if x != nil { + return x.TransactionHash + } + return nil +} + +func (x *SpentnessNotificationsResponse) GetOutputIndex() uint32 { + if x != nil { + return x.OutputIndex + } + return 0 +} + +func (x *SpentnessNotificationsResponse) GetSpender() *SpentnessNotificationsResponse_Spender { + if x != nil { + return x.Spender + } + return nil +} + +type AccountNotificationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AccountNotificationsRequest) Reset() { + *x = AccountNotificationsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountNotificationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountNotificationsRequest) ProtoMessage() {} + +func (x *AccountNotificationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[37] + 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 AccountNotificationsRequest.ProtoReflect.Descriptor instead. +func (*AccountNotificationsRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{37} +} + +type AccountNotificationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountNumber uint32 `protobuf:"varint,1,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` + AccountName string `protobuf:"bytes,2,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + ExternalKeyCount uint32 `protobuf:"varint,3,opt,name=external_key_count,json=externalKeyCount,proto3" json:"external_key_count,omitempty"` + InternalKeyCount uint32 `protobuf:"varint,4,opt,name=internal_key_count,json=internalKeyCount,proto3" json:"internal_key_count,omitempty"` + ImportedKeyCount uint32 `protobuf:"varint,5,opt,name=imported_key_count,json=importedKeyCount,proto3" json:"imported_key_count,omitempty"` +} + +func (x *AccountNotificationsResponse) Reset() { + *x = AccountNotificationsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountNotificationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountNotificationsResponse) ProtoMessage() {} + +func (x *AccountNotificationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[38] + 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 AccountNotificationsResponse.ProtoReflect.Descriptor instead. +func (*AccountNotificationsResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{38} +} + +func (x *AccountNotificationsResponse) GetAccountNumber() uint32 { + if x != nil { + return x.AccountNumber + } + return 0 +} + +func (x *AccountNotificationsResponse) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +func (x *AccountNotificationsResponse) GetExternalKeyCount() uint32 { + if x != nil { + return x.ExternalKeyCount + } + return 0 +} + +func (x *AccountNotificationsResponse) GetInternalKeyCount() uint32 { + if x != nil { + return x.InternalKeyCount + } + return 0 +} + +func (x *AccountNotificationsResponse) GetImportedKeyCount() uint32 { + if x != nil { + return x.ImportedKeyCount + } + return 0 +} + +type CreateWalletRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PublicPassphrase []byte `protobuf:"bytes,1,opt,name=public_passphrase,json=publicPassphrase,proto3" json:"public_passphrase,omitempty"` + PrivatePassphrase []byte `protobuf:"bytes,2,opt,name=private_passphrase,json=privatePassphrase,proto3" json:"private_passphrase,omitempty"` + Seed []byte `protobuf:"bytes,3,opt,name=seed,proto3" json:"seed,omitempty"` +} + +func (x *CreateWalletRequest) Reset() { + *x = CreateWalletRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateWalletRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateWalletRequest) ProtoMessage() {} + +func (x *CreateWalletRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[39] + 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 CreateWalletRequest.ProtoReflect.Descriptor instead. +func (*CreateWalletRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{39} +} + +func (x *CreateWalletRequest) GetPublicPassphrase() []byte { + if x != nil { + return x.PublicPassphrase + } + return nil +} + +func (x *CreateWalletRequest) GetPrivatePassphrase() []byte { + if x != nil { + return x.PrivatePassphrase + } + return nil +} + +func (x *CreateWalletRequest) GetSeed() []byte { + if x != nil { + return x.Seed + } + return nil +} + +type CreateWalletResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CreateWalletResponse) Reset() { + *x = CreateWalletResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateWalletResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateWalletResponse) ProtoMessage() {} + +func (x *CreateWalletResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[40] + 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 CreateWalletResponse.ProtoReflect.Descriptor instead. +func (*CreateWalletResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{40} +} + +type OpenWalletRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PublicPassphrase []byte `protobuf:"bytes,1,opt,name=public_passphrase,json=publicPassphrase,proto3" json:"public_passphrase,omitempty"` } -func (m *GetTransactionsRequest) GetEndingBlockHash() []byte { - if m != nil { - return m.EndingBlockHash +func (x *OpenWalletRequest) Reset() { + *x = OpenWalletRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (m *GetTransactionsRequest) GetEndingBlockHeight() int32 { - if m != nil { - return m.EndingBlockHeight - } - return 0 +func (x *OpenWalletRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetTransactionsRequest) GetMinimumRecentTransactions() int32 { - if m != nil { - return m.MinimumRecentTransactions +func (*OpenWalletRequest) ProtoMessage() {} + +func (x *OpenWalletRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -type GetTransactionsResponse struct { - MinedTransactions []*BlockDetails `protobuf:"bytes,1,rep,name=mined_transactions,json=minedTransactions" json:"mined_transactions,omitempty"` - UnminedTransactions []*TransactionDetails `protobuf:"bytes,2,rep,name=unmined_transactions,json=unminedTransactions" json:"unmined_transactions,omitempty"` +// Deprecated: Use OpenWalletRequest.ProtoReflect.Descriptor instead. +func (*OpenWalletRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{41} } -func (m *GetTransactionsResponse) Reset() { *m = GetTransactionsResponse{} } -func (m *GetTransactionsResponse) String() string { return proto.CompactTextString(m) } -func (*GetTransactionsResponse) ProtoMessage() {} -func (*GetTransactionsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } - -func (m *GetTransactionsResponse) GetMinedTransactions() []*BlockDetails { - if m != nil { - return m.MinedTransactions +func (x *OpenWalletRequest) GetPublicPassphrase() []byte { + if x != nil { + return x.PublicPassphrase } return nil } -func (m *GetTransactionsResponse) GetUnminedTransactions() []*TransactionDetails { - if m != nil { - return m.UnminedTransactions +type OpenWalletResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *OpenWalletResponse) Reset() { + *x = OpenWalletResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -type ChangePassphraseRequest struct { - Key ChangePassphraseRequest_Key `protobuf:"varint,1,opt,name=key,enum=walletrpc.ChangePassphraseRequest_Key" json:"key,omitempty"` - OldPassphrase []byte `protobuf:"bytes,2,opt,name=old_passphrase,json=oldPassphrase,proto3" json:"old_passphrase,omitempty"` - NewPassphrase []byte `protobuf:"bytes,3,opt,name=new_passphrase,json=newPassphrase,proto3" json:"new_passphrase,omitempty"` +func (x *OpenWalletResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ChangePassphraseRequest) Reset() { *m = ChangePassphraseRequest{} } -func (m *ChangePassphraseRequest) String() string { return proto.CompactTextString(m) } -func (*ChangePassphraseRequest) ProtoMessage() {} -func (*ChangePassphraseRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } +func (*OpenWalletResponse) ProtoMessage() {} -func (m *ChangePassphraseRequest) GetKey() ChangePassphraseRequest_Key { - if m != nil { - return m.Key +func (x *OpenWalletResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return ChangePassphraseRequest_PRIVATE + return mi.MessageOf(x) } -func (m *ChangePassphraseRequest) GetOldPassphrase() []byte { - if m != nil { - return m.OldPassphrase - } - return nil +// Deprecated: Use OpenWalletResponse.ProtoReflect.Descriptor instead. +func (*OpenWalletResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{42} } -func (m *ChangePassphraseRequest) GetNewPassphrase() []byte { - if m != nil { - return m.NewPassphrase - } - return nil +type CloseWalletRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -type ChangePassphraseResponse struct { +func (x *CloseWalletRequest) Reset() { + *x = CloseWalletRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ChangePassphraseResponse) Reset() { *m = ChangePassphraseResponse{} } -func (m *ChangePassphraseResponse) String() string { return proto.CompactTextString(m) } -func (*ChangePassphraseResponse) ProtoMessage() {} -func (*ChangePassphraseResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } - -type FundTransactionRequest struct { - Account uint32 `protobuf:"varint,1,opt,name=account" json:"account,omitempty"` - TargetAmount int64 `protobuf:"varint,2,opt,name=target_amount,json=targetAmount" json:"target_amount,omitempty"` - RequiredConfirmations int32 `protobuf:"varint,3,opt,name=required_confirmations,json=requiredConfirmations" json:"required_confirmations,omitempty"` - IncludeImmatureCoinbases bool `protobuf:"varint,4,opt,name=include_immature_coinbases,json=includeImmatureCoinbases" json:"include_immature_coinbases,omitempty"` - IncludeChangeScript bool `protobuf:"varint,5,opt,name=include_change_script,json=includeChangeScript" json:"include_change_script,omitempty"` +func (x *CloseWalletRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FundTransactionRequest) Reset() { *m = FundTransactionRequest{} } -func (m *FundTransactionRequest) String() string { return proto.CompactTextString(m) } -func (*FundTransactionRequest) ProtoMessage() {} -func (*FundTransactionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } +func (*CloseWalletRequest) ProtoMessage() {} -func (m *FundTransactionRequest) GetAccount() uint32 { - if m != nil { - return m.Account +func (x *CloseWalletRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (m *FundTransactionRequest) GetTargetAmount() int64 { - if m != nil { - return m.TargetAmount - } - return 0 +// Deprecated: Use CloseWalletRequest.ProtoReflect.Descriptor instead. +func (*CloseWalletRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{43} } -func (m *FundTransactionRequest) GetRequiredConfirmations() int32 { - if m != nil { - return m.RequiredConfirmations - } - return 0 +type CloseWalletResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (m *FundTransactionRequest) GetIncludeImmatureCoinbases() bool { - if m != nil { - return m.IncludeImmatureCoinbases +func (x *CloseWalletResponse) Reset() { + *x = CloseWalletResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return false } -func (m *FundTransactionRequest) GetIncludeChangeScript() bool { - if m != nil { - return m.IncludeChangeScript +func (x *CloseWalletResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CloseWalletResponse) ProtoMessage() {} + +func (x *CloseWalletResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return false + return mi.MessageOf(x) } -type FundTransactionResponse struct { - SelectedOutputs []*FundTransactionResponse_PreviousOutput `protobuf:"bytes,1,rep,name=selected_outputs,json=selectedOutputs" json:"selected_outputs,omitempty"` - TotalAmount int64 `protobuf:"varint,2,opt,name=total_amount,json=totalAmount" json:"total_amount,omitempty"` - ChangePkScript []byte `protobuf:"bytes,3,opt,name=change_pk_script,json=changePkScript,proto3" json:"change_pk_script,omitempty"` +// Deprecated: Use CloseWalletResponse.ProtoReflect.Descriptor instead. +func (*CloseWalletResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{44} } -func (m *FundTransactionResponse) Reset() { *m = FundTransactionResponse{} } -func (m *FundTransactionResponse) String() string { return proto.CompactTextString(m) } -func (*FundTransactionResponse) ProtoMessage() {} -func (*FundTransactionResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } +type WalletExistsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} -func (m *FundTransactionResponse) GetSelectedOutputs() []*FundTransactionResponse_PreviousOutput { - if m != nil { - return m.SelectedOutputs +func (x *WalletExistsRequest) Reset() { + *x = WalletExistsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (m *FundTransactionResponse) GetTotalAmount() int64 { - if m != nil { - return m.TotalAmount - } - return 0 +func (x *WalletExistsRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FundTransactionResponse) GetChangePkScript() []byte { - if m != nil { - return m.ChangePkScript +func (*WalletExistsRequest) ProtoMessage() {} + +func (x *WalletExistsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -type FundTransactionResponse_PreviousOutput struct { - TransactionHash []byte `protobuf:"bytes,1,opt,name=transaction_hash,json=transactionHash,proto3" json:"transaction_hash,omitempty"` - OutputIndex uint32 `protobuf:"varint,2,opt,name=output_index,json=outputIndex" json:"output_index,omitempty"` - Amount int64 `protobuf:"varint,3,opt,name=amount" json:"amount,omitempty"` - PkScript []byte `protobuf:"bytes,4,opt,name=pk_script,json=pkScript,proto3" json:"pk_script,omitempty"` - ReceiveTime int64 `protobuf:"varint,5,opt,name=receive_time,json=receiveTime" json:"receive_time,omitempty"` - FromCoinbase bool `protobuf:"varint,6,opt,name=from_coinbase,json=fromCoinbase" json:"from_coinbase,omitempty"` +// Deprecated: Use WalletExistsRequest.ProtoReflect.Descriptor instead. +func (*WalletExistsRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{45} } -func (m *FundTransactionResponse_PreviousOutput) Reset() { - *m = FundTransactionResponse_PreviousOutput{} -} -func (m *FundTransactionResponse_PreviousOutput) String() string { return proto.CompactTextString(m) } -func (*FundTransactionResponse_PreviousOutput) ProtoMessage() {} -func (*FundTransactionResponse_PreviousOutput) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{28, 0} +type WalletExistsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Exists bool `protobuf:"varint,1,opt,name=exists,proto3" json:"exists,omitempty"` } -func (m *FundTransactionResponse_PreviousOutput) GetTransactionHash() []byte { - if m != nil { - return m.TransactionHash +func (x *WalletExistsResponse) Reset() { + *x = WalletExistsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (m *FundTransactionResponse_PreviousOutput) GetOutputIndex() uint32 { - if m != nil { - return m.OutputIndex - } - return 0 +func (x *WalletExistsResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FundTransactionResponse_PreviousOutput) GetAmount() int64 { - if m != nil { - return m.Amount +func (*WalletExistsResponse) ProtoMessage() {} + +func (x *WalletExistsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (m *FundTransactionResponse_PreviousOutput) GetPkScript() []byte { - if m != nil { - return m.PkScript - } - return nil +// Deprecated: Use WalletExistsResponse.ProtoReflect.Descriptor instead. +func (*WalletExistsResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{46} } -func (m *FundTransactionResponse_PreviousOutput) GetReceiveTime() int64 { - if m != nil { - return m.ReceiveTime +func (x *WalletExistsResponse) GetExists() bool { + if x != nil { + return x.Exists } - return 0 + return false +} + +type StartConsensusRpcRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NetworkAddress string `protobuf:"bytes,1,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` + Password []byte `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` + Certificate []byte `protobuf:"bytes,4,opt,name=certificate,proto3" json:"certificate,omitempty"` } -func (m *FundTransactionResponse_PreviousOutput) GetFromCoinbase() bool { - if m != nil { - return m.FromCoinbase +func (x *StartConsensusRpcRequest) Reset() { + *x = StartConsensusRpcRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return false } -type SignTransactionRequest struct { - Passphrase []byte `protobuf:"bytes,1,opt,name=passphrase,proto3" json:"passphrase,omitempty"` - SerializedTransaction []byte `protobuf:"bytes,2,opt,name=serialized_transaction,json=serializedTransaction,proto3" json:"serialized_transaction,omitempty"` - // If no indexes are specified, signatures scripts will be added for - // every input. If any input indexes are specified, only those inputs - // will be signed. Rather than returning an incompletely signed - // transaction if any of the inputs to be signed can not be, the RPC - // immediately errors. - InputIndexes []uint32 `protobuf:"varint,3,rep,packed,name=input_indexes,json=inputIndexes" json:"input_indexes,omitempty"` +func (x *StartConsensusRpcRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignTransactionRequest) Reset() { *m = SignTransactionRequest{} } -func (m *SignTransactionRequest) String() string { return proto.CompactTextString(m) } -func (*SignTransactionRequest) ProtoMessage() {} -func (*SignTransactionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } +func (*StartConsensusRpcRequest) ProtoMessage() {} -func (m *SignTransactionRequest) GetPassphrase() []byte { - if m != nil { - return m.Passphrase +func (x *StartConsensusRpcRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (m *SignTransactionRequest) GetSerializedTransaction() []byte { - if m != nil { - return m.SerializedTransaction - } - return nil +// Deprecated: Use StartConsensusRpcRequest.ProtoReflect.Descriptor instead. +func (*StartConsensusRpcRequest) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{47} } -func (m *SignTransactionRequest) GetInputIndexes() []uint32 { - if m != nil { - return m.InputIndexes +func (x *StartConsensusRpcRequest) GetNetworkAddress() string { + if x != nil { + return x.NetworkAddress } - return nil + return "" } -type SignTransactionResponse struct { - Transaction []byte `protobuf:"bytes,1,opt,name=transaction,proto3" json:"transaction,omitempty"` - UnsignedInputIndexes []uint32 `protobuf:"varint,2,rep,packed,name=unsigned_input_indexes,json=unsignedInputIndexes" json:"unsigned_input_indexes,omitempty"` +func (x *StartConsensusRpcRequest) GetUsername() string { + if x != nil { + return x.Username + } + return "" } -func (m *SignTransactionResponse) Reset() { *m = SignTransactionResponse{} } -func (m *SignTransactionResponse) String() string { return proto.CompactTextString(m) } -func (*SignTransactionResponse) ProtoMessage() {} -func (*SignTransactionResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } - -func (m *SignTransactionResponse) GetTransaction() []byte { - if m != nil { - return m.Transaction +func (x *StartConsensusRpcRequest) GetPassword() []byte { + if x != nil { + return x.Password } return nil } -func (m *SignTransactionResponse) GetUnsignedInputIndexes() []uint32 { - if m != nil { - return m.UnsignedInputIndexes +func (x *StartConsensusRpcRequest) GetCertificate() []byte { + if x != nil { + return x.Certificate } return nil } -type PublishTransactionRequest struct { - SignedTransaction []byte `protobuf:"bytes,1,opt,name=signed_transaction,json=signedTransaction,proto3" json:"signed_transaction,omitempty"` +type StartConsensusRpcResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (m *PublishTransactionRequest) Reset() { *m = PublishTransactionRequest{} } -func (m *PublishTransactionRequest) String() string { return proto.CompactTextString(m) } -func (*PublishTransactionRequest) ProtoMessage() {} -func (*PublishTransactionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } - -func (m *PublishTransactionRequest) GetSignedTransaction() []byte { - if m != nil { - return m.SignedTransaction +func (x *StartConsensusRpcResponse) Reset() { + *x = StartConsensusRpcResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -type PublishTransactionResponse struct { +func (x *StartConsensusRpcResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *PublishTransactionResponse) Reset() { *m = PublishTransactionResponse{} } -func (m *PublishTransactionResponse) String() string { return proto.CompactTextString(m) } -func (*PublishTransactionResponse) ProtoMessage() {} -func (*PublishTransactionResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } +func (*StartConsensusRpcResponse) ProtoMessage() {} -type TransactionNotificationsRequest struct { +func (x *StartConsensusRpcResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[48] + 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) } -func (m *TransactionNotificationsRequest) Reset() { *m = TransactionNotificationsRequest{} } -func (m *TransactionNotificationsRequest) String() string { return proto.CompactTextString(m) } -func (*TransactionNotificationsRequest) ProtoMessage() {} -func (*TransactionNotificationsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{33} +// Deprecated: Use StartConsensusRpcResponse.ProtoReflect.Descriptor instead. +func (*StartConsensusRpcResponse) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{48} } -type TransactionNotificationsResponse struct { - // Sorted by increasing height. This is a repeated field so many new blocks - // in a new best chain can be notified at once during a reorganize. - AttachedBlocks []*BlockDetails `protobuf:"bytes,1,rep,name=attached_blocks,json=attachedBlocks" json:"attached_blocks,omitempty"` - // If there was a chain reorganize, there may have been blocks with wallet - // transactions that are no longer in the best chain. These are those - // block's hashes. - DetachedBlocks [][]byte `protobuf:"bytes,2,rep,name=detached_blocks,json=detachedBlocks,proto3" json:"detached_blocks,omitempty"` - // Any new unmined transactions are included here. These unmined transactions - // refer to the current best chain, so transactions from detached blocks may - // be moved to mempool and included here if they are not mined or double spent - // in the new chain. Additonally, if no new blocks were attached but a relevant - // unmined transaction is seen by the wallet, it will be reported here. - UnminedTransactions []*TransactionDetails `protobuf:"bytes,3,rep,name=unmined_transactions,json=unminedTransactions" json:"unmined_transactions,omitempty"` - // Instead of notifying all of the removed unmined transactions, - // just send all of the current hashes. - UnminedTransactionHashes [][]byte `protobuf:"bytes,4,rep,name=unmined_transaction_hashes,json=unminedTransactionHashes,proto3" json:"unmined_transaction_hashes,omitempty"` -} +type TransactionDetails_Input struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *TransactionNotificationsResponse) Reset() { *m = TransactionNotificationsResponse{} } -func (m *TransactionNotificationsResponse) String() string { return proto.CompactTextString(m) } -func (*TransactionNotificationsResponse) ProtoMessage() {} -func (*TransactionNotificationsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{34} + Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` + PreviousAccount uint32 `protobuf:"varint,2,opt,name=previous_account,json=previousAccount,proto3" json:"previous_account,omitempty"` + PreviousAmount int64 `protobuf:"varint,3,opt,name=previous_amount,json=previousAmount,proto3" json:"previous_amount,omitempty"` } -func (m *TransactionNotificationsResponse) GetAttachedBlocks() []*BlockDetails { - if m != nil { - return m.AttachedBlocks +func (x *TransactionDetails_Input) Reset() { + *x = TransactionDetails_Input{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (m *TransactionNotificationsResponse) GetDetachedBlocks() [][]byte { - if m != nil { - return m.DetachedBlocks - } - return nil +func (x *TransactionDetails_Input) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *TransactionNotificationsResponse) GetUnminedTransactions() []*TransactionDetails { - if m != nil { - return m.UnminedTransactions - } - return nil -} +func (*TransactionDetails_Input) ProtoMessage() {} -func (m *TransactionNotificationsResponse) GetUnminedTransactionHashes() [][]byte { - if m != nil { - return m.UnminedTransactionHashes +func (x *TransactionDetails_Input) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -type SpentnessNotificationsRequest struct { - Account uint32 `protobuf:"varint,1,opt,name=account" json:"account,omitempty"` - NoNotifyUnspent bool `protobuf:"varint,2,opt,name=no_notify_unspent,json=noNotifyUnspent" json:"no_notify_unspent,omitempty"` - NoNotifySpent bool `protobuf:"varint,3,opt,name=no_notify_spent,json=noNotifySpent" json:"no_notify_spent,omitempty"` +// Deprecated: Use TransactionDetails_Input.ProtoReflect.Descriptor instead. +func (*TransactionDetails_Input) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{2, 0} } -func (m *SpentnessNotificationsRequest) Reset() { *m = SpentnessNotificationsRequest{} } -func (m *SpentnessNotificationsRequest) String() string { return proto.CompactTextString(m) } -func (*SpentnessNotificationsRequest) ProtoMessage() {} -func (*SpentnessNotificationsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} } - -func (m *SpentnessNotificationsRequest) GetAccount() uint32 { - if m != nil { - return m.Account +func (x *TransactionDetails_Input) GetIndex() uint32 { + if x != nil { + return x.Index } return 0 } -func (m *SpentnessNotificationsRequest) GetNoNotifyUnspent() bool { - if m != nil { - return m.NoNotifyUnspent +func (x *TransactionDetails_Input) GetPreviousAccount() uint32 { + if x != nil { + return x.PreviousAccount } - return false + return 0 } -func (m *SpentnessNotificationsRequest) GetNoNotifySpent() bool { - if m != nil { - return m.NoNotifySpent +func (x *TransactionDetails_Input) GetPreviousAmount() int64 { + if x != nil { + return x.PreviousAmount } - return false + return 0 } -type SpentnessNotificationsResponse struct { - TransactionHash []byte `protobuf:"bytes,1,opt,name=transaction_hash,json=transactionHash,proto3" json:"transaction_hash,omitempty"` - OutputIndex uint32 `protobuf:"varint,2,opt,name=output_index,json=outputIndex" json:"output_index,omitempty"` - Spender *SpentnessNotificationsResponse_Spender `protobuf:"bytes,3,opt,name=spender" json:"spender,omitempty"` -} +type TransactionDetails_Output struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SpentnessNotificationsResponse) Reset() { *m = SpentnessNotificationsResponse{} } -func (m *SpentnessNotificationsResponse) String() string { return proto.CompactTextString(m) } -func (*SpentnessNotificationsResponse) ProtoMessage() {} -func (*SpentnessNotificationsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{36} + Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` + Account uint32 `protobuf:"varint,2,opt,name=account,proto3" json:"account,omitempty"` + Internal bool `protobuf:"varint,3,opt,name=internal,proto3" json:"internal,omitempty"` } -func (m *SpentnessNotificationsResponse) GetTransactionHash() []byte { - if m != nil { - return m.TransactionHash +func (x *TransactionDetails_Output) Reset() { + *x = TransactionDetails_Output{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (m *SpentnessNotificationsResponse) GetOutputIndex() uint32 { - if m != nil { - return m.OutputIndex - } - return 0 +func (x *TransactionDetails_Output) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SpentnessNotificationsResponse) GetSpender() *SpentnessNotificationsResponse_Spender { - if m != nil { - return m.Spender +func (*TransactionDetails_Output) ProtoMessage() {} + +func (x *TransactionDetails_Output) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -type SpentnessNotificationsResponse_Spender struct { - TransactionHash []byte `protobuf:"bytes,1,opt,name=transaction_hash,json=transactionHash,proto3" json:"transaction_hash,omitempty"` - InputIndex uint32 `protobuf:"varint,2,opt,name=input_index,json=inputIndex" json:"input_index,omitempty"` +// Deprecated: Use TransactionDetails_Output.ProtoReflect.Descriptor instead. +func (*TransactionDetails_Output) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{2, 1} } -func (m *SpentnessNotificationsResponse_Spender) Reset() { - *m = SpentnessNotificationsResponse_Spender{} +func (x *TransactionDetails_Output) GetIndex() uint32 { + if x != nil { + return x.Index + } + return 0 } -func (m *SpentnessNotificationsResponse_Spender) String() string { return proto.CompactTextString(m) } -func (*SpentnessNotificationsResponse_Spender) ProtoMessage() {} -func (*SpentnessNotificationsResponse_Spender) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{36, 0} + +func (x *TransactionDetails_Output) GetAccount() uint32 { + if x != nil { + return x.Account + } + return 0 } -func (m *SpentnessNotificationsResponse_Spender) GetTransactionHash() []byte { - if m != nil { - return m.TransactionHash +func (x *TransactionDetails_Output) GetInternal() bool { + if x != nil { + return x.Internal } - return nil + return false +} + +type AccountsResponse_Account struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountNumber uint32 `protobuf:"varint,1,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` + AccountName string `protobuf:"bytes,2,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + TotalBalance int64 `protobuf:"varint,3,opt,name=total_balance,json=totalBalance,proto3" json:"total_balance,omitempty"` + ExternalKeyCount uint32 `protobuf:"varint,4,opt,name=external_key_count,json=externalKeyCount,proto3" json:"external_key_count,omitempty"` + InternalKeyCount uint32 `protobuf:"varint,5,opt,name=internal_key_count,json=internalKeyCount,proto3" json:"internal_key_count,omitempty"` + ImportedKeyCount uint32 `protobuf:"varint,6,opt,name=imported_key_count,json=importedKeyCount,proto3" json:"imported_key_count,omitempty"` } -func (m *SpentnessNotificationsResponse_Spender) GetInputIndex() uint32 { - if m != nil { - return m.InputIndex +func (x *AccountsResponse_Account) Reset() { + *x = AccountsResponse_Account{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -type AccountNotificationsRequest struct { +func (x *AccountsResponse_Account) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AccountNotificationsRequest) Reset() { *m = AccountNotificationsRequest{} } -func (m *AccountNotificationsRequest) String() string { return proto.CompactTextString(m) } -func (*AccountNotificationsRequest) ProtoMessage() {} -func (*AccountNotificationsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } +func (*AccountsResponse_Account) ProtoMessage() {} -type AccountNotificationsResponse struct { - AccountNumber uint32 `protobuf:"varint,1,opt,name=account_number,json=accountNumber" json:"account_number,omitempty"` - AccountName string `protobuf:"bytes,2,opt,name=account_name,json=accountName" json:"account_name,omitempty"` - ExternalKeyCount uint32 `protobuf:"varint,3,opt,name=external_key_count,json=externalKeyCount" json:"external_key_count,omitempty"` - InternalKeyCount uint32 `protobuf:"varint,4,opt,name=internal_key_count,json=internalKeyCount" json:"internal_key_count,omitempty"` - ImportedKeyCount uint32 `protobuf:"varint,5,opt,name=imported_key_count,json=importedKeyCount" json:"imported_key_count,omitempty"` +func (x *AccountsResponse_Account) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[51] + 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) } -func (m *AccountNotificationsResponse) Reset() { *m = AccountNotificationsResponse{} } -func (m *AccountNotificationsResponse) String() string { return proto.CompactTextString(m) } -func (*AccountNotificationsResponse) ProtoMessage() {} -func (*AccountNotificationsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} } +// Deprecated: Use AccountsResponse_Account.ProtoReflect.Descriptor instead. +func (*AccountsResponse_Account) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{12, 0} +} -func (m *AccountNotificationsResponse) GetAccountNumber() uint32 { - if m != nil { - return m.AccountNumber +func (x *AccountsResponse_Account) GetAccountNumber() uint32 { + if x != nil { + return x.AccountNumber } return 0 } -func (m *AccountNotificationsResponse) GetAccountName() string { - if m != nil { - return m.AccountName +func (x *AccountsResponse_Account) GetAccountName() string { + if x != nil { + return x.AccountName } return "" } -func (m *AccountNotificationsResponse) GetExternalKeyCount() uint32 { - if m != nil { - return m.ExternalKeyCount +func (x *AccountsResponse_Account) GetTotalBalance() int64 { + if x != nil { + return x.TotalBalance } return 0 } -func (m *AccountNotificationsResponse) GetInternalKeyCount() uint32 { - if m != nil { - return m.InternalKeyCount +func (x *AccountsResponse_Account) GetExternalKeyCount() uint32 { + if x != nil { + return x.ExternalKeyCount } return 0 } -func (m *AccountNotificationsResponse) GetImportedKeyCount() uint32 { - if m != nil { - return m.ImportedKeyCount +func (x *AccountsResponse_Account) GetInternalKeyCount() uint32 { + if x != nil { + return x.InternalKeyCount } return 0 } -type CreateWalletRequest struct { - PublicPassphrase []byte `protobuf:"bytes,1,opt,name=public_passphrase,json=publicPassphrase,proto3" json:"public_passphrase,omitempty"` - PrivatePassphrase []byte `protobuf:"bytes,2,opt,name=private_passphrase,json=privatePassphrase,proto3" json:"private_passphrase,omitempty"` - Seed []byte `protobuf:"bytes,3,opt,name=seed,proto3" json:"seed,omitempty"` -} - -func (m *CreateWalletRequest) Reset() { *m = CreateWalletRequest{} } -func (m *CreateWalletRequest) String() string { return proto.CompactTextString(m) } -func (*CreateWalletRequest) ProtoMessage() {} -func (*CreateWalletRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} } - -func (m *CreateWalletRequest) GetPublicPassphrase() []byte { - if m != nil { - return m.PublicPassphrase +func (x *AccountsResponse_Account) GetImportedKeyCount() uint32 { + if x != nil { + return x.ImportedKeyCount } - return nil + return 0 } -func (m *CreateWalletRequest) GetPrivatePassphrase() []byte { - if m != nil { - return m.PrivatePassphrase - } - return nil +type FundTransactionResponse_PreviousOutput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TransactionHash []byte `protobuf:"bytes,1,opt,name=transaction_hash,json=transactionHash,proto3" json:"transaction_hash,omitempty"` + OutputIndex uint32 `protobuf:"varint,2,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty"` + Amount int64 `protobuf:"varint,3,opt,name=amount,proto3" json:"amount,omitempty"` + PkScript []byte `protobuf:"bytes,4,opt,name=pk_script,json=pkScript,proto3" json:"pk_script,omitempty"` + ReceiveTime int64 `protobuf:"varint,5,opt,name=receive_time,json=receiveTime,proto3" json:"receive_time,omitempty"` + FromCoinbase bool `protobuf:"varint,6,opt,name=from_coinbase,json=fromCoinbase,proto3" json:"from_coinbase,omitempty"` } -func (m *CreateWalletRequest) GetSeed() []byte { - if m != nil { - return m.Seed +func (x *FundTransactionResponse_PreviousOutput) Reset() { + *x = FundTransactionResponse_PreviousOutput{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -type CreateWalletResponse struct { +func (x *FundTransactionResponse_PreviousOutput) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *CreateWalletResponse) Reset() { *m = CreateWalletResponse{} } -func (m *CreateWalletResponse) String() string { return proto.CompactTextString(m) } -func (*CreateWalletResponse) ProtoMessage() {} -func (*CreateWalletResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} } +func (*FundTransactionResponse_PreviousOutput) ProtoMessage() {} -type OpenWalletRequest struct { - PublicPassphrase []byte `protobuf:"bytes,1,opt,name=public_passphrase,json=publicPassphrase,proto3" json:"public_passphrase,omitempty"` +func (x *FundTransactionResponse_PreviousOutput) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[52] + 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) } -func (m *OpenWalletRequest) Reset() { *m = OpenWalletRequest{} } -func (m *OpenWalletRequest) String() string { return proto.CompactTextString(m) } -func (*OpenWalletRequest) ProtoMessage() {} -func (*OpenWalletRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} } +// Deprecated: Use FundTransactionResponse_PreviousOutput.ProtoReflect.Descriptor instead. +func (*FundTransactionResponse_PreviousOutput) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{28, 0} +} -func (m *OpenWalletRequest) GetPublicPassphrase() []byte { - if m != nil { - return m.PublicPassphrase +func (x *FundTransactionResponse_PreviousOutput) GetTransactionHash() []byte { + if x != nil { + return x.TransactionHash } return nil } -type OpenWalletResponse struct { +func (x *FundTransactionResponse_PreviousOutput) GetOutputIndex() uint32 { + if x != nil { + return x.OutputIndex + } + return 0 } -func (m *OpenWalletResponse) Reset() { *m = OpenWalletResponse{} } -func (m *OpenWalletResponse) String() string { return proto.CompactTextString(m) } -func (*OpenWalletResponse) ProtoMessage() {} -func (*OpenWalletResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} } - -type CloseWalletRequest struct { +func (x *FundTransactionResponse_PreviousOutput) GetAmount() int64 { + if x != nil { + return x.Amount + } + return 0 } -func (m *CloseWalletRequest) Reset() { *m = CloseWalletRequest{} } -func (m *CloseWalletRequest) String() string { return proto.CompactTextString(m) } -func (*CloseWalletRequest) ProtoMessage() {} -func (*CloseWalletRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} } - -type CloseWalletResponse struct { +func (x *FundTransactionResponse_PreviousOutput) GetPkScript() []byte { + if x != nil { + return x.PkScript + } + return nil } -func (m *CloseWalletResponse) Reset() { *m = CloseWalletResponse{} } -func (m *CloseWalletResponse) String() string { return proto.CompactTextString(m) } -func (*CloseWalletResponse) ProtoMessage() {} -func (*CloseWalletResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} } +func (x *FundTransactionResponse_PreviousOutput) GetReceiveTime() int64 { + if x != nil { + return x.ReceiveTime + } + return 0 +} -type WalletExistsRequest struct { +func (x *FundTransactionResponse_PreviousOutput) GetFromCoinbase() bool { + if x != nil { + return x.FromCoinbase + } + return false } -func (m *WalletExistsRequest) Reset() { *m = WalletExistsRequest{} } -func (m *WalletExistsRequest) String() string { return proto.CompactTextString(m) } -func (*WalletExistsRequest) ProtoMessage() {} -func (*WalletExistsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} } +type SpentnessNotificationsResponse_Spender struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type WalletExistsResponse struct { - Exists bool `protobuf:"varint,1,opt,name=exists" json:"exists,omitempty"` + TransactionHash []byte `protobuf:"bytes,1,opt,name=transaction_hash,json=transactionHash,proto3" json:"transaction_hash,omitempty"` + InputIndex uint32 `protobuf:"varint,2,opt,name=input_index,json=inputIndex,proto3" json:"input_index,omitempty"` } -func (m *WalletExistsResponse) Reset() { *m = WalletExistsResponse{} } -func (m *WalletExistsResponse) String() string { return proto.CompactTextString(m) } -func (*WalletExistsResponse) ProtoMessage() {} -func (*WalletExistsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} } - -func (m *WalletExistsResponse) GetExists() bool { - if m != nil { - return m.Exists +func (x *SpentnessNotificationsResponse_Spender) Reset() { + *x = SpentnessNotificationsResponse_Spender{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return false } -type StartConsensusRpcRequest struct { - NetworkAddress string `protobuf:"bytes,1,opt,name=network_address,json=networkAddress" json:"network_address,omitempty"` - Username string `protobuf:"bytes,2,opt,name=username" json:"username,omitempty"` - Password []byte `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` - Certificate []byte `protobuf:"bytes,4,opt,name=certificate,proto3" json:"certificate,omitempty"` +func (x *SpentnessNotificationsResponse_Spender) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *StartConsensusRpcRequest) Reset() { *m = StartConsensusRpcRequest{} } -func (m *StartConsensusRpcRequest) String() string { return proto.CompactTextString(m) } -func (*StartConsensusRpcRequest) ProtoMessage() {} -func (*StartConsensusRpcRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} } +func (*SpentnessNotificationsResponse_Spender) ProtoMessage() {} -func (m *StartConsensusRpcRequest) GetNetworkAddress() string { - if m != nil { - return m.NetworkAddress +func (x *SpentnessNotificationsResponse_Spender) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *StartConsensusRpcRequest) GetUsername() string { - if m != nil { - return m.Username - } - return "" +// Deprecated: Use SpentnessNotificationsResponse_Spender.ProtoReflect.Descriptor instead. +func (*SpentnessNotificationsResponse_Spender) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{36, 0} } -func (m *StartConsensusRpcRequest) GetPassword() []byte { - if m != nil { - return m.Password +func (x *SpentnessNotificationsResponse_Spender) GetTransactionHash() []byte { + if x != nil { + return x.TransactionHash } return nil } -func (m *StartConsensusRpcRequest) GetCertificate() []byte { - if m != nil { - return m.Certificate +func (x *SpentnessNotificationsResponse_Spender) GetInputIndex() uint32 { + if x != nil { + return x.InputIndex } - return nil + return 0 } -type StartConsensusRpcResponse struct { -} +var File_api_proto protoreflect.FileDescriptor + +var file_api_proto_rawDesc = []byte{ + 0x0a, 0x09, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x77, 0x61, 0x6c, + 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x22, 0x10, 0x0a, 0x0e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xc1, 0x01, 0x0a, 0x0f, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x69, 0x6e, + 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x12, + 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x72, 0x65, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x72, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc0, 0x03, 0x0a, + 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x06, 0x64, 0x65, 0x62, + 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x77, 0x61, 0x6c, 0x6c, + 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x06, + 0x64, 0x65, 0x62, 0x69, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0x71, 0x0a, 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, + 0x73, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x76, 0x69, + 0x6f, 0x75, 0x73, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x54, 0x0a, 0x06, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x22, + 0x9b, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x68, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x41, 0x0a, 0x0c, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, + 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x4f, 0x0a, + 0x0e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x0d, + 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0e, 0x0a, + 0x0c, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x10, 0x0a, + 0x0e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x38, 0x0a, 0x0f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x39, 0x0a, 0x14, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x0a, 0x15, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, + 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0x11, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb8, 0x03, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x08, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x0a, + 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x30, 0x0a, 0x14, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x1a, 0x82, 0x02, + 0x0a, 0x07, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4b, 0x65, + 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x10, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x58, 0x0a, 0x14, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x17, 0x0a, 0x15, + 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x57, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, + 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3c, + 0x0a, 0x13, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x9a, 0x01, 0x0a, + 0x12, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x77, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x32, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x14, 0x0a, + 0x10, 0x42, 0x49, 0x50, 0x30, 0x30, 0x34, 0x34, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, + 0x4c, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x49, 0x50, 0x30, 0x30, 0x34, 0x34, 0x5f, 0x49, + 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x22, 0x2f, 0x0a, 0x13, 0x4e, 0x65, 0x78, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x93, 0x01, 0x0a, 0x17, 0x49, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, + 0x72, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x61, 0x73, 0x73, + 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, + 0x77, 0x69, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x4b, 0x65, 0x79, 0x57, 0x69, 0x66, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x63, + 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x73, 0x63, 0x61, 0x6e, + 0x22, 0x1a, 0x0a, 0x18, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6e, 0x0a, 0x0e, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, + 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x6e, 0x0a, 0x0f, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6d, 0x6d, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, + 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x6d, + 0x6d, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x98, 0x02, 0x0a, + 0x16, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x13, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x3e, 0x0a, 0x1b, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x50, 0x0a, 0x14, 0x75, + 0x6e, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x77, 0x61, 0x6c, 0x6c, + 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x13, 0x75, 0x6e, 0x6d, 0x69, 0x6e, 0x65, + 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xc1, 0x01, + 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, + 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, + 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x70, + 0x68, 0x72, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x6c, 0x64, + 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x65, + 0x77, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, + 0x65, 0x22, 0x1e, 0x0a, 0x03, 0x4b, 0x65, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x49, 0x56, + 0x41, 0x54, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x10, + 0x01, 0x22, 0x1a, 0x0a, 0x18, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x70, + 0x68, 0x72, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x80, 0x02, + 0x0a, 0x16, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, + 0x0a, 0x1a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x6d, 0x6d, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x18, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6d, 0x6d, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x22, 0xa2, 0x03, 0x0a, 0x17, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x10, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x76, 0x69, + 0x6f, 0x75, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x0f, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, + 0x10, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x6b, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, + 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x1a, 0xdb, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x65, 0x76, + 0x69, 0x6f, 0x75, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6b, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x21, 0x0a, + 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x43, 0x6f, 0x69, + 0x6e, 0x62, 0x61, 0x73, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, + 0x12, 0x35, 0x0a, 0x16, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x15, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0x71, 0x0a, 0x17, + 0x53, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x75, 0x6e, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x14, 0x75, 0x6e, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, + 0x4a, 0x0a, 0x19, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x12, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1c, 0x0a, 0x1a, 0x50, + 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x0a, 0x1f, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9d, 0x02, 0x0a, + 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x40, 0x0a, 0x0f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x77, 0x61, 0x6c, + 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x52, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x64, 0x65, + 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x50, 0x0a, 0x14, + 0x75, 0x6e, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x77, 0x61, 0x6c, + 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x13, 0x75, 0x6e, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, + 0x0a, 0x1a, 0x75, 0x6e, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x18, 0x75, 0x6e, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x22, 0x8d, 0x01, 0x0a, + 0x1d, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x6f, 0x5f, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6e, 0x6f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x55, 0x6e, 0x73, + 0x70, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6e, + 0x6f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x02, 0x0a, + 0x1e, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x29, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4b, 0x0a, + 0x07, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, + 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x74, + 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x52, 0x07, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x1a, 0x55, 0x0a, 0x07, 0x53, 0x70, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x22, 0x1d, 0x0a, 0x1b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0xf2, 0x01, 0x0a, 0x1c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x4b, 0x65, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4b, + 0x65, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4b, 0x65, 0x79, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, + 0x11, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, + 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, 0x22, 0x16, 0x0a, + 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x6e, 0x57, 0x61, 0x6c, + 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x50, 0x61, 0x73, + 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x6e, 0x57, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x0a, + 0x12, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x57, 0x61, 0x6c, 0x6c, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x57, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x2e, 0x0a, 0x14, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x69, + 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x69, 0x73, 0x74, + 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, + 0x6e, 0x73, 0x75, 0x73, 0x52, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, + 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, + 0x73, 0x75, 0x73, 0x52, 0x70, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x52, + 0x0a, 0x0e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x40, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x2e, 0x77, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x32, 0xd3, 0x0b, 0x0a, 0x0d, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x2e, 0x77, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, + 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, + 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x19, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, + 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x52, 0x0a, 0x0d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x1f, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x20, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, + 0x1a, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x77, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x19, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x47, 0x65, + 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x2e, + 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x22, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x2a, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x77, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6f, 0x0a, 0x16, 0x53, + 0x70, 0x65, 0x6e, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x29, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x65, 0x6e, + 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x69, 0x0a, 0x14, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, + 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x77, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x5b, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x12, 0x22, 0x2e, 0x77, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, + 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x23, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, + 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x10, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x22, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, + 0x74, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x77, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, + 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x53, + 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, + 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x22, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x69, + 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x12, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x77, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x25, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xb0, 0x03, 0x0a, 0x13, 0x57, 0x61, 0x6c, + 0x6c, 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x4f, 0x0a, 0x0c, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, + 0x12, 0x1e, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x6c, + 0x6c, 0x65, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1f, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x6c, + 0x6c, 0x65, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x65, + 0x74, 0x12, 0x1e, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1f, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x6e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, + 0x12, 0x1c, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x70, 0x65, + 0x6e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x57, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, + 0x0b, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x1d, 0x2e, 0x77, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x57, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x77, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x57, 0x61, 0x6c, + 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x11, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x52, 0x70, 0x63, + 0x12, 0x23, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x52, 0x70, 0x63, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, + 0x52, 0x70, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_api_proto_rawDescOnce sync.Once + file_api_proto_rawDescData = file_api_proto_rawDesc +) -func (m *StartConsensusRpcResponse) Reset() { *m = StartConsensusRpcResponse{} } -func (m *StartConsensusRpcResponse) String() string { return proto.CompactTextString(m) } -func (*StartConsensusRpcResponse) ProtoMessage() {} -func (*StartConsensusRpcResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} } - -func init() { - proto.RegisterType((*VersionRequest)(nil), "walletrpc.VersionRequest") - proto.RegisterType((*VersionResponse)(nil), "walletrpc.VersionResponse") - proto.RegisterType((*TransactionDetails)(nil), "walletrpc.TransactionDetails") - proto.RegisterType((*TransactionDetails_Input)(nil), "walletrpc.TransactionDetails.Input") - proto.RegisterType((*TransactionDetails_Output)(nil), "walletrpc.TransactionDetails.Output") - proto.RegisterType((*BlockDetails)(nil), "walletrpc.BlockDetails") - proto.RegisterType((*AccountBalance)(nil), "walletrpc.AccountBalance") - proto.RegisterType((*PingRequest)(nil), "walletrpc.PingRequest") - proto.RegisterType((*PingResponse)(nil), "walletrpc.PingResponse") - proto.RegisterType((*NetworkRequest)(nil), "walletrpc.NetworkRequest") - proto.RegisterType((*NetworkResponse)(nil), "walletrpc.NetworkResponse") - proto.RegisterType((*AccountNumberRequest)(nil), "walletrpc.AccountNumberRequest") - proto.RegisterType((*AccountNumberResponse)(nil), "walletrpc.AccountNumberResponse") - proto.RegisterType((*AccountsRequest)(nil), "walletrpc.AccountsRequest") - proto.RegisterType((*AccountsResponse)(nil), "walletrpc.AccountsResponse") - proto.RegisterType((*AccountsResponse_Account)(nil), "walletrpc.AccountsResponse.Account") - proto.RegisterType((*RenameAccountRequest)(nil), "walletrpc.RenameAccountRequest") - proto.RegisterType((*RenameAccountResponse)(nil), "walletrpc.RenameAccountResponse") - proto.RegisterType((*NextAccountRequest)(nil), "walletrpc.NextAccountRequest") - proto.RegisterType((*NextAccountResponse)(nil), "walletrpc.NextAccountResponse") - proto.RegisterType((*NextAddressRequest)(nil), "walletrpc.NextAddressRequest") - proto.RegisterType((*NextAddressResponse)(nil), "walletrpc.NextAddressResponse") - proto.RegisterType((*ImportPrivateKeyRequest)(nil), "walletrpc.ImportPrivateKeyRequest") - proto.RegisterType((*ImportPrivateKeyResponse)(nil), "walletrpc.ImportPrivateKeyResponse") - proto.RegisterType((*BalanceRequest)(nil), "walletrpc.BalanceRequest") - proto.RegisterType((*BalanceResponse)(nil), "walletrpc.BalanceResponse") - proto.RegisterType((*GetTransactionsRequest)(nil), "walletrpc.GetTransactionsRequest") - proto.RegisterType((*GetTransactionsResponse)(nil), "walletrpc.GetTransactionsResponse") - proto.RegisterType((*ChangePassphraseRequest)(nil), "walletrpc.ChangePassphraseRequest") - proto.RegisterType((*ChangePassphraseResponse)(nil), "walletrpc.ChangePassphraseResponse") - proto.RegisterType((*FundTransactionRequest)(nil), "walletrpc.FundTransactionRequest") - proto.RegisterType((*FundTransactionResponse)(nil), "walletrpc.FundTransactionResponse") - proto.RegisterType((*FundTransactionResponse_PreviousOutput)(nil), "walletrpc.FundTransactionResponse.PreviousOutput") - proto.RegisterType((*SignTransactionRequest)(nil), "walletrpc.SignTransactionRequest") - proto.RegisterType((*SignTransactionResponse)(nil), "walletrpc.SignTransactionResponse") - proto.RegisterType((*PublishTransactionRequest)(nil), "walletrpc.PublishTransactionRequest") - proto.RegisterType((*PublishTransactionResponse)(nil), "walletrpc.PublishTransactionResponse") - proto.RegisterType((*TransactionNotificationsRequest)(nil), "walletrpc.TransactionNotificationsRequest") - proto.RegisterType((*TransactionNotificationsResponse)(nil), "walletrpc.TransactionNotificationsResponse") - proto.RegisterType((*SpentnessNotificationsRequest)(nil), "walletrpc.SpentnessNotificationsRequest") - proto.RegisterType((*SpentnessNotificationsResponse)(nil), "walletrpc.SpentnessNotificationsResponse") - proto.RegisterType((*SpentnessNotificationsResponse_Spender)(nil), "walletrpc.SpentnessNotificationsResponse.Spender") - proto.RegisterType((*AccountNotificationsRequest)(nil), "walletrpc.AccountNotificationsRequest") - proto.RegisterType((*AccountNotificationsResponse)(nil), "walletrpc.AccountNotificationsResponse") - proto.RegisterType((*CreateWalletRequest)(nil), "walletrpc.CreateWalletRequest") - proto.RegisterType((*CreateWalletResponse)(nil), "walletrpc.CreateWalletResponse") - proto.RegisterType((*OpenWalletRequest)(nil), "walletrpc.OpenWalletRequest") - proto.RegisterType((*OpenWalletResponse)(nil), "walletrpc.OpenWalletResponse") - proto.RegisterType((*CloseWalletRequest)(nil), "walletrpc.CloseWalletRequest") - proto.RegisterType((*CloseWalletResponse)(nil), "walletrpc.CloseWalletResponse") - proto.RegisterType((*WalletExistsRequest)(nil), "walletrpc.WalletExistsRequest") - proto.RegisterType((*WalletExistsResponse)(nil), "walletrpc.WalletExistsResponse") - proto.RegisterType((*StartConsensusRpcRequest)(nil), "walletrpc.StartConsensusRpcRequest") - proto.RegisterType((*StartConsensusRpcResponse)(nil), "walletrpc.StartConsensusRpcResponse") - proto.RegisterEnum("walletrpc.NextAddressRequest_Kind", NextAddressRequest_Kind_name, NextAddressRequest_Kind_value) - proto.RegisterEnum("walletrpc.ChangePassphraseRequest_Key", ChangePassphraseRequest_Key_name, ChangePassphraseRequest_Key_value) +func file_api_proto_rawDescGZIP() []byte { + file_api_proto_rawDescOnce.Do(func() { + file_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_proto_rawDescData) + }) + return file_api_proto_rawDescData +} + +var file_api_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_api_proto_msgTypes = make([]protoimpl.MessageInfo, 54) +var file_api_proto_goTypes = []interface{}{ + (NextAddressRequest_Kind)(0), // 0: walletrpc.NextAddressRequest.Kind + (ChangePassphraseRequest_Key)(0), // 1: walletrpc.ChangePassphraseRequest.Key + (*VersionRequest)(nil), // 2: walletrpc.VersionRequest + (*VersionResponse)(nil), // 3: walletrpc.VersionResponse + (*TransactionDetails)(nil), // 4: walletrpc.TransactionDetails + (*BlockDetails)(nil), // 5: walletrpc.BlockDetails + (*AccountBalance)(nil), // 6: walletrpc.AccountBalance + (*PingRequest)(nil), // 7: walletrpc.PingRequest + (*PingResponse)(nil), // 8: walletrpc.PingResponse + (*NetworkRequest)(nil), // 9: walletrpc.NetworkRequest + (*NetworkResponse)(nil), // 10: walletrpc.NetworkResponse + (*AccountNumberRequest)(nil), // 11: walletrpc.AccountNumberRequest + (*AccountNumberResponse)(nil), // 12: walletrpc.AccountNumberResponse + (*AccountsRequest)(nil), // 13: walletrpc.AccountsRequest + (*AccountsResponse)(nil), // 14: walletrpc.AccountsResponse + (*RenameAccountRequest)(nil), // 15: walletrpc.RenameAccountRequest + (*RenameAccountResponse)(nil), // 16: walletrpc.RenameAccountResponse + (*NextAccountRequest)(nil), // 17: walletrpc.NextAccountRequest + (*NextAccountResponse)(nil), // 18: walletrpc.NextAccountResponse + (*NextAddressRequest)(nil), // 19: walletrpc.NextAddressRequest + (*NextAddressResponse)(nil), // 20: walletrpc.NextAddressResponse + (*ImportPrivateKeyRequest)(nil), // 21: walletrpc.ImportPrivateKeyRequest + (*ImportPrivateKeyResponse)(nil), // 22: walletrpc.ImportPrivateKeyResponse + (*BalanceRequest)(nil), // 23: walletrpc.BalanceRequest + (*BalanceResponse)(nil), // 24: walletrpc.BalanceResponse + (*GetTransactionsRequest)(nil), // 25: walletrpc.GetTransactionsRequest + (*GetTransactionsResponse)(nil), // 26: walletrpc.GetTransactionsResponse + (*ChangePassphraseRequest)(nil), // 27: walletrpc.ChangePassphraseRequest + (*ChangePassphraseResponse)(nil), // 28: walletrpc.ChangePassphraseResponse + (*FundTransactionRequest)(nil), // 29: walletrpc.FundTransactionRequest + (*FundTransactionResponse)(nil), // 30: walletrpc.FundTransactionResponse + (*SignTransactionRequest)(nil), // 31: walletrpc.SignTransactionRequest + (*SignTransactionResponse)(nil), // 32: walletrpc.SignTransactionResponse + (*PublishTransactionRequest)(nil), // 33: walletrpc.PublishTransactionRequest + (*PublishTransactionResponse)(nil), // 34: walletrpc.PublishTransactionResponse + (*TransactionNotificationsRequest)(nil), // 35: walletrpc.TransactionNotificationsRequest + (*TransactionNotificationsResponse)(nil), // 36: walletrpc.TransactionNotificationsResponse + (*SpentnessNotificationsRequest)(nil), // 37: walletrpc.SpentnessNotificationsRequest + (*SpentnessNotificationsResponse)(nil), // 38: walletrpc.SpentnessNotificationsResponse + (*AccountNotificationsRequest)(nil), // 39: walletrpc.AccountNotificationsRequest + (*AccountNotificationsResponse)(nil), // 40: walletrpc.AccountNotificationsResponse + (*CreateWalletRequest)(nil), // 41: walletrpc.CreateWalletRequest + (*CreateWalletResponse)(nil), // 42: walletrpc.CreateWalletResponse + (*OpenWalletRequest)(nil), // 43: walletrpc.OpenWalletRequest + (*OpenWalletResponse)(nil), // 44: walletrpc.OpenWalletResponse + (*CloseWalletRequest)(nil), // 45: walletrpc.CloseWalletRequest + (*CloseWalletResponse)(nil), // 46: walletrpc.CloseWalletResponse + (*WalletExistsRequest)(nil), // 47: walletrpc.WalletExistsRequest + (*WalletExistsResponse)(nil), // 48: walletrpc.WalletExistsResponse + (*StartConsensusRpcRequest)(nil), // 49: walletrpc.StartConsensusRpcRequest + (*StartConsensusRpcResponse)(nil), // 50: walletrpc.StartConsensusRpcResponse + (*TransactionDetails_Input)(nil), // 51: walletrpc.TransactionDetails.Input + (*TransactionDetails_Output)(nil), // 52: walletrpc.TransactionDetails.Output + (*AccountsResponse_Account)(nil), // 53: walletrpc.AccountsResponse.Account + (*FundTransactionResponse_PreviousOutput)(nil), // 54: walletrpc.FundTransactionResponse.PreviousOutput + (*SpentnessNotificationsResponse_Spender)(nil), // 55: walletrpc.SpentnessNotificationsResponse.Spender +} +var file_api_proto_depIdxs = []int32{ + 51, // 0: walletrpc.TransactionDetails.debits:type_name -> walletrpc.TransactionDetails.Input + 52, // 1: walletrpc.TransactionDetails.credits:type_name -> walletrpc.TransactionDetails.Output + 4, // 2: walletrpc.BlockDetails.transactions:type_name -> walletrpc.TransactionDetails + 53, // 3: walletrpc.AccountsResponse.accounts:type_name -> walletrpc.AccountsResponse.Account + 0, // 4: walletrpc.NextAddressRequest.kind:type_name -> walletrpc.NextAddressRequest.Kind + 5, // 5: walletrpc.GetTransactionsResponse.mined_transactions:type_name -> walletrpc.BlockDetails + 4, // 6: walletrpc.GetTransactionsResponse.unmined_transactions:type_name -> walletrpc.TransactionDetails + 1, // 7: walletrpc.ChangePassphraseRequest.key:type_name -> walletrpc.ChangePassphraseRequest.Key + 54, // 8: walletrpc.FundTransactionResponse.selected_outputs:type_name -> walletrpc.FundTransactionResponse.PreviousOutput + 5, // 9: walletrpc.TransactionNotificationsResponse.attached_blocks:type_name -> walletrpc.BlockDetails + 4, // 10: walletrpc.TransactionNotificationsResponse.unmined_transactions:type_name -> walletrpc.TransactionDetails + 55, // 11: walletrpc.SpentnessNotificationsResponse.spender:type_name -> walletrpc.SpentnessNotificationsResponse.Spender + 2, // 12: walletrpc.VersionService.Version:input_type -> walletrpc.VersionRequest + 7, // 13: walletrpc.WalletService.Ping:input_type -> walletrpc.PingRequest + 9, // 14: walletrpc.WalletService.Network:input_type -> walletrpc.NetworkRequest + 11, // 15: walletrpc.WalletService.AccountNumber:input_type -> walletrpc.AccountNumberRequest + 13, // 16: walletrpc.WalletService.Accounts:input_type -> walletrpc.AccountsRequest + 23, // 17: walletrpc.WalletService.Balance:input_type -> walletrpc.BalanceRequest + 25, // 18: walletrpc.WalletService.GetTransactions:input_type -> walletrpc.GetTransactionsRequest + 35, // 19: walletrpc.WalletService.TransactionNotifications:input_type -> walletrpc.TransactionNotificationsRequest + 37, // 20: walletrpc.WalletService.SpentnessNotifications:input_type -> walletrpc.SpentnessNotificationsRequest + 39, // 21: walletrpc.WalletService.AccountNotifications:input_type -> walletrpc.AccountNotificationsRequest + 27, // 22: walletrpc.WalletService.ChangePassphrase:input_type -> walletrpc.ChangePassphraseRequest + 15, // 23: walletrpc.WalletService.RenameAccount:input_type -> walletrpc.RenameAccountRequest + 17, // 24: walletrpc.WalletService.NextAccount:input_type -> walletrpc.NextAccountRequest + 19, // 25: walletrpc.WalletService.NextAddress:input_type -> walletrpc.NextAddressRequest + 21, // 26: walletrpc.WalletService.ImportPrivateKey:input_type -> walletrpc.ImportPrivateKeyRequest + 29, // 27: walletrpc.WalletService.FundTransaction:input_type -> walletrpc.FundTransactionRequest + 31, // 28: walletrpc.WalletService.SignTransaction:input_type -> walletrpc.SignTransactionRequest + 33, // 29: walletrpc.WalletService.PublishTransaction:input_type -> walletrpc.PublishTransactionRequest + 47, // 30: walletrpc.WalletLoaderService.WalletExists:input_type -> walletrpc.WalletExistsRequest + 41, // 31: walletrpc.WalletLoaderService.CreateWallet:input_type -> walletrpc.CreateWalletRequest + 43, // 32: walletrpc.WalletLoaderService.OpenWallet:input_type -> walletrpc.OpenWalletRequest + 45, // 33: walletrpc.WalletLoaderService.CloseWallet:input_type -> walletrpc.CloseWalletRequest + 49, // 34: walletrpc.WalletLoaderService.StartConsensusRpc:input_type -> walletrpc.StartConsensusRpcRequest + 3, // 35: walletrpc.VersionService.Version:output_type -> walletrpc.VersionResponse + 8, // 36: walletrpc.WalletService.Ping:output_type -> walletrpc.PingResponse + 10, // 37: walletrpc.WalletService.Network:output_type -> walletrpc.NetworkResponse + 12, // 38: walletrpc.WalletService.AccountNumber:output_type -> walletrpc.AccountNumberResponse + 14, // 39: walletrpc.WalletService.Accounts:output_type -> walletrpc.AccountsResponse + 24, // 40: walletrpc.WalletService.Balance:output_type -> walletrpc.BalanceResponse + 26, // 41: walletrpc.WalletService.GetTransactions:output_type -> walletrpc.GetTransactionsResponse + 36, // 42: walletrpc.WalletService.TransactionNotifications:output_type -> walletrpc.TransactionNotificationsResponse + 38, // 43: walletrpc.WalletService.SpentnessNotifications:output_type -> walletrpc.SpentnessNotificationsResponse + 40, // 44: walletrpc.WalletService.AccountNotifications:output_type -> walletrpc.AccountNotificationsResponse + 28, // 45: walletrpc.WalletService.ChangePassphrase:output_type -> walletrpc.ChangePassphraseResponse + 16, // 46: walletrpc.WalletService.RenameAccount:output_type -> walletrpc.RenameAccountResponse + 18, // 47: walletrpc.WalletService.NextAccount:output_type -> walletrpc.NextAccountResponse + 20, // 48: walletrpc.WalletService.NextAddress:output_type -> walletrpc.NextAddressResponse + 22, // 49: walletrpc.WalletService.ImportPrivateKey:output_type -> walletrpc.ImportPrivateKeyResponse + 30, // 50: walletrpc.WalletService.FundTransaction:output_type -> walletrpc.FundTransactionResponse + 32, // 51: walletrpc.WalletService.SignTransaction:output_type -> walletrpc.SignTransactionResponse + 34, // 52: walletrpc.WalletService.PublishTransaction:output_type -> walletrpc.PublishTransactionResponse + 48, // 53: walletrpc.WalletLoaderService.WalletExists:output_type -> walletrpc.WalletExistsResponse + 42, // 54: walletrpc.WalletLoaderService.CreateWallet:output_type -> walletrpc.CreateWalletResponse + 44, // 55: walletrpc.WalletLoaderService.OpenWallet:output_type -> walletrpc.OpenWalletResponse + 46, // 56: walletrpc.WalletLoaderService.CloseWallet:output_type -> walletrpc.CloseWalletResponse + 50, // 57: walletrpc.WalletLoaderService.StartConsensusRpc:output_type -> walletrpc.StartConsensusRpcResponse + 35, // [35:58] is the sub-list for method output_type + 12, // [12:35] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name +} + +func init() { file_api_proto_init() } +func file_api_proto_init() { + if File_api_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VersionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VersionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransactionDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountBalance); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PingRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PingResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NetworkRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NetworkResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountNumberRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountNumberResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RenameAccountRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RenameAccountResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NextAccountRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NextAccountResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NextAddressRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NextAddressResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportPrivateKeyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportPrivateKeyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BalanceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BalanceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTransactionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTransactionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangePassphraseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangePassphraseResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundTransactionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundTransactionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignTransactionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignTransactionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PublishTransactionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PublishTransactionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransactionNotificationsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransactionNotificationsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpentnessNotificationsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpentnessNotificationsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountNotificationsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountNotificationsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateWalletRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateWalletResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OpenWalletRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OpenWalletResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CloseWalletRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CloseWalletResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WalletExistsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WalletExistsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StartConsensusRpcRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StartConsensusRpcResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransactionDetails_Input); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransactionDetails_Output); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountsResponse_Account); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundTransactionResponse_PreviousOutput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpentnessNotificationsResponse_Spender); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_api_proto_rawDesc, + NumEnums: 2, + NumMessages: 54, + NumExtensions: 0, + NumServices: 3, + }, + GoTypes: file_api_proto_goTypes, + DependencyIndexes: file_api_proto_depIdxs, + EnumInfos: file_api_proto_enumTypes, + MessageInfos: file_api_proto_msgTypes, + }.Build() + File_api_proto = out.File + file_api_proto_rawDesc = nil + file_api_proto_goTypes = nil + file_api_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConn +var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 - -// Client API for VersionService service +const _ = grpc.SupportPackageIsVersion6 +// VersionServiceClient is the client API for VersionService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type VersionServiceClient interface { Version(ctx context.Context, in *VersionRequest, opts ...grpc.CallOption) (*VersionResponse, error) } type versionServiceClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewVersionServiceClient(cc *grpc.ClientConn) VersionServiceClient { +func NewVersionServiceClient(cc grpc.ClientConnInterface) VersionServiceClient { return &versionServiceClient{cc} } func (c *versionServiceClient) Version(ctx context.Context, in *VersionRequest, opts ...grpc.CallOption) (*VersionResponse, error) { out := new(VersionResponse) - err := grpc.Invoke(ctx, "/walletrpc.VersionService/Version", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.VersionService/Version", in, out, opts...) if err != nil { return nil, err } return out, nil } -// Server API for VersionService service - +// VersionServiceServer is the server API for VersionService service. type VersionServiceServer interface { Version(context.Context, *VersionRequest) (*VersionResponse, error) } +// UnimplementedVersionServiceServer can be embedded to have forward compatible implementations. +type UnimplementedVersionServiceServer struct { +} + +func (*UnimplementedVersionServiceServer) Version(context.Context, *VersionRequest) (*VersionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Version not implemented") +} + func RegisterVersionServiceServer(s *grpc.Server, srv VersionServiceServer) { s.RegisterService(&_VersionService_serviceDesc, srv) } @@ -1607,8 +4503,9 @@ var _VersionService_serviceDesc = grpc.ServiceDesc{ Metadata: "api.proto", } -// Client API for WalletService service - +// WalletServiceClient is the client API for WalletService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type WalletServiceClient interface { // Queries Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingResponse, error) @@ -1633,16 +4530,16 @@ type WalletServiceClient interface { } type walletServiceClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewWalletServiceClient(cc *grpc.ClientConn) WalletServiceClient { +func NewWalletServiceClient(cc grpc.ClientConnInterface) WalletServiceClient { return &walletServiceClient{cc} } func (c *walletServiceClient) Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingResponse, error) { out := new(PingResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletService/Ping", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletService/Ping", in, out, opts...) if err != nil { return nil, err } @@ -1651,7 +4548,7 @@ func (c *walletServiceClient) Ping(ctx context.Context, in *PingRequest, opts .. func (c *walletServiceClient) Network(ctx context.Context, in *NetworkRequest, opts ...grpc.CallOption) (*NetworkResponse, error) { out := new(NetworkResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletService/Network", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletService/Network", in, out, opts...) if err != nil { return nil, err } @@ -1660,7 +4557,7 @@ func (c *walletServiceClient) Network(ctx context.Context, in *NetworkRequest, o func (c *walletServiceClient) AccountNumber(ctx context.Context, in *AccountNumberRequest, opts ...grpc.CallOption) (*AccountNumberResponse, error) { out := new(AccountNumberResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletService/AccountNumber", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletService/AccountNumber", in, out, opts...) if err != nil { return nil, err } @@ -1669,7 +4566,7 @@ func (c *walletServiceClient) AccountNumber(ctx context.Context, in *AccountNumb func (c *walletServiceClient) Accounts(ctx context.Context, in *AccountsRequest, opts ...grpc.CallOption) (*AccountsResponse, error) { out := new(AccountsResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletService/Accounts", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletService/Accounts", in, out, opts...) if err != nil { return nil, err } @@ -1678,7 +4575,7 @@ func (c *walletServiceClient) Accounts(ctx context.Context, in *AccountsRequest, func (c *walletServiceClient) Balance(ctx context.Context, in *BalanceRequest, opts ...grpc.CallOption) (*BalanceResponse, error) { out := new(BalanceResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletService/Balance", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletService/Balance", in, out, opts...) if err != nil { return nil, err } @@ -1687,7 +4584,7 @@ func (c *walletServiceClient) Balance(ctx context.Context, in *BalanceRequest, o func (c *walletServiceClient) GetTransactions(ctx context.Context, in *GetTransactionsRequest, opts ...grpc.CallOption) (*GetTransactionsResponse, error) { out := new(GetTransactionsResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletService/GetTransactions", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletService/GetTransactions", in, out, opts...) if err != nil { return nil, err } @@ -1695,7 +4592,7 @@ func (c *walletServiceClient) GetTransactions(ctx context.Context, in *GetTransa } func (c *walletServiceClient) TransactionNotifications(ctx context.Context, in *TransactionNotificationsRequest, opts ...grpc.CallOption) (WalletService_TransactionNotificationsClient, error) { - stream, err := grpc.NewClientStream(ctx, &_WalletService_serviceDesc.Streams[0], c.cc, "/walletrpc.WalletService/TransactionNotifications", opts...) + stream, err := c.cc.NewStream(ctx, &_WalletService_serviceDesc.Streams[0], "/walletrpc.WalletService/TransactionNotifications", opts...) if err != nil { return nil, err } @@ -1727,7 +4624,7 @@ func (x *walletServiceTransactionNotificationsClient) Recv() (*TransactionNotifi } func (c *walletServiceClient) SpentnessNotifications(ctx context.Context, in *SpentnessNotificationsRequest, opts ...grpc.CallOption) (WalletService_SpentnessNotificationsClient, error) { - stream, err := grpc.NewClientStream(ctx, &_WalletService_serviceDesc.Streams[1], c.cc, "/walletrpc.WalletService/SpentnessNotifications", opts...) + stream, err := c.cc.NewStream(ctx, &_WalletService_serviceDesc.Streams[1], "/walletrpc.WalletService/SpentnessNotifications", opts...) if err != nil { return nil, err } @@ -1759,7 +4656,7 @@ func (x *walletServiceSpentnessNotificationsClient) Recv() (*SpentnessNotificati } func (c *walletServiceClient) AccountNotifications(ctx context.Context, in *AccountNotificationsRequest, opts ...grpc.CallOption) (WalletService_AccountNotificationsClient, error) { - stream, err := grpc.NewClientStream(ctx, &_WalletService_serviceDesc.Streams[2], c.cc, "/walletrpc.WalletService/AccountNotifications", opts...) + stream, err := c.cc.NewStream(ctx, &_WalletService_serviceDesc.Streams[2], "/walletrpc.WalletService/AccountNotifications", opts...) if err != nil { return nil, err } @@ -1792,7 +4689,7 @@ func (x *walletServiceAccountNotificationsClient) Recv() (*AccountNotificationsR func (c *walletServiceClient) ChangePassphrase(ctx context.Context, in *ChangePassphraseRequest, opts ...grpc.CallOption) (*ChangePassphraseResponse, error) { out := new(ChangePassphraseResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletService/ChangePassphrase", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletService/ChangePassphrase", in, out, opts...) if err != nil { return nil, err } @@ -1801,7 +4698,7 @@ func (c *walletServiceClient) ChangePassphrase(ctx context.Context, in *ChangePa func (c *walletServiceClient) RenameAccount(ctx context.Context, in *RenameAccountRequest, opts ...grpc.CallOption) (*RenameAccountResponse, error) { out := new(RenameAccountResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletService/RenameAccount", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletService/RenameAccount", in, out, opts...) if err != nil { return nil, err } @@ -1810,7 +4707,7 @@ func (c *walletServiceClient) RenameAccount(ctx context.Context, in *RenameAccou func (c *walletServiceClient) NextAccount(ctx context.Context, in *NextAccountRequest, opts ...grpc.CallOption) (*NextAccountResponse, error) { out := new(NextAccountResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletService/NextAccount", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletService/NextAccount", in, out, opts...) if err != nil { return nil, err } @@ -1819,7 +4716,7 @@ func (c *walletServiceClient) NextAccount(ctx context.Context, in *NextAccountRe func (c *walletServiceClient) NextAddress(ctx context.Context, in *NextAddressRequest, opts ...grpc.CallOption) (*NextAddressResponse, error) { out := new(NextAddressResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletService/NextAddress", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletService/NextAddress", in, out, opts...) if err != nil { return nil, err } @@ -1828,7 +4725,7 @@ func (c *walletServiceClient) NextAddress(ctx context.Context, in *NextAddressRe func (c *walletServiceClient) ImportPrivateKey(ctx context.Context, in *ImportPrivateKeyRequest, opts ...grpc.CallOption) (*ImportPrivateKeyResponse, error) { out := new(ImportPrivateKeyResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletService/ImportPrivateKey", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletService/ImportPrivateKey", in, out, opts...) if err != nil { return nil, err } @@ -1837,7 +4734,7 @@ func (c *walletServiceClient) ImportPrivateKey(ctx context.Context, in *ImportPr func (c *walletServiceClient) FundTransaction(ctx context.Context, in *FundTransactionRequest, opts ...grpc.CallOption) (*FundTransactionResponse, error) { out := new(FundTransactionResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletService/FundTransaction", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletService/FundTransaction", in, out, opts...) if err != nil { return nil, err } @@ -1846,7 +4743,7 @@ func (c *walletServiceClient) FundTransaction(ctx context.Context, in *FundTrans func (c *walletServiceClient) SignTransaction(ctx context.Context, in *SignTransactionRequest, opts ...grpc.CallOption) (*SignTransactionResponse, error) { out := new(SignTransactionResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletService/SignTransaction", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletService/SignTransaction", in, out, opts...) if err != nil { return nil, err } @@ -1855,15 +4752,14 @@ func (c *walletServiceClient) SignTransaction(ctx context.Context, in *SignTrans func (c *walletServiceClient) PublishTransaction(ctx context.Context, in *PublishTransactionRequest, opts ...grpc.CallOption) (*PublishTransactionResponse, error) { out := new(PublishTransactionResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletService/PublishTransaction", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletService/PublishTransaction", in, out, opts...) if err != nil { return nil, err } return out, nil } -// Server API for WalletService service - +// WalletServiceServer is the server API for WalletService service. type WalletServiceServer interface { // Queries Ping(context.Context, *PingRequest) (*PingResponse, error) @@ -1887,6 +4783,62 @@ type WalletServiceServer interface { PublishTransaction(context.Context, *PublishTransactionRequest) (*PublishTransactionResponse, error) } +// UnimplementedWalletServiceServer can be embedded to have forward compatible implementations. +type UnimplementedWalletServiceServer struct { +} + +func (*UnimplementedWalletServiceServer) Ping(context.Context, *PingRequest) (*PingResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented") +} +func (*UnimplementedWalletServiceServer) Network(context.Context, *NetworkRequest) (*NetworkResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Network not implemented") +} +func (*UnimplementedWalletServiceServer) AccountNumber(context.Context, *AccountNumberRequest) (*AccountNumberResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AccountNumber not implemented") +} +func (*UnimplementedWalletServiceServer) Accounts(context.Context, *AccountsRequest) (*AccountsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Accounts not implemented") +} +func (*UnimplementedWalletServiceServer) Balance(context.Context, *BalanceRequest) (*BalanceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Balance not implemented") +} +func (*UnimplementedWalletServiceServer) GetTransactions(context.Context, *GetTransactionsRequest) (*GetTransactionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetTransactions not implemented") +} +func (*UnimplementedWalletServiceServer) TransactionNotifications(*TransactionNotificationsRequest, WalletService_TransactionNotificationsServer) error { + return status.Errorf(codes.Unimplemented, "method TransactionNotifications not implemented") +} +func (*UnimplementedWalletServiceServer) SpentnessNotifications(*SpentnessNotificationsRequest, WalletService_SpentnessNotificationsServer) error { + return status.Errorf(codes.Unimplemented, "method SpentnessNotifications not implemented") +} +func (*UnimplementedWalletServiceServer) AccountNotifications(*AccountNotificationsRequest, WalletService_AccountNotificationsServer) error { + return status.Errorf(codes.Unimplemented, "method AccountNotifications not implemented") +} +func (*UnimplementedWalletServiceServer) ChangePassphrase(context.Context, *ChangePassphraseRequest) (*ChangePassphraseResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ChangePassphrase not implemented") +} +func (*UnimplementedWalletServiceServer) RenameAccount(context.Context, *RenameAccountRequest) (*RenameAccountResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RenameAccount not implemented") +} +func (*UnimplementedWalletServiceServer) NextAccount(context.Context, *NextAccountRequest) (*NextAccountResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NextAccount not implemented") +} +func (*UnimplementedWalletServiceServer) NextAddress(context.Context, *NextAddressRequest) (*NextAddressResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NextAddress not implemented") +} +func (*UnimplementedWalletServiceServer) ImportPrivateKey(context.Context, *ImportPrivateKeyRequest) (*ImportPrivateKeyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ImportPrivateKey not implemented") +} +func (*UnimplementedWalletServiceServer) FundTransaction(context.Context, *FundTransactionRequest) (*FundTransactionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FundTransaction not implemented") +} +func (*UnimplementedWalletServiceServer) SignTransaction(context.Context, *SignTransactionRequest) (*SignTransactionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SignTransaction not implemented") +} +func (*UnimplementedWalletServiceServer) PublishTransaction(context.Context, *PublishTransactionRequest) (*PublishTransactionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PublishTransaction not implemented") +} + func RegisterWalletServiceServer(s *grpc.Server, srv WalletServiceServer) { s.RegisterService(&_WalletService_serviceDesc, srv) } @@ -2287,8 +5239,9 @@ var _WalletService_serviceDesc = grpc.ServiceDesc{ Metadata: "api.proto", } -// Client API for WalletLoaderService service - +// WalletLoaderServiceClient is the client API for WalletLoaderService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type WalletLoaderServiceClient interface { WalletExists(ctx context.Context, in *WalletExistsRequest, opts ...grpc.CallOption) (*WalletExistsResponse, error) CreateWallet(ctx context.Context, in *CreateWalletRequest, opts ...grpc.CallOption) (*CreateWalletResponse, error) @@ -2298,16 +5251,16 @@ type WalletLoaderServiceClient interface { } type walletLoaderServiceClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewWalletLoaderServiceClient(cc *grpc.ClientConn) WalletLoaderServiceClient { +func NewWalletLoaderServiceClient(cc grpc.ClientConnInterface) WalletLoaderServiceClient { return &walletLoaderServiceClient{cc} } func (c *walletLoaderServiceClient) WalletExists(ctx context.Context, in *WalletExistsRequest, opts ...grpc.CallOption) (*WalletExistsResponse, error) { out := new(WalletExistsResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletLoaderService/WalletExists", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletLoaderService/WalletExists", in, out, opts...) if err != nil { return nil, err } @@ -2316,7 +5269,7 @@ func (c *walletLoaderServiceClient) WalletExists(ctx context.Context, in *Wallet func (c *walletLoaderServiceClient) CreateWallet(ctx context.Context, in *CreateWalletRequest, opts ...grpc.CallOption) (*CreateWalletResponse, error) { out := new(CreateWalletResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletLoaderService/CreateWallet", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletLoaderService/CreateWallet", in, out, opts...) if err != nil { return nil, err } @@ -2325,7 +5278,7 @@ func (c *walletLoaderServiceClient) CreateWallet(ctx context.Context, in *Create func (c *walletLoaderServiceClient) OpenWallet(ctx context.Context, in *OpenWalletRequest, opts ...grpc.CallOption) (*OpenWalletResponse, error) { out := new(OpenWalletResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletLoaderService/OpenWallet", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletLoaderService/OpenWallet", in, out, opts...) if err != nil { return nil, err } @@ -2334,7 +5287,7 @@ func (c *walletLoaderServiceClient) OpenWallet(ctx context.Context, in *OpenWall func (c *walletLoaderServiceClient) CloseWallet(ctx context.Context, in *CloseWalletRequest, opts ...grpc.CallOption) (*CloseWalletResponse, error) { out := new(CloseWalletResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletLoaderService/CloseWallet", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletLoaderService/CloseWallet", in, out, opts...) if err != nil { return nil, err } @@ -2343,15 +5296,14 @@ func (c *walletLoaderServiceClient) CloseWallet(ctx context.Context, in *CloseWa func (c *walletLoaderServiceClient) StartConsensusRpc(ctx context.Context, in *StartConsensusRpcRequest, opts ...grpc.CallOption) (*StartConsensusRpcResponse, error) { out := new(StartConsensusRpcResponse) - err := grpc.Invoke(ctx, "/walletrpc.WalletLoaderService/StartConsensusRpc", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/walletrpc.WalletLoaderService/StartConsensusRpc", in, out, opts...) if err != nil { return nil, err } return out, nil } -// Server API for WalletLoaderService service - +// WalletLoaderServiceServer is the server API for WalletLoaderService service. type WalletLoaderServiceServer interface { WalletExists(context.Context, *WalletExistsRequest) (*WalletExistsResponse, error) CreateWallet(context.Context, *CreateWalletRequest) (*CreateWalletResponse, error) @@ -2360,6 +5312,26 @@ type WalletLoaderServiceServer interface { StartConsensusRpc(context.Context, *StartConsensusRpcRequest) (*StartConsensusRpcResponse, error) } +// UnimplementedWalletLoaderServiceServer can be embedded to have forward compatible implementations. +type UnimplementedWalletLoaderServiceServer struct { +} + +func (*UnimplementedWalletLoaderServiceServer) WalletExists(context.Context, *WalletExistsRequest) (*WalletExistsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method WalletExists not implemented") +} +func (*UnimplementedWalletLoaderServiceServer) CreateWallet(context.Context, *CreateWalletRequest) (*CreateWalletResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateWallet not implemented") +} +func (*UnimplementedWalletLoaderServiceServer) OpenWallet(context.Context, *OpenWalletRequest) (*OpenWalletResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method OpenWallet not implemented") +} +func (*UnimplementedWalletLoaderServiceServer) CloseWallet(context.Context, *CloseWalletRequest) (*CloseWalletResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CloseWallet not implemented") +} +func (*UnimplementedWalletLoaderServiceServer) StartConsensusRpc(context.Context, *StartConsensusRpcRequest) (*StartConsensusRpcResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method StartConsensusRpc not implemented") +} + func RegisterWalletLoaderServiceServer(s *grpc.Server, srv WalletLoaderServiceServer) { s.RegisterService(&_WalletLoaderService_serviceDesc, srv) } @@ -2482,159 +5454,3 @@ var _WalletLoaderService_serviceDesc = grpc.ServiceDesc{ Streams: []grpc.StreamDesc{}, Metadata: "api.proto", } - -func init() { proto.RegisterFile("api.proto", fileDescriptor0) } - -var fileDescriptor0 = []byte{ - // 2391 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x59, 0x5b, 0x73, 0xdc, 0x48, - 0x15, 0x66, 0x2c, 0xdf, 0x72, 0xe6, 0xde, 0xbe, 0x4d, 0x94, 0x38, 0xc9, 0x2a, 0xbb, 0xd9, 0xec, - 0x2e, 0x98, 0x60, 0x02, 0x2c, 0xc5, 0x56, 0xd8, 0xc4, 0x64, 0xd9, 0x21, 0xc1, 0x99, 0x92, 0x93, - 0x4d, 0xaa, 0xa0, 0x98, 0x92, 0x35, 0xed, 0x58, 0x78, 0x46, 0x9a, 0x48, 0x9a, 0x38, 0xe1, 0x89, - 0xa2, 0x8a, 0x47, 0x5e, 0x80, 0x07, 0x0a, 0x6a, 0x5f, 0xf8, 0x05, 0x54, 0xf1, 0xc2, 0x23, 0xfc, - 0x06, 0x1e, 0xf9, 0x17, 0xfc, 0x02, 0xfa, 0x72, 0x7a, 0xd4, 0x2d, 0x69, 0xc6, 0xf6, 0x16, 0x6f, - 0xa3, 0xaf, 0xcf, 0x39, 0x7d, 0xfa, 0xf4, 0xb9, 0xf6, 0xc0, 0x25, 0x6f, 0x1c, 0xec, 0x8c, 0xe3, - 0x28, 0x8d, 0xc8, 0xa5, 0x53, 0x6f, 0x38, 0xa4, 0x69, 0x3c, 0xf6, 0x9d, 0x16, 0x34, 0xbe, 0xa0, - 0x71, 0x12, 0x44, 0xa1, 0x4b, 0x5f, 0x4d, 0x68, 0x92, 0x3a, 0xff, 0xaa, 0x40, 0x73, 0x0a, 0x25, - 0xe3, 0x28, 0x4c, 0x28, 0x79, 0x0f, 0x1a, 0xaf, 0x25, 0xd4, 0x4f, 0xd2, 0x38, 0x08, 0x5f, 0x76, - 0x2a, 0x37, 0x2a, 0xb7, 0x2f, 0xb9, 0x75, 0x44, 0x0f, 0x04, 0x48, 0xd6, 0x61, 0x69, 0xe4, 0xfd, - 0x32, 0x8a, 0x3b, 0x0b, 0x6c, 0xb5, 0xee, 0xca, 0x0f, 0x81, 0x06, 0x21, 0x43, 0x2d, 0x44, 0xf9, - 0x07, 0x47, 0xc7, 0x5e, 0xea, 0x1f, 0x77, 0x16, 0x25, 0x2a, 0x3e, 0xc8, 0x35, 0x80, 0x71, 0x4c, - 0x63, 0x3a, 0xa4, 0x5e, 0x42, 0x3b, 0x4b, 0x62, 0x13, 0x0d, 0xe1, 0x8a, 0x1c, 0x4e, 0x82, 0xe1, - 0xa0, 0x3f, 0xa2, 0xa9, 0x37, 0xf0, 0x52, 0xaf, 0xb3, 0x2c, 0x15, 0x11, 0xe8, 0x4f, 0x11, 0x74, - 0xfe, 0x69, 0x01, 0x79, 0x1a, 0x7b, 0x61, 0xe2, 0xf9, 0x29, 0x53, 0xef, 0x47, 0x0c, 0x0f, 0x86, - 0x09, 0x21, 0xb0, 0x78, 0xec, 0x25, 0xc7, 0x42, 0xf9, 0x9a, 0x2b, 0x7e, 0x93, 0x1b, 0x50, 0x4d, - 0x33, 0x4a, 0xa1, 0x79, 0xcd, 0xd5, 0x21, 0xf2, 0x03, 0x58, 0x1e, 0xd0, 0xc3, 0x20, 0x4d, 0xd8, - 0x01, 0xac, 0xdb, 0xd5, 0xdd, 0x9b, 0x3b, 0x53, 0xf3, 0xed, 0x14, 0x37, 0xd9, 0xe9, 0x86, 0xe3, - 0x49, 0xea, 0x22, 0x0b, 0xb9, 0x07, 0x2b, 0x7e, 0x4c, 0x07, 0x9c, 0x7b, 0x51, 0x70, 0xbf, 0x3b, - 0x9f, 0xfb, 0xc9, 0x24, 0xe5, 0xec, 0x8a, 0x89, 0xb4, 0xc0, 0x3a, 0xa2, 0xd2, 0x12, 0x96, 0xcb, - 0x7f, 0x92, 0xab, 0x70, 0x29, 0x0d, 0x46, 0xec, 0xa6, 0xbc, 0xd1, 0x58, 0x9c, 0xde, 0x72, 0x33, - 0xc0, 0x7e, 0x05, 0x4b, 0x42, 0x01, 0x6e, 0xdf, 0x20, 0x1c, 0xd0, 0x37, 0xe2, 0xb0, 0xcc, 0xbe, - 0xe2, 0x83, 0x7c, 0x00, 0x2d, 0x66, 0xcd, 0xd7, 0x41, 0x34, 0x49, 0xfa, 0x9e, 0xef, 0x47, 0x93, - 0x30, 0xc5, 0xcb, 0x6a, 0x2a, 0xfc, 0xbe, 0x84, 0xc9, 0xfb, 0xd0, 0xcc, 0x48, 0x47, 0x82, 0xd2, - 0x12, 0xbb, 0x35, 0xa6, 0x94, 0x02, 0xb5, 0x9f, 0xc2, 0xb2, 0xd4, 0x7a, 0xc6, 0x9e, 0x1d, 0x58, - 0x31, 0xb7, 0x52, 0x9f, 0xc4, 0x86, 0xd5, 0x20, 0x4c, 0x69, 0x1c, 0x7a, 0x43, 0x21, 0x7b, 0xd5, - 0x9d, 0x7e, 0x3b, 0x7f, 0xa9, 0x40, 0xed, 0xc1, 0x30, 0xf2, 0x4f, 0xe6, 0x5d, 0xde, 0x26, 0x2c, - 0x1f, 0xd3, 0xe0, 0xe5, 0xb1, 0x94, 0xbc, 0xe4, 0xe2, 0x97, 0x69, 0x23, 0x2b, 0x67, 0x23, 0x72, - 0x1f, 0x6a, 0xda, 0xfd, 0xaa, 0x8b, 0xd9, 0x9e, 0x7b, 0x31, 0xae, 0xc1, 0xe2, 0x3c, 0x81, 0x06, - 0xda, 0xe9, 0x81, 0x37, 0xf4, 0x42, 0x9f, 0xea, 0xa7, 0xac, 0x98, 0xa7, 0xbc, 0x09, 0xf5, 0x34, - 0x4a, 0xbd, 0x61, 0xff, 0x50, 0x92, 0x0a, 0x5d, 0x2d, 0x26, 0x90, 0x83, 0xc8, 0xee, 0xd4, 0xa1, - 0xda, 0x63, 0x21, 0xa4, 0x82, 0xb0, 0x01, 0x35, 0xf9, 0x29, 0x03, 0x90, 0x87, 0xe9, 0x3e, 0x4d, - 0x4f, 0xa3, 0xf8, 0x44, 0x51, 0x7c, 0x0c, 0xcd, 0x29, 0x92, 0x45, 0x29, 0xd7, 0xef, 0x35, 0xed, - 0x87, 0x72, 0x05, 0x35, 0xa9, 0x4b, 0x14, 0xc9, 0x9d, 0xef, 0xc3, 0x3a, 0xea, 0xbe, 0x3f, 0x19, - 0x1d, 0xd2, 0x18, 0x25, 0x92, 0x77, 0xa0, 0x86, 0x2a, 0xf7, 0x43, 0x6f, 0x44, 0x31, 0xc4, 0xab, - 0x88, 0xed, 0x33, 0xc8, 0xb9, 0x07, 0x1b, 0x39, 0x56, 0x7d, 0x6b, 0xe4, 0x15, 0x2b, 0xd9, 0xd6, - 0x1a, 0xb9, 0xd3, 0x86, 0x26, 0xf2, 0x27, 0xea, 0x1c, 0xff, 0xb0, 0xa0, 0x95, 0x61, 0x28, 0xee, - 0x87, 0xb0, 0x8a, 0x8c, 0x09, 0x13, 0x94, 0x0f, 0xba, 0x3c, 0xb9, 0x02, 0xdc, 0x29, 0x13, 0xf9, - 0x3a, 0x10, 0x7f, 0x12, 0xc7, 0x94, 0xe9, 0x73, 0xc8, 0x9d, 0xa8, 0x2f, 0x5c, 0x47, 0x06, 0x77, - 0x0b, 0x57, 0x84, 0x77, 0x7d, 0xce, 0xdd, 0xe8, 0x0e, 0xac, 0xe7, 0xa8, 0xa5, 0x53, 0x59, 0xc2, - 0xa9, 0x88, 0x41, 0x2f, 0x56, 0xec, 0xdf, 0x2c, 0xc0, 0x8a, 0x0a, 0x94, 0xf3, 0x9d, 0xbd, 0x60, - 0xde, 0x85, 0x82, 0x79, 0x8b, 0x9e, 0x62, 0x15, 0x3d, 0x85, 0x1f, 0x8d, 0xbe, 0x91, 0x41, 0xd2, - 0x3f, 0xa1, 0x6f, 0xfb, 0xd2, 0xe7, 0x64, 0x16, 0x6d, 0xa9, 0x95, 0x47, 0xf4, 0xed, 0x9e, 0x50, - 0x8e, 0x51, 0xab, 0x90, 0xd2, 0xa8, 0x97, 0x24, 0xb5, 0x5a, 0x31, 0xa8, 0x47, 0xe3, 0x28, 0x4e, - 0xe9, 0x40, 0xa3, 0x5e, 0x46, 0x6a, 0x5c, 0x51, 0xd4, 0xce, 0x0b, 0x58, 0x77, 0x29, 0x3f, 0x8b, - 0xb2, 0x3f, 0x3a, 0xd2, 0x39, 0x0d, 0x72, 0x19, 0x56, 0x43, 0x7a, 0xaa, 0x1b, 0x63, 0x85, 0x7d, - 0x0b, 0x3f, 0xdb, 0x82, 0x8d, 0x9c, 0x64, 0x8c, 0x83, 0xe7, 0x40, 0xf6, 0xd9, 0x19, 0x73, 0x1b, - 0xf2, 0xaa, 0xe1, 0x25, 0xc9, 0xf8, 0x38, 0xe6, 0x55, 0x43, 0x26, 0x08, 0x0d, 0x39, 0x87, 0xe9, - 0x9d, 0x4f, 0x60, 0xcd, 0x10, 0x7c, 0x31, 0xbf, 0xfe, 0x73, 0x05, 0xf5, 0x1a, 0x0c, 0x62, 0x9a, - 0x28, 0xdf, 0x9e, 0x93, 0x13, 0xbe, 0x0b, 0x8b, 0x27, 0x2c, 0x3b, 0x0a, 0x4d, 0x1a, 0xbb, 0x8e, - 0xe6, 0xdc, 0x45, 0x31, 0x3b, 0x8f, 0x18, 0xa5, 0x2b, 0xe8, 0x9d, 0x5d, 0x58, 0xe4, 0x5f, 0x2c, - 0xd3, 0xb6, 0x1e, 0x74, 0x7b, 0x77, 0xee, 0xdc, 0xbd, 0xdb, 0x7f, 0xf8, 0xe2, 0xe9, 0x43, 0x77, - 0xff, 0xfe, 0xe3, 0xd6, 0xd7, 0x74, 0xb4, 0xbb, 0x8f, 0x68, 0xc5, 0xf9, 0x26, 0x1e, 0x4d, 0x09, - 0xc5, 0xa3, 0x71, 0xe5, 0x24, 0x84, 0x91, 0xae, 0x3e, 0x9d, 0x3f, 0x54, 0x60, 0xab, 0x2b, 0x2e, - 0xbb, 0x17, 0x07, 0xaf, 0xbd, 0x94, 0xb2, 0x1b, 0x3f, 0xaf, 0xa9, 0x67, 0x27, 0xfb, 0x5b, 0xbc, - 0x9e, 0x08, 0x71, 0xc2, 0xb5, 0x4e, 0x83, 0x23, 0xe1, 0xde, 0xac, 0x76, 0x8f, 0xa7, 0xbb, 0x3c, - 0x0f, 0x8e, 0x78, 0x4e, 0x67, 0x5a, 0xf8, 0x5e, 0x28, 0x7c, 0x7a, 0xd5, 0xc5, 0x2f, 0xc7, 0x86, - 0x4e, 0x51, 0x29, 0x74, 0x8b, 0x10, 0x1a, 0x18, 0x1e, 0x17, 0xf4, 0xc1, 0xef, 0xc0, 0x66, 0xcc, - 0x38, 0x02, 0x56, 0x6d, 0x99, 0xb3, 0x87, 0x47, 0x41, 0x3c, 0xf2, 0x64, 0x51, 0x90, 0x05, 0x65, - 0x43, 0xad, 0xee, 0xe9, 0x8b, 0x6c, 0xbf, 0xe6, 0x74, 0x3f, 0x34, 0x27, 0xab, 0x7d, 0x22, 0x4c, - 0xc5, 0x3e, 0x96, 0x2b, 0x3f, 0x78, 0x21, 0x4a, 0xc6, 0x34, 0x1c, 0x78, 0x87, 0x43, 0x95, 0xf7, - 0x33, 0x80, 0x97, 0xd8, 0x60, 0xc4, 0x64, 0x4e, 0x62, 0xda, 0x8f, 0xe9, 0xa9, 0x17, 0x0f, 0x54, - 0x89, 0x55, 0xb0, 0x2b, 0x50, 0xe7, 0x4f, 0x0b, 0xb0, 0xf9, 0x63, 0x9a, 0x6a, 0x65, 0x69, 0xea, - 0x63, 0x3b, 0xb0, 0xc6, 0xaa, 0x5a, 0x9c, 0xb2, 0x6a, 0xa1, 0xa7, 0x3a, 0x79, 0x33, 0x6d, 0xb5, - 0x94, 0xe5, 0xba, 0x5d, 0xd8, 0xc8, 0xd3, 0x67, 0x15, 0xb4, 0xed, 0xae, 0x99, 0x1c, 0xb2, 0x9c, - 0x7e, 0x08, 0x6d, 0xa6, 0x72, 0x6e, 0x07, 0x4b, 0xec, 0xd0, 0x94, 0x0b, 0x99, 0x7c, 0xa6, 0x8f, - 0x49, 0x2b, 0xa5, 0x2f, 0x0a, 0x73, 0xb6, 0x75, 0x6a, 0x29, 0xfb, 0x1e, 0x5c, 0x61, 0x0d, 0x61, - 0x30, 0x9a, 0x8c, 0x98, 0x09, 0x7c, 0x9e, 0x82, 0x8d, 0xda, 0xbc, 0x24, 0xf8, 0x2e, 0x23, 0x89, - 0x2b, 0x28, 0x74, 0x33, 0x38, 0x7f, 0x67, 0xce, 0x5a, 0x30, 0x0d, 0xde, 0xc9, 0x67, 0x40, 0x18, - 0x23, 0xbb, 0x5a, 0x43, 0xa4, 0x2c, 0x28, 0x5b, 0x5a, 0xcc, 0xe9, 0x7d, 0x86, 0xdb, 0x16, 0x2c, - 0xba, 0x3c, 0xd2, 0x83, 0xf5, 0x49, 0x58, 0x22, 0x69, 0xe1, 0x3c, 0x8d, 0xc3, 0x1a, 0xb2, 0x1a, - 0x5a, 0xb3, 0x26, 0x7b, 0x6b, 0xef, 0xd8, 0x0b, 0x5f, 0xd2, 0xde, 0x34, 0x76, 0xd4, 0x8d, 0x7e, - 0x0c, 0x16, 0x0b, 0x10, 0x71, 0x83, 0x8d, 0xdd, 0x5b, 0x9a, 0xf0, 0x19, 0x0c, 0x3b, 0x3c, 0x12, - 0x38, 0x0b, 0x77, 0xfa, 0x88, 0xf5, 0xc6, 0x5a, 0x80, 0xca, 0x8a, 0x57, 0x67, 0x68, 0xc6, 0xc6, - 0xc9, 0x78, 0xe2, 0xd5, 0xc8, 0xe4, 0x5d, 0xd6, 0x19, 0x9a, 0x91, 0x39, 0xd7, 0xc0, 0x62, 0x92, - 0x49, 0x15, 0x56, 0x7a, 0x6e, 0xf7, 0x8b, 0xfb, 0x4f, 0x1f, 0xb2, 0x0c, 0x03, 0xb0, 0xdc, 0x7b, - 0xf6, 0xe0, 0x71, 0x77, 0x8f, 0xe5, 0x15, 0x16, 0x90, 0x45, 0x8d, 0x30, 0x20, 0x7f, 0xcd, 0x1c, - 0xf6, 0xb3, 0x49, 0xa8, 0x1f, 0xfa, 0xec, 0xa4, 0xc8, 0xcb, 0x9f, 0x17, 0xbf, 0xa4, 0xa9, 0xea, - 0x37, 0x55, 0xa3, 0x24, 0x40, 0xd9, 0x6d, 0xce, 0x89, 0x58, 0x6b, 0x4e, 0xc4, 0x92, 0x4f, 0xc0, - 0x0e, 0x42, 0x7f, 0x38, 0x19, 0xd0, 0xfe, 0x34, 0xe4, 0xfc, 0x28, 0x08, 0x0f, 0x99, 0xd6, 0x09, - 0x66, 0x9a, 0x0e, 0x52, 0x74, 0x91, 0x60, 0x4f, 0xad, 0xf3, 0xa0, 0x51, 0xdc, 0xbe, 0x38, 0x72, - 0x3f, 0xf1, 0xe3, 0x60, 0x2c, 0x0b, 0xe9, 0xaa, 0xbb, 0x86, 0x8b, 0xd2, 0x1c, 0x07, 0x62, 0xc9, - 0xf9, 0xab, 0x05, 0x5b, 0x05, 0x13, 0xa0, 0x63, 0xfe, 0x1c, 0x5a, 0x09, 0x9b, 0x68, 0x7c, 0x5e, - 0x67, 0x23, 0xd1, 0x3b, 0x2b, 0xb7, 0xfc, 0x96, 0x76, 0xdf, 0x33, 0xb8, 0x77, 0x7a, 0xd8, 0x7f, - 0xe3, 0xac, 0xd0, 0x54, 0xa2, 0xe4, 0x77, 0xc2, 0xcb, 0x9d, 0x6c, 0x23, 0x0c, 0x33, 0x56, 0x05, - 0x86, 0x56, 0xbc, 0x0d, 0x2d, 0x3c, 0xc8, 0xf8, 0x44, 0x9d, 0x45, 0x3a, 0x41, 0x43, 0xe2, 0xbd, - 0x13, 0x79, 0x0c, 0xfb, 0x3f, 0x15, 0x68, 0x98, 0x1b, 0xf2, 0x21, 0x42, 0x0b, 0x03, 0x3d, 0xdf, - 0x34, 0x35, 0x5c, 0x64, 0x03, 0xa6, 0x8a, 0x3c, 0x5f, 0x5f, 0x0e, 0x06, 0xb2, 0x26, 0x54, 0x25, - 0xd6, 0x15, 0xe3, 0x01, 0xcb, 0xf7, 0xc6, 0x78, 0x81, 0x5f, 0xe4, 0x0a, 0x5c, 0xca, 0x74, 0x5b, - 0x14, 0xe2, 0x57, 0xc7, 0xa8, 0x15, 0x97, 0xcb, 0xb3, 0x05, 0xef, 0x75, 0x79, 0x5f, 0x8f, 0xf3, - 0x51, 0x15, 0xb1, 0xa7, 0x81, 0x6c, 0xa6, 0x8e, 0xe2, 0x68, 0x34, 0xbd, 0x65, 0xd1, 0xc6, 0xac, - 0xba, 0x35, 0x0e, 0xaa, 0x9b, 0x75, 0xfe, 0x58, 0x81, 0xcd, 0x83, 0xe0, 0x65, 0x58, 0xe2, 0xa7, - 0x67, 0x55, 0x3a, 0xe6, 0x88, 0x09, 0x8d, 0x03, 0x6f, 0x18, 0xfc, 0xca, 0xcc, 0x0b, 0x18, 0x74, - 0x1b, 0xd9, 0xaa, 0x26, 0x9d, 0xab, 0x15, 0x84, 0x53, 0x83, 0x50, 0x39, 0x54, 0xd6, 0xdd, 0x9a, - 0x00, 0xbb, 0x12, 0x73, 0x5e, 0xc1, 0x56, 0x41, 0x2b, 0x74, 0x9d, 0xdc, 0xbc, 0x5a, 0x29, 0xce, - 0xab, 0x77, 0x61, 0x73, 0x12, 0x26, 0x8c, 0x9d, 0xa9, 0x65, 0x6e, 0xb5, 0x20, 0xb6, 0x5a, 0x57, - 0xab, 0x5d, 0x7d, 0xcb, 0x9f, 0xc0, 0xe5, 0xde, 0xe4, 0x70, 0x18, 0x24, 0xc7, 0x25, 0xb6, 0xf8, - 0x06, 0x10, 0x14, 0x58, 0xdc, 0xbb, 0x2d, 0x57, 0x34, 0x2e, 0xe7, 0x2a, 0xd8, 0x65, 0xb2, 0x30, - 0x37, 0xbc, 0x03, 0xd7, 0x35, 0x78, 0x3f, 0x4a, 0x83, 0xa3, 0xc0, 0xf7, 0xf4, 0xa2, 0xe6, 0x7c, - 0xb9, 0x00, 0x37, 0x66, 0xd3, 0xa0, 0x25, 0x3e, 0x85, 0xa6, 0x97, 0xa6, 0x9e, 0x7f, 0xcc, 0xd4, - 0x12, 0xb5, 0xe6, 0xcc, 0xd4, 0xde, 0x50, 0xf4, 0x02, 0x4d, 0x78, 0xfd, 0x1d, 0x50, 0x53, 0x02, - 0x37, 0x11, 0x0b, 0x02, 0x05, 0x23, 0xe1, 0xac, 0x02, 0x60, 0x7d, 0xd5, 0x02, 0xc0, 0xf3, 0x51, - 0x89, 0x44, 0x11, 0x4b, 0x54, 0x4e, 0xa4, 0x35, 0xb7, 0x53, 0x64, 0xfc, 0x5c, 0xac, 0x3b, 0xbf, - 0xab, 0xc0, 0xf6, 0x01, 0x6b, 0x23, 0xd2, 0x90, 0xf5, 0x6b, 0x65, 0x16, 0x9c, 0x93, 0x65, 0x59, - 0x31, 0x0f, 0xa3, 0x7e, 0xc8, 0x99, 0xde, 0xf6, 0x99, 0x2b, 0x70, 0x31, 0xc2, 0x65, 0x57, 0xdd, - 0x66, 0x18, 0x09, 0x61, 0x6f, 0x9f, 0x49, 0x98, 0xf7, 0x6c, 0x19, 0xad, 0xa4, 0x94, 0x73, 0x7a, - 0x5d, 0x51, 0x0a, 0x2d, 0x9c, 0xdf, 0x2f, 0xc0, 0xb5, 0x59, 0xfa, 0xe0, 0x6d, 0xfd, 0x7f, 0x93, - 0xc6, 0x23, 0x58, 0x11, 0x6d, 0x14, 0x95, 0xaf, 0x4a, 0x66, 0xde, 0x9c, 0xaf, 0x89, 0x58, 0x66, - 0x8c, 0xae, 0x92, 0x60, 0x3f, 0x83, 0x15, 0xc4, 0x2e, 0xa2, 0xe5, 0x75, 0xa8, 0x6a, 0xd1, 0x85, - 0x4a, 0x42, 0x16, 0xc6, 0xce, 0x36, 0x5c, 0x51, 0xc3, 0x72, 0x99, 0x8f, 0xff, 0xb7, 0x02, 0x57, - 0xcb, 0xd7, 0x2f, 0x34, 0x7b, 0x9c, 0x67, 0xae, 0x2c, 0x1f, 0x19, 0xad, 0x0b, 0x8d, 0x8c, 0x8b, - 0x17, 0x1a, 0x19, 0x97, 0x66, 0x8c, 0x8c, 0xbf, 0xad, 0xc0, 0xda, 0x5e, 0x4c, 0x59, 0xfb, 0xfe, - 0x5c, 0x5c, 0x97, 0x72, 0xd7, 0x8f, 0xa0, 0x3d, 0xe6, 0x19, 0xc3, 0xef, 0x17, 0x72, 0x6e, 0x4b, - 0x2e, 0x68, 0xfd, 0x0b, 0xcb, 0x46, 0x6a, 0x92, 0x28, 0xb4, 0x3a, 0x6d, 0x5c, 0xd1, 0xc8, 0x09, - 0x2c, 0x26, 0x94, 0x0e, 0xb0, 0xbe, 0x89, 0xdf, 0xce, 0x26, 0xac, 0x9b, 0x6a, 0x60, 0x6e, 0xfa, - 0x14, 0xda, 0x4f, 0x98, 0x2b, 0x7c, 0x75, 0xe5, 0x9c, 0x75, 0x20, 0xba, 0x04, 0x94, 0xcb, 0xd0, - 0xbd, 0x61, 0x94, 0x98, 0xa7, 0x76, 0x36, 0x98, 0x31, 0x74, 0x14, 0x89, 0x19, 0x2c, 0x91, 0x87, - 0x6f, 0x82, 0x24, 0x7b, 0x29, 0xd9, 0x81, 0x75, 0x13, 0x46, 0x3f, 0x61, 0x05, 0x94, 0x0a, 0x44, - 0xe8, 0xc4, 0x06, 0x26, 0xf9, 0xe5, 0x7c, 0x59, 0x81, 0xce, 0x01, 0xef, 0xe6, 0xf7, 0x38, 0x59, - 0x98, 0x4c, 0x12, 0x77, 0xec, 0xab, 0x33, 0xb1, 0xd4, 0x87, 0x8f, 0x44, 0x7d, 0x73, 0x0a, 0x6c, - 0x20, 0x8c, 0xe3, 0x22, 0x7f, 0xa3, 0x9b, 0x24, 0xfc, 0xca, 0xa7, 0xae, 0x35, 0xfd, 0xe6, 0x6b, - 0xdc, 0x22, 0x8c, 0x5c, 0x59, 0x77, 0xfa, 0xcd, 0xeb, 0x94, 0x4f, 0x63, 0xf4, 0x6b, 0x8a, 0x05, - 0x5c, 0x87, 0x9c, 0x2b, 0x70, 0xb9, 0x44, 0x3d, 0x79, 0xa8, 0x5d, 0x77, 0xfa, 0x2e, 0x7d, 0x40, - 0xe3, 0xd7, 0x81, 0xcf, 0xd3, 0xfd, 0x0a, 0x22, 0xe4, 0xb2, 0x16, 0xec, 0xe6, 0xeb, 0xb5, 0x6d, - 0x97, 0x2d, 0xa1, 0xcc, 0x7f, 0x57, 0xa1, 0x2e, 0x2d, 0xa8, 0x64, 0x7e, 0x0f, 0x16, 0xf9, 0x33, - 0x1b, 0xd9, 0xd4, 0xb8, 0xb4, 0x67, 0x38, 0x7b, 0xab, 0x80, 0x4f, 0x6b, 0xcf, 0x0a, 0x3e, 0xa7, - 0x19, 0xca, 0x98, 0x6f, 0x74, 0x86, 0x32, 0xf9, 0xc7, 0x3a, 0x17, 0xea, 0xc6, 0x53, 0x1a, 0xb9, - 0x5e, 0x7c, 0xe1, 0x32, 0xde, 0xe7, 0xec, 0x1b, 0xb3, 0x09, 0x50, 0xe6, 0x1e, 0xac, 0xaa, 0xb7, - 0x31, 0x62, 0x97, 0x3e, 0x98, 0x49, 0x49, 0x57, 0xe6, 0x3c, 0xa6, 0xf1, 0xa3, 0xa9, 0xa7, 0x26, - 0xfd, 0x68, 0xe6, 0x7c, 0x6d, 0x1c, 0x2d, 0x3f, 0x0a, 0xbf, 0x80, 0x66, 0x6e, 0x22, 0x23, 0xef, - 0x68, 0xe4, 0xe5, 0x83, 0xac, 0xed, 0xcc, 0x23, 0x41, 0xc9, 0x13, 0xe8, 0xcc, 0x6a, 0x0b, 0xc8, - 0x87, 0xe5, 0x55, 0xb8, 0x2c, 0xf7, 0xda, 0x1f, 0x9d, 0x8b, 0x56, 0x6e, 0x7a, 0xa7, 0x42, 0x22, - 0xd6, 0x24, 0x96, 0xd6, 0x14, 0x72, 0xfb, 0x1c, 0x65, 0x47, 0x6e, 0xf9, 0xc1, 0xb9, 0x0b, 0x14, - 0xdb, 0x30, 0xc8, 0x9e, 0x68, 0x8d, 0xed, 0x6e, 0x95, 0xb8, 0x40, 0xd9, 0x66, 0xef, 0x9f, 0x49, - 0x37, 0xdd, 0xea, 0x67, 0xd0, 0xca, 0x4f, 0x71, 0xc4, 0x39, 0x7b, 0xe8, 0xb4, 0x6f, 0xce, 0xa5, - 0xc9, 0x9c, 0xdc, 0x78, 0xc7, 0x33, 0x9c, 0xbc, 0xec, 0xed, 0xd0, 0x70, 0xf2, 0xd2, 0x27, 0x40, - 0xf2, 0x18, 0xaa, 0xda, 0x4b, 0x1d, 0xd9, 0xce, 0xbf, 0x9d, 0x99, 0xf2, 0xae, 0xcd, 0x5a, 0xce, - 0x49, 0xc3, 0x6c, 0xb7, 0x3d, 0xf7, 0x25, 0xae, 0x28, 0x2d, 0xf7, 0xa6, 0xc6, 0x8c, 0x99, 0x7f, - 0xa3, 0x32, 0x8c, 0x39, 0xe3, 0x55, 0xcd, 0x30, 0xe6, 0xac, 0x47, 0x2e, 0x1e, 0x56, 0xb9, 0x89, - 0xd0, 0x08, 0xab, 0xf2, 0x71, 0xdb, 0x08, 0xab, 0x59, 0xe3, 0x28, 0x93, 0x9c, 0x1b, 0x37, 0x0c, - 0xc9, 0xe5, 0x03, 0x92, 0x21, 0x79, 0xd6, 0xb4, 0xe2, 0x01, 0x29, 0x4e, 0x02, 0x44, 0xff, 0x0f, - 0x6c, 0xe6, 0xd0, 0x61, 0xbf, 0x77, 0x06, 0x15, 0x66, 0xf5, 0xbf, 0x59, 0xaa, 0x5c, 0x3e, 0x8e, - 0x3c, 0xd6, 0xc3, 0xa9, 0xdc, 0xfe, 0x04, 0x6a, 0x7a, 0xb9, 0x24, 0xfa, 0xdd, 0x95, 0x94, 0x57, - 0xfb, 0xfa, 0xcc, 0x75, 0x3c, 0x0b, 0x13, 0xa8, 0xf7, 0x0c, 0x86, 0xc0, 0x92, 0x9e, 0xc6, 0x10, - 0x58, 0xd6, 0x6c, 0x90, 0x2e, 0x40, 0xd6, 0x2a, 0x90, 0xab, 0x1a, 0x79, 0xa1, 0x07, 0xb1, 0xb7, - 0x67, 0xac, 0x66, 0x6e, 0xac, 0x75, 0x12, 0x86, 0x1b, 0x17, 0xfb, 0x0e, 0xc3, 0x8d, 0x4b, 0x1a, - 0x10, 0xf2, 0x0b, 0x68, 0x17, 0x2a, 0x33, 0xd1, 0x7d, 0x74, 0x56, 0x5b, 0x61, 0xbf, 0x3b, 0x9f, - 0x48, 0xca, 0x3f, 0x5c, 0x16, 0x7f, 0x43, 0x7f, 0xfb, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x22, - 0xfc, 0x70, 0xb3, 0x93, 0x1e, 0x00, 0x00, -} From 6b83fddb3e7cdff7bf69d13599a1588c90739096 Mon Sep 17 00:00:00 2001 From: Mohamed Awnallah Date: Tue, 19 Aug 2025 02:12:54 +0000 Subject: [PATCH 4/6] Makefile: introduce `rpc-check` PHONY target --- Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Makefile b/Makefile index fc1bd48845..f1d8784b51 100644 --- a/Makefile +++ b/Makefile @@ -136,6 +136,11 @@ rpc: @$(call print, "Compiling protos.") cd ./rpc; ./gen_protos_docker.sh +#? rpc-check: Make sure protobuf definitions are up to date +rpc-check: rpc + @$(call print, "Verifying protos.") + if test -n "$$(git status --porcelain rpc/walletrpc/)"; then echo "Generated protobuf files are not up-to-date. Please run 'make rpc' and commit the changes."; git status; git diff rpc/walletrpc/; exit 1; fi + #? clean: Clean source clean: @$(call print, "Cleaning source.$(NC)") @@ -161,6 +166,7 @@ tidy-module-check: tidy-module fmt-check \ lint \ rpc \ + rpc-check \ clean #? help: Get more info on make commands From b668d3e64d418d73f81a4b76c3176ef0473c1f0c Mon Sep 17 00:00:00 2001 From: Mohamed Awnallah Date: Tue, 19 Aug 2025 02:38:18 +0000 Subject: [PATCH 5/6] Makefile: ignore capturing protobuf files in `GOFILES_NOVENDOR` before adding `make rpc-check` to CI workflow, make sure we ignore capturing protobuf generated files so they don't conflict with `make fmt` and endup fail in the CI --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f1d8784b51..e4c5f6c027 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ GOTEST := GO111MODULE=on go test GOLIST := go list -deps $(PKG)/... | grep '$(PKG)' GOLIST_COVER := $$(go list -deps $(PKG)/... | grep '$(PKG)') -GOFILES_NOVENDOR = $(shell find . -type f -name '*.go' -not -path "./vendor/*") +GOFILES_NOVENDOR = $(shell find . -type f -name '*.go' -not -path "./vendor/*" -not -name "*.pb.go") RM := rm -f CP := cp From 96624325c48d93f7e3d3c33041c3c364a99586b5 Mon Sep 17 00:00:00 2001 From: Mohamed Awnallah Date: Tue, 19 Aug 2025 02:16:40 +0000 Subject: [PATCH 6/6] workflows: use `make rpc-check` in CI --- .github/workflows/main.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1d9260826d..0d1bf2bbaa 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -48,6 +48,9 @@ jobs: - name: Check code format run: make fmt-check + - name: Check RPC format + run: make rpc-check + - name: compile code run: go install -v ./...