From 3aee3eb2c8b730336f3f68fe3884392db18e90b3 Mon Sep 17 00:00:00 2001 From: Matthew Pendrey Date: Fri, 8 May 2026 11:00:39 +0100 Subject: [PATCH] wip --- go.mod | 3 + pkg/capabilities/errors/error.go | 148 -------------- pkg/capabilities/errors/error_codes.go | 185 ------------------ .../errors/error_serialization.go | 47 ----- .../errors/error_serialization_test.go | 125 ------------ pkg/capabilities/utils.go | 2 +- pkg/capabilities/utils_test.go | 2 +- .../server/client_server_gen.go | 2 +- .../server/client_server_gen.go | 2 +- .../actions/http/server/client_server_gen.go | 2 +- .../aptos/server/client_server_gen.go | 2 +- .../evm/server/client_server_gen.go | 2 +- .../solana/server/client_server_gen.go | 2 +- .../consensus/server/consensus_server_gen.go | 2 +- .../v2/protoc/pkg/templates/server.go.tmpl | 2 +- .../server/action_and_trigger_server_gen.go | 2 +- .../server/basic_action_server_gen.go | 2 +- .../server/basic_trigger_server_gen.go | 2 +- .../consensus/server/consensus_server_gen.go | 2 +- .../importclash/server/clash_server_gen.go | 2 +- .../server/node_action_server_gen.go | 2 +- .../cron/server/trigger_server_gen.go | 2 +- .../http/server/trigger_server_gen.go | 2 +- .../core/services/capability/capabilities.go | 6 +- .../services/capability/capabilities_test.go | 2 +- 25 files changed, 25 insertions(+), 527 deletions(-) delete mode 100644 pkg/capabilities/errors/error.go delete mode 100644 pkg/capabilities/errors/error_codes.go delete mode 100644 pkg/capabilities/errors/error_serialization.go delete mode 100644 pkg/capabilities/errors/error_serialization_test.go diff --git a/go.mod b/go.mod index ff21096378..031c7d7d64 100644 --- a/go.mod +++ b/go.mod @@ -48,6 +48,7 @@ require ( github.com/smartcontractkit/chainlink-protos/node-platform v0.0.0-20260205130626-db2a2aab956b github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997 + github.com/smartcontractkit/cre-capability-errors v0.0.1 github.com/smartcontractkit/freeport v0.1.3-0.20250716200817-cb5dfd0e369e github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 github.com/smartcontractkit/libocr v0.0.0-20250912173940-f3ab0246e23d @@ -156,3 +157,5 @@ require ( google.golang.org/genproto/googleapis/api v0.0.0-20260401024825-9d38bb4040a9 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) + +replace github.com/smartcontractkit/cre-capability-errors => ../cre-capability-errors diff --git a/pkg/capabilities/errors/error.go b/pkg/capabilities/errors/error.go deleted file mode 100644 index 86f4d00b48..0000000000 --- a/pkg/capabilities/errors/error.go +++ /dev/null @@ -1,148 +0,0 @@ -package errors - -import "fmt" - -type Origin int - -const ( - // OriginSystem The error originated from a system issue. - OriginSystem Origin = 0 - - // OriginUser The error originated from user input or action. - OriginUser Origin = 1 -) - -func (o Origin) String() string { - switch o { - case OriginSystem: - return "System" - case OriginUser: - return "User" - default: - return "Unknown" - } -} - -// FromOriginString converts a string to an Origin value. -func FromOriginString(s string) Origin { - switch s { - case "System": - return OriginSystem - case "User": - return OriginUser - default: - return Origin(-1) - } -} - -type Visibility int - -const ( - // VisibilityPublic The full details of the error can be shared across all nodes in the network. - VisibilityPublic Visibility = 0 - - // VisibilityPrivate The error contains sensitive information that should only be visible to the local node. - VisibilityPrivate Visibility = 1 -) - -// String returns the string representation of the Visibility value. -func (v Visibility) String() string { - switch v { - case VisibilityPublic: - return "Public" - case VisibilityPrivate: - return "Private" - default: - return "Unknown" - } -} - -// FromVisibilityString converts a string to a Visibility value. -func FromVisibilityString(s string) Visibility { - switch s { - case "Public": - return VisibilityPublic - case "Private": - return VisibilityPrivate - default: - return Visibility(-1) - } -} - -type Error interface { - error - - Visibility() Visibility - Origin() Origin - Code() ErrorCode - SerializeToString() string - SerializeToRemoteString() string - Equals(otherErr Error) bool -} - -type capabilityError struct { - err error - origin Origin - visibility Visibility - errorCode ErrorCode -} - -func NewError(err error, visibility Visibility, origin Origin, errorCode ErrorCode) Error { - return &capabilityError{ - err: err, - origin: origin, - visibility: visibility, - errorCode: errorCode, - } -} - -// NewPublicSystemError indicates that the wrapped error is due to a system-level issue and does not contain any -// sensitive information that should only be visible to the node on which it occurred, making it safe to share the full error details -// with other nodes in the network. -func NewPublicSystemError(err error, errorCode ErrorCode) Error { - return NewError(err, VisibilityPublic, OriginSystem, errorCode) -} - -// NewPublicUserError indicates that the wrapped error is due to a user-level issue and does not contain any -// information that should only be visible to the node on which it occurred, making it safe to share the full error details -// with other nodes in the network. -func NewPublicUserError(err error, errorCode ErrorCode) Error { - return NewError(err, VisibilityPublic, OriginUser, errorCode) -} - -// NewPrivateSystemError indicates that the wrapped error is due to a system-level issue and may contain -// sensitive information that should only be visible to the node on which it occurred. The error code will still be -// visible to other nodes in the network. -func NewPrivateSystemError(err error, errorCode ErrorCode) Error { - return NewError(err, VisibilityPrivate, OriginSystem, errorCode) -} - -// NewPrivateUserError indicates that the wrapped error is due to a user-level issue and may contain -// sensitive information that should only be visible to the node on which it occurred. The error code will still be -// visible to other nodes in the network. -func NewPrivateUserError(err error, errorCode ErrorCode) Error { - return NewError(err, VisibilityPrivate, OriginUser, errorCode) -} - -func (e capabilityError) Error() string { - return fmt.Sprintf("[%d]%s: %s", e.errorCode, e.errorCode.String(), e.err.Error()) -} - -func (e capabilityError) Origin() Origin { - return e.origin -} - -func (e capabilityError) Visibility() Visibility { - return e.visibility -} - -func (e capabilityError) Code() ErrorCode { - return e.errorCode -} - -func (e capabilityError) Equals(otherErr Error) bool { - return e.errorCode == otherErr.Code() && - e.origin == otherErr.Origin() && - e.visibility == otherErr.Visibility() && - e.Error() == otherErr.Error() -} diff --git a/pkg/capabilities/errors/error_codes.go b/pkg/capabilities/errors/error_codes.go deleted file mode 100644 index 864f8d5a34..0000000000 --- a/pkg/capabilities/errors/error_codes.go +++ /dev/null @@ -1,185 +0,0 @@ -package errors - -type ErrorCode uint32 - -// Capability error codes are primarily based on gRPC error codes: -// https://grpc.github.io/grpc/core/md_doc_statuscodes.html -// Custom error codes specific to this project should start from 100 to avoid -// conflicts with future gRPC codes. Note: 0 (OK) is intentionally excluded -// because capability errors must always indicate a failure condition. -const ( - // Canceled indicates the operation was canceled (typically by the caller). - Canceled ErrorCode = 1 - - // Unknown error. An example of where this error may be returned is - // if a Status value received from another address space belongs to - // an error-space that is not known in this address space. Also - // errors raised by APIs that do not return enough error information - // may be converted to this error. - Unknown ErrorCode = 2 - - // InvalidArgument indicates client specified an invalid argument. - // Note that this differs from FailedPrecondition. It indicates arguments - // that are problematic regardless of the state of the system - // (e.g., a malformed file name). - InvalidArgument ErrorCode = 3 - - // DeadlineExceeded means operation expired before completion. - // For operations that change the state of the system, this error may be - // returned even if the operation has completed successfully. For - // example, a successful response from a server could have been delayed - // long enough for the deadline to expire. - DeadlineExceeded ErrorCode = 4 - - // NotFound means some requested entity (e.g., file or directory) was - // not found. - NotFound ErrorCode = 5 - - // AlreadyExists means an attempt to create an entity failed because one - // already exists. - AlreadyExists ErrorCode = 6 - - // PermissionDenied indicates the caller does not have permission to - // execute the specified operation. It must not be used for rejections - // caused by exhausting some resource (use ResourceExhausted - // instead for those errors). It must not be - // used if the caller cannot be identified (use Unauthenticated - // instead for those errors). - PermissionDenied ErrorCode = 7 - - // ResourceExhausted indicates some resource has been exhausted, perhaps - // a per-user quota, or perhaps the entire file system is out of space. - ResourceExhausted ErrorCode = 8 - - // FailedPrecondition indicates operation was rejected because the - // system is not in a state required for the operation's execution. - // For example, directory to be deleted may be non-empty, an rmdir - // operation is applied to a non-directory, etc. - // - // A litmus test that may help a service implementor in deciding - // between FailedPrecondition, Aborted, and Unavailable: - // (a) Use Unavailable if the client can retry just the failing call. - // (b) Use Aborted if the client should retry at a higher-level - // (e.g., restarting a read-modify-write sequence). - // (c) Use FailedPrecondition if the client should not retry until - // the system state has been explicitly fixed. E.g., if an "rmdir" - // fails because the directory is non-empty, FailedPrecondition - // should be returned since the client should not retry unless - // they have first fixed up the directory by deleting files from it. - // (d) Use FailedPrecondition if the client performs conditional - // REST Get/Update/Delete on a resource and the resource on the - // server does not match the condition. E.g., conflicting - // read-modify-write on the same resource. - FailedPrecondition ErrorCode = 9 - - // Aborted indicates the operation was aborted, typically due to a - // concurrency issue like sequencer check failures, transaction aborts, - // etc. - // - // See litmus test above for deciding between FailedPrecondition, - // Aborted, and Unavailable. - Aborted ErrorCode = 10 - - // OutOfRange means operation was attempted past the valid range. - // E.g., seeking or reading past end of file. - // - // Unlike InvalidArgument, this error indicates a problem that may - // be fixed if the system state changes. For example, a 32-bit file - // system will generate InvalidArgument if asked to read at an - // offset that is not in the range [0,2^32-1], but it will generate - // OutOfRange if asked to read from an offset past the current - // file size. - // - // There is a fair bit of overlap between FailedPrecondition and - // OutOfRange. We recommend using OutOfRange (the more specific - // error) when it applies so that callers who are iterating through - // a space can easily look for an OutOfRange error to detect when - // they are done. - OutOfRange ErrorCode = 11 - - // Unimplemented indicates operation is not implemented or not - // supported/enabled in this service. - Unimplemented ErrorCode = 12 - - // Internal errors. Means some invariants expected by underlying - // system has been broken. If you see one of these errors, - // something is very broken. - Internal ErrorCode = 13 - - // Unavailable indicates the service is currently unavailable. - // This is a most likely a transient condition and may be corrected - // by retrying with a backoff. Note that it is not always safe to retry - // non-idempotent operations. - // - // See litmus test above for deciding between FailedPrecondition, - // Aborted, and Unavailable. - Unavailable ErrorCode = 14 - - // DataLoss indicates unrecoverable data loss or corruption. - DataLoss ErrorCode = 15 - - // Unauthenticated indicates the request does not have valid - // authentication credentials for the operation. - Unauthenticated ErrorCode = 16 - - // Custom error codes not defined in the gRPC error space are defined below this point, - // starting at 100 to avoid collision with future gRPC defined codes. - - // ConsensusFailed indicates failure to reach consensus - ConsensusFailed ErrorCode = 100 -) - -// String returns the string representation of the ErrorCode. -func (e ErrorCode) String() string { - if s, ok := errorCodeToString[e]; ok { - return s - } - return "Unknown" -} - -var errorCodeToString = map[ErrorCode]string{ - Canceled: "Canceled", - Unknown: "Unknown", - InvalidArgument: "InvalidArgument", - DeadlineExceeded: "DeadlineExceeded", - NotFound: "NotFound", - AlreadyExists: "AlreadyExists", - PermissionDenied: "PermissionDenied", - ResourceExhausted: "ResourceExhausted", - FailedPrecondition: "FailedPrecondition", - Aborted: "Aborted", - OutOfRange: "OutOfRange", - Unimplemented: "Unimplemented", - Internal: "Internal", - Unavailable: "Unavailable", - DataLoss: "DataLoss", - Unauthenticated: "Unauthenticated", - ConsensusFailed: "ConsensusFailed", -} - -var stringToErrorCode = map[string]ErrorCode{ - "Canceled": Canceled, - "Unknown": Unknown, - "InvalidArgument": InvalidArgument, - "DeadlineExceeded": DeadlineExceeded, - "NotFound": NotFound, - "AlreadyExists": AlreadyExists, - "PermissionDenied": PermissionDenied, - "ResourceExhausted": ResourceExhausted, - "FailedPrecondition": FailedPrecondition, - "Aborted": Aborted, - "OutOfRange": OutOfRange, - "Unimplemented": Unimplemented, - "Internal": Internal, - "Unavailable": Unavailable, - "DataLoss": DataLoss, - "Unauthenticated": Unauthenticated, - "ConsensusFailed": ConsensusFailed, -} - -func FromErrorCodeString(str string) ErrorCode { - if code, ok := stringToErrorCode[str]; ok { - return code - } - return Unknown -} diff --git a/pkg/capabilities/errors/error_serialization.go b/pkg/capabilities/errors/error_serialization.go deleted file mode 100644 index c5bf79927a..0000000000 --- a/pkg/capabilities/errors/error_serialization.go +++ /dev/null @@ -1,47 +0,0 @@ -package errors - -import ( - "errors" - "strings" -) - -const errorMessageSeparator = ":" - -func PrePendPrivateVisibilityIdentifier(errorMessage string) string { - return VisibilityPrivate.String() + errorMessageSeparator + errorMessage -} - -func DeserializeErrorFromString(errorMsg string) Error { - parts := strings.SplitN(errorMsg, errorMessageSeparator, 4) - - if len(parts) < 4 { - // To maintain backwards compatibility with messages from remote nodes on an older code version, create an error - // with the full message and default to private system error with an unknown error code. - return NewError(errors.New(errorMsg), VisibilityPrivate, OriginSystem, Unknown) - } - - visibility := FromVisibilityString(parts[0]) - origin := FromOriginString(parts[1]) - errorCode := FromErrorCodeString(parts[2]) - errorMsg = parts[3] - - return NewError(errors.New(errorMsg), visibility, origin, errorCode) -} - -func (e capabilityError) SerializeToString() string { - return e.serializeToString(e.err.Error()) -} - -func (e capabilityError) serializeToString(errMsg string) string { - return e.visibility.String() + errorMessageSeparator + e.origin.String() + errorMessageSeparator + e.Code().String() + errorMessageSeparator + errMsg -} - -// SerializeToRemoteString serializes the error for sending to remote nodes. -// If the error is private, the actual error message is replaced with a generic message. -func (e capabilityError) SerializeToRemoteString() string { - if e.Visibility() == VisibilityPublic { - return e.serializeToString(e.err.Error()) - } - - return e.serializeToString("error whilst executing capability - the error message is not publicly reportable") -} diff --git a/pkg/capabilities/errors/error_serialization_test.go b/pkg/capabilities/errors/error_serialization_test.go deleted file mode 100644 index 8eb056faa3..0000000000 --- a/pkg/capabilities/errors/error_serialization_test.go +++ /dev/null @@ -1,125 +0,0 @@ -package errors_test - -import ( - "errors" - "testing" - - "github.com/stretchr/testify/require" - - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" -) - -func TestErrorSerializationAndDeserialization(t *testing.T) { - // Assuming you have types: Visibility, Origin, and a custom Error type with serialization logic. - visibilities := []caperrors.Visibility{caperrors.VisibilityPublic, caperrors.VisibilityPrivate} - origins := []caperrors.Origin{caperrors.OriginUser, caperrors.OriginSystem} - errorCodes := []caperrors.ErrorCode{caperrors.Unknown, caperrors.ConsensusFailed, caperrors.InvalidArgument} - - for _, v := range visibilities { - for _, o := range origins { - for _, c := range errorCodes { - originalErr := caperrors.NewError(errors.New("test error"), v, o, c) - serialized := originalErr.SerializeToString() - deserializedErr := caperrors.DeserializeErrorFromString(serialized) - if !originalErr.Equals(deserializedErr) { - t.Errorf("expected %v, got %v", originalErr, deserializedErr) - } - } - } - } -} - -func TestRemoteErrorSerializationAndDeserialization(t *testing.T) { - // Assuming you have types: Visibility, Origin, and a custom Error type with serialization logic. - visibilities := []caperrors.Visibility{caperrors.VisibilityPublic, caperrors.VisibilityPrivate} - origins := []caperrors.Origin{caperrors.OriginUser, caperrors.OriginSystem} - errorCodes := []caperrors.ErrorCode{caperrors.Unknown, caperrors.ConsensusFailed, caperrors.InvalidArgument} - - for _, v := range visibilities { - for _, o := range origins { - for _, c := range errorCodes { - originalErr := caperrors.NewError(errors.New("test error"), v, o, c) - serialized := originalErr.SerializeToRemoteString() - deserializedErr := caperrors.DeserializeErrorFromString(serialized) - if v == caperrors.VisibilityPrivate { - require.Equal(t, deserializedErr.Visibility(), originalErr.Visibility()) - require.Equal(t, deserializedErr.Origin(), originalErr.Origin()) - require.Equal(t, deserializedErr.Code(), originalErr.Code()) - require.Contains(t, deserializedErr.Error(), "error whilst executing capability - the error message is not publicly reportable") - } else { - if !originalErr.Equals(deserializedErr) { - t.Errorf("expected %v, got %v", originalErr, deserializedErr) - } - } - } - } - } -} - -// Check behaviour when deserializing the old error format to ensure backwards compatibility -func TestParsingOldErrorFormat(t *testing.T) { - // Test deserialization of an old error format - - oldErrorMsgString := "failed to execute capability: some error occurred" - deserializedErr := caperrors.DeserializeErrorFromString(oldErrorMsgString) - - expectedErr := caperrors.NewError(errors.New(oldErrorMsgString), caperrors.VisibilityPrivate, caperrors.OriginSystem, caperrors.Unknown) - if !deserializedErr.Equals(expectedErr) { - t.Errorf("expected %v, got %v", expectedErr, deserializedErr) - } -} - -// Check behaviour when deserializing messages with invalid visibility, origin, or error codes, also ensures that additional -// errors codes, visibility types and origin types added in future versions do not break deserialization. -func TestParsingWithInvalidVisibilityOriginAndErrorCodesAndBackwardsCompatibility(t *testing.T) { - // Individually test each invalid message - t.Run("InvalidVisibility", func(t *testing.T) { - msg := "some error occurred" - serializedError := "InvalidVisibility:User:Unknown:some error occurred" - deserializedErr := caperrors.DeserializeErrorFromString(serializedError) - expectedErr := caperrors.NewError(errors.New(msg), caperrors.Visibility(-1), caperrors.OriginUser, caperrors.Unknown) - if !deserializedErr.Equals(expectedErr) { - t.Errorf("expected %v, got %v", expectedErr, deserializedErr) - } - }) - - t.Run("InvalidOrigin", func(t *testing.T) { - msg := "some error occurred" - serializedError := "Public:InvalidOrigin:Unknown:some error occurred" - deserializedErr := caperrors.DeserializeErrorFromString(serializedError) - expectedErr := caperrors.NewError(errors.New(msg), caperrors.VisibilityPublic, caperrors.Origin(-1), caperrors.Unknown) - if !deserializedErr.Equals(expectedErr) { - t.Errorf("expected %v, got %v", expectedErr, deserializedErr) - } - }) - - t.Run("InvalidErrorCode", func(t *testing.T) { - msg := "some error occurred" - serializedError := "Public:System:InvalidErrorCode:some error occurred" - deserializedErr := caperrors.DeserializeErrorFromString(serializedError) - expectedErr := caperrors.NewError(errors.New(msg), caperrors.VisibilityPublic, caperrors.OriginSystem, caperrors.Unknown) - if !deserializedErr.Equals(expectedErr) { - t.Errorf("expected %v, got %v", expectedErr, deserializedErr) - } - }) - - t.Run("InvalidMessageInsufficientFields", func(t *testing.T) { - msg := "Public:System:Unknown" - deserializedErr := caperrors.DeserializeErrorFromString(msg) - - expectedErr := caperrors.NewError(errors.New(msg), caperrors.VisibilityPrivate, caperrors.OriginSystem, caperrors.Unknown) - if !deserializedErr.Equals(expectedErr) { - t.Errorf("expected %v, got %v", expectedErr, deserializedErr) - } - }) - - t.Run("NotASerializedCapabilityError", func(t *testing.T) { - msg := "some error has occurred that is not in the serialized capability error format" - deserializedErr := caperrors.DeserializeErrorFromString(msg) - - expectedErr := caperrors.NewError(errors.New(msg), caperrors.VisibilityPrivate, caperrors.OriginSystem, caperrors.Unknown) - if !deserializedErr.Equals(expectedErr) { - t.Errorf("expected %v, got %v", expectedErr, deserializedErr) - } - }) -} diff --git a/pkg/capabilities/utils.go b/pkg/capabilities/utils.go index 060331ffeb..e7429bda4c 100644 --- a/pkg/capabilities/utils.go +++ b/pkg/capabilities/utils.go @@ -8,7 +8,7 @@ import ( "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/anypb" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-protos/cre/go/values" ) diff --git a/pkg/capabilities/utils_test.go b/pkg/capabilities/utils_test.go index 5506858337..63644ac8a8 100644 --- a/pkg/capabilities/utils_test.go +++ b/pkg/capabilities/utils_test.go @@ -14,7 +14,7 @@ import ( ocrtypes "github.com/smartcontractkit/libocr/offchainreporting2/types" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/capabilities/pb" "github.com/smartcontractkit/chainlink-protos/cre/go/values" ) diff --git a/pkg/capabilities/v2/actions/confidentialhttp/server/client_server_gen.go b/pkg/capabilities/v2/actions/confidentialhttp/server/client_server_gen.go index bc27a648e0..8ad7d1f89a 100644 --- a/pkg/capabilities/v2/actions/confidentialhttp/server/client_server_gen.go +++ b/pkg/capabilities/v2/actions/confidentialhttp/server/client_server_gen.go @@ -11,7 +11,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/types/core" ) diff --git a/pkg/capabilities/v2/actions/confidentialworkflow/server/client_server_gen.go b/pkg/capabilities/v2/actions/confidentialworkflow/server/client_server_gen.go index 222bc4fa9f..8ca088e5a1 100644 --- a/pkg/capabilities/v2/actions/confidentialworkflow/server/client_server_gen.go +++ b/pkg/capabilities/v2/actions/confidentialworkflow/server/client_server_gen.go @@ -11,7 +11,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/types/core" ) diff --git a/pkg/capabilities/v2/actions/http/server/client_server_gen.go b/pkg/capabilities/v2/actions/http/server/client_server_gen.go index 51623f7ee3..c3fa4f2d3f 100644 --- a/pkg/capabilities/v2/actions/http/server/client_server_gen.go +++ b/pkg/capabilities/v2/actions/http/server/client_server_gen.go @@ -11,7 +11,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/types/core" ) diff --git a/pkg/capabilities/v2/chain-capabilities/aptos/server/client_server_gen.go b/pkg/capabilities/v2/chain-capabilities/aptos/server/client_server_gen.go index 5efd3bbf61..e1a56f4a09 100644 --- a/pkg/capabilities/v2/chain-capabilities/aptos/server/client_server_gen.go +++ b/pkg/capabilities/v2/chain-capabilities/aptos/server/client_server_gen.go @@ -12,7 +12,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/types/core" ) diff --git a/pkg/capabilities/v2/chain-capabilities/evm/server/client_server_gen.go b/pkg/capabilities/v2/chain-capabilities/evm/server/client_server_gen.go index 57e67c8197..d49658106d 100644 --- a/pkg/capabilities/v2/chain-capabilities/evm/server/client_server_gen.go +++ b/pkg/capabilities/v2/chain-capabilities/evm/server/client_server_gen.go @@ -12,7 +12,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/types/core" ) diff --git a/pkg/capabilities/v2/chain-capabilities/solana/server/client_server_gen.go b/pkg/capabilities/v2/chain-capabilities/solana/server/client_server_gen.go index 60aa9699e8..6404e00a56 100644 --- a/pkg/capabilities/v2/chain-capabilities/solana/server/client_server_gen.go +++ b/pkg/capabilities/v2/chain-capabilities/solana/server/client_server_gen.go @@ -12,7 +12,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/types/core" ) diff --git a/pkg/capabilities/v2/consensus/server/consensus_server_gen.go b/pkg/capabilities/v2/consensus/server/consensus_server_gen.go index aeb630e372..c83a5233b6 100644 --- a/pkg/capabilities/v2/consensus/server/consensus_server_gen.go +++ b/pkg/capabilities/v2/consensus/server/consensus_server_gen.go @@ -12,7 +12,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/types/core" ) diff --git a/pkg/capabilities/v2/protoc/pkg/templates/server.go.tmpl b/pkg/capabilities/v2/protoc/pkg/templates/server.go.tmpl index 2bf7253940..374f0ba8a3 100644 --- a/pkg/capabilities/v2/protoc/pkg/templates/server.go.tmpl +++ b/pkg/capabilities/v2/protoc/pkg/templates/server.go.tmpl @@ -20,7 +20,7 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/types/core" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/loop" ) diff --git a/pkg/capabilities/v2/protoc/pkg/test_capabilities/actionandtrigger/server/action_and_trigger_server_gen.go b/pkg/capabilities/v2/protoc/pkg/test_capabilities/actionandtrigger/server/action_and_trigger_server_gen.go index 299bfa2e46..b8d552d79e 100644 --- a/pkg/capabilities/v2/protoc/pkg/test_capabilities/actionandtrigger/server/action_and_trigger_server_gen.go +++ b/pkg/capabilities/v2/protoc/pkg/test_capabilities/actionandtrigger/server/action_and_trigger_server_gen.go @@ -11,7 +11,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/types/core" ) diff --git a/pkg/capabilities/v2/protoc/pkg/test_capabilities/basicaction/server/basic_action_server_gen.go b/pkg/capabilities/v2/protoc/pkg/test_capabilities/basicaction/server/basic_action_server_gen.go index a4087619f5..63b377922a 100644 --- a/pkg/capabilities/v2/protoc/pkg/test_capabilities/basicaction/server/basic_action_server_gen.go +++ b/pkg/capabilities/v2/protoc/pkg/test_capabilities/basicaction/server/basic_action_server_gen.go @@ -11,7 +11,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/types/core" ) diff --git a/pkg/capabilities/v2/protoc/pkg/test_capabilities/basictrigger/server/basic_trigger_server_gen.go b/pkg/capabilities/v2/protoc/pkg/test_capabilities/basictrigger/server/basic_trigger_server_gen.go index d265dbd626..6812f3f2e3 100644 --- a/pkg/capabilities/v2/protoc/pkg/test_capabilities/basictrigger/server/basic_trigger_server_gen.go +++ b/pkg/capabilities/v2/protoc/pkg/test_capabilities/basictrigger/server/basic_trigger_server_gen.go @@ -11,7 +11,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/types/core" ) diff --git a/pkg/capabilities/v2/protoc/pkg/test_capabilities/consensus/server/consensus_server_gen.go b/pkg/capabilities/v2/protoc/pkg/test_capabilities/consensus/server/consensus_server_gen.go index aeb630e372..c83a5233b6 100644 --- a/pkg/capabilities/v2/protoc/pkg/test_capabilities/consensus/server/consensus_server_gen.go +++ b/pkg/capabilities/v2/protoc/pkg/test_capabilities/consensus/server/consensus_server_gen.go @@ -12,7 +12,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/types/core" ) diff --git a/pkg/capabilities/v2/protoc/pkg/test_capabilities/importclash/server/clash_server_gen.go b/pkg/capabilities/v2/protoc/pkg/test_capabilities/importclash/server/clash_server_gen.go index 06c02a9912..974ab3b0a0 100644 --- a/pkg/capabilities/v2/protoc/pkg/test_capabilities/importclash/server/clash_server_gen.go +++ b/pkg/capabilities/v2/protoc/pkg/test_capabilities/importclash/server/clash_server_gen.go @@ -12,7 +12,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/types/core" ) diff --git a/pkg/capabilities/v2/protoc/pkg/test_capabilities/nodeaction/server/node_action_server_gen.go b/pkg/capabilities/v2/protoc/pkg/test_capabilities/nodeaction/server/node_action_server_gen.go index 6bab3e902b..cb1355a506 100644 --- a/pkg/capabilities/v2/protoc/pkg/test_capabilities/nodeaction/server/node_action_server_gen.go +++ b/pkg/capabilities/v2/protoc/pkg/test_capabilities/nodeaction/server/node_action_server_gen.go @@ -11,7 +11,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/types/core" ) diff --git a/pkg/capabilities/v2/triggers/cron/server/trigger_server_gen.go b/pkg/capabilities/v2/triggers/cron/server/trigger_server_gen.go index 0b1b48d291..69d915ae5f 100644 --- a/pkg/capabilities/v2/triggers/cron/server/trigger_server_gen.go +++ b/pkg/capabilities/v2/triggers/cron/server/trigger_server_gen.go @@ -11,7 +11,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/types/core" ) diff --git a/pkg/capabilities/v2/triggers/http/server/trigger_server_gen.go b/pkg/capabilities/v2/triggers/http/server/trigger_server_gen.go index 373dbe7a3c..d60e6820cd 100644 --- a/pkg/capabilities/v2/triggers/http/server/trigger_server_gen.go +++ b/pkg/capabilities/v2/triggers/http/server/trigger_server_gen.go @@ -11,7 +11,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/types/core" ) diff --git a/pkg/loop/internal/core/services/capability/capabilities.go b/pkg/loop/internal/core/services/capability/capabilities.go index 04f552d25b..e1fdcbc9d3 100644 --- a/pkg/loop/internal/core/services/capability/capabilities.go +++ b/pkg/loop/internal/core/services/capability/capabilities.go @@ -12,7 +12,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/capabilities/pb" "github.com/smartcontractkit/chainlink-common/pkg/loop/internal/net" "github.com/smartcontractkit/chainlink-protos/cre/go/values" @@ -352,7 +352,7 @@ func (t *triggerExecutableClient) registerTrigger(ctx context.Context, req capab } if ackMsg.GetAck() == nil { - return nil, cancel, caperrors.DeserializeErrorFromString(ackMsg.GetResponse().GetError()) + return nil, cancel, caperrors.DeserializeErrorFromString(ackMsg.GetResponse().GetError(), true) } ch, err := forwardTriggerResponsesToChannel(ctx, responseStream.Recv) @@ -493,7 +493,7 @@ func (c *executableClient) Execute(ctx context.Context, req capabilities.Capabil } if resp.Error != "" { - return capabilities.CapabilityResponse{}, caperrors.DeserializeErrorFromString(resp.Error) + return capabilities.CapabilityResponse{}, caperrors.DeserializeErrorFromString(resp.Error, true) } r, err := pb.CapabilityResponseFromProto(resp) diff --git a/pkg/loop/internal/core/services/capability/capabilities_test.go b/pkg/loop/internal/core/services/capability/capabilities_test.go index 5c50cd4037..08760605be 100644 --- a/pkg/loop/internal/core/services/capability/capabilities_test.go +++ b/pkg/loop/internal/core/services/capability/capabilities_test.go @@ -15,7 +15,7 @@ import ( "google.golang.org/grpc/status" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" - caperrors "github.com/smartcontractkit/chainlink-common/pkg/capabilities/errors" + caperrors "github.com/smartcontractkit/cre-capability-errors/errors" "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/loop/internal/net" "github.com/smartcontractkit/chainlink-protos/cre/go/values"