diff --git a/.changeset/add-llo-capabilities.md b/.changeset/add-llo-capabilities.md new file mode 100644 index 0000000..20ddeec --- /dev/null +++ b/.changeset/add-llo-capabilities.md @@ -0,0 +1,14 @@ +--- +"@smartcontractkit/chainlink-protos": minor +--- + +Add Streams LLO Trigger NoDAG API + +Migrates the existing Streams LLO Trigger to the NoDAG capability API. +This replaces the legacy RegisterTrigger/UnregisterTrigger API with a +proto-based streaming RPC pattern. + +- Add Streams Trigger capability proto (streams/v1/trigger.proto) +- Defines Config message for stream subscription configuration +- Defines Report message matching existing OCRTriggerEvent structure +- Support for Data Feeds migration to CRE DON-to-DON architecture diff --git a/.changeset/seven-cloths-hammer.md b/.changeset/seven-cloths-hammer.md deleted file mode 100644 index ec6c0c4..0000000 --- a/.changeset/seven-cloths-hammer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@chainlink/chainlink-ccv": major ---- - -Rename BlockCheckpoint to ChainStatus APIs diff --git a/.changeset/stupid-ghosts-wish.md b/.changeset/stupid-ghosts-wish.md deleted file mode 100644 index 955b430..0000000 --- a/.changeset/stupid-ghosts-wish.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@chainlink/chainlink-ccv": major ---- - -Add receipt blob to GetMessageSince diff --git a/.github/workflows/regenerate-protobuf.yml b/.github/workflows/regenerate-protobuf.yml index 2494a53..71ef127 100644 --- a/.github/workflows/regenerate-protobuf.yml +++ b/.github/workflows/regenerate-protobuf.yml @@ -167,6 +167,11 @@ jobs: run: | asdf install protoc + - name: Install buf + if: github.actor != 'app-token-issuer-engops[bot]' + run: | + asdf install buf + - name: Regenerate protobuf files if: github.actor != 'app-token-issuer-engops[bot]' run: | diff --git a/chainlink-ccv/CHANGELOG.md b/chainlink-ccv/CHANGELOG.md deleted file mode 100644 index 3b76f2a..0000000 --- a/chainlink-ccv/CHANGELOG.md +++ /dev/null @@ -1,13 +0,0 @@ -# @chainlink/chainlink-ccv - -## 2.0.0 - -### Major Changes - -- [#216](https://github.com/smartcontractkit/chainlink-protos/pull/216) [`215666b`](https://github.com/smartcontractkit/chainlink-protos/commit/215666be531878f25176de9c3ce32bfac3bb7184) Thanks [@carte7000](https://github.com/carte7000)! - Rename CCVData API to VeriferResult API - -## 1.0.0 - -### Major Changes - -- [#182](https://github.com/smartcontractkit/chainlink-protos/pull/182) [`7b87b14`](https://github.com/smartcontractkit/chainlink-protos/commit/7b87b14901ab976e6f61e0f7630e9cfd4523d1a8) Thanks [@carte7000](https://github.com/carte7000)! - Add chainlink CCV aggregator proto diff --git a/chainlink-ccv/buf.gen.yaml b/chainlink-ccv/buf.gen.yaml new file mode 100644 index 0000000..1616f0b --- /dev/null +++ b/chainlink-ccv/buf.gen.yaml @@ -0,0 +1,9 @@ +version: v2 +plugins: + - local: protoc-gen-go + out: . + opt: paths=source_relative + - local: protoc-gen-go-grpc + out: . + opt: paths=source_relative + diff --git a/chainlink-ccv/buf.lock b/chainlink-ccv/buf.lock new file mode 100644 index 0000000..5df8acd --- /dev/null +++ b/chainlink-ccv/buf.lock @@ -0,0 +1,6 @@ +# Generated by buf. DO NOT EDIT. +version: v2 +deps: + - name: buf.build/googleapis/googleapis + commit: 004180b77378443887d3b55cabc00384 + digest: b5:e8f475fe3330f31f5fd86ac689093bcd274e19611a09db91f41d637cb9197881ce89882b94d13a58738e53c91c6e4bae7dc1feba85f590164c975a89e25115dc diff --git a/chainlink-ccv/buf.yaml b/chainlink-ccv/buf.yaml new file mode 100644 index 0000000..d16953b --- /dev/null +++ b/chainlink-ccv/buf.yaml @@ -0,0 +1,12 @@ +version: v2 +deps: + - buf.build/googleapis/googleapis +lint: + except: + - PACKAGE_DIRECTORY_MATCH + - FILE_LOWER_SNAKE_CASE + - SERVICE_SUFFIX + - ENUM_VALUE_PREFIX + - ENUM_ZERO_VALUE_SUFFIX + - FIELD_LOWER_SNAKE_CASE + diff --git a/chainlink-ccv/committee-verifier/CHANGELOG.md b/chainlink-ccv/committee-verifier/CHANGELOG.md new file mode 100644 index 0000000..6fa8b12 --- /dev/null +++ b/chainlink-ccv/committee-verifier/CHANGELOG.md @@ -0,0 +1,9 @@ +# @chainlink/ccv-committee-verifier + +## 0.1.1 + +### Patch Changes + +- [#250](https://github.com/smartcontractkit/chainlink-protos/pull/250) [`5c3421f`](https://github.com/smartcontractkit/chainlink-protos/commit/5c3421fe2c8dcbaff5e01317487d475e4a4f382f) Thanks [@carte7000](https://github.com/carte7000)! - Remove replace in go.mod + +- [#248](https://github.com/smartcontractkit/chainlink-protos/pull/248) [`56ac2cd`](https://github.com/smartcontractkit/chainlink-protos/commit/56ac2cd48cde80fb4693de5fc3007075fff2e1cb) Thanks [@carte7000](https://github.com/carte7000)! - Split package for chainlink-ccv between committee-verifier, verifier and message-discovery diff --git a/chainlink-ccv/committee-verifier/go.mod b/chainlink-ccv/committee-verifier/go.mod new file mode 100644 index 0000000..525ea18 --- /dev/null +++ b/chainlink-ccv/committee-verifier/go.mod @@ -0,0 +1,16 @@ +module github.com/smartcontractkit/chainlink-protos/chainlink-ccv/committee-verifier + +go 1.23.0 + +require ( + github.com/smartcontractkit/chainlink-protos/chainlink-ccv/verifier v0.0.0-20251210213124-585855c1471e + google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 + google.golang.org/grpc v1.75.0 + google.golang.org/protobuf v1.36.8 +) + +require ( + golang.org/x/net v0.41.0 // indirect + golang.org/x/sys v0.33.0 // indirect + golang.org/x/text v0.26.0 // indirect +) diff --git a/chainlink-ccv/committee-verifier/go.sum b/chainlink-ccv/committee-verifier/go.sum new file mode 100644 index 0000000..64f95cb --- /dev/null +++ b/chainlink-ccv/committee-verifier/go.sum @@ -0,0 +1,38 @@ +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/smartcontractkit/chainlink-protos/chainlink-ccv/verifier v0.0.0-20251210213124-585855c1471e h1:r/bI4cJnDYeCHj4ejWDqpUJ8+Ho1XXgwVd0ZVbEtT3A= +github.com/smartcontractkit/chainlink-protos/chainlink-ccv/verifier v0.0.0-20251210213124-585855c1471e/go.mod h1:5JdppgngCOUS76p61zCinSCgOhPeYQ+OcDUuome5THQ= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/otel v1.37.0 h1:9zhNfelUvx0KBfu/gb+ZgeAfAgtWrfHJZcAqFC228wQ= +go.opentelemetry.io/otel v1.37.0/go.mod h1:ehE/umFRLnuLa/vSccNq9oS1ErUlkkK71gMcN34UG8I= +go.opentelemetry.io/otel/metric v1.37.0 h1:mvwbQS5m0tbmqML4NqK+e3aDiO02vsf/WgbsdpcPoZE= +go.opentelemetry.io/otel/metric v1.37.0/go.mod h1:04wGrZurHYKOc+RKeye86GwKiTb9FKm1WHtO+4EVr2E= +go.opentelemetry.io/otel/sdk v1.37.0 h1:ItB0QUqnjesGRvNcmAcU0LyvkVyGJ2xftD29bWdDvKI= +go.opentelemetry.io/otel/sdk v1.37.0/go.mod h1:VredYzxUvuo2q3WRcDnKDjbdvmO0sCzOvVAiY+yUkAg= +go.opentelemetry.io/otel/sdk/metric v1.37.0 h1:90lI228XrB9jCMuSdA0673aubgRobVZFhbjxHHspCPc= +go.opentelemetry.io/otel/sdk/metric v1.37.0/go.mod h1:cNen4ZWfiD37l5NhS+Keb5RXVWZWpRE+9WyVCpbo5ps= +go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4= +go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0= +golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw= +golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= +golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= +gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= +gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 h1:pFyd6EwwL2TqFf8emdthzeX+gZE1ElRq3iM8pui4KBY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4= +google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= +google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= +google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= diff --git a/chainlink-ccv/committee-verifier/package.json b/chainlink-ccv/committee-verifier/package.json new file mode 100644 index 0000000..c7a4976 --- /dev/null +++ b/chainlink-ccv/committee-verifier/package.json @@ -0,0 +1,5 @@ +{ + "name": "@chainlink/ccv-committee-verifier", + "version": "0.1.1", + "private": true +} diff --git a/chainlink-ccv/go/v1/committee-verifier.pb.go b/chainlink-ccv/committee-verifier/v1/committee-verifier.pb.go similarity index 55% rename from chainlink-ccv/go/v1/committee-verifier.pb.go rename to chainlink-ccv/committee-verifier/v1/committee-verifier.pb.go index c4ba5a0..680b72e 100644 --- a/chainlink-ccv/go/v1/committee-verifier.pb.go +++ b/chainlink-ccv/committee-verifier/v1/committee-verifier.pb.go @@ -1,12 +1,13 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.8 -// protoc v6.32.0 -// source: chainlink-ccv/v1/committee-verifier.proto +// protoc-gen-go v1.36.6 +// protoc (unknown) +// source: committee-verifier/v1/committee-verifier.proto package v1 import ( + v1 "github.com/smartcontractkit/chainlink-protos/chainlink-ccv/verifier/v1" status "google.golang.org/genproto/googleapis/rpc/status" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -22,6 +23,52 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type WriteStatus int32 + +const ( + WriteStatus_SUCCESS WriteStatus = 0 + WriteStatus_FAILED WriteStatus = 1 +) + +// Enum value maps for WriteStatus. +var ( + WriteStatus_name = map[int32]string{ + 0: "SUCCESS", + 1: "FAILED", + } + WriteStatus_value = map[string]int32{ + "SUCCESS": 0, + "FAILED": 1, + } +) + +func (x WriteStatus) Enum() *WriteStatus { + p := new(WriteStatus) + *p = x + return p +} + +func (x WriteStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WriteStatus) Descriptor() protoreflect.EnumDescriptor { + return file_committee_verifier_v1_committee_verifier_proto_enumTypes[0].Descriptor() +} + +func (WriteStatus) Type() protoreflect.EnumType { + return &file_committee_verifier_v1_committee_verifier_proto_enumTypes[0] +} + +func (x WriteStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WriteStatus.Descriptor instead. +func (WriteStatus) EnumDescriptor() ([]byte, []int) { + return file_committee_verifier_v1_committee_verifier_proto_rawDescGZIP(), []int{0} +} + type ChainStatus struct { state protoimpl.MessageState `protogen:"open.v1"` ChainSelector uint64 `protobuf:"varint,1,opt,name=chain_selector,json=chainSelector,proto3" json:"chain_selector,omitempty"` @@ -33,7 +80,7 @@ type ChainStatus struct { func (x *ChainStatus) Reset() { *x = ChainStatus{} - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[0] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45,7 +92,7 @@ func (x *ChainStatus) String() string { func (*ChainStatus) ProtoMessage() {} func (x *ChainStatus) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[0] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58,7 +105,7 @@ func (x *ChainStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use ChainStatus.ProtoReflect.Descriptor instead. func (*ChainStatus) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_committee_verifier_proto_rawDescGZIP(), []int{0} + return file_committee_verifier_v1_committee_verifier_proto_rawDescGZIP(), []int{0} } func (x *ChainStatus) GetChainSelector() uint64 { @@ -85,7 +132,7 @@ func (x *ChainStatus) GetDisabled() bool { type CommitteeVerifierNodeResult struct { state protoimpl.MessageState `protogen:"open.v1"` // Message data that the CCV node attests to - Message *Message `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + Message *v1.Message `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` // Version of the CCV found from the receipt blob on the source chain CcvVersion []byte `protobuf:"bytes,2,opt,name=ccv_version,json=ccvVersion,proto3" json:"ccv_version,omitempty"` // Addresses of the CCV specified for this message @@ -100,7 +147,7 @@ type CommitteeVerifierNodeResult struct { func (x *CommitteeVerifierNodeResult) Reset() { *x = CommitteeVerifierNodeResult{} - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[1] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -112,7 +159,7 @@ func (x *CommitteeVerifierNodeResult) String() string { func (*CommitteeVerifierNodeResult) ProtoMessage() {} func (x *CommitteeVerifierNodeResult) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[1] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -125,10 +172,10 @@ func (x *CommitteeVerifierNodeResult) ProtoReflect() protoreflect.Message { // Deprecated: Use CommitteeVerifierNodeResult.ProtoReflect.Descriptor instead. func (*CommitteeVerifierNodeResult) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_committee_verifier_proto_rawDescGZIP(), []int{1} + return file_committee_verifier_v1_committee_verifier_proto_rawDescGZIP(), []int{1} } -func (x *CommitteeVerifierNodeResult) GetMessage() *Message { +func (x *CommitteeVerifierNodeResult) GetMessage() *v1.Message { if x != nil { return x.Message } @@ -172,7 +219,7 @@ type WriteChainStatusRequest struct { func (x *WriteChainStatusRequest) Reset() { *x = WriteChainStatusRequest{} - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[2] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -184,7 +231,7 @@ func (x *WriteChainStatusRequest) String() string { func (*WriteChainStatusRequest) ProtoMessage() {} func (x *WriteChainStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[2] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -197,7 +244,7 @@ func (x *WriteChainStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WriteChainStatusRequest.ProtoReflect.Descriptor instead. func (*WriteChainStatusRequest) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_committee_verifier_proto_rawDescGZIP(), []int{2} + return file_committee_verifier_v1_committee_verifier_proto_rawDescGZIP(), []int{2} } func (x *WriteChainStatusRequest) GetStatuses() []*ChainStatus { @@ -209,14 +256,14 @@ func (x *WriteChainStatusRequest) GetStatuses() []*ChainStatus { type WriteChainStatusResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - Status WriteStatus `protobuf:"varint,1,opt,name=status,proto3,enum=chainlink_ccv.v1.WriteStatus" json:"status,omitempty"` + Status WriteStatus `protobuf:"varint,1,opt,name=status,proto3,enum=chainlink_ccv.committee_verifier.v1.WriteStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *WriteChainStatusResponse) Reset() { *x = WriteChainStatusResponse{} - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[3] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -228,7 +275,7 @@ func (x *WriteChainStatusResponse) String() string { func (*WriteChainStatusResponse) ProtoMessage() {} func (x *WriteChainStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[3] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -241,7 +288,7 @@ func (x *WriteChainStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WriteChainStatusResponse.ProtoReflect.Descriptor instead. func (*WriteChainStatusResponse) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_committee_verifier_proto_rawDescGZIP(), []int{3} + return file_committee_verifier_v1_committee_verifier_proto_rawDescGZIP(), []int{3} } func (x *WriteChainStatusResponse) GetStatus() WriteStatus { @@ -260,7 +307,7 @@ type ReadChainStatusRequest struct { func (x *ReadChainStatusRequest) Reset() { *x = ReadChainStatusRequest{} - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[4] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -272,7 +319,7 @@ func (x *ReadChainStatusRequest) String() string { func (*ReadChainStatusRequest) ProtoMessage() {} func (x *ReadChainStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[4] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -285,7 +332,7 @@ func (x *ReadChainStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadChainStatusRequest.ProtoReflect.Descriptor instead. func (*ReadChainStatusRequest) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_committee_verifier_proto_rawDescGZIP(), []int{4} + return file_committee_verifier_v1_committee_verifier_proto_rawDescGZIP(), []int{4} } func (x *ReadChainStatusRequest) GetChainSelectors() []uint64 { @@ -304,7 +351,7 @@ type ReadChainStatusResponse struct { func (x *ReadChainStatusResponse) Reset() { *x = ReadChainStatusResponse{} - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[5] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -316,7 +363,7 @@ func (x *ReadChainStatusResponse) String() string { func (*ReadChainStatusResponse) ProtoMessage() {} func (x *ReadChainStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[5] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -329,7 +376,7 @@ func (x *ReadChainStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadChainStatusResponse.ProtoReflect.Descriptor instead. func (*ReadChainStatusResponse) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_committee_verifier_proto_rawDescGZIP(), []int{5} + return file_committee_verifier_v1_committee_verifier_proto_rawDescGZIP(), []int{5} } func (x *ReadChainStatusResponse) GetStatuses() []*ChainStatus { @@ -348,7 +395,7 @@ type BatchWriteCommitteeVerifierNodeResultRequest struct { func (x *BatchWriteCommitteeVerifierNodeResultRequest) Reset() { *x = BatchWriteCommitteeVerifierNodeResultRequest{} - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[6] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -360,7 +407,7 @@ func (x *BatchWriteCommitteeVerifierNodeResultRequest) String() string { func (*BatchWriteCommitteeVerifierNodeResultRequest) ProtoMessage() {} func (x *BatchWriteCommitteeVerifierNodeResultRequest) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[6] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -373,7 +420,7 @@ func (x *BatchWriteCommitteeVerifierNodeResultRequest) ProtoReflect() protorefle // Deprecated: Use BatchWriteCommitteeVerifierNodeResultRequest.ProtoReflect.Descriptor instead. func (*BatchWriteCommitteeVerifierNodeResultRequest) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_committee_verifier_proto_rawDescGZIP(), []int{6} + return file_committee_verifier_v1_committee_verifier_proto_rawDescGZIP(), []int{6} } func (x *BatchWriteCommitteeVerifierNodeResultRequest) GetRequests() []*WriteCommitteeVerifierNodeResultRequest { @@ -393,7 +440,7 @@ type BatchWriteCommitteeVerifierNodeResultResponse struct { func (x *BatchWriteCommitteeVerifierNodeResultResponse) Reset() { *x = BatchWriteCommitteeVerifierNodeResultResponse{} - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[7] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -405,7 +452,7 @@ func (x *BatchWriteCommitteeVerifierNodeResultResponse) String() string { func (*BatchWriteCommitteeVerifierNodeResultResponse) ProtoMessage() {} func (x *BatchWriteCommitteeVerifierNodeResultResponse) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[7] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -418,7 +465,7 @@ func (x *BatchWriteCommitteeVerifierNodeResultResponse) ProtoReflect() protorefl // Deprecated: Use BatchWriteCommitteeVerifierNodeResultResponse.ProtoReflect.Descriptor instead. func (*BatchWriteCommitteeVerifierNodeResultResponse) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_committee_verifier_proto_rawDescGZIP(), []int{7} + return file_committee_verifier_v1_committee_verifier_proto_rawDescGZIP(), []int{7} } func (x *BatchWriteCommitteeVerifierNodeResultResponse) GetResponses() []*WriteCommitteeVerifierNodeResultResponse { @@ -444,7 +491,7 @@ type WriteCommitteeVerifierNodeResultRequest struct { func (x *WriteCommitteeVerifierNodeResultRequest) Reset() { *x = WriteCommitteeVerifierNodeResultRequest{} - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[8] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -456,7 +503,7 @@ func (x *WriteCommitteeVerifierNodeResultRequest) String() string { func (*WriteCommitteeVerifierNodeResultRequest) ProtoMessage() {} func (x *WriteCommitteeVerifierNodeResultRequest) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[8] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -469,7 +516,7 @@ func (x *WriteCommitteeVerifierNodeResultRequest) ProtoReflect() protoreflect.Me // Deprecated: Use WriteCommitteeVerifierNodeResultRequest.ProtoReflect.Descriptor instead. func (*WriteCommitteeVerifierNodeResultRequest) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_committee_verifier_proto_rawDescGZIP(), []int{8} + return file_committee_verifier_v1_committee_verifier_proto_rawDescGZIP(), []int{8} } func (x *WriteCommitteeVerifierNodeResultRequest) GetCommitteeVerifierNodeResult() *CommitteeVerifierNodeResult { @@ -481,14 +528,14 @@ func (x *WriteCommitteeVerifierNodeResultRequest) GetCommitteeVerifierNodeResult type WriteCommitteeVerifierNodeResultResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - Status WriteStatus `protobuf:"varint,1,opt,name=status,proto3,enum=chainlink_ccv.v1.WriteStatus" json:"status,omitempty"` + Status WriteStatus `protobuf:"varint,1,opt,name=status,proto3,enum=chainlink_ccv.committee_verifier.v1.WriteStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *WriteCommitteeVerifierNodeResultResponse) Reset() { *x = WriteCommitteeVerifierNodeResultResponse{} - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[9] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -500,7 +547,7 @@ func (x *WriteCommitteeVerifierNodeResultResponse) String() string { func (*WriteCommitteeVerifierNodeResultResponse) ProtoMessage() {} func (x *WriteCommitteeVerifierNodeResultResponse) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[9] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -513,7 +560,7 @@ func (x *WriteCommitteeVerifierNodeResultResponse) ProtoReflect() protoreflect.M // Deprecated: Use WriteCommitteeVerifierNodeResultResponse.ProtoReflect.Descriptor instead. func (*WriteCommitteeVerifierNodeResultResponse) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_committee_verifier_proto_rawDescGZIP(), []int{9} + return file_committee_verifier_v1_committee_verifier_proto_rawDescGZIP(), []int{9} } func (x *WriteCommitteeVerifierNodeResultResponse) GetStatus() WriteStatus { @@ -533,7 +580,7 @@ type ReadCommitteeVerifierNodeResultRequest struct { func (x *ReadCommitteeVerifierNodeResultRequest) Reset() { *x = ReadCommitteeVerifierNodeResultRequest{} - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[10] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -545,7 +592,7 @@ func (x *ReadCommitteeVerifierNodeResultRequest) String() string { func (*ReadCommitteeVerifierNodeResultRequest) ProtoMessage() {} func (x *ReadCommitteeVerifierNodeResultRequest) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[10] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -558,7 +605,7 @@ func (x *ReadCommitteeVerifierNodeResultRequest) ProtoReflect() protoreflect.Mes // Deprecated: Use ReadCommitteeVerifierNodeResultRequest.ProtoReflect.Descriptor instead. func (*ReadCommitteeVerifierNodeResultRequest) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_committee_verifier_proto_rawDescGZIP(), []int{10} + return file_committee_verifier_v1_committee_verifier_proto_rawDescGZIP(), []int{10} } func (x *ReadCommitteeVerifierNodeResultRequest) GetMessageId() []byte { @@ -584,7 +631,7 @@ type ReadCommitteeVerifierNodeResultResponse struct { func (x *ReadCommitteeVerifierNodeResultResponse) Reset() { *x = ReadCommitteeVerifierNodeResultResponse{} - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[11] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -596,7 +643,7 @@ func (x *ReadCommitteeVerifierNodeResultResponse) String() string { func (*ReadCommitteeVerifierNodeResultResponse) ProtoMessage() {} func (x *ReadCommitteeVerifierNodeResultResponse) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_committee_verifier_proto_msgTypes[11] + mi := &file_committee_verifier_v1_committee_verifier_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -609,7 +656,7 @@ func (x *ReadCommitteeVerifierNodeResultResponse) ProtoReflect() protoreflect.Me // Deprecated: Use ReadCommitteeVerifierNodeResultResponse.ProtoReflect.Descriptor instead. func (*ReadCommitteeVerifierNodeResultResponse) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_committee_verifier_proto_rawDescGZIP(), []int{11} + return file_committee_verifier_v1_committee_verifier_proto_rawDescGZIP(), []int{11} } func (x *ReadCommitteeVerifierNodeResultResponse) GetCommitteeVerifierNodeResult() *CommitteeVerifierNodeResult { @@ -619,103 +666,108 @@ func (x *ReadCommitteeVerifierNodeResultResponse) GetCommitteeVerifierNodeResult return nil } -var File_chainlink_ccv_v1_committee_verifier_proto protoreflect.FileDescriptor +var File_committee_verifier_v1_committee_verifier_proto protoreflect.FileDescriptor -const file_chainlink_ccv_v1_committee_verifier_proto_rawDesc = "" + +const file_committee_verifier_v1_committee_verifier_proto_rawDesc = "" + "\n" + - ")chainlink-ccv/v1/committee-verifier.proto\x12\x10chainlink_ccv.v1\x1a\x1dchainlink-ccv/v1/common.proto\x1a\x17google/rpc/status.proto\"\x86\x01\n" + + ".committee-verifier/v1/committee-verifier.proto\x12#chainlink_ccv.committee_verifier.v1\x1a\x1averifier/v1/verifier.proto\x1a\x17google/rpc/status.proto\"\x86\x01\n" + "\vChainStatus\x12%\n" + "\x0echain_selector\x18\x01 \x01(\x04R\rchainSelector\x124\n" + "\x16finalized_block_height\x18\x02 \x01(\x04R\x14finalizedBlockHeight\x12\x1a\n" + - "\bdisabled\x18\x03 \x01(\bR\bdisabled\"\xe1\x01\n" + - "\x1bCommitteeVerifierNodeResult\x123\n" + - "\amessage\x18\x01 \x01(\v2\x19.chainlink_ccv.v1.MessageR\amessage\x12\x1f\n" + + "\bdisabled\x18\x03 \x01(\bR\bdisabled\"\xea\x01\n" + + "\x1bCommitteeVerifierNodeResult\x12<\n" + + "\amessage\x18\x01 \x01(\v2\".chainlink_ccv.verifier.v1.MessageR\amessage\x12\x1f\n" + "\vccv_version\x18\x02 \x01(\fR\n" + "ccvVersion\x12#\n" + "\rccv_addresses\x18\x03 \x03(\fR\fccvAddresses\x12)\n" + "\x10executor_address\x18\x04 \x01(\fR\x0fexecutorAddress\x12\x1c\n" + - "\tsignature\x18\x05 \x01(\fR\tsignature\"T\n" + - "\x17WriteChainStatusRequest\x129\n" + - "\bstatuses\x18\x01 \x03(\v2\x1d.chainlink_ccv.v1.ChainStatusR\bstatuses\"Q\n" + - "\x18WriteChainStatusResponse\x125\n" + - "\x06status\x18\x01 \x01(\x0e2\x1d.chainlink_ccv.v1.WriteStatusR\x06status\"A\n" + + "\tsignature\x18\x05 \x01(\fR\tsignature\"g\n" + + "\x17WriteChainStatusRequest\x12L\n" + + "\bstatuses\x18\x01 \x03(\v20.chainlink_ccv.committee_verifier.v1.ChainStatusR\bstatuses\"d\n" + + "\x18WriteChainStatusResponse\x12H\n" + + "\x06status\x18\x01 \x01(\x0e20.chainlink_ccv.committee_verifier.v1.WriteStatusR\x06status\"A\n" + "\x16ReadChainStatusRequest\x12'\n" + - "\x0fchain_selectors\x18\x01 \x03(\x04R\x0echainSelectors\"T\n" + - "\x17ReadChainStatusResponse\x129\n" + - "\bstatuses\x18\x01 \x03(\v2\x1d.chainlink_ccv.v1.ChainStatusR\bstatuses\"\x85\x01\n" + - ",BatchWriteCommitteeVerifierNodeResultRequest\x12U\n" + - "\brequests\x18\x01 \x03(\v29.chainlink_ccv.v1.WriteCommitteeVerifierNodeResultRequestR\brequests\"\xb5\x01\n" + - "-BatchWriteCommitteeVerifierNodeResultResponse\x12X\n" + - "\tresponses\x18\x01 \x03(\v2:.chainlink_ccv.v1.WriteCommitteeVerifierNodeResultResponseR\tresponses\x12*\n" + - "\x06errors\x18\x02 \x03(\v2\x12.google.rpc.StatusR\x06errors\"\x9d\x01\n" + - "'WriteCommitteeVerifierNodeResultRequest\x12r\n" + - "\x1ecommittee_verifier_node_result\x18\x01 \x01(\v2-.chainlink_ccv.v1.CommitteeVerifierNodeResultR\x1bcommitteeVerifierNodeResult\"a\n" + - "(WriteCommitteeVerifierNodeResultResponse\x125\n" + - "\x06status\x18\x01 \x01(\x0e2\x1d.chainlink_ccv.v1.WriteStatusR\x06status\"a\n" + + "\x0fchain_selectors\x18\x01 \x03(\x04R\x0echainSelectors\"g\n" + + "\x17ReadChainStatusResponse\x12L\n" + + "\bstatuses\x18\x01 \x03(\v20.chainlink_ccv.committee_verifier.v1.ChainStatusR\bstatuses\"\x98\x01\n" + + ",BatchWriteCommitteeVerifierNodeResultRequest\x12h\n" + + "\brequests\x18\x01 \x03(\v2L.chainlink_ccv.committee_verifier.v1.WriteCommitteeVerifierNodeResultRequestR\brequests\"\xc8\x01\n" + + "-BatchWriteCommitteeVerifierNodeResultResponse\x12k\n" + + "\tresponses\x18\x01 \x03(\v2M.chainlink_ccv.committee_verifier.v1.WriteCommitteeVerifierNodeResultResponseR\tresponses\x12*\n" + + "\x06errors\x18\x02 \x03(\v2\x12.google.rpc.StatusR\x06errors\"\xb1\x01\n" + + "'WriteCommitteeVerifierNodeResultRequest\x12\x85\x01\n" + + "\x1ecommittee_verifier_node_result\x18\x01 \x01(\v2@.chainlink_ccv.committee_verifier.v1.CommitteeVerifierNodeResultR\x1bcommitteeVerifierNodeResult\"t\n" + + "(WriteCommitteeVerifierNodeResultResponse\x12H\n" + + "\x06status\x18\x01 \x01(\x0e20.chainlink_ccv.committee_verifier.v1.WriteStatusR\x06status\"a\n" + "&ReadCommitteeVerifierNodeResultRequest\x12\x1d\n" + "\n" + "message_id\x18\x01 \x01(\fR\tmessageId\x12\x18\n" + - "\aaddress\x18\x02 \x01(\fR\aaddress\"\x9d\x01\n" + - "'ReadCommitteeVerifierNodeResultResponse\x12r\n" + - "\x1ecommittee_verifier_node_result\x18\x01 \x01(\v2-.chainlink_ccv.v1.CommitteeVerifierNodeResultR\x1bcommitteeVerifierNodeResult2\xc6\x05\n" + - "\x11CommitteeVerifier\x12\x99\x01\n" + - " WriteCommitteeVerifierNodeResult\x129.chainlink_ccv.v1.WriteCommitteeVerifierNodeResultRequest\x1a:.chainlink_ccv.v1.WriteCommitteeVerifierNodeResultResponse\x12\xa8\x01\n" + - "%BatchWriteCommitteeVerifierNodeResult\x12>.chainlink_ccv.v1.BatchWriteCommitteeVerifierNodeResultRequest\x1a?.chainlink_ccv.v1.BatchWriteCommitteeVerifierNodeResultResponse\x12\x96\x01\n" + - "\x1fReadCommitteeVerifierNodeResult\x128.chainlink_ccv.v1.ReadCommitteeVerifierNodeResultRequest\x1a9.chainlink_ccv.v1.ReadCommitteeVerifierNodeResultResponse\x12i\n" + - "\x10WriteChainStatus\x12).chainlink_ccv.v1.WriteChainStatusRequest\x1a*.chainlink_ccv.v1.WriteChainStatusResponse\x12f\n" + - "\x0fReadChainStatus\x12(.chainlink_ccv.v1.ReadChainStatusRequest\x1a).chainlink_ccv.v1.ReadChainStatusResponseBBZ@github.com/smartcontractkit/chainlink-protos/chainlink-ccv/go/v1b\x06proto3" + "\aaddress\x18\x02 \x01(\fR\aaddress\"\xb1\x01\n" + + "'ReadCommitteeVerifierNodeResultResponse\x12\x85\x01\n" + + "\x1ecommittee_verifier_node_result\x18\x01 \x01(\v2@.chainlink_ccv.committee_verifier.v1.CommitteeVerifierNodeResultR\x1bcommitteeVerifierNodeResult*&\n" + + "\vWriteStatus\x12\v\n" + + "\aSUCCESS\x10\x00\x12\n" + + "\n" + + "\x06FAILED\x10\x012\x86\a\n" + + "\x11CommitteeVerifier\x12\xbf\x01\n" + + " WriteCommitteeVerifierNodeResult\x12L.chainlink_ccv.committee_verifier.v1.WriteCommitteeVerifierNodeResultRequest\x1aM.chainlink_ccv.committee_verifier.v1.WriteCommitteeVerifierNodeResultResponse\x12\xce\x01\n" + + "%BatchWriteCommitteeVerifierNodeResult\x12Q.chainlink_ccv.committee_verifier.v1.BatchWriteCommitteeVerifierNodeResultRequest\x1aR.chainlink_ccv.committee_verifier.v1.BatchWriteCommitteeVerifierNodeResultResponse\x12\xbc\x01\n" + + "\x1fReadCommitteeVerifierNodeResult\x12K.chainlink_ccv.committee_verifier.v1.ReadCommitteeVerifierNodeResultRequest\x1aL.chainlink_ccv.committee_verifier.v1.ReadCommitteeVerifierNodeResultResponse\x12\x8f\x01\n" + + "\x10WriteChainStatus\x12<.chainlink_ccv.committee_verifier.v1.WriteChainStatusRequest\x1a=.chainlink_ccv.committee_verifier.v1.WriteChainStatusResponse\x12\x8c\x01\n" + + "\x0fReadChainStatus\x12;.chainlink_ccv.committee_verifier.v1.ReadChainStatusRequest\x1a<.chainlink_ccv.committee_verifier.v1.ReadChainStatusResponseBRZPgithub.com/smartcontractkit/chainlink-protos/chainlink-ccv/committee-verifier/v1b\x06proto3" var ( - file_chainlink_ccv_v1_committee_verifier_proto_rawDescOnce sync.Once - file_chainlink_ccv_v1_committee_verifier_proto_rawDescData []byte + file_committee_verifier_v1_committee_verifier_proto_rawDescOnce sync.Once + file_committee_verifier_v1_committee_verifier_proto_rawDescData []byte ) -func file_chainlink_ccv_v1_committee_verifier_proto_rawDescGZIP() []byte { - file_chainlink_ccv_v1_committee_verifier_proto_rawDescOnce.Do(func() { - file_chainlink_ccv_v1_committee_verifier_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_chainlink_ccv_v1_committee_verifier_proto_rawDesc), len(file_chainlink_ccv_v1_committee_verifier_proto_rawDesc))) +func file_committee_verifier_v1_committee_verifier_proto_rawDescGZIP() []byte { + file_committee_verifier_v1_committee_verifier_proto_rawDescOnce.Do(func() { + file_committee_verifier_v1_committee_verifier_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_committee_verifier_v1_committee_verifier_proto_rawDesc), len(file_committee_verifier_v1_committee_verifier_proto_rawDesc))) }) - return file_chainlink_ccv_v1_committee_verifier_proto_rawDescData -} - -var file_chainlink_ccv_v1_committee_verifier_proto_msgTypes = make([]protoimpl.MessageInfo, 12) -var file_chainlink_ccv_v1_committee_verifier_proto_goTypes = []any{ - (*ChainStatus)(nil), // 0: chainlink_ccv.v1.ChainStatus - (*CommitteeVerifierNodeResult)(nil), // 1: chainlink_ccv.v1.CommitteeVerifierNodeResult - (*WriteChainStatusRequest)(nil), // 2: chainlink_ccv.v1.WriteChainStatusRequest - (*WriteChainStatusResponse)(nil), // 3: chainlink_ccv.v1.WriteChainStatusResponse - (*ReadChainStatusRequest)(nil), // 4: chainlink_ccv.v1.ReadChainStatusRequest - (*ReadChainStatusResponse)(nil), // 5: chainlink_ccv.v1.ReadChainStatusResponse - (*BatchWriteCommitteeVerifierNodeResultRequest)(nil), // 6: chainlink_ccv.v1.BatchWriteCommitteeVerifierNodeResultRequest - (*BatchWriteCommitteeVerifierNodeResultResponse)(nil), // 7: chainlink_ccv.v1.BatchWriteCommitteeVerifierNodeResultResponse - (*WriteCommitteeVerifierNodeResultRequest)(nil), // 8: chainlink_ccv.v1.WriteCommitteeVerifierNodeResultRequest - (*WriteCommitteeVerifierNodeResultResponse)(nil), // 9: chainlink_ccv.v1.WriteCommitteeVerifierNodeResultResponse - (*ReadCommitteeVerifierNodeResultRequest)(nil), // 10: chainlink_ccv.v1.ReadCommitteeVerifierNodeResultRequest - (*ReadCommitteeVerifierNodeResultResponse)(nil), // 11: chainlink_ccv.v1.ReadCommitteeVerifierNodeResultResponse - (*Message)(nil), // 12: chainlink_ccv.v1.Message - (WriteStatus)(0), // 13: chainlink_ccv.v1.WriteStatus - (*status.Status)(nil), // 14: google.rpc.Status -} -var file_chainlink_ccv_v1_committee_verifier_proto_depIdxs = []int32{ - 12, // 0: chainlink_ccv.v1.CommitteeVerifierNodeResult.message:type_name -> chainlink_ccv.v1.Message - 0, // 1: chainlink_ccv.v1.WriteChainStatusRequest.statuses:type_name -> chainlink_ccv.v1.ChainStatus - 13, // 2: chainlink_ccv.v1.WriteChainStatusResponse.status:type_name -> chainlink_ccv.v1.WriteStatus - 0, // 3: chainlink_ccv.v1.ReadChainStatusResponse.statuses:type_name -> chainlink_ccv.v1.ChainStatus - 8, // 4: chainlink_ccv.v1.BatchWriteCommitteeVerifierNodeResultRequest.requests:type_name -> chainlink_ccv.v1.WriteCommitteeVerifierNodeResultRequest - 9, // 5: chainlink_ccv.v1.BatchWriteCommitteeVerifierNodeResultResponse.responses:type_name -> chainlink_ccv.v1.WriteCommitteeVerifierNodeResultResponse - 14, // 6: chainlink_ccv.v1.BatchWriteCommitteeVerifierNodeResultResponse.errors:type_name -> google.rpc.Status - 1, // 7: chainlink_ccv.v1.WriteCommitteeVerifierNodeResultRequest.committee_verifier_node_result:type_name -> chainlink_ccv.v1.CommitteeVerifierNodeResult - 13, // 8: chainlink_ccv.v1.WriteCommitteeVerifierNodeResultResponse.status:type_name -> chainlink_ccv.v1.WriteStatus - 1, // 9: chainlink_ccv.v1.ReadCommitteeVerifierNodeResultResponse.committee_verifier_node_result:type_name -> chainlink_ccv.v1.CommitteeVerifierNodeResult - 8, // 10: chainlink_ccv.v1.CommitteeVerifier.WriteCommitteeVerifierNodeResult:input_type -> chainlink_ccv.v1.WriteCommitteeVerifierNodeResultRequest - 6, // 11: chainlink_ccv.v1.CommitteeVerifier.BatchWriteCommitteeVerifierNodeResult:input_type -> chainlink_ccv.v1.BatchWriteCommitteeVerifierNodeResultRequest - 10, // 12: chainlink_ccv.v1.CommitteeVerifier.ReadCommitteeVerifierNodeResult:input_type -> chainlink_ccv.v1.ReadCommitteeVerifierNodeResultRequest - 2, // 13: chainlink_ccv.v1.CommitteeVerifier.WriteChainStatus:input_type -> chainlink_ccv.v1.WriteChainStatusRequest - 4, // 14: chainlink_ccv.v1.CommitteeVerifier.ReadChainStatus:input_type -> chainlink_ccv.v1.ReadChainStatusRequest - 9, // 15: chainlink_ccv.v1.CommitteeVerifier.WriteCommitteeVerifierNodeResult:output_type -> chainlink_ccv.v1.WriteCommitteeVerifierNodeResultResponse - 7, // 16: chainlink_ccv.v1.CommitteeVerifier.BatchWriteCommitteeVerifierNodeResult:output_type -> chainlink_ccv.v1.BatchWriteCommitteeVerifierNodeResultResponse - 11, // 17: chainlink_ccv.v1.CommitteeVerifier.ReadCommitteeVerifierNodeResult:output_type -> chainlink_ccv.v1.ReadCommitteeVerifierNodeResultResponse - 3, // 18: chainlink_ccv.v1.CommitteeVerifier.WriteChainStatus:output_type -> chainlink_ccv.v1.WriteChainStatusResponse - 5, // 19: chainlink_ccv.v1.CommitteeVerifier.ReadChainStatus:output_type -> chainlink_ccv.v1.ReadChainStatusResponse + return file_committee_verifier_v1_committee_verifier_proto_rawDescData +} + +var file_committee_verifier_v1_committee_verifier_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_committee_verifier_v1_committee_verifier_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_committee_verifier_v1_committee_verifier_proto_goTypes = []any{ + (WriteStatus)(0), // 0: chainlink_ccv.committee_verifier.v1.WriteStatus + (*ChainStatus)(nil), // 1: chainlink_ccv.committee_verifier.v1.ChainStatus + (*CommitteeVerifierNodeResult)(nil), // 2: chainlink_ccv.committee_verifier.v1.CommitteeVerifierNodeResult + (*WriteChainStatusRequest)(nil), // 3: chainlink_ccv.committee_verifier.v1.WriteChainStatusRequest + (*WriteChainStatusResponse)(nil), // 4: chainlink_ccv.committee_verifier.v1.WriteChainStatusResponse + (*ReadChainStatusRequest)(nil), // 5: chainlink_ccv.committee_verifier.v1.ReadChainStatusRequest + (*ReadChainStatusResponse)(nil), // 6: chainlink_ccv.committee_verifier.v1.ReadChainStatusResponse + (*BatchWriteCommitteeVerifierNodeResultRequest)(nil), // 7: chainlink_ccv.committee_verifier.v1.BatchWriteCommitteeVerifierNodeResultRequest + (*BatchWriteCommitteeVerifierNodeResultResponse)(nil), // 8: chainlink_ccv.committee_verifier.v1.BatchWriteCommitteeVerifierNodeResultResponse + (*WriteCommitteeVerifierNodeResultRequest)(nil), // 9: chainlink_ccv.committee_verifier.v1.WriteCommitteeVerifierNodeResultRequest + (*WriteCommitteeVerifierNodeResultResponse)(nil), // 10: chainlink_ccv.committee_verifier.v1.WriteCommitteeVerifierNodeResultResponse + (*ReadCommitteeVerifierNodeResultRequest)(nil), // 11: chainlink_ccv.committee_verifier.v1.ReadCommitteeVerifierNodeResultRequest + (*ReadCommitteeVerifierNodeResultResponse)(nil), // 12: chainlink_ccv.committee_verifier.v1.ReadCommitteeVerifierNodeResultResponse + (*v1.Message)(nil), // 13: chainlink_ccv.verifier.v1.Message + (*status.Status)(nil), // 14: google.rpc.Status +} +var file_committee_verifier_v1_committee_verifier_proto_depIdxs = []int32{ + 13, // 0: chainlink_ccv.committee_verifier.v1.CommitteeVerifierNodeResult.message:type_name -> chainlink_ccv.verifier.v1.Message + 1, // 1: chainlink_ccv.committee_verifier.v1.WriteChainStatusRequest.statuses:type_name -> chainlink_ccv.committee_verifier.v1.ChainStatus + 0, // 2: chainlink_ccv.committee_verifier.v1.WriteChainStatusResponse.status:type_name -> chainlink_ccv.committee_verifier.v1.WriteStatus + 1, // 3: chainlink_ccv.committee_verifier.v1.ReadChainStatusResponse.statuses:type_name -> chainlink_ccv.committee_verifier.v1.ChainStatus + 9, // 4: chainlink_ccv.committee_verifier.v1.BatchWriteCommitteeVerifierNodeResultRequest.requests:type_name -> chainlink_ccv.committee_verifier.v1.WriteCommitteeVerifierNodeResultRequest + 10, // 5: chainlink_ccv.committee_verifier.v1.BatchWriteCommitteeVerifierNodeResultResponse.responses:type_name -> chainlink_ccv.committee_verifier.v1.WriteCommitteeVerifierNodeResultResponse + 14, // 6: chainlink_ccv.committee_verifier.v1.BatchWriteCommitteeVerifierNodeResultResponse.errors:type_name -> google.rpc.Status + 2, // 7: chainlink_ccv.committee_verifier.v1.WriteCommitteeVerifierNodeResultRequest.committee_verifier_node_result:type_name -> chainlink_ccv.committee_verifier.v1.CommitteeVerifierNodeResult + 0, // 8: chainlink_ccv.committee_verifier.v1.WriteCommitteeVerifierNodeResultResponse.status:type_name -> chainlink_ccv.committee_verifier.v1.WriteStatus + 2, // 9: chainlink_ccv.committee_verifier.v1.ReadCommitteeVerifierNodeResultResponse.committee_verifier_node_result:type_name -> chainlink_ccv.committee_verifier.v1.CommitteeVerifierNodeResult + 9, // 10: chainlink_ccv.committee_verifier.v1.CommitteeVerifier.WriteCommitteeVerifierNodeResult:input_type -> chainlink_ccv.committee_verifier.v1.WriteCommitteeVerifierNodeResultRequest + 7, // 11: chainlink_ccv.committee_verifier.v1.CommitteeVerifier.BatchWriteCommitteeVerifierNodeResult:input_type -> chainlink_ccv.committee_verifier.v1.BatchWriteCommitteeVerifierNodeResultRequest + 11, // 12: chainlink_ccv.committee_verifier.v1.CommitteeVerifier.ReadCommitteeVerifierNodeResult:input_type -> chainlink_ccv.committee_verifier.v1.ReadCommitteeVerifierNodeResultRequest + 3, // 13: chainlink_ccv.committee_verifier.v1.CommitteeVerifier.WriteChainStatus:input_type -> chainlink_ccv.committee_verifier.v1.WriteChainStatusRequest + 5, // 14: chainlink_ccv.committee_verifier.v1.CommitteeVerifier.ReadChainStatus:input_type -> chainlink_ccv.committee_verifier.v1.ReadChainStatusRequest + 10, // 15: chainlink_ccv.committee_verifier.v1.CommitteeVerifier.WriteCommitteeVerifierNodeResult:output_type -> chainlink_ccv.committee_verifier.v1.WriteCommitteeVerifierNodeResultResponse + 8, // 16: chainlink_ccv.committee_verifier.v1.CommitteeVerifier.BatchWriteCommitteeVerifierNodeResult:output_type -> chainlink_ccv.committee_verifier.v1.BatchWriteCommitteeVerifierNodeResultResponse + 12, // 17: chainlink_ccv.committee_verifier.v1.CommitteeVerifier.ReadCommitteeVerifierNodeResult:output_type -> chainlink_ccv.committee_verifier.v1.ReadCommitteeVerifierNodeResultResponse + 4, // 18: chainlink_ccv.committee_verifier.v1.CommitteeVerifier.WriteChainStatus:output_type -> chainlink_ccv.committee_verifier.v1.WriteChainStatusResponse + 6, // 19: chainlink_ccv.committee_verifier.v1.CommitteeVerifier.ReadChainStatus:output_type -> chainlink_ccv.committee_verifier.v1.ReadChainStatusResponse 15, // [15:20] is the sub-list for method output_type 10, // [10:15] is the sub-list for method input_type 10, // [10:10] is the sub-list for extension type_name @@ -723,27 +775,27 @@ var file_chainlink_ccv_v1_committee_verifier_proto_depIdxs = []int32{ 0, // [0:10] is the sub-list for field type_name } -func init() { file_chainlink_ccv_v1_committee_verifier_proto_init() } -func file_chainlink_ccv_v1_committee_verifier_proto_init() { - if File_chainlink_ccv_v1_committee_verifier_proto != nil { +func init() { file_committee_verifier_v1_committee_verifier_proto_init() } +func file_committee_verifier_v1_committee_verifier_proto_init() { + if File_committee_verifier_v1_committee_verifier_proto != nil { return } - file_chainlink_ccv_v1_common_proto_init() type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_chainlink_ccv_v1_committee_verifier_proto_rawDesc), len(file_chainlink_ccv_v1_committee_verifier_proto_rawDesc)), - NumEnums: 0, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_committee_verifier_v1_committee_verifier_proto_rawDesc), len(file_committee_verifier_v1_committee_verifier_proto_rawDesc)), + NumEnums: 1, NumMessages: 12, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_chainlink_ccv_v1_committee_verifier_proto_goTypes, - DependencyIndexes: file_chainlink_ccv_v1_committee_verifier_proto_depIdxs, - MessageInfos: file_chainlink_ccv_v1_committee_verifier_proto_msgTypes, + GoTypes: file_committee_verifier_v1_committee_verifier_proto_goTypes, + DependencyIndexes: file_committee_verifier_v1_committee_verifier_proto_depIdxs, + EnumInfos: file_committee_verifier_v1_committee_verifier_proto_enumTypes, + MessageInfos: file_committee_verifier_v1_committee_verifier_proto_msgTypes, }.Build() - File_chainlink_ccv_v1_committee_verifier_proto = out.File - file_chainlink_ccv_v1_committee_verifier_proto_goTypes = nil - file_chainlink_ccv_v1_committee_verifier_proto_depIdxs = nil + File_committee_verifier_v1_committee_verifier_proto = out.File + file_committee_verifier_v1_committee_verifier_proto_goTypes = nil + file_committee_verifier_v1_committee_verifier_proto_depIdxs = nil } diff --git a/chainlink-ccv/v1/committee-verifier.proto b/chainlink-ccv/committee-verifier/v1/committee-verifier.proto similarity index 91% rename from chainlink-ccv/v1/committee-verifier.proto rename to chainlink-ccv/committee-verifier/v1/committee-verifier.proto index bf4b5a2..bb885af 100644 --- a/chainlink-ccv/v1/committee-verifier.proto +++ b/chainlink-ccv/committee-verifier/v1/committee-verifier.proto @@ -1,11 +1,11 @@ syntax = "proto3"; -package chainlink_ccv.v1; +package chainlink_ccv.committee_verifier.v1; -import "chainlink-ccv/v1/common.proto"; +import "verifier/v1/verifier.proto"; import "google/rpc/status.proto"; -option go_package = "github.com/smartcontractkit/chainlink-protos/chainlink-ccv/go/v1"; +option go_package = "github.com/smartcontractkit/chainlink-protos/chainlink-ccv/committee-verifier/v1"; service CommitteeVerifier { rpc WriteCommitteeVerifierNodeResult(WriteCommitteeVerifierNodeResultRequest) returns (WriteCommitteeVerifierNodeResultResponse); @@ -15,6 +15,11 @@ service CommitteeVerifier { rpc ReadChainStatus(ReadChainStatusRequest) returns (ReadChainStatusResponse); } +enum WriteStatus { + SUCCESS = 0; + FAILED = 1; +} + message ChainStatus { uint64 chain_selector = 1; uint64 finalized_block_height = 2; @@ -23,7 +28,7 @@ message ChainStatus { message CommitteeVerifierNodeResult { // Message data that the CCV node attests to - Message message = 1; + chainlink_ccv.verifier.v1.Message message = 1; // Version of the CCV found from the receipt blob on the source chain bytes ccv_version = 2; // Addresses of the CCV specified for this message @@ -75,3 +80,4 @@ message ReadCommitteeVerifierNodeResultRequest { message ReadCommitteeVerifierNodeResultResponse { CommitteeVerifierNodeResult committee_verifier_node_result = 1; } + diff --git a/chainlink-ccv/go/v1/committee-verifier_grpc.pb.go b/chainlink-ccv/committee-verifier/v1/committee-verifier_grpc.pb.go similarity index 94% rename from chainlink-ccv/go/v1/committee-verifier_grpc.pb.go rename to chainlink-ccv/committee-verifier/v1/committee-verifier_grpc.pb.go index 50b56b4..a8a44bc 100644 --- a/chainlink-ccv/go/v1/committee-verifier_grpc.pb.go +++ b/chainlink-ccv/committee-verifier/v1/committee-verifier_grpc.pb.go @@ -1,8 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v6.32.0 -// source: chainlink-ccv/v1/committee-verifier.proto +// - protoc (unknown) +// source: committee-verifier/v1/committee-verifier.proto package v1 @@ -19,11 +19,11 @@ import ( const _ = grpc.SupportPackageIsVersion9 const ( - CommitteeVerifier_WriteCommitteeVerifierNodeResult_FullMethodName = "/chainlink_ccv.v1.CommitteeVerifier/WriteCommitteeVerifierNodeResult" - CommitteeVerifier_BatchWriteCommitteeVerifierNodeResult_FullMethodName = "/chainlink_ccv.v1.CommitteeVerifier/BatchWriteCommitteeVerifierNodeResult" - CommitteeVerifier_ReadCommitteeVerifierNodeResult_FullMethodName = "/chainlink_ccv.v1.CommitteeVerifier/ReadCommitteeVerifierNodeResult" - CommitteeVerifier_WriteChainStatus_FullMethodName = "/chainlink_ccv.v1.CommitteeVerifier/WriteChainStatus" - CommitteeVerifier_ReadChainStatus_FullMethodName = "/chainlink_ccv.v1.CommitteeVerifier/ReadChainStatus" + CommitteeVerifier_WriteCommitteeVerifierNodeResult_FullMethodName = "/chainlink_ccv.committee_verifier.v1.CommitteeVerifier/WriteCommitteeVerifierNodeResult" + CommitteeVerifier_BatchWriteCommitteeVerifierNodeResult_FullMethodName = "/chainlink_ccv.committee_verifier.v1.CommitteeVerifier/BatchWriteCommitteeVerifierNodeResult" + CommitteeVerifier_ReadCommitteeVerifierNodeResult_FullMethodName = "/chainlink_ccv.committee_verifier.v1.CommitteeVerifier/ReadCommitteeVerifierNodeResult" + CommitteeVerifier_WriteChainStatus_FullMethodName = "/chainlink_ccv.committee_verifier.v1.CommitteeVerifier/WriteChainStatus" + CommitteeVerifier_ReadChainStatus_FullMethodName = "/chainlink_ccv.committee_verifier.v1.CommitteeVerifier/ReadChainStatus" ) // CommitteeVerifierClient is the client API for CommitteeVerifier service. @@ -244,7 +244,7 @@ func _CommitteeVerifier_ReadChainStatus_Handler(srv interface{}, ctx context.Con // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var CommitteeVerifier_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "chainlink_ccv.v1.CommitteeVerifier", + ServiceName: "chainlink_ccv.committee_verifier.v1.CommitteeVerifier", HandlerType: (*CommitteeVerifierServer)(nil), Methods: []grpc.MethodDesc{ { @@ -269,5 +269,5 @@ var CommitteeVerifier_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "chainlink-ccv/v1/committee-verifier.proto", + Metadata: "committee-verifier/v1/committee-verifier.proto", } diff --git a/chainlink-ccv/go/generate.go b/chainlink-ccv/go/generate.go deleted file mode 100644 index f94984d..0000000 --- a/chainlink-ccv/go/generate.go +++ /dev/null @@ -1,3 +0,0 @@ -package chainlink_ccv - -//go:generate sh -c "protoc -I../.. -I\"$(go list -m -f '{{.Dir}}' github.com/googleapis/googleapis)\" --go_out=./v1/ --go_opt=module=github.com/smartcontractkit/chainlink-protos/chainlink-ccv/go/v1 --go-grpc_out=./v1/ --go-grpc_opt=module=github.com/smartcontractkit/chainlink-protos/chainlink-ccv/go/v1 chainlink-ccv/v1/common.proto chainlink-ccv/v1/committee-verifier.proto chainlink-ccv/v1/message-discovery.proto chainlink-ccv/v1/verifier-result-api.proto" diff --git a/chainlink-ccv/go/v1/verifier-result-api.pb.go b/chainlink-ccv/go/v1/verifier-result-api.pb.go deleted file mode 100644 index 54a1c5f..0000000 --- a/chainlink-ccv/go/v1/verifier-result-api.pb.go +++ /dev/null @@ -1,189 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.36.8 -// protoc v6.32.0 -// source: chainlink-ccv/v1/verifier-result-api.proto - -package v1 - -import ( - status "google.golang.org/genproto/googleapis/rpc/status" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" - unsafe "unsafe" -) - -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) -) - -type GetVerifierResultsForMessageRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - MessageIds [][]byte `protobuf:"bytes,1,rep,name=message_ids,json=messageIds,proto3" json:"message_ids,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *GetVerifierResultsForMessageRequest) Reset() { - *x = GetVerifierResultsForMessageRequest{} - mi := &file_chainlink_ccv_v1_verifier_result_api_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GetVerifierResultsForMessageRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetVerifierResultsForMessageRequest) ProtoMessage() {} - -func (x *GetVerifierResultsForMessageRequest) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_verifier_result_api_proto_msgTypes[0] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetVerifierResultsForMessageRequest.ProtoReflect.Descriptor instead. -func (*GetVerifierResultsForMessageRequest) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_verifier_result_api_proto_rawDescGZIP(), []int{0} -} - -func (x *GetVerifierResultsForMessageRequest) GetMessageIds() [][]byte { - if x != nil { - return x.MessageIds - } - return nil -} - -type GetVerifierResultsForMessageResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Results []*VerifierResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` - Errors []*status.Status `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *GetVerifierResultsForMessageResponse) Reset() { - *x = GetVerifierResultsForMessageResponse{} - mi := &file_chainlink_ccv_v1_verifier_result_api_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GetVerifierResultsForMessageResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetVerifierResultsForMessageResponse) ProtoMessage() {} - -func (x *GetVerifierResultsForMessageResponse) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_verifier_result_api_proto_msgTypes[1] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetVerifierResultsForMessageResponse.ProtoReflect.Descriptor instead. -func (*GetVerifierResultsForMessageResponse) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_verifier_result_api_proto_rawDescGZIP(), []int{1} -} - -func (x *GetVerifierResultsForMessageResponse) GetResults() []*VerifierResult { - if x != nil { - return x.Results - } - return nil -} - -func (x *GetVerifierResultsForMessageResponse) GetErrors() []*status.Status { - if x != nil { - return x.Errors - } - return nil -} - -var File_chainlink_ccv_v1_verifier_result_api_proto protoreflect.FileDescriptor - -const file_chainlink_ccv_v1_verifier_result_api_proto_rawDesc = "" + - "\n" + - "*chainlink-ccv/v1/verifier-result-api.proto\x12\x10chainlink_ccv.v1\x1a\x1dchainlink-ccv/v1/common.proto\x1a\x17google/rpc/status.proto\"F\n" + - "#GetVerifierResultsForMessageRequest\x12\x1f\n" + - "\vmessage_ids\x18\x01 \x03(\fR\n" + - "messageIds\"\x8e\x01\n" + - "$GetVerifierResultsForMessageResponse\x12:\n" + - "\aresults\x18\x01 \x03(\v2 .chainlink_ccv.v1.VerifierResultR\aresults\x12*\n" + - "\x06errors\x18\x02 \x03(\v2\x12.google.rpc.StatusR\x06errors2\xa3\x01\n" + - "\x11VerifierResultAPI\x12\x8d\x01\n" + - "\x1cGetVerifierResultsForMessage\x125.chainlink_ccv.v1.GetVerifierResultsForMessageRequest\x1a6.chainlink_ccv.v1.GetVerifierResultsForMessageResponseBBZ@github.com/smartcontractkit/chainlink-protos/chainlink-ccv/go/v1b\x06proto3" - -var ( - file_chainlink_ccv_v1_verifier_result_api_proto_rawDescOnce sync.Once - file_chainlink_ccv_v1_verifier_result_api_proto_rawDescData []byte -) - -func file_chainlink_ccv_v1_verifier_result_api_proto_rawDescGZIP() []byte { - file_chainlink_ccv_v1_verifier_result_api_proto_rawDescOnce.Do(func() { - file_chainlink_ccv_v1_verifier_result_api_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_chainlink_ccv_v1_verifier_result_api_proto_rawDesc), len(file_chainlink_ccv_v1_verifier_result_api_proto_rawDesc))) - }) - return file_chainlink_ccv_v1_verifier_result_api_proto_rawDescData -} - -var file_chainlink_ccv_v1_verifier_result_api_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_chainlink_ccv_v1_verifier_result_api_proto_goTypes = []any{ - (*GetVerifierResultsForMessageRequest)(nil), // 0: chainlink_ccv.v1.GetVerifierResultsForMessageRequest - (*GetVerifierResultsForMessageResponse)(nil), // 1: chainlink_ccv.v1.GetVerifierResultsForMessageResponse - (*VerifierResult)(nil), // 2: chainlink_ccv.v1.VerifierResult - (*status.Status)(nil), // 3: google.rpc.Status -} -var file_chainlink_ccv_v1_verifier_result_api_proto_depIdxs = []int32{ - 2, // 0: chainlink_ccv.v1.GetVerifierResultsForMessageResponse.results:type_name -> chainlink_ccv.v1.VerifierResult - 3, // 1: chainlink_ccv.v1.GetVerifierResultsForMessageResponse.errors:type_name -> google.rpc.Status - 0, // 2: chainlink_ccv.v1.VerifierResultAPI.GetVerifierResultsForMessage:input_type -> chainlink_ccv.v1.GetVerifierResultsForMessageRequest - 1, // 3: chainlink_ccv.v1.VerifierResultAPI.GetVerifierResultsForMessage:output_type -> chainlink_ccv.v1.GetVerifierResultsForMessageResponse - 3, // [3:4] is the sub-list for method output_type - 2, // [2:3] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name -} - -func init() { file_chainlink_ccv_v1_verifier_result_api_proto_init() } -func file_chainlink_ccv_v1_verifier_result_api_proto_init() { - if File_chainlink_ccv_v1_verifier_result_api_proto != nil { - return - } - file_chainlink_ccv_v1_common_proto_init() - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_chainlink_ccv_v1_verifier_result_api_proto_rawDesc), len(file_chainlink_ccv_v1_verifier_result_api_proto_rawDesc)), - NumEnums: 0, - NumMessages: 2, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_chainlink_ccv_v1_verifier_result_api_proto_goTypes, - DependencyIndexes: file_chainlink_ccv_v1_verifier_result_api_proto_depIdxs, - MessageInfos: file_chainlink_ccv_v1_verifier_result_api_proto_msgTypes, - }.Build() - File_chainlink_ccv_v1_verifier_result_api_proto = out.File - file_chainlink_ccv_v1_verifier_result_api_proto_goTypes = nil - file_chainlink_ccv_v1_verifier_result_api_proto_depIdxs = nil -} diff --git a/chainlink-ccv/go/v1/verifier-result-api_grpc.pb.go b/chainlink-ccv/go/v1/verifier-result-api_grpc.pb.go deleted file mode 100644 index d7e63ff..0000000 --- a/chainlink-ccv/go/v1/verifier-result-api_grpc.pb.go +++ /dev/null @@ -1,121 +0,0 @@ -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.5.1 -// - protoc v6.32.0 -// source: chainlink-ccv/v1/verifier-result-api.proto - -package v1 - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.64.0 or later. -const _ = grpc.SupportPackageIsVersion9 - -const ( - VerifierResultAPI_GetVerifierResultsForMessage_FullMethodName = "/chainlink_ccv.v1.VerifierResultAPI/GetVerifierResultsForMessage" -) - -// VerifierResultAPIClient is the client API for VerifierResultAPI service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type VerifierResultAPIClient interface { - GetVerifierResultsForMessage(ctx context.Context, in *GetVerifierResultsForMessageRequest, opts ...grpc.CallOption) (*GetVerifierResultsForMessageResponse, error) -} - -type verifierResultAPIClient struct { - cc grpc.ClientConnInterface -} - -func NewVerifierResultAPIClient(cc grpc.ClientConnInterface) VerifierResultAPIClient { - return &verifierResultAPIClient{cc} -} - -func (c *verifierResultAPIClient) GetVerifierResultsForMessage(ctx context.Context, in *GetVerifierResultsForMessageRequest, opts ...grpc.CallOption) (*GetVerifierResultsForMessageResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(GetVerifierResultsForMessageResponse) - err := c.cc.Invoke(ctx, VerifierResultAPI_GetVerifierResultsForMessage_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -// VerifierResultAPIServer is the server API for VerifierResultAPI service. -// All implementations must embed UnimplementedVerifierResultAPIServer -// for forward compatibility. -type VerifierResultAPIServer interface { - GetVerifierResultsForMessage(context.Context, *GetVerifierResultsForMessageRequest) (*GetVerifierResultsForMessageResponse, error) - mustEmbedUnimplementedVerifierResultAPIServer() -} - -// UnimplementedVerifierResultAPIServer must be embedded to have -// forward compatible implementations. -// -// NOTE: this should be embedded by value instead of pointer to avoid a nil -// pointer dereference when methods are called. -type UnimplementedVerifierResultAPIServer struct{} - -func (UnimplementedVerifierResultAPIServer) GetVerifierResultsForMessage(context.Context, *GetVerifierResultsForMessageRequest) (*GetVerifierResultsForMessageResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetVerifierResultsForMessage not implemented") -} -func (UnimplementedVerifierResultAPIServer) mustEmbedUnimplementedVerifierResultAPIServer() {} -func (UnimplementedVerifierResultAPIServer) testEmbeddedByValue() {} - -// UnsafeVerifierResultAPIServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to VerifierResultAPIServer will -// result in compilation errors. -type UnsafeVerifierResultAPIServer interface { - mustEmbedUnimplementedVerifierResultAPIServer() -} - -func RegisterVerifierResultAPIServer(s grpc.ServiceRegistrar, srv VerifierResultAPIServer) { - // If the following call pancis, it indicates UnimplementedVerifierResultAPIServer was - // embedded by pointer and is nil. This will cause panics if an - // unimplemented method is ever invoked, so we test this at initialization - // time to prevent it from happening at runtime later due to I/O. - if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { - t.testEmbeddedByValue() - } - s.RegisterService(&VerifierResultAPI_ServiceDesc, srv) -} - -func _VerifierResultAPI_GetVerifierResultsForMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetVerifierResultsForMessageRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(VerifierResultAPIServer).GetVerifierResultsForMessage(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: VerifierResultAPI_GetVerifierResultsForMessage_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(VerifierResultAPIServer).GetVerifierResultsForMessage(ctx, req.(*GetVerifierResultsForMessageRequest)) - } - return interceptor(ctx, in, info, handler) -} - -// VerifierResultAPI_ServiceDesc is the grpc.ServiceDesc for VerifierResultAPI service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var VerifierResultAPI_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "chainlink_ccv.v1.VerifierResultAPI", - HandlerType: (*VerifierResultAPIServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "GetVerifierResultsForMessage", - Handler: _VerifierResultAPI_GetVerifierResultsForMessage_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "chainlink-ccv/v1/verifier-result-api.proto", -} diff --git a/chainlink-ccv/message-discovery/CHANGELOG.md b/chainlink-ccv/message-discovery/CHANGELOG.md new file mode 100644 index 0000000..5c76d52 --- /dev/null +++ b/chainlink-ccv/message-discovery/CHANGELOG.md @@ -0,0 +1,9 @@ +# @chainlink/ccv-message-discovery + +## 0.1.1 + +### Patch Changes + +- [#250](https://github.com/smartcontractkit/chainlink-protos/pull/250) [`5c3421f`](https://github.com/smartcontractkit/chainlink-protos/commit/5c3421fe2c8dcbaff5e01317487d475e4a4f382f) Thanks [@carte7000](https://github.com/carte7000)! - Remove replace in go.mod + +- [#248](https://github.com/smartcontractkit/chainlink-protos/pull/248) [`56ac2cd`](https://github.com/smartcontractkit/chainlink-protos/commit/56ac2cd48cde80fb4693de5fc3007075fff2e1cb) Thanks [@carte7000](https://github.com/carte7000)! - Split package for chainlink-ccv between committee-verifier, verifier and message-discovery diff --git a/chainlink-ccv/message-discovery/go.mod b/chainlink-ccv/message-discovery/go.mod new file mode 100644 index 0000000..007c0d5 --- /dev/null +++ b/chainlink-ccv/message-discovery/go.mod @@ -0,0 +1,16 @@ +module github.com/smartcontractkit/chainlink-protos/chainlink-ccv/message-discovery + +go 1.23.0 + +require ( + github.com/smartcontractkit/chainlink-protos/chainlink-ccv/verifier v0.0.0-20251210213124-585855c1471e + google.golang.org/grpc v1.75.0 + google.golang.org/protobuf v1.36.8 +) + +require ( + golang.org/x/net v0.41.0 // indirect + golang.org/x/sys v0.33.0 // indirect + golang.org/x/text v0.26.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 // indirect +) diff --git a/chainlink-ccv/message-discovery/go.sum b/chainlink-ccv/message-discovery/go.sum new file mode 100644 index 0000000..64f95cb --- /dev/null +++ b/chainlink-ccv/message-discovery/go.sum @@ -0,0 +1,38 @@ +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/smartcontractkit/chainlink-protos/chainlink-ccv/verifier v0.0.0-20251210213124-585855c1471e h1:r/bI4cJnDYeCHj4ejWDqpUJ8+Ho1XXgwVd0ZVbEtT3A= +github.com/smartcontractkit/chainlink-protos/chainlink-ccv/verifier v0.0.0-20251210213124-585855c1471e/go.mod h1:5JdppgngCOUS76p61zCinSCgOhPeYQ+OcDUuome5THQ= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/otel v1.37.0 h1:9zhNfelUvx0KBfu/gb+ZgeAfAgtWrfHJZcAqFC228wQ= +go.opentelemetry.io/otel v1.37.0/go.mod h1:ehE/umFRLnuLa/vSccNq9oS1ErUlkkK71gMcN34UG8I= +go.opentelemetry.io/otel/metric v1.37.0 h1:mvwbQS5m0tbmqML4NqK+e3aDiO02vsf/WgbsdpcPoZE= +go.opentelemetry.io/otel/metric v1.37.0/go.mod h1:04wGrZurHYKOc+RKeye86GwKiTb9FKm1WHtO+4EVr2E= +go.opentelemetry.io/otel/sdk v1.37.0 h1:ItB0QUqnjesGRvNcmAcU0LyvkVyGJ2xftD29bWdDvKI= +go.opentelemetry.io/otel/sdk v1.37.0/go.mod h1:VredYzxUvuo2q3WRcDnKDjbdvmO0sCzOvVAiY+yUkAg= +go.opentelemetry.io/otel/sdk/metric v1.37.0 h1:90lI228XrB9jCMuSdA0673aubgRobVZFhbjxHHspCPc= +go.opentelemetry.io/otel/sdk/metric v1.37.0/go.mod h1:cNen4ZWfiD37l5NhS+Keb5RXVWZWpRE+9WyVCpbo5ps= +go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4= +go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0= +golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw= +golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= +golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= +gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= +gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 h1:pFyd6EwwL2TqFf8emdthzeX+gZE1ElRq3iM8pui4KBY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4= +google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= +google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= +google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= diff --git a/chainlink-ccv/message-discovery/package.json b/chainlink-ccv/message-discovery/package.json new file mode 100644 index 0000000..1062c30 --- /dev/null +++ b/chainlink-ccv/message-discovery/package.json @@ -0,0 +1,5 @@ +{ + "name": "@chainlink/ccv-message-discovery", + "version": "0.1.1", + "private": true +} diff --git a/chainlink-ccv/go/v1/message-discovery.pb.go b/chainlink-ccv/message-discovery/v1/message-discovery.pb.go similarity index 50% rename from chainlink-ccv/go/v1/message-discovery.pb.go rename to chainlink-ccv/message-discovery/v1/message-discovery.pb.go index 867cf23..04b3c95 100644 --- a/chainlink-ccv/go/v1/message-discovery.pb.go +++ b/chainlink-ccv/message-discovery/v1/message-discovery.pb.go @@ -1,12 +1,13 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.8 -// protoc v6.32.0 -// source: chainlink-ccv/v1/message-discovery.proto +// protoc-gen-go v1.36.6 +// protoc (unknown) +// source: message-discovery/v1/message-discovery.proto package v1 import ( + v1 "github.com/smartcontractkit/chainlink-protos/chainlink-ccv/verifier/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" @@ -24,7 +25,7 @@ const ( type VerifierResultWithSequence struct { state protoimpl.MessageState `protogen:"open.v1"` // Verifier result contains the message data and required verification data from the committee verifier - VerifierResult *VerifierResult `protobuf:"bytes,1,opt,name=verifierResult,proto3" json:"verifierResult,omitempty"` + VerifierResult *v1.VerifierResult `protobuf:"bytes,1,opt,name=verifierResult,proto3" json:"verifierResult,omitempty"` // Monotonic sequence number assigned by the verifier result API. Can be used to query for new messages since a given sequence. Sequence int64 `protobuf:"varint,2,opt,name=sequence,proto3" json:"sequence,omitempty"` unknownFields protoimpl.UnknownFields @@ -33,7 +34,7 @@ type VerifierResultWithSequence struct { func (x *VerifierResultWithSequence) Reset() { *x = VerifierResultWithSequence{} - mi := &file_chainlink_ccv_v1_message_discovery_proto_msgTypes[0] + mi := &file_message_discovery_v1_message_discovery_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45,7 +46,7 @@ func (x *VerifierResultWithSequence) String() string { func (*VerifierResultWithSequence) ProtoMessage() {} func (x *VerifierResultWithSequence) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_message_discovery_proto_msgTypes[0] + mi := &file_message_discovery_v1_message_discovery_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58,10 +59,10 @@ func (x *VerifierResultWithSequence) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifierResultWithSequence.ProtoReflect.Descriptor instead. func (*VerifierResultWithSequence) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_message_discovery_proto_rawDescGZIP(), []int{0} + return file_message_discovery_v1_message_discovery_proto_rawDescGZIP(), []int{0} } -func (x *VerifierResultWithSequence) GetVerifierResult() *VerifierResult { +func (x *VerifierResultWithSequence) GetVerifierResult() *v1.VerifierResult { if x != nil { return x.VerifierResult } @@ -84,7 +85,7 @@ type GetMessagesSinceRequest struct { func (x *GetMessagesSinceRequest) Reset() { *x = GetMessagesSinceRequest{} - mi := &file_chainlink_ccv_v1_message_discovery_proto_msgTypes[1] + mi := &file_message_discovery_v1_message_discovery_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -96,7 +97,7 @@ func (x *GetMessagesSinceRequest) String() string { func (*GetMessagesSinceRequest) ProtoMessage() {} func (x *GetMessagesSinceRequest) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_message_discovery_proto_msgTypes[1] + mi := &file_message_discovery_v1_message_discovery_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109,7 +110,7 @@ func (x *GetMessagesSinceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMessagesSinceRequest.ProtoReflect.Descriptor instead. func (*GetMessagesSinceRequest) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_message_discovery_proto_rawDescGZIP(), []int{1} + return file_message_discovery_v1_message_discovery_proto_rawDescGZIP(), []int{1} } func (x *GetMessagesSinceRequest) GetSinceSequence() int64 { @@ -128,7 +129,7 @@ type GetMessagesSinceResponse struct { func (x *GetMessagesSinceResponse) Reset() { *x = GetMessagesSinceResponse{} - mi := &file_chainlink_ccv_v1_message_discovery_proto_msgTypes[2] + mi := &file_message_discovery_v1_message_discovery_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -140,7 +141,7 @@ func (x *GetMessagesSinceResponse) String() string { func (*GetMessagesSinceResponse) ProtoMessage() {} func (x *GetMessagesSinceResponse) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_message_discovery_proto_msgTypes[2] + mi := &file_message_discovery_v1_message_discovery_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -153,7 +154,7 @@ func (x *GetMessagesSinceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMessagesSinceResponse.ProtoReflect.Descriptor instead. func (*GetMessagesSinceResponse) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_message_discovery_proto_rawDescGZIP(), []int{2} + return file_message_discovery_v1_message_discovery_proto_rawDescGZIP(), []int{2} } func (x *GetMessagesSinceResponse) GetResults() []*VerifierResultWithSequence { @@ -163,45 +164,45 @@ func (x *GetMessagesSinceResponse) GetResults() []*VerifierResultWithSequence { return nil } -var File_chainlink_ccv_v1_message_discovery_proto protoreflect.FileDescriptor +var File_message_discovery_v1_message_discovery_proto protoreflect.FileDescriptor -const file_chainlink_ccv_v1_message_discovery_proto_rawDesc = "" + +const file_message_discovery_v1_message_discovery_proto_rawDesc = "" + "\n" + - "(chainlink-ccv/v1/message-discovery.proto\x12\x10chainlink_ccv.v1\x1a\x1dchainlink-ccv/v1/common.proto\"\x82\x01\n" + - "\x1aVerifierResultWithSequence\x12H\n" + - "\x0everifierResult\x18\x01 \x01(\v2 .chainlink_ccv.v1.VerifierResultR\x0everifierResult\x12\x1a\n" + + ",message-discovery/v1/message-discovery.proto\x12\"chainlink_ccv.message_discovery.v1\x1a\x1averifier/v1/verifier.proto\"\x8b\x01\n" + + "\x1aVerifierResultWithSequence\x12Q\n" + + "\x0everifierResult\x18\x01 \x01(\v2).chainlink_ccv.verifier.v1.VerifierResultR\x0everifierResult\x12\x1a\n" + "\bsequence\x18\x02 \x01(\x03R\bsequence\"?\n" + "\x17GetMessagesSinceRequest\x12$\n" + - "\rsinceSequence\x18\x01 \x01(\x03R\rsinceSequence\"b\n" + - "\x18GetMessagesSinceResponse\x12F\n" + - "\aresults\x18\x01 \x03(\v2,.chainlink_ccv.v1.VerifierResultWithSequenceR\aresults2}\n" + - "\x10MessageDiscovery\x12i\n" + - "\x10GetMessagesSince\x12).chainlink_ccv.v1.GetMessagesSinceRequest\x1a*.chainlink_ccv.v1.GetMessagesSinceResponseBBZ@github.com/smartcontractkit/chainlink-protos/chainlink-ccv/go/v1b\x06proto3" + "\rsinceSequence\x18\x01 \x01(\x03R\rsinceSequence\"t\n" + + "\x18GetMessagesSinceResponse\x12X\n" + + "\aresults\x18\x01 \x03(\v2>.chainlink_ccv.message_discovery.v1.VerifierResultWithSequenceR\aresults2\xa2\x01\n" + + "\x10MessageDiscovery\x12\x8d\x01\n" + + "\x10GetMessagesSince\x12;.chainlink_ccv.message_discovery.v1.GetMessagesSinceRequest\x1a<.chainlink_ccv.message_discovery.v1.GetMessagesSinceResponseBQZOgithub.com/smartcontractkit/chainlink-protos/chainlink-ccv/message-discovery/v1b\x06proto3" var ( - file_chainlink_ccv_v1_message_discovery_proto_rawDescOnce sync.Once - file_chainlink_ccv_v1_message_discovery_proto_rawDescData []byte + file_message_discovery_v1_message_discovery_proto_rawDescOnce sync.Once + file_message_discovery_v1_message_discovery_proto_rawDescData []byte ) -func file_chainlink_ccv_v1_message_discovery_proto_rawDescGZIP() []byte { - file_chainlink_ccv_v1_message_discovery_proto_rawDescOnce.Do(func() { - file_chainlink_ccv_v1_message_discovery_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_chainlink_ccv_v1_message_discovery_proto_rawDesc), len(file_chainlink_ccv_v1_message_discovery_proto_rawDesc))) +func file_message_discovery_v1_message_discovery_proto_rawDescGZIP() []byte { + file_message_discovery_v1_message_discovery_proto_rawDescOnce.Do(func() { + file_message_discovery_v1_message_discovery_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_message_discovery_v1_message_discovery_proto_rawDesc), len(file_message_discovery_v1_message_discovery_proto_rawDesc))) }) - return file_chainlink_ccv_v1_message_discovery_proto_rawDescData + return file_message_discovery_v1_message_discovery_proto_rawDescData } -var file_chainlink_ccv_v1_message_discovery_proto_msgTypes = make([]protoimpl.MessageInfo, 3) -var file_chainlink_ccv_v1_message_discovery_proto_goTypes = []any{ - (*VerifierResultWithSequence)(nil), // 0: chainlink_ccv.v1.VerifierResultWithSequence - (*GetMessagesSinceRequest)(nil), // 1: chainlink_ccv.v1.GetMessagesSinceRequest - (*GetMessagesSinceResponse)(nil), // 2: chainlink_ccv.v1.GetMessagesSinceResponse - (*VerifierResult)(nil), // 3: chainlink_ccv.v1.VerifierResult +var file_message_discovery_v1_message_discovery_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_message_discovery_v1_message_discovery_proto_goTypes = []any{ + (*VerifierResultWithSequence)(nil), // 0: chainlink_ccv.message_discovery.v1.VerifierResultWithSequence + (*GetMessagesSinceRequest)(nil), // 1: chainlink_ccv.message_discovery.v1.GetMessagesSinceRequest + (*GetMessagesSinceResponse)(nil), // 2: chainlink_ccv.message_discovery.v1.GetMessagesSinceResponse + (*v1.VerifierResult)(nil), // 3: chainlink_ccv.verifier.v1.VerifierResult } -var file_chainlink_ccv_v1_message_discovery_proto_depIdxs = []int32{ - 3, // 0: chainlink_ccv.v1.VerifierResultWithSequence.verifierResult:type_name -> chainlink_ccv.v1.VerifierResult - 0, // 1: chainlink_ccv.v1.GetMessagesSinceResponse.results:type_name -> chainlink_ccv.v1.VerifierResultWithSequence - 1, // 2: chainlink_ccv.v1.MessageDiscovery.GetMessagesSince:input_type -> chainlink_ccv.v1.GetMessagesSinceRequest - 2, // 3: chainlink_ccv.v1.MessageDiscovery.GetMessagesSince:output_type -> chainlink_ccv.v1.GetMessagesSinceResponse +var file_message_discovery_v1_message_discovery_proto_depIdxs = []int32{ + 3, // 0: chainlink_ccv.message_discovery.v1.VerifierResultWithSequence.verifierResult:type_name -> chainlink_ccv.verifier.v1.VerifierResult + 0, // 1: chainlink_ccv.message_discovery.v1.GetMessagesSinceResponse.results:type_name -> chainlink_ccv.message_discovery.v1.VerifierResultWithSequence + 1, // 2: chainlink_ccv.message_discovery.v1.MessageDiscovery.GetMessagesSince:input_type -> chainlink_ccv.message_discovery.v1.GetMessagesSinceRequest + 2, // 3: chainlink_ccv.message_discovery.v1.MessageDiscovery.GetMessagesSince:output_type -> chainlink_ccv.message_discovery.v1.GetMessagesSinceResponse 3, // [3:4] is the sub-list for method output_type 2, // [2:3] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name @@ -209,27 +210,26 @@ var file_chainlink_ccv_v1_message_discovery_proto_depIdxs = []int32{ 0, // [0:2] is the sub-list for field type_name } -func init() { file_chainlink_ccv_v1_message_discovery_proto_init() } -func file_chainlink_ccv_v1_message_discovery_proto_init() { - if File_chainlink_ccv_v1_message_discovery_proto != nil { +func init() { file_message_discovery_v1_message_discovery_proto_init() } +func file_message_discovery_v1_message_discovery_proto_init() { + if File_message_discovery_v1_message_discovery_proto != nil { return } - file_chainlink_ccv_v1_common_proto_init() type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_chainlink_ccv_v1_message_discovery_proto_rawDesc), len(file_chainlink_ccv_v1_message_discovery_proto_rawDesc)), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_message_discovery_v1_message_discovery_proto_rawDesc), len(file_message_discovery_v1_message_discovery_proto_rawDesc)), NumEnums: 0, NumMessages: 3, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_chainlink_ccv_v1_message_discovery_proto_goTypes, - DependencyIndexes: file_chainlink_ccv_v1_message_discovery_proto_depIdxs, - MessageInfos: file_chainlink_ccv_v1_message_discovery_proto_msgTypes, + GoTypes: file_message_discovery_v1_message_discovery_proto_goTypes, + DependencyIndexes: file_message_discovery_v1_message_discovery_proto_depIdxs, + MessageInfos: file_message_discovery_v1_message_discovery_proto_msgTypes, }.Build() - File_chainlink_ccv_v1_message_discovery_proto = out.File - file_chainlink_ccv_v1_message_discovery_proto_goTypes = nil - file_chainlink_ccv_v1_message_discovery_proto_depIdxs = nil + File_message_discovery_v1_message_discovery_proto = out.File + file_message_discovery_v1_message_discovery_proto_goTypes = nil + file_message_discovery_v1_message_discovery_proto_depIdxs = nil } diff --git a/chainlink-ccv/v1/message-discovery.proto b/chainlink-ccv/message-discovery/v1/message-discovery.proto similarity index 78% rename from chainlink-ccv/v1/message-discovery.proto rename to chainlink-ccv/message-discovery/v1/message-discovery.proto index 90cd9ef..8b2a4b4 100644 --- a/chainlink-ccv/v1/message-discovery.proto +++ b/chainlink-ccv/message-discovery/v1/message-discovery.proto @@ -1,10 +1,10 @@ syntax = "proto3"; -package chainlink_ccv.v1; +package chainlink_ccv.message_discovery.v1; -import "chainlink-ccv/v1/common.proto"; +import "verifier/v1/verifier.proto"; -option go_package = "github.com/smartcontractkit/chainlink-protos/chainlink-ccv/go/v1"; +option go_package = "github.com/smartcontractkit/chainlink-protos/chainlink-ccv/message-discovery/v1"; service MessageDiscovery { rpc GetMessagesSince(GetMessagesSinceRequest) returns (GetMessagesSinceResponse); @@ -12,7 +12,7 @@ service MessageDiscovery { message VerifierResultWithSequence { // Verifier result contains the message data and required verification data from the committee verifier - VerifierResult verifierResult = 1; + chainlink_ccv.verifier.v1.VerifierResult verifierResult = 1; // Monotonic sequence number assigned by the verifier result API. Can be used to query for new messages since a given sequence. int64 sequence = 2; } @@ -24,3 +24,4 @@ message GetMessagesSinceRequest { message GetMessagesSinceResponse { repeated VerifierResultWithSequence results = 1; } + diff --git a/chainlink-ccv/go/v1/message-discovery_grpc.pb.go b/chainlink-ccv/message-discovery/v1/message-discovery_grpc.pb.go similarity index 94% rename from chainlink-ccv/go/v1/message-discovery_grpc.pb.go rename to chainlink-ccv/message-discovery/v1/message-discovery_grpc.pb.go index 7a268e9..a23d262 100644 --- a/chainlink-ccv/go/v1/message-discovery_grpc.pb.go +++ b/chainlink-ccv/message-discovery/v1/message-discovery_grpc.pb.go @@ -1,8 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v6.32.0 -// source: chainlink-ccv/v1/message-discovery.proto +// - protoc (unknown) +// source: message-discovery/v1/message-discovery.proto package v1 @@ -19,7 +19,7 @@ import ( const _ = grpc.SupportPackageIsVersion9 const ( - MessageDiscovery_GetMessagesSince_FullMethodName = "/chainlink_ccv.v1.MessageDiscovery/GetMessagesSince" + MessageDiscovery_GetMessagesSince_FullMethodName = "/chainlink_ccv.message_discovery.v1.MessageDiscovery/GetMessagesSince" ) // MessageDiscoveryClient is the client API for MessageDiscovery service. @@ -108,7 +108,7 @@ func _MessageDiscovery_GetMessagesSince_Handler(srv interface{}, ctx context.Con // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var MessageDiscovery_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "chainlink_ccv.v1.MessageDiscovery", + ServiceName: "chainlink_ccv.message_discovery.v1.MessageDiscovery", HandlerType: (*MessageDiscoveryServer)(nil), Methods: []grpc.MethodDesc{ { @@ -117,5 +117,5 @@ var MessageDiscovery_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "chainlink-ccv/v1/message-discovery.proto", + Metadata: "message-discovery/v1/message-discovery.proto", } diff --git a/chainlink-ccv/package.json b/chainlink-ccv/package.json deleted file mode 100644 index 6d2c3d0..0000000 --- a/chainlink-ccv/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "@chainlink/chainlink-ccv", - "version": "2.0.0", - "private": true -} \ No newline at end of file diff --git a/chainlink-ccv/v1/aggregator.proto b/chainlink-ccv/v1/aggregator.proto deleted file mode 100644 index b704a5c..0000000 --- a/chainlink-ccv/v1/aggregator.proto +++ /dev/null @@ -1,160 +0,0 @@ -syntax = "proto3"; - -package chainlink_ccv.v1; - -import "google/rpc/status.proto"; - -option go_package = "github.com/smartcontractkit/chainlink-protos/chainlink-ccv/go/v1"; - -service Aggregator { - rpc WriteCommitteeVerifierNodeResult(WriteCommitteeVerifierNodeResultRequest) returns (WriteCommitteeVerifierNodeResultResponse); - rpc BatchWriteCommitteeVerifierNodeResult(BatchWriteCommitteeVerifierNodeResultRequest) returns (BatchWriteCommitteeVerifierNodeResultResponse); - rpc ReadCommitteeVerifierNodeResult(ReadCommitteeVerifierNodeResultRequest) returns (ReadCommitteeVerifierNodeResultResponse); - rpc WriteChainStatus(WriteChainStatusRequest) returns (WriteChainStatusResponse); - rpc ReadChainStatus(ReadChainStatusRequest) returns (ReadChainStatusResponse); -} - -service MessageDiscovery { - rpc GetMessagesSince(GetMessagesSinceRequest) returns (GetMessagesSinceResponse); -} - -service VerifierResultAPI { - rpc GetVerifierResultsForMessage(GetVerifierResultsForMessageRequest) returns (GetVerifierResultsForMessageResponse); -} - -message ChainStatus { - uint64 chain_selector = 1; - uint64 finalized_block_height = 2; - bool disabled = 3; -} - -message WriteChainStatusRequest { - repeated ChainStatus statuses = 1; -} - -message WriteChainStatusResponse { - WriteStatus status = 1; -} - -message ReadChainStatusRequest { - repeated uint64 chain_selectors = 1; -} - -message ReadChainStatusResponse { - repeated ChainStatus statuses = 1; -} - -message Message { - bytes sender = 1; - bytes data = 2; - bytes on_ramp_address = 3; - bytes token_transfer = 4; - bytes off_ramp_address = 5; - bytes dest_blob = 6; - bytes receiver = 7; - uint64 source_chain_selector = 8; - uint64 dest_chain_selector = 9; - uint64 sequence_number = 10; - uint32 execution_gas_limit = 11; - uint32 ccip_receive_gas_limit = 12; - uint32 finality = 13; - bytes ccv_and_executor_hash = 14; - uint32 dest_blob_length = 15; - uint32 token_transfer_length = 16; - uint32 data_length = 17; - uint32 receiver_length = 18; - uint32 sender_length = 19; - uint32 version = 20; - uint32 off_ramp_address_length = 21; - uint32 on_ramp_address_length = 22; -} - -message CommitteeVerifierNodeResult { - // Message data that the CCV node attests to - Message message = 1; - // Version of the CCV found from the receipt blob on the source chain - bytes ccv_version = 2; - // Addresses of the CCV specified for this message - repeated bytes ccv_addresses = 3; - // Address of the preferred executor - bytes executor_address = 4; - // Node signature. Will be combined with other node signatures to reach quorum and for the final verifer result - bytes signature = 5; -} - -message VerifierResult { - // Message data - Message message = 1; - // Addresses of the CCV specified for this message - repeated bytes message_ccv_addresses = 2; - // Address of the preferred executor - bytes message_executor_address = 3; - // Verification data required to execute the message on the destination (e.g. signatures) - bytes ccv_data = 4; - VerifierResultMetadata metadata = 5; -} - -message VerifierResultMetadata { - // Timestamp when the verifier result was created - int64 timestamp = 1; - // Hint to easily identify the source CCV contract address - bytes verifier_source_address = 3; - // Execution hint so that executors can easily verify before writing on chain - bytes verifier_dest_address = 2; -} - - -message VerifierResultWithSequence { - // Verifier result contains the message data and required verification data from the committee verifier - VerifierResult verifierResult = 1; - // Monotonic sequence number assigned by the verifier result API. Can be used to query for new messages since a given sequence. - int64 sequence = 2; -} - -message BatchWriteCommitteeVerifierNodeResultRequest { - repeated WriteCommitteeVerifierNodeResultRequest requests = 1; -} - -message BatchWriteCommitteeVerifierNodeResultResponse { - repeated WriteCommitteeVerifierNodeResultResponse responses = 1; - repeated google.rpc.Status errors = 2; -} - -message WriteCommitteeVerifierNodeResultRequest { - CommitteeVerifierNodeResult committee_verifier_node_result = 1; -} - -enum WriteStatus { - SUCCESS = 0; - FAILED = 1; -} - -message WriteCommitteeVerifierNodeResultResponse { - WriteStatus status = 1; -} - -message ReadCommitteeVerifierNodeResultRequest { - bytes message_id = 1; - bytes address = 2; -} - -message ReadCommitteeVerifierNodeResultResponse { - CommitteeVerifierNodeResult committee_verifier_node_result = 1; -} - -message GetVerifierResultsForMessageRequest { - repeated bytes message_ids = 1; -} - -message GetVerifierResultsForMessageResponse { - repeated VerifierResult results = 1; - repeated google.rpc.Status errors = 2; -} - -message GetMessagesSinceRequest { - int64 sinceSequence = 1; -} - -message GetMessagesSinceResponse { - repeated VerifierResultWithSequence results = 1; -} \ No newline at end of file diff --git a/chainlink-ccv/v1/verifier-result-api.proto b/chainlink-ccv/v1/verifier-result-api.proto deleted file mode 100644 index 188b49b..0000000 --- a/chainlink-ccv/v1/verifier-result-api.proto +++ /dev/null @@ -1,21 +0,0 @@ -syntax = "proto3"; - -package chainlink_ccv.v1; - -import "chainlink-ccv/v1/common.proto"; -import "google/rpc/status.proto"; - -option go_package = "github.com/smartcontractkit/chainlink-protos/chainlink-ccv/go/v1"; - -service VerifierResultAPI { - rpc GetVerifierResultsForMessage(GetVerifierResultsForMessageRequest) returns (GetVerifierResultsForMessageResponse); -} - -message GetVerifierResultsForMessageRequest { - repeated bytes message_ids = 1; -} - -message GetVerifierResultsForMessageResponse { - repeated VerifierResult results = 1; - repeated google.rpc.Status errors = 2; -} diff --git a/chainlink-ccv/verifier/CHANGELOG.md b/chainlink-ccv/verifier/CHANGELOG.md new file mode 100644 index 0000000..3fa7809 --- /dev/null +++ b/chainlink-ccv/verifier/CHANGELOG.md @@ -0,0 +1,9 @@ +# @chainlink/ccv-verifier + +## 0.1.1 + +### Patch Changes + +- [#250](https://github.com/smartcontractkit/chainlink-protos/pull/250) [`5c3421f`](https://github.com/smartcontractkit/chainlink-protos/commit/5c3421fe2c8dcbaff5e01317487d475e4a4f382f) Thanks [@carte7000](https://github.com/carte7000)! - Remove replace in go.mod + +- [#248](https://github.com/smartcontractkit/chainlink-protos/pull/248) [`56ac2cd`](https://github.com/smartcontractkit/chainlink-protos/commit/56ac2cd48cde80fb4693de5fc3007075fff2e1cb) Thanks [@carte7000](https://github.com/carte7000)! - Split package for chainlink-ccv between committee-verifier, verifier and message-discovery diff --git a/chainlink-ccv/go/go.mod b/chainlink-ccv/verifier/go.mod similarity index 80% rename from chainlink-ccv/go/go.mod rename to chainlink-ccv/verifier/go.mod index 4129037..1a7b802 100644 --- a/chainlink-ccv/go/go.mod +++ b/chainlink-ccv/verifier/go.mod @@ -1,4 +1,4 @@ -module github.com/smartcontractkit/chainlink-protos/chainlink-ccv/go +module github.com/smartcontractkit/chainlink-protos/chainlink-ccv/verifier go 1.23.0 @@ -9,7 +9,6 @@ require ( ) require ( - github.com/googleapis/googleapis v0.0.0-20251027162246-ec4e78790482 // indirect golang.org/x/net v0.41.0 // indirect golang.org/x/sys v0.33.0 // indirect golang.org/x/text v0.26.0 // indirect diff --git a/chainlink-ccv/go/go.sum b/chainlink-ccv/verifier/go.sum similarity index 92% rename from chainlink-ccv/go/go.sum rename to chainlink-ccv/verifier/go.sum index 706e18c..c21c8b5 100644 --- a/chainlink-ccv/go/go.sum +++ b/chainlink-ccv/verifier/go.sum @@ -8,8 +8,6 @@ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/googleapis v0.0.0-20251027162246-ec4e78790482 h1:STWNaVykqvXv5Ing0ubj0Yc0BAgPscmFQRwrwwA2Bu0= -github.com/googleapis/googleapis v0.0.0-20251027162246-ec4e78790482/go.mod h1:XrPm4xpez/lHHyE+8/G+NqQRcB4lg42HF9zQVTvxtXw= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/otel v1.37.0 h1:9zhNfelUvx0KBfu/gb+ZgeAfAgtWrfHJZcAqFC228wQ= diff --git a/chainlink-ccv/verifier/package.json b/chainlink-ccv/verifier/package.json new file mode 100644 index 0000000..eeb3d59 --- /dev/null +++ b/chainlink-ccv/verifier/package.json @@ -0,0 +1,5 @@ +{ + "name": "@chainlink/ccv-verifier", + "version": "0.1.1", + "private": true +} diff --git a/chainlink-ccv/go/v1/common.pb.go b/chainlink-ccv/verifier/v1/verifier.pb.go similarity index 62% rename from chainlink-ccv/go/v1/common.pb.go rename to chainlink-ccv/verifier/v1/verifier.pb.go index 62bb027..86f7760 100644 --- a/chainlink-ccv/go/v1/common.pb.go +++ b/chainlink-ccv/verifier/v1/verifier.pb.go @@ -1,12 +1,13 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.8 -// protoc v6.32.0 -// source: chainlink-ccv/v1/common.proto +// protoc-gen-go v1.36.6 +// protoc (unknown) +// source: verifier/v1/verifier.proto package v1 import ( + status "google.golang.org/genproto/googleapis/rpc/status" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" @@ -21,50 +22,100 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type WriteStatus int32 +type GetVerifierResultsForMessageRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + MessageIds [][]byte `protobuf:"bytes,1,rep,name=message_ids,json=messageIds,proto3" json:"message_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} -const ( - WriteStatus_SUCCESS WriteStatus = 0 - WriteStatus_FAILED WriteStatus = 1 -) +func (x *GetVerifierResultsForMessageRequest) Reset() { + *x = GetVerifierResultsForMessageRequest{} + mi := &file_verifier_v1_verifier_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} -// Enum value maps for WriteStatus. -var ( - WriteStatus_name = map[int32]string{ - 0: "SUCCESS", - 1: "FAILED", +func (x *GetVerifierResultsForMessageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVerifierResultsForMessageRequest) ProtoMessage() {} + +func (x *GetVerifierResultsForMessageRequest) ProtoReflect() protoreflect.Message { + mi := &file_verifier_v1_verifier_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - WriteStatus_value = map[string]int32{ - "SUCCESS": 0, - "FAILED": 1, + return mi.MessageOf(x) +} + +// Deprecated: Use GetVerifierResultsForMessageRequest.ProtoReflect.Descriptor instead. +func (*GetVerifierResultsForMessageRequest) Descriptor() ([]byte, []int) { + return file_verifier_v1_verifier_proto_rawDescGZIP(), []int{0} +} + +func (x *GetVerifierResultsForMessageRequest) GetMessageIds() [][]byte { + if x != nil { + return x.MessageIds } -) + return nil +} -func (x WriteStatus) Enum() *WriteStatus { - p := new(WriteStatus) - *p = x - return p +type GetVerifierResultsForMessageResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Results []*VerifierResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` + Errors []*status.Status `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } -func (x WriteStatus) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +func (x *GetVerifierResultsForMessageResponse) Reset() { + *x = GetVerifierResultsForMessageResponse{} + mi := &file_verifier_v1_verifier_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } -func (WriteStatus) Descriptor() protoreflect.EnumDescriptor { - return file_chainlink_ccv_v1_common_proto_enumTypes[0].Descriptor() +func (x *GetVerifierResultsForMessageResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (WriteStatus) Type() protoreflect.EnumType { - return &file_chainlink_ccv_v1_common_proto_enumTypes[0] +func (*GetVerifierResultsForMessageResponse) ProtoMessage() {} + +func (x *GetVerifierResultsForMessageResponse) ProtoReflect() protoreflect.Message { + mi := &file_verifier_v1_verifier_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (x WriteStatus) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) +// Deprecated: Use GetVerifierResultsForMessageResponse.ProtoReflect.Descriptor instead. +func (*GetVerifierResultsForMessageResponse) Descriptor() ([]byte, []int) { + return file_verifier_v1_verifier_proto_rawDescGZIP(), []int{1} +} + +func (x *GetVerifierResultsForMessageResponse) GetResults() []*VerifierResult { + if x != nil { + return x.Results + } + return nil } -// Deprecated: Use WriteStatus.Descriptor instead. -func (WriteStatus) EnumDescriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_common_proto_rawDescGZIP(), []int{0} +func (x *GetVerifierResultsForMessageResponse) GetErrors() []*status.Status { + if x != nil { + return x.Errors + } + return nil } type Message struct { @@ -97,7 +148,7 @@ type Message struct { func (x *Message) Reset() { *x = Message{} - mi := &file_chainlink_ccv_v1_common_proto_msgTypes[0] + mi := &file_verifier_v1_verifier_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -109,7 +160,7 @@ func (x *Message) String() string { func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_common_proto_msgTypes[0] + mi := &file_verifier_v1_verifier_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122,7 +173,7 @@ func (x *Message) ProtoReflect() protoreflect.Message { // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_common_proto_rawDescGZIP(), []int{0} + return file_verifier_v1_verifier_proto_rawDescGZIP(), []int{2} } func (x *Message) GetSender() []byte { @@ -296,7 +347,7 @@ type VerifierResult struct { func (x *VerifierResult) Reset() { *x = VerifierResult{} - mi := &file_chainlink_ccv_v1_common_proto_msgTypes[1] + mi := &file_verifier_v1_verifier_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -308,7 +359,7 @@ func (x *VerifierResult) String() string { func (*VerifierResult) ProtoMessage() {} func (x *VerifierResult) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_common_proto_msgTypes[1] + mi := &file_verifier_v1_verifier_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -321,7 +372,7 @@ func (x *VerifierResult) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifierResult.ProtoReflect.Descriptor instead. func (*VerifierResult) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_common_proto_rawDescGZIP(), []int{1} + return file_verifier_v1_verifier_proto_rawDescGZIP(), []int{3} } func (x *VerifierResult) GetMessage() *Message { @@ -373,7 +424,7 @@ type VerifierResultMetadata struct { func (x *VerifierResultMetadata) Reset() { *x = VerifierResultMetadata{} - mi := &file_chainlink_ccv_v1_common_proto_msgTypes[2] + mi := &file_verifier_v1_verifier_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -385,7 +436,7 @@ func (x *VerifierResultMetadata) String() string { func (*VerifierResultMetadata) ProtoMessage() {} func (x *VerifierResultMetadata) ProtoReflect() protoreflect.Message { - mi := &file_chainlink_ccv_v1_common_proto_msgTypes[2] + mi := &file_verifier_v1_verifier_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -398,7 +449,7 @@ func (x *VerifierResultMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifierResultMetadata.ProtoReflect.Descriptor instead. func (*VerifierResultMetadata) Descriptor() ([]byte, []int) { - return file_chainlink_ccv_v1_common_proto_rawDescGZIP(), []int{2} + return file_verifier_v1_verifier_proto_rawDescGZIP(), []int{4} } func (x *VerifierResultMetadata) GetTimestamp() int64 { @@ -422,11 +473,17 @@ func (x *VerifierResultMetadata) GetVerifierDestAddress() []byte { return nil } -var File_chainlink_ccv_v1_common_proto protoreflect.FileDescriptor +var File_verifier_v1_verifier_proto protoreflect.FileDescriptor -const file_chainlink_ccv_v1_common_proto_rawDesc = "" + +const file_verifier_v1_verifier_proto_rawDesc = "" + "\n" + - "\x1dchainlink-ccv/v1/common.proto\x12\x10chainlink_ccv.v1\"\xfb\x06\n" + + "\x1averifier/v1/verifier.proto\x12\x19chainlink_ccv.verifier.v1\x1a\x17google/rpc/status.proto\"F\n" + + "#GetVerifierResultsForMessageRequest\x12\x1f\n" + + "\vmessage_ids\x18\x01 \x03(\fR\n" + + "messageIds\"\x97\x01\n" + + "$GetVerifierResultsForMessageResponse\x12C\n" + + "\aresults\x18\x01 \x03(\v2).chainlink_ccv.verifier.v1.VerifierResultR\aresults\x12*\n" + + "\x06errors\x18\x02 \x03(\v2\x12.google.rpc.StatusR\x06errors\"\xfb\x06\n" + "\aMessage\x12\x16\n" + "\x06sender\x18\x01 \x01(\fR\x06sender\x12\x12\n" + "\x04data\x18\x02 \x01(\fR\x04data\x12&\n" + @@ -451,73 +508,75 @@ const file_chainlink_ccv_v1_common_proto_rawDesc = "" + "\rsender_length\x18\x13 \x01(\rR\fsenderLength\x12\x18\n" + "\aversion\x18\x14 \x01(\rR\aversion\x125\n" + "\x17off_ramp_address_length\x18\x15 \x01(\rR\x14offRampAddressLength\x123\n" + - "\x16on_ramp_address_length\x18\x16 \x01(\rR\x13onRampAddressLength\"\x94\x02\n" + - "\x0eVerifierResult\x123\n" + - "\amessage\x18\x01 \x01(\v2\x19.chainlink_ccv.v1.MessageR\amessage\x122\n" + + "\x16on_ramp_address_length\x18\x16 \x01(\rR\x13onRampAddressLength\"\xa6\x02\n" + + "\x0eVerifierResult\x12<\n" + + "\amessage\x18\x01 \x01(\v2\".chainlink_ccv.verifier.v1.MessageR\amessage\x122\n" + "\x15message_ccv_addresses\x18\x02 \x03(\fR\x13messageCcvAddresses\x128\n" + "\x18message_executor_address\x18\x03 \x01(\fR\x16messageExecutorAddress\x12\x19\n" + - "\bccv_data\x18\x04 \x01(\fR\accvData\x12D\n" + - "\bmetadata\x18\x05 \x01(\v2(.chainlink_ccv.v1.VerifierResultMetadataR\bmetadata\"\xa2\x01\n" + + "\bccv_data\x18\x04 \x01(\fR\accvData\x12M\n" + + "\bmetadata\x18\x05 \x01(\v21.chainlink_ccv.verifier.v1.VerifierResultMetadataR\bmetadata\"\xa2\x01\n" + "\x16VerifierResultMetadata\x12\x1c\n" + "\ttimestamp\x18\x01 \x01(\x03R\ttimestamp\x126\n" + "\x17verifier_source_address\x18\x02 \x01(\fR\x15verifierSourceAddress\x122\n" + - "\x15verifier_dest_address\x18\x03 \x01(\fR\x13verifierDestAddress*&\n" + - "\vWriteStatus\x12\v\n" + - "\aSUCCESS\x10\x00\x12\n" + - "\n" + - "\x06FAILED\x10\x01BBZ@github.com/smartcontractkit/chainlink-protos/chainlink-ccv/go/v1b\x06proto3" + "\x15verifier_dest_address\x18\x03 \x01(\fR\x13verifierDestAddress2\xac\x01\n" + + "\bVerifier\x12\x9f\x01\n" + + "\x1cGetVerifierResultsForMessage\x12>.chainlink_ccv.verifier.v1.GetVerifierResultsForMessageRequest\x1a?.chainlink_ccv.verifier.v1.GetVerifierResultsForMessageResponseBHZFgithub.com/smartcontractkit/chainlink-protos/chainlink-ccv/verifier/v1b\x06proto3" var ( - file_chainlink_ccv_v1_common_proto_rawDescOnce sync.Once - file_chainlink_ccv_v1_common_proto_rawDescData []byte + file_verifier_v1_verifier_proto_rawDescOnce sync.Once + file_verifier_v1_verifier_proto_rawDescData []byte ) -func file_chainlink_ccv_v1_common_proto_rawDescGZIP() []byte { - file_chainlink_ccv_v1_common_proto_rawDescOnce.Do(func() { - file_chainlink_ccv_v1_common_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_chainlink_ccv_v1_common_proto_rawDesc), len(file_chainlink_ccv_v1_common_proto_rawDesc))) +func file_verifier_v1_verifier_proto_rawDescGZIP() []byte { + file_verifier_v1_verifier_proto_rawDescOnce.Do(func() { + file_verifier_v1_verifier_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_verifier_v1_verifier_proto_rawDesc), len(file_verifier_v1_verifier_proto_rawDesc))) }) - return file_chainlink_ccv_v1_common_proto_rawDescData -} - -var file_chainlink_ccv_v1_common_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_chainlink_ccv_v1_common_proto_msgTypes = make([]protoimpl.MessageInfo, 3) -var file_chainlink_ccv_v1_common_proto_goTypes = []any{ - (WriteStatus)(0), // 0: chainlink_ccv.v1.WriteStatus - (*Message)(nil), // 1: chainlink_ccv.v1.Message - (*VerifierResult)(nil), // 2: chainlink_ccv.v1.VerifierResult - (*VerifierResultMetadata)(nil), // 3: chainlink_ccv.v1.VerifierResultMetadata -} -var file_chainlink_ccv_v1_common_proto_depIdxs = []int32{ - 1, // 0: chainlink_ccv.v1.VerifierResult.message:type_name -> chainlink_ccv.v1.Message - 3, // 1: chainlink_ccv.v1.VerifierResult.metadata:type_name -> chainlink_ccv.v1.VerifierResultMetadata - 2, // [2:2] is the sub-list for method output_type - 2, // [2:2] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name -} - -func init() { file_chainlink_ccv_v1_common_proto_init() } -func file_chainlink_ccv_v1_common_proto_init() { - if File_chainlink_ccv_v1_common_proto != nil { + return file_verifier_v1_verifier_proto_rawDescData +} + +var file_verifier_v1_verifier_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_verifier_v1_verifier_proto_goTypes = []any{ + (*GetVerifierResultsForMessageRequest)(nil), // 0: chainlink_ccv.verifier.v1.GetVerifierResultsForMessageRequest + (*GetVerifierResultsForMessageResponse)(nil), // 1: chainlink_ccv.verifier.v1.GetVerifierResultsForMessageResponse + (*Message)(nil), // 2: chainlink_ccv.verifier.v1.Message + (*VerifierResult)(nil), // 3: chainlink_ccv.verifier.v1.VerifierResult + (*VerifierResultMetadata)(nil), // 4: chainlink_ccv.verifier.v1.VerifierResultMetadata + (*status.Status)(nil), // 5: google.rpc.Status +} +var file_verifier_v1_verifier_proto_depIdxs = []int32{ + 3, // 0: chainlink_ccv.verifier.v1.GetVerifierResultsForMessageResponse.results:type_name -> chainlink_ccv.verifier.v1.VerifierResult + 5, // 1: chainlink_ccv.verifier.v1.GetVerifierResultsForMessageResponse.errors:type_name -> google.rpc.Status + 2, // 2: chainlink_ccv.verifier.v1.VerifierResult.message:type_name -> chainlink_ccv.verifier.v1.Message + 4, // 3: chainlink_ccv.verifier.v1.VerifierResult.metadata:type_name -> chainlink_ccv.verifier.v1.VerifierResultMetadata + 0, // 4: chainlink_ccv.verifier.v1.Verifier.GetVerifierResultsForMessage:input_type -> chainlink_ccv.verifier.v1.GetVerifierResultsForMessageRequest + 1, // 5: chainlink_ccv.verifier.v1.Verifier.GetVerifierResultsForMessage:output_type -> chainlink_ccv.verifier.v1.GetVerifierResultsForMessageResponse + 5, // [5:6] is the sub-list for method output_type + 4, // [4:5] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_verifier_v1_verifier_proto_init() } +func file_verifier_v1_verifier_proto_init() { + if File_verifier_v1_verifier_proto != nil { return } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_chainlink_ccv_v1_common_proto_rawDesc), len(file_chainlink_ccv_v1_common_proto_rawDesc)), - NumEnums: 1, - NumMessages: 3, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_verifier_v1_verifier_proto_rawDesc), len(file_verifier_v1_verifier_proto_rawDesc)), + NumEnums: 0, + NumMessages: 5, NumExtensions: 0, - NumServices: 0, + NumServices: 1, }, - GoTypes: file_chainlink_ccv_v1_common_proto_goTypes, - DependencyIndexes: file_chainlink_ccv_v1_common_proto_depIdxs, - EnumInfos: file_chainlink_ccv_v1_common_proto_enumTypes, - MessageInfos: file_chainlink_ccv_v1_common_proto_msgTypes, + GoTypes: file_verifier_v1_verifier_proto_goTypes, + DependencyIndexes: file_verifier_v1_verifier_proto_depIdxs, + MessageInfos: file_verifier_v1_verifier_proto_msgTypes, }.Build() - File_chainlink_ccv_v1_common_proto = out.File - file_chainlink_ccv_v1_common_proto_goTypes = nil - file_chainlink_ccv_v1_common_proto_depIdxs = nil + File_verifier_v1_verifier_proto = out.File + file_verifier_v1_verifier_proto_goTypes = nil + file_verifier_v1_verifier_proto_depIdxs = nil } diff --git a/chainlink-ccv/v1/common.proto b/chainlink-ccv/verifier/v1/verifier.proto similarity index 72% rename from chainlink-ccv/v1/common.proto rename to chainlink-ccv/verifier/v1/verifier.proto index 7e48383..0ddce8b 100644 --- a/chainlink-ccv/v1/common.proto +++ b/chainlink-ccv/verifier/v1/verifier.proto @@ -1,8 +1,23 @@ syntax = "proto3"; -package chainlink_ccv.v1; +package chainlink_ccv.verifier.v1; -option go_package = "github.com/smartcontractkit/chainlink-protos/chainlink-ccv/go/v1"; +import "google/rpc/status.proto"; + +option go_package = "github.com/smartcontractkit/chainlink-protos/chainlink-ccv/verifier/v1"; + +service Verifier { + rpc GetVerifierResultsForMessage(GetVerifierResultsForMessageRequest) returns (GetVerifierResultsForMessageResponse); +} + +message GetVerifierResultsForMessageRequest { + repeated bytes message_ids = 1; +} + +message GetVerifierResultsForMessageResponse { + repeated VerifierResult results = 1; + repeated google.rpc.Status errors = 2; +} message Message { bytes sender = 1; @@ -41,8 +56,8 @@ message VerifierResult { VerifierResultMetadata metadata = 5; } -message VerifierResultMetadata { - // Timestamp when the verifier result was created +message VerifierResultMetadata { + // Timestamp when the verifier result was created int64 timestamp = 1; // Hint to easily identify the source CCV contract address bytes verifier_source_address = 2; @@ -50,7 +65,3 @@ message VerifierResultMetadata { bytes verifier_dest_address = 3; } -enum WriteStatus { - SUCCESS = 0; - FAILED = 1; -} diff --git a/chainlink-ccv/verifier/v1/verifier_grpc.pb.go b/chainlink-ccv/verifier/v1/verifier_grpc.pb.go new file mode 100644 index 0000000..c2560e9 --- /dev/null +++ b/chainlink-ccv/verifier/v1/verifier_grpc.pb.go @@ -0,0 +1,121 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.5.1 +// - protoc (unknown) +// source: verifier/v1/verifier.proto + +package v1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + Verifier_GetVerifierResultsForMessage_FullMethodName = "/chainlink_ccv.verifier.v1.Verifier/GetVerifierResultsForMessage" +) + +// VerifierClient is the client API for Verifier service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type VerifierClient interface { + GetVerifierResultsForMessage(ctx context.Context, in *GetVerifierResultsForMessageRequest, opts ...grpc.CallOption) (*GetVerifierResultsForMessageResponse, error) +} + +type verifierClient struct { + cc grpc.ClientConnInterface +} + +func NewVerifierClient(cc grpc.ClientConnInterface) VerifierClient { + return &verifierClient{cc} +} + +func (c *verifierClient) GetVerifierResultsForMessage(ctx context.Context, in *GetVerifierResultsForMessageRequest, opts ...grpc.CallOption) (*GetVerifierResultsForMessageResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetVerifierResultsForMessageResponse) + err := c.cc.Invoke(ctx, Verifier_GetVerifierResultsForMessage_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// VerifierServer is the server API for Verifier service. +// All implementations must embed UnimplementedVerifierServer +// for forward compatibility. +type VerifierServer interface { + GetVerifierResultsForMessage(context.Context, *GetVerifierResultsForMessageRequest) (*GetVerifierResultsForMessageResponse, error) + mustEmbedUnimplementedVerifierServer() +} + +// UnimplementedVerifierServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedVerifierServer struct{} + +func (UnimplementedVerifierServer) GetVerifierResultsForMessage(context.Context, *GetVerifierResultsForMessageRequest) (*GetVerifierResultsForMessageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetVerifierResultsForMessage not implemented") +} +func (UnimplementedVerifierServer) mustEmbedUnimplementedVerifierServer() {} +func (UnimplementedVerifierServer) testEmbeddedByValue() {} + +// UnsafeVerifierServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to VerifierServer will +// result in compilation errors. +type UnsafeVerifierServer interface { + mustEmbedUnimplementedVerifierServer() +} + +func RegisterVerifierServer(s grpc.ServiceRegistrar, srv VerifierServer) { + // If the following call pancis, it indicates UnimplementedVerifierServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&Verifier_ServiceDesc, srv) +} + +func _Verifier_GetVerifierResultsForMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetVerifierResultsForMessageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VerifierServer).GetVerifierResultsForMessage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Verifier_GetVerifierResultsForMessage_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VerifierServer).GetVerifierResultsForMessage(ctx, req.(*GetVerifierResultsForMessageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// Verifier_ServiceDesc is the grpc.ServiceDesc for Verifier service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Verifier_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "chainlink_ccv.verifier.v1.Verifier", + HandlerType: (*VerifierServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetVerifierResultsForMessage", + Handler: _Verifier_GetVerifierResultsForMessage_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "verifier/v1/verifier.proto", +} diff --git a/cre/capabilities/blockchain/evm/v1alpha/client.proto b/cre/capabilities/blockchain/evm/v1alpha/client.proto index eb5c036..351717e 100644 --- a/cre/capabilities/blockchain/evm/v1alpha/client.proto +++ b/cre/capabilities/blockchain/evm/v1alpha/client.proto @@ -170,72 +170,108 @@ service Client { uint64_label: { defaults: [ { - key: "ethereum-mainnet-arbitrum-1" - value: 4949039107694359620 + key: "apechain-testnet-curtis" + value: 9900119385908781505 }, { - key: "ethereum-mainnet" - value: 5009297550715157269 + key: "avalanche-mainnet" + value: 6433500567565415381 }, { - key: "polygon-mainnet" - value: 4051577828743386545 + key: "avalanche-testnet-fuji" + value: 14767482510784806043 }, { key: "binance_smart_chain-mainnet-opbnb-1" value: 465944652040885897 }, { - key: "avalanche-mainnet" - value: 6433500567565415381 - }, - { - key: "ethereum-mainnet-optimism-1" - value: 3734403246176062136 + key: "binance_smart_chain-testnet-opbnb-1" + value: 13274425992935471758 }, { - key: "ethereum-testnet-sepolia-arbitrum-1" - value: 3478487238524512106 + key: "ethereum-mainnet" + value: 5009297550715157269 }, { - key: "ethereum-testnet-sepolia" - value: 16015286601757825753 + key: "ethereum-mainnet-arbitrum-1" + value: 4949039107694359620 }, { key: "ethereum-mainnet-base-1" value: 15971525489660198786 }, { - key: "ethereum-testnet-sepolia-base-1" - value: 10344971235874465080 + key: "ethereum-mainnet-optimism-1" + value: 3734403246176062136 }, { - key: "polygon-testnet-amoy" - value: 16281711391670634445 + key: "ethereum-testnet-sepolia" + value: 16015286601757825753 }, { - key: "binance_smart_chain-testnet-opbnb-1" - value: 13274425992935471758 + key: "ethereum-testnet-sepolia-arbitrum-1" + value: 3478487238524512106 }, { - key: "avalanche-testnet-fuji" - value: 14767482510784806043 + key: "ethereum-testnet-sepolia-base-1" + value: 10344971235874465080 + }, + { + key: "ethereum-testnet-sepolia-linea-1" + value: 5719461335882077547 }, { key: "ethereum-testnet-sepolia-optimism-1" value: 5224473277236331295 }, { - key: "private-testnet-andesite" - value: 6915682381028791124 + key: "ethereum-testnet-sepolia-worldchain-1" + value: 5299555114858065850 }, { key: "ethereum-testnet-sepolia-zksync-1" value: 6898391096552792247 }, { - key: "ethereum-mainnet-zksync-1" - value: 1562403441176082196 + key: "etherlink-testnet" + value: 1910019406958449359 + }, + { + key: "hyperliquid-testnet" + value: 4286062357653186312 + }, + { + key: "ink-testnet-sepolia" + value: 9763904284804119144 + }, + { + key: "jovay-testnet" + value: 945045181441419236 + }, + { + key: "pharos-testnet" + value: 4012524741200567430 + }, + { + key: "plasma-testnet" + value: 3967220077692964309 + }, + { + key: "polygon-mainnet" + value: 4051577828743386545 + }, + { + key: "polygon-testnet-amoy" + value: 16281711391670634445 + }, + { + key: "private-testnet-andesite" + value: 6915682381028791124 + }, + { + key: "tempo-testnet" + value: 3963528237232804922 } ] } diff --git a/cre/capabilities/streams/v1/trigger.proto b/cre/capabilities/streams/v1/trigger.proto new file mode 100644 index 0000000..df55cf7 --- /dev/null +++ b/cre/capabilities/streams/v1/trigger.proto @@ -0,0 +1,57 @@ +syntax = "proto3"; + +package capabilities.streams.v1; + +import "cre/tools/generator/v1alpha/cre_metadata.proto"; + +option go_package = "github.com/smartcontractkit/chainlink-common/pkg/capabilities/v2/triggers/streams"; + +// Configuration for the Streams LLO Trigger +// This matches the existing LLOTriggerConfig structure +message Config { + // The IDs of the LLO data streams to subscribe to. + // Stream IDs are uint32 values that identify specific feeds. + repeated uint32 stream_ids = 1; + + // The minimum interval in milliseconds between trigger events. + // Trigger will only emit events at most once per this interval. + uint64 max_frequency_ms = 2; +} + +// An attributed onchain signature +message OCRSignature { + // The signer index + uint32 signer = 1; + + // The signature bytes + bytes signature = 2; +} + +// OCR Trigger Event payload +// This matches the existing OCRTriggerEvent structure that the transmitter emits +message Report { + // Configuration digest for the OCR round + bytes config_digest = 1; + + // Sequence number of the report + uint64 seq_nr = 2; + + // The report bytes (raw OCR report) + bytes report = 3; + + // Attributed onchain signatures + repeated OCRSignature sigs = 4; +} + +// Streams LLO Trigger service definition +// This is the NoDAG API for the existing LLO CRE Transmitter +service Streams { + option (tools.generator.v1alpha.capability) = { + mode: MODE_DON + capability_id: "streams-trigger@2.0.0" + }; + + // Trigger method that emits OCR reports from the LLO plugin + // This replaces the legacy RegisterTrigger/UnregisterTrigger API + rpc Trigger(Config) returns (stream Report); +} diff --git a/cre/go/installer/pkg/embedded_gen.go b/cre/go/installer/pkg/embedded_gen.go index 162721b..733f4e1 100755 --- a/cre/go/installer/pkg/embedded_gen.go +++ b/cre/go/installer/pkg/embedded_gen.go @@ -173,72 +173,108 @@ service Client { uint64_label: { defaults: [ { - key: "ethereum-mainnet-arbitrum-1" - value: 4949039107694359620 + key: "apechain-testnet-curtis" + value: 9900119385908781505 }, { - key: "ethereum-mainnet" - value: 5009297550715157269 + key: "avalanche-mainnet" + value: 6433500567565415381 }, { - key: "polygon-mainnet" - value: 4051577828743386545 + key: "avalanche-testnet-fuji" + value: 14767482510784806043 }, { key: "binance_smart_chain-mainnet-opbnb-1" value: 465944652040885897 }, { - key: "avalanche-mainnet" - value: 6433500567565415381 - }, - { - key: "ethereum-mainnet-optimism-1" - value: 3734403246176062136 + key: "binance_smart_chain-testnet-opbnb-1" + value: 13274425992935471758 }, { - key: "ethereum-testnet-sepolia-arbitrum-1" - value: 3478487238524512106 + key: "ethereum-mainnet" + value: 5009297550715157269 }, { - key: "ethereum-testnet-sepolia" - value: 16015286601757825753 + key: "ethereum-mainnet-arbitrum-1" + value: 4949039107694359620 }, { key: "ethereum-mainnet-base-1" value: 15971525489660198786 }, { - key: "ethereum-testnet-sepolia-base-1" - value: 10344971235874465080 + key: "ethereum-mainnet-optimism-1" + value: 3734403246176062136 }, { - key: "polygon-testnet-amoy" - value: 16281711391670634445 + key: "ethereum-testnet-sepolia" + value: 16015286601757825753 }, { - key: "binance_smart_chain-testnet-opbnb-1" - value: 13274425992935471758 + key: "ethereum-testnet-sepolia-arbitrum-1" + value: 3478487238524512106 }, { - key: "avalanche-testnet-fuji" - value: 14767482510784806043 + key: "ethereum-testnet-sepolia-base-1" + value: 10344971235874465080 + }, + { + key: "ethereum-testnet-sepolia-linea-1" + value: 5719461335882077547 }, { key: "ethereum-testnet-sepolia-optimism-1" value: 5224473277236331295 }, { - key: "private-testnet-andesite" - value: 6915682381028791124 + key: "ethereum-testnet-sepolia-worldchain-1" + value: 5299555114858065850 }, { key: "ethereum-testnet-sepolia-zksync-1" value: 6898391096552792247 }, { - key: "ethereum-mainnet-zksync-1" - value: 1562403441176082196 + key: "etherlink-testnet" + value: 1910019406958449359 + }, + { + key: "hyperliquid-testnet" + value: 4286062357653186312 + }, + { + key: "ink-testnet-sepolia" + value: 9763904284804119144 + }, + { + key: "jovay-testnet" + value: 945045181441419236 + }, + { + key: "pharos-testnet" + value: 4012524741200567430 + }, + { + key: "plasma-testnet" + value: 3967220077692964309 + }, + { + key: "polygon-mainnet" + value: 4051577828743386545 + }, + { + key: "polygon-testnet-amoy" + value: 16281711391670634445 + }, + { + key: "private-testnet-andesite" + value: 6915682381028791124 + }, + { + key: "tempo-testnet" + value: 3963528237232804922 } ] } @@ -1020,6 +1056,65 @@ service Cron { } ` +const streamsV1TriggerEmbedded = `syntax = "proto3"; + +package capabilities.streams.v1; + +import "cre/tools/generator/v1alpha/cre_metadata.proto"; + +option go_package = "github.com/smartcontractkit/chainlink-common/pkg/capabilities/v2/triggers/streams"; + +// Configuration for the Streams LLO Trigger +// This matches the existing LLOTriggerConfig structure +message Config { + // The IDs of the LLO data streams to subscribe to. + // Stream IDs are uint32 values that identify specific feeds. + repeated uint32 stream_ids = 1; + + // The minimum interval in milliseconds between trigger events. + // Trigger will only emit events at most once per this interval. + uint64 max_frequency_ms = 2; +} + +// An attributed onchain signature +message OCRSignature { + // The signer index + uint32 signer = 1; + + // The signature bytes + bytes signature = 2; +} + +// OCR Trigger Event payload +// This matches the existing OCRTriggerEvent structure that the transmitter emits +message Report { + // Configuration digest for the OCR round + bytes config_digest = 1; + + // Sequence number of the report + uint64 seq_nr = 2; + + // The report bytes (raw OCR report) + bytes report = 3; + + // Attributed onchain signatures + repeated OCRSignature sigs = 4; +} + +// Streams LLO Trigger service definition +// This is the NoDAG API for the existing LLO CRE Transmitter +service Streams { + option (tools.generator.v1alpha.capability) = { + mode: MODE_DON + capability_id: "streams-trigger@2.0.0" + }; + + // Trigger method that emits OCR reports from the LLO plugin + // This replaces the legacy RegisterTrigger/UnregisterTrigger API + rpc Trigger(Config) returns (stream Report); +} +` + const v1alphaSdkEmbedded = `syntax = "proto3"; package sdk.v1alpha; @@ -1553,6 +1648,10 @@ var allFiles = []*embeddedFile{ name: "capabilities/scheduler/cron/v1/trigger.proto", content: schedulerCronV1TriggerEmbedded, }, + { + name: "capabilities/streams/v1/trigger.proto", + content: streamsV1TriggerEmbedded, + }, { name: "sdk/v1alpha/sdk.proto", content: v1alphaSdkEmbedded, diff --git a/job-distributor/CHANGELOG.md b/job-distributor/CHANGELOG.md index 033b623..6bcc126 100644 --- a/job-distributor/CHANGELOG.md +++ b/job-distributor/CHANGELOG.md @@ -1,5 +1,11 @@ # @chainlink/job-distributor +## 0.18.0 + +### Minor Changes + +- [#251](https://github.com/smartcontractkit/chainlink-protos/pull/251) [`f2976ad`](https://github.com/smartcontractkit/chainlink-protos/commit/f2976ad341dfa440e66cf18e6c3a9837bfc32529) Thanks [@ChrisAmora](https://github.com/ChrisAmora)! - Add Pagination to List Nodes + ## 0.17.0 ### Minor Changes diff --git a/job-distributor/package.json b/job-distributor/package.json index 058c9e6..cc38bfe 100644 --- a/job-distributor/package.json +++ b/job-distributor/package.json @@ -1,5 +1,5 @@ { "name": "@chainlink/job-distributor", - "version": "0.17.0", + "version": "0.18.0", "private": true } diff --git a/job-distributor/v1/node/node.pb.go b/job-distributor/v1/node/node.pb.go index 24e2d37..687aacf 100644 --- a/job-distributor/v1/node/node.pb.go +++ b/job-distributor/v1/node/node.pb.go @@ -856,8 +856,13 @@ func (x *GetNodeResponse) GetNode() *Node { // // If no filter is provided, all nodes are returned. type ListNodesRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Filter *ListNodesRequest_Filter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Filter *ListNodesRequest_Filter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"` + // Pagination parameters (optional - if not provided, returns all results) + // Maximum number of nodes to return per page. If 0 or not set, returns all nodes. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Page number to return (1-indexed). If 0 or not set, defaults to 1. + Page int32 `protobuf:"varint,3,opt,name=page,proto3" json:"page,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -899,13 +904,29 @@ func (x *ListNodesRequest) GetFilter() *ListNodesRequest_Filter { return nil } +func (x *ListNodesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListNodesRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + // * // ListNodesResponse is the response object for the ListNodes method. // // It returns a list of nodes that match the filter criteria. type ListNodesResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Nodes []*Node `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` // List of nodes. + state protoimpl.MessageState `protogen:"open.v1"` + Nodes []*Node `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` // List of nodes. + // Total number of nodes matching the filter (for pagination) + TotalCount int32 `protobuf:"varint,2,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -947,6 +968,13 @@ func (x *ListNodesResponse) GetNodes() []*Node { return nil } +func (x *ListNodesResponse) GetTotalCount() int32 { + if x != nil { + return x.TotalCount + } + return 0 +} + // UpdateNodeRequest contains the information necessary to update a node. type UpdateNodeRequest struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -1906,17 +1934,21 @@ const file_job_distributor_v1_node_node_proto_rawDesc = "" + "public_key\x18\x02 \x01(\tH\x00R\tpublicKey\x88\x01\x01B\r\n" + "\v_public_key\"8\n" + "\x0fGetNodeResponse\x12%\n" + - "\x04node\x18\x01 \x01(\v2\x11.api.node.v1.NodeR\x04node\"\xf5\x01\n" + + "\x04node\x18\x01 \x01(\v2\x11.api.node.v1.NodeR\x04node\"\xa6\x02\n" + "\x10ListNodesRequest\x12<\n" + - "\x06filter\x18\x01 \x01(\v2$.api.node.v1.ListNodesRequest.FilterR\x06filter\x1a\xa2\x01\n" + + "\x06filter\x18\x01 \x01(\v2$.api.node.v1.ListNodesRequest.FilterR\x06filter\x12\x1b\n" + + "\tpage_size\x18\x02 \x01(\x05R\bpageSize\x12\x12\n" + + "\x04page\x18\x03 \x01(\x05R\x04page\x1a\xa2\x01\n" + "\x06Filter\x12\x10\n" + "\x03ids\x18\x01 \x03(\tR\x03ids\x122\n" + "\aenabled\x18\x02 \x01(\x0e2\x18.api.node.v1.EnableStateR\aenabled\x121\n" + "\tselectors\x18\x03 \x03(\v2\x13.api.label.SelectorR\tselectors\x12\x1f\n" + "\vpublic_keys\x18\x04 \x03(\tR\n" + - "publicKeys\"<\n" + + "publicKeys\"]\n" + "\x11ListNodesResponse\x12'\n" + - "\x05nodes\x18\x01 \x03(\v2\x11.api.node.v1.NodeR\x05nodes\"\x80\x01\n" + + "\x05nodes\x18\x01 \x03(\v2\x11.api.node.v1.NodeR\x05nodes\x12\x1f\n" + + "\vtotal_count\x18\x02 \x01(\x05R\n" + + "totalCount\"\x80\x01\n" + "\x11UpdateNodeRequest\x12\x0e\n" + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + "\x04name\x18\x02 \x01(\tR\x04name\x12\x1d\n" + diff --git a/job-distributor/v1/node/node.proto b/job-distributor/v1/node/node.proto index 1bc1b3d..a8f3d25 100644 --- a/job-distributor/v1/node/node.proto +++ b/job-distributor/v1/node/node.proto @@ -184,6 +184,12 @@ message ListNodesRequest { } Filter filter = 1; + + // Pagination parameters (optional - if not provided, returns all results) + // Maximum number of nodes to return per page. If 0 or not set, returns all nodes. + int32 page_size = 2; + // Page number to return (1-indexed). If 0 or not set, defaults to 1. + int32 page = 3; } /** @@ -193,6 +199,8 @@ message ListNodesRequest { */ message ListNodesResponse { repeated Node nodes = 1; // List of nodes. + // Total number of nodes matching the filter (for pagination) + int32 total_count = 2; } // UpdateNodeRequest contains the information necessary to update a node. diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 036e0a4..baa8d9b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -6,4 +6,6 @@ packages: - 'storage-service' - 'op-catalog' - 'rane' - - 'chainlink-ccv' + - 'chainlink-ccv/verifier' + - 'chainlink-ccv/committee-verifier' + - 'chainlink-ccv/message-discovery' diff --git a/taskfile.yml b/taskfile.yml index 5c0f482..3632d85 100644 --- a/taskfile.yml +++ b/taskfile.yml @@ -27,6 +27,7 @@ tasks: - task proto:gen:data-feeds - task proto:gen:rane - task proto:gen:linking-service + - task proto:gen:chainlink-ccv - task go:mod:tidy proto:gen:job-distributor: @@ -111,6 +112,12 @@ tasks: - find ./linking-service/ -name '*.pb.go' -delete - cd linking-service/go && go generate + proto:gen:chainlink-ccv: + desc: "Generate Go code from protobuf files for chainlink-ccv" + cmds: + - find ./chainlink-ccv/ -name '*.pb.go' -delete + - cd chainlink-ccv && buf generate + proto:clean: desc: "Clean generated protobuf files for all services" cmds: @@ -123,6 +130,7 @@ tasks: - find ./data-feeds/ -name '*.pb.go' -delete - find ./rane/ -name '*.pb.go' -delete - find ./linking-service/ -name '*.pb.go' -delete + - find ./chainlink-ccv/ -name '*.pb.go' -delete go:mod:tidy: desc: "Run go mod tidy in each service folder" diff --git a/workflows/go/generate.go b/workflows/go/generate.go index e5aae86..a799e78 100644 --- a/workflows/go/generate.go +++ b/workflows/go/generate.go @@ -31,4 +31,7 @@ package workflows //go:generate protoc --proto_path=../ --go_out=./ --go_opt=module=github.com/smartcontractkit/chainlink-protos/workflows/go ../workflows/v2/workflow_user_log.proto //go:generate protoc --proto_path=../ --go_out=./ --go_opt=module=github.com/smartcontractkit/chainlink-protos/workflows/go ../workflows/v2/xxx_no_send.proto +// sources/v1 - workflow metadata source service +//go:generate protoc --proto_path=../ --go_out=./ --go-grpc_out=./ --go_opt=module=github.com/smartcontractkit/chainlink-protos/workflows/go --go-grpc_opt=module=github.com/smartcontractkit/chainlink-protos/workflows/go ../sources/v1/workflow_metadata_source.proto + // do not include deprecated workflows/pb/base_message_legacy.proto diff --git a/workflows/go/go.mod b/workflows/go/go.mod index e1b2297..6eb848d 100644 --- a/workflows/go/go.mod +++ b/workflows/go/go.mod @@ -1,5 +1,15 @@ module github.com/smartcontractkit/chainlink-protos/workflows/go -go 1.24 +go 1.24.0 -require google.golang.org/protobuf v1.36.6 +require ( + google.golang.org/grpc v1.75.0 + google.golang.org/protobuf v1.36.8 +) + +require ( + golang.org/x/net v0.47.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/text v0.31.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 // indirect +) diff --git a/workflows/go/go.sum b/workflows/go/go.sum index 4665b5a..8307202 100644 --- a/workflows/go/go.sum +++ b/workflows/go/go.sum @@ -1,6 +1,36 @@ -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= -google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/otel v1.37.0 h1:9zhNfelUvx0KBfu/gb+ZgeAfAgtWrfHJZcAqFC228wQ= +go.opentelemetry.io/otel v1.37.0/go.mod h1:ehE/umFRLnuLa/vSccNq9oS1ErUlkkK71gMcN34UG8I= +go.opentelemetry.io/otel/metric v1.37.0 h1:mvwbQS5m0tbmqML4NqK+e3aDiO02vsf/WgbsdpcPoZE= +go.opentelemetry.io/otel/metric v1.37.0/go.mod h1:04wGrZurHYKOc+RKeye86GwKiTb9FKm1WHtO+4EVr2E= +go.opentelemetry.io/otel/sdk v1.37.0 h1:ItB0QUqnjesGRvNcmAcU0LyvkVyGJ2xftD29bWdDvKI= +go.opentelemetry.io/otel/sdk v1.37.0/go.mod h1:VredYzxUvuo2q3WRcDnKDjbdvmO0sCzOvVAiY+yUkAg= +go.opentelemetry.io/otel/sdk/metric v1.37.0 h1:90lI228XrB9jCMuSdA0673aubgRobVZFhbjxHHspCPc= +go.opentelemetry.io/otel/sdk/metric v1.37.0/go.mod h1:cNen4ZWfiD37l5NhS+Keb5RXVWZWpRE+9WyVCpbo5ps= +go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4= +go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= +gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= +gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 h1:eaY8u2EuxbRv7c3NiGK0/NedzVsCcV6hDuU5qPX5EGE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5/go.mod h1:M4/wBTSeyLxupu3W3tJtOgB14jILAS/XWPSSa3TAlJc= +google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4= +google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= +google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= +google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= diff --git a/workflows/go/sources/workflow_metadata_source.pb.go b/workflows/go/sources/workflow_metadata_source.pb.go new file mode 100644 index 0000000..60ca2f9 --- /dev/null +++ b/workflows/go/sources/workflow_metadata_source.pb.go @@ -0,0 +1,365 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.6 +// protoc v5.29.3 +// source: sources/v1/workflow_metadata_source.proto + +package sources + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +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) +) + +// ListWorkflowMetadataRequest is the request message for ListWorkflowMetadata. +type ListWorkflowMetadataRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + // don_families is the list of DON families to filter workflows by. + DonFamilies []string `protobuf:"bytes,1,rep,name=don_families,json=donFamilies,proto3" json:"don_families,omitempty"` + // start is the pagination offset (0-indexed). Defaults to 0. + Start int64 `protobuf:"varint,2,opt,name=start,proto3" json:"start,omitempty"` + // limit is the maximum number of workflows to return. Defaults to 1000 if not specified. + Limit int64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` + // status_filter filters workflows by status. Empty = all, [0] = active only, [1] = paused only. + // Multiple values can be provided to include workflows matching any of the specified statuses. + StatusFilter []uint32 `protobuf:"varint,4,rep,packed,name=status_filter,json=statusFilter,proto3" json:"status_filter,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListWorkflowMetadataRequest) Reset() { + *x = ListWorkflowMetadataRequest{} + mi := &file_sources_v1_workflow_metadata_source_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListWorkflowMetadataRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWorkflowMetadataRequest) ProtoMessage() {} + +func (x *ListWorkflowMetadataRequest) ProtoReflect() protoreflect.Message { + mi := &file_sources_v1_workflow_metadata_source_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListWorkflowMetadataRequest.ProtoReflect.Descriptor instead. +func (*ListWorkflowMetadataRequest) Descriptor() ([]byte, []int) { + return file_sources_v1_workflow_metadata_source_proto_rawDescGZIP(), []int{0} +} + +func (x *ListWorkflowMetadataRequest) GetDonFamilies() []string { + if x != nil { + return x.DonFamilies + } + return nil +} + +func (x *ListWorkflowMetadataRequest) GetStart() int64 { + if x != nil { + return x.Start + } + return 0 +} + +func (x *ListWorkflowMetadataRequest) GetLimit() int64 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *ListWorkflowMetadataRequest) GetStatusFilter() []uint32 { + if x != nil { + return x.StatusFilter + } + return nil +} + +// ListWorkflowMetadataResponse is the response message for ListWorkflowMetadata. +type ListWorkflowMetadataResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // workflows is the list of workflow metadata entries. + Workflows []*WorkflowMetadata `protobuf:"bytes,1,rep,name=workflows,proto3" json:"workflows,omitempty"` + // has_more indicates whether there are more workflows available beyond this page. + HasMore bool `protobuf:"varint,2,opt,name=has_more,json=hasMore,proto3" json:"has_more,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListWorkflowMetadataResponse) Reset() { + *x = ListWorkflowMetadataResponse{} + mi := &file_sources_v1_workflow_metadata_source_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListWorkflowMetadataResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWorkflowMetadataResponse) ProtoMessage() {} + +func (x *ListWorkflowMetadataResponse) ProtoReflect() protoreflect.Message { + mi := &file_sources_v1_workflow_metadata_source_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListWorkflowMetadataResponse.ProtoReflect.Descriptor instead. +func (*ListWorkflowMetadataResponse) Descriptor() ([]byte, []int) { + return file_sources_v1_workflow_metadata_source_proto_rawDescGZIP(), []int{1} +} + +func (x *ListWorkflowMetadataResponse) GetWorkflows() []*WorkflowMetadata { + if x != nil { + return x.Workflows + } + return nil +} + +func (x *ListWorkflowMetadataResponse) GetHasMore() bool { + if x != nil { + return x.HasMore + } + return false +} + +// WorkflowMetadata represents metadata for a single workflow. +type WorkflowMetadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + WorkflowId []byte `protobuf:"bytes,1,opt,name=workflow_id,json=workflowId,proto3" json:"workflow_id,omitempty"` + Owner []byte `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` + // created_at is the Unix timestamp when the workflow was created. + CreatedAt uint64 `protobuf:"varint,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // status indicates the workflow status (0=active, 1=paused). + Status uint32 `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` + // workflow_name is the human-readable name of the workflow. + WorkflowName string `protobuf:"bytes,5,opt,name=workflow_name,json=workflowName,proto3" json:"workflow_name,omitempty"` + // binary_url is the URL to fetch the workflow binary. + BinaryUrl string `protobuf:"bytes,6,opt,name=binary_url,json=binaryUrl,proto3" json:"binary_url,omitempty"` + // config_url is the URL to fetch the workflow config. + ConfigUrl string `protobuf:"bytes,7,opt,name=config_url,json=configUrl,proto3" json:"config_url,omitempty"` + // tag is the version tag of the workflow. + Tag string `protobuf:"bytes,8,opt,name=tag,proto3" json:"tag,omitempty"` + // attributes is optional JSON-encoded attributes. + Attributes []byte `protobuf:"bytes,9,opt,name=attributes,proto3" json:"attributes,omitempty"` + // don_family is the DON family this workflow belongs to. + DonFamily string `protobuf:"bytes,10,opt,name=don_family,json=donFamily,proto3" json:"don_family,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *WorkflowMetadata) Reset() { + *x = WorkflowMetadata{} + mi := &file_sources_v1_workflow_metadata_source_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WorkflowMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowMetadata) ProtoMessage() {} + +func (x *WorkflowMetadata) ProtoReflect() protoreflect.Message { + mi := &file_sources_v1_workflow_metadata_source_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowMetadata.ProtoReflect.Descriptor instead. +func (*WorkflowMetadata) Descriptor() ([]byte, []int) { + return file_sources_v1_workflow_metadata_source_proto_rawDescGZIP(), []int{2} +} + +func (x *WorkflowMetadata) GetWorkflowId() []byte { + if x != nil { + return x.WorkflowId + } + return nil +} + +func (x *WorkflowMetadata) GetOwner() []byte { + if x != nil { + return x.Owner + } + return nil +} + +func (x *WorkflowMetadata) GetCreatedAt() uint64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *WorkflowMetadata) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *WorkflowMetadata) GetWorkflowName() string { + if x != nil { + return x.WorkflowName + } + return "" +} + +func (x *WorkflowMetadata) GetBinaryUrl() string { + if x != nil { + return x.BinaryUrl + } + return "" +} + +func (x *WorkflowMetadata) GetConfigUrl() string { + if x != nil { + return x.ConfigUrl + } + return "" +} + +func (x *WorkflowMetadata) GetTag() string { + if x != nil { + return x.Tag + } + return "" +} + +func (x *WorkflowMetadata) GetAttributes() []byte { + if x != nil { + return x.Attributes + } + return nil +} + +func (x *WorkflowMetadata) GetDonFamily() string { + if x != nil { + return x.DonFamily + } + return "" +} + +var File_sources_v1_workflow_metadata_source_proto protoreflect.FileDescriptor + +const file_sources_v1_workflow_metadata_source_proto_rawDesc = "" + + "\n" + + ")sources/v1/workflow_metadata_source.proto\x12\n" + + "sources.v1\"\x91\x01\n" + + "\x1bListWorkflowMetadataRequest\x12!\n" + + "\fdon_families\x18\x01 \x03(\tR\vdonFamilies\x12\x14\n" + + "\x05start\x18\x02 \x01(\x03R\x05start\x12\x14\n" + + "\x05limit\x18\x03 \x01(\x03R\x05limit\x12#\n" + + "\rstatus_filter\x18\x04 \x03(\rR\fstatusFilter\"u\n" + + "\x1cListWorkflowMetadataResponse\x12:\n" + + "\tworkflows\x18\x01 \x03(\v2\x1c.sources.v1.WorkflowMetadataR\tworkflows\x12\x19\n" + + "\bhas_more\x18\x02 \x01(\bR\ahasMore\"\xb4\x02\n" + + "\x10WorkflowMetadata\x12\x1f\n" + + "\vworkflow_id\x18\x01 \x01(\fR\n" + + "workflowId\x12\x14\n" + + "\x05owner\x18\x02 \x01(\fR\x05owner\x12\x1d\n" + + "\n" + + "created_at\x18\x03 \x01(\x04R\tcreatedAt\x12\x16\n" + + "\x06status\x18\x04 \x01(\rR\x06status\x12#\n" + + "\rworkflow_name\x18\x05 \x01(\tR\fworkflowName\x12\x1d\n" + + "\n" + + "binary_url\x18\x06 \x01(\tR\tbinaryUrl\x12\x1d\n" + + "\n" + + "config_url\x18\a \x01(\tR\tconfigUrl\x12\x10\n" + + "\x03tag\x18\b \x01(\tR\x03tag\x12\x1e\n" + + "\n" + + "attributes\x18\t \x01(\fR\n" + + "attributes\x12\x1d\n" + + "\n" + + "don_family\x18\n" + + " \x01(\tR\tdonFamily2\x8a\x01\n" + + "\x1dWorkflowMetadataSourceService\x12i\n" + + "\x14ListWorkflowMetadata\x12'.sources.v1.ListWorkflowMetadataRequest\x1a(.sources.v1.ListWorkflowMetadataResponseBCZAgithub.com/smartcontractkit/chainlink-protos/workflows/go/sourcesb\x06proto3" + +var ( + file_sources_v1_workflow_metadata_source_proto_rawDescOnce sync.Once + file_sources_v1_workflow_metadata_source_proto_rawDescData []byte +) + +func file_sources_v1_workflow_metadata_source_proto_rawDescGZIP() []byte { + file_sources_v1_workflow_metadata_source_proto_rawDescOnce.Do(func() { + file_sources_v1_workflow_metadata_source_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_sources_v1_workflow_metadata_source_proto_rawDesc), len(file_sources_v1_workflow_metadata_source_proto_rawDesc))) + }) + return file_sources_v1_workflow_metadata_source_proto_rawDescData +} + +var file_sources_v1_workflow_metadata_source_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_sources_v1_workflow_metadata_source_proto_goTypes = []any{ + (*ListWorkflowMetadataRequest)(nil), // 0: sources.v1.ListWorkflowMetadataRequest + (*ListWorkflowMetadataResponse)(nil), // 1: sources.v1.ListWorkflowMetadataResponse + (*WorkflowMetadata)(nil), // 2: sources.v1.WorkflowMetadata +} +var file_sources_v1_workflow_metadata_source_proto_depIdxs = []int32{ + 2, // 0: sources.v1.ListWorkflowMetadataResponse.workflows:type_name -> sources.v1.WorkflowMetadata + 0, // 1: sources.v1.WorkflowMetadataSourceService.ListWorkflowMetadata:input_type -> sources.v1.ListWorkflowMetadataRequest + 1, // 2: sources.v1.WorkflowMetadataSourceService.ListWorkflowMetadata:output_type -> sources.v1.ListWorkflowMetadataResponse + 2, // [2:3] is the sub-list for method output_type + 1, // [1:2] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_sources_v1_workflow_metadata_source_proto_init() } +func file_sources_v1_workflow_metadata_source_proto_init() { + if File_sources_v1_workflow_metadata_source_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_sources_v1_workflow_metadata_source_proto_rawDesc), len(file_sources_v1_workflow_metadata_source_proto_rawDesc)), + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_sources_v1_workflow_metadata_source_proto_goTypes, + DependencyIndexes: file_sources_v1_workflow_metadata_source_proto_depIdxs, + MessageInfos: file_sources_v1_workflow_metadata_source_proto_msgTypes, + }.Build() + File_sources_v1_workflow_metadata_source_proto = out.File + file_sources_v1_workflow_metadata_source_proto_goTypes = nil + file_sources_v1_workflow_metadata_source_proto_depIdxs = nil +} diff --git a/workflows/go/sources/workflow_metadata_source_grpc.pb.go b/workflows/go/sources/workflow_metadata_source_grpc.pb.go new file mode 100644 index 0000000..07e3c25 --- /dev/null +++ b/workflows/go/sources/workflow_metadata_source_grpc.pb.go @@ -0,0 +1,132 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.5.1 +// - protoc v5.29.3 +// source: sources/v1/workflow_metadata_source.proto + +package sources + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + WorkflowMetadataSourceService_ListWorkflowMetadata_FullMethodName = "/sources.v1.WorkflowMetadataSourceService/ListWorkflowMetadata" +) + +// WorkflowMetadataSourceServiceClient is the client API for WorkflowMetadataSourceService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +// +// WorkflowMetadataSourceService provides workflow metadata from an external source. +// This service allows the chainlink node to fetch workflow metadata from sources +// other than the on-chain workflow registry contract. +type WorkflowMetadataSourceServiceClient interface { + // ListWorkflowMetadata returns all workflow metadata for the given DON. + ListWorkflowMetadata(ctx context.Context, in *ListWorkflowMetadataRequest, opts ...grpc.CallOption) (*ListWorkflowMetadataResponse, error) +} + +type workflowMetadataSourceServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewWorkflowMetadataSourceServiceClient(cc grpc.ClientConnInterface) WorkflowMetadataSourceServiceClient { + return &workflowMetadataSourceServiceClient{cc} +} + +func (c *workflowMetadataSourceServiceClient) ListWorkflowMetadata(ctx context.Context, in *ListWorkflowMetadataRequest, opts ...grpc.CallOption) (*ListWorkflowMetadataResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListWorkflowMetadataResponse) + err := c.cc.Invoke(ctx, WorkflowMetadataSourceService_ListWorkflowMetadata_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// WorkflowMetadataSourceServiceServer is the server API for WorkflowMetadataSourceService service. +// All implementations must embed UnimplementedWorkflowMetadataSourceServiceServer +// for forward compatibility. +// +// WorkflowMetadataSourceService provides workflow metadata from an external source. +// This service allows the chainlink node to fetch workflow metadata from sources +// other than the on-chain workflow registry contract. +type WorkflowMetadataSourceServiceServer interface { + // ListWorkflowMetadata returns all workflow metadata for the given DON. + ListWorkflowMetadata(context.Context, *ListWorkflowMetadataRequest) (*ListWorkflowMetadataResponse, error) + mustEmbedUnimplementedWorkflowMetadataSourceServiceServer() +} + +// UnimplementedWorkflowMetadataSourceServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedWorkflowMetadataSourceServiceServer struct{} + +func (UnimplementedWorkflowMetadataSourceServiceServer) ListWorkflowMetadata(context.Context, *ListWorkflowMetadataRequest) (*ListWorkflowMetadataResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListWorkflowMetadata not implemented") +} +func (UnimplementedWorkflowMetadataSourceServiceServer) mustEmbedUnimplementedWorkflowMetadataSourceServiceServer() { +} +func (UnimplementedWorkflowMetadataSourceServiceServer) testEmbeddedByValue() {} + +// UnsafeWorkflowMetadataSourceServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to WorkflowMetadataSourceServiceServer will +// result in compilation errors. +type UnsafeWorkflowMetadataSourceServiceServer interface { + mustEmbedUnimplementedWorkflowMetadataSourceServiceServer() +} + +func RegisterWorkflowMetadataSourceServiceServer(s grpc.ServiceRegistrar, srv WorkflowMetadataSourceServiceServer) { + // If the following call pancis, it indicates UnimplementedWorkflowMetadataSourceServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&WorkflowMetadataSourceService_ServiceDesc, srv) +} + +func _WorkflowMetadataSourceService_ListWorkflowMetadata_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListWorkflowMetadataRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkflowMetadataSourceServiceServer).ListWorkflowMetadata(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorkflowMetadataSourceService_ListWorkflowMetadata_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkflowMetadataSourceServiceServer).ListWorkflowMetadata(ctx, req.(*ListWorkflowMetadataRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// WorkflowMetadataSourceService_ServiceDesc is the grpc.ServiceDesc for WorkflowMetadataSourceService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var WorkflowMetadataSourceService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "sources.v1.WorkflowMetadataSourceService", + HandlerType: (*WorkflowMetadataSourceServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListWorkflowMetadata", + Handler: _WorkflowMetadataSourceService_ListWorkflowMetadata_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "sources/v1/workflow_metadata_source.proto", +} diff --git a/workflows/go/v2/cre_info.pb.go b/workflows/go/v2/cre_info.pb.go index 1a364ab..a22984a 100644 --- a/workflows/go/v2/cre_info.pb.go +++ b/workflows/go/v2/cre_info.pb.go @@ -33,8 +33,11 @@ type CreInfo struct { EngineVersion string `protobuf:"bytes,8,opt,name=engineVersion,proto3" json:"engineVersion,omitempty"` CapabilitiesRegistryVersion string `protobuf:"bytes,9,opt,name=capabilitiesRegistryVersion,proto3" json:"capabilitiesRegistryVersion,omitempty"` DonVersion string `protobuf:"bytes,10,opt,name=donVersion,proto3" json:"donVersion,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // workflowSource identifies where the workflow was deployed from + // e.g., "contract", "grpc:my-source", "file" + WorkflowSource string `protobuf:"bytes,11,opt,name=workflowSource,proto3" json:"workflowSource,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreInfo) Reset() { @@ -137,11 +140,18 @@ func (x *CreInfo) GetDonVersion() string { return "" } +func (x *CreInfo) GetWorkflowSource() string { + if x != nil { + return x.WorkflowSource + } + return "" +} + var File_workflows_v2_cre_info_proto protoreflect.FileDescriptor const file_workflows_v2_cre_info_proto_rawDesc = "" + "\n" + - "\x1bworkflows/v2/cre_info.proto\x12\fworkflows.v2\"\x8f\x03\n" + + "\x1bworkflows/v2/cre_info.proto\x12\fworkflows.v2\"\xb7\x03\n" + "\aCreInfo\x12\x14\n" + "\x05donID\x18\x01 \x01(\x05R\x05donID\x12\x12\n" + "\x04donF\x18\x02 \x01(\x05R\x04donF\x12\x12\n" + @@ -155,7 +165,8 @@ const file_workflows_v2_cre_info_proto_rawDesc = "" + "\n" + "donVersion\x18\n" + " \x01(\tR\n" + - "donVersionB>ZZ