event

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 25, 2025 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const (
	KeygenBrokerStream   = "mpc-keygen"
	KeygenConsumerStream = "mpc-keygen-consumer"
	KeygenRequestTopic   = "mpc.keygen_request.*"
)
View Source
const (
	SigningPublisherStream     = "mpc-signing"
	SigningConsumerStream      = "mpc-signing-consumer"
	SigningRequestTopic        = "mpc.signing_request.*"
	SigningResultTopic         = "mpc.mpc_signing_result.*"
	SigningResultCompleteTopic = "mpc.mpc_signing_result.complete"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ErrorCode

type ErrorCode string

ErrorCode defines specific error types that can occur in MPC operations

const (
	// Generic/Unknown errors
	ErrorCodeUnknown ErrorCode = "ERROR_UNKNOWN"

	// Network and connectivity errors
	ErrorCodeNetworkTimeout      ErrorCode = "ERROR_NETWORK_TIMEOUT"
	ErrorCodeNetworkConnection   ErrorCode = "ERROR_NETWORK_CONNECTION"
	ErrorCodeNetworkSubscription ErrorCode = "ERROR_NETWORK_SUBSCRIPTION"
	ErrorCodeMessageRouting      ErrorCode = "ERROR_MESSAGE_ROUTING"
	ErrorCodeDirectMessaging     ErrorCode = "ERROR_DIRECT_MESSAGING"

	// Session errors
	ErrorCodeSessionTimeout        ErrorCode = "ERROR_SESSION_TIMEOUT"
	ErrorCodeSessionCreation       ErrorCode = "ERROR_SESSION_CREATION"
	ErrorCodeSessionInitialization ErrorCode = "ERROR_SESSION_INITIALIZATION"
	ErrorCodeSessionCleanup        ErrorCode = "ERROR_SESSION_CLEANUP"
	ErrorCodeSessionDuplicate      ErrorCode = "ERROR_SESSION_DUPLICATE"
	ErrorCodeSessionStale          ErrorCode = "ERROR_SESSION_STALE"

	// Participant and peer errors
	ErrorCodeInsufficientParticipants ErrorCode = "ERROR_INSUFFICIENT_PARTICIPANTS"
	ErrorCodeIncompatiblePeerIDs      ErrorCode = "ERROR_INCOMPATIBLE_PEER_IDS"
	ErrorCodePeerNotReady             ErrorCode = "ERROR_PEER_NOT_READY"
	ErrorCodePeerUnavailable          ErrorCode = "ERROR_PEER_UNAVAILABLE"
	ErrorCodeParticipantNotFound      ErrorCode = "ERROR_PARTICIPANT_NOT_FOUND"

	// Key management errors
	ErrorCodeKeyNotFound      ErrorCode = "ERROR_KEY_NOT_FOUND"
	ErrorCodeKeyAlreadyExists ErrorCode = "ERROR_KEY_ALREADY_EXISTS"
	ErrorCodeKeyGeneration    ErrorCode = "ERROR_KEY_GENERATION"
	ErrorCodeKeySave          ErrorCode = "ERROR_KEY_SAVE"
	ErrorCodeKeyLoad          ErrorCode = "ERROR_KEY_LOAD"
	ErrorCodeKeyInfoSave      ErrorCode = "ERROR_KEY_INFO_SAVE"
	ErrorCodeKeyInfoLoad      ErrorCode = "ERROR_KEY_INFO_LOAD"
	ErrorCodeKeyEncoding      ErrorCode = "ERROR_KEY_ENCODING"
	ErrorCodeKeyDecoding      ErrorCode = "ERROR_KEY_DECODING"
	ErrorCodeMsgValidation    ErrorCode = "ERROR_MSG_VALIDATION"

	// Cryptographic operation errors
	ErrorCodeSignatureGeneration       ErrorCode = "ERROR_SIGNATURE_GENERATION"
	ErrorCodeSignatureVerification     ErrorCode = "ERROR_SIGNATURE_VERIFICATION"
	ErrorCodeInvalidInitiatorSignature ErrorCode = "ERROR_INVALID_INITIATOR_SIGNATURE"
	ErrorCodePreParamsGeneration       ErrorCode = "ERROR_PRE_PARAMS_GENERATION"
	ErrorCodeTSSPartyCreation          ErrorCode = "ERROR_TSS_PARTY_CREATION"

	// Data serialization errors
	ErrorCodeMarshalFailure   ErrorCode = "ERROR_MARSHAL_FAILURE"
	ErrorCodeUnmarshalFailure ErrorCode = "ERROR_UNMARSHAL_FAILURE"
	ErrorCodeDataCorruption   ErrorCode = "ERROR_DATA_CORRUPTION"

	// Storage errors
	ErrorCodeStorageRead  ErrorCode = "ERROR_STORAGE_READ"
	ErrorCodeStorageWrite ErrorCode = "ERROR_STORAGE_WRITE"
	ErrorCodeStorageInit  ErrorCode = "ERROR_STORAGE_INIT"

	// Message and verification errors
	ErrorCodeMessageVerification ErrorCode = "ERROR_MESSAGE_VERIFICATION"
	ErrorCodeMessageFormat       ErrorCode = "ERROR_MESSAGE_FORMAT"
	ErrorCodeMessageDelivery     ErrorCode = "ERROR_MESSAGE_DELIVERY"
	ErrorCodeMaxDeliveryAttempts ErrorCode = "ERROR_MAX_DELIVERY_ATTEMPTS"

	// Configuration errors
	ErrorCodeInvalidConfiguration ErrorCode = "ERROR_INVALID_CONFIGURATION"
	ErrorCodeInvalidThreshold     ErrorCode = "ERROR_INVALID_THRESHOLD"
	ErrorCodeInvalidSessionType   ErrorCode = "ERROR_INVALID_SESSION_TYPE"

	// Resource errors
	ErrorCodeResourceExhausted ErrorCode = "ERROR_RESOURCE_EXHAUSTED"
	ErrorCodeMemoryAllocation  ErrorCode = "ERROR_MEMORY_ALLOCATION"
	ErrorCodeConcurrencyLimit  ErrorCode = "ERROR_CONCURRENCY_LIMIT"

	// Operation-specific errors
	ErrorCodeKeygenFailure  ErrorCode = "ERROR_KEYGEN_FAILURE"
	ErrorCodeSigningFailure ErrorCode = "ERROR_SIGNING_FAILURE"
	ErrorCodeReshareFailure ErrorCode = "ERROR_RESHARE_FAILURE"

	// Context and cancellation errors
	ErrorCodeContextCancelled ErrorCode = "ERROR_CONTEXT_CANCELLED"
	ErrorCodeOperationAborted ErrorCode = "ERROR_OPERATION_ABORTED"
)

func GetErrorCodeFromError

func GetErrorCodeFromError(err error) ErrorCode

GetErrorCodeFromError attempts to categorize a generic error into a specific error code

type KeygenResultEvent

type KeygenResultEvent struct {
	WalletID    string `json:"wallet_id"`
	ECDSAPubKey []byte `json:"ecdsa_pub_key"`
	EDDSAPubKey []byte `json:"eddsa_pub_key"`

	ResultType  ResultType `json:"result_type"`
	ErrorReason string     `json:"error_reason"`
	ErrorCode   string     `json:"error_code"`
}

func CreateKeygenFailure

func CreateKeygenFailure(walletID string, metadata map[string]any) *KeygenResultEvent

CreateKeygenFailure creates a failed keygen event

func CreateKeygenSuccess

func CreateKeygenSuccess(walletID string, pubKeyHex string, metadata map[string]any) *KeygenResultEvent

CreateKeygenSuccess creates a successful keygen event

type Message

type Message struct {
	EventType string `json:"event_type"`
	WalletID  string `json:"wallet_id"`
	SessionID string `json:"session_id"`
}

Message represents a generic event message

type ResharingResultEvent

type ResharingResultEvent struct {
	WalletID     string        `json:"wallet_id"`
	NewThreshold int           `json:"new_threshold"`
	KeyType      types.KeyType `json:"key_type"`
	PubKey       []byte        `json:"pub_key"`

	ResultType  ResultType `json:"result_type"`
	ErrorReason string     `json:"error_reason"`
	ErrorCode   string     `json:"error_code"`
}

type ResultType

type ResultType string
const (
	ResultTypeSuccess ResultType = "success"
	ResultTypeError   ResultType = "error"
)

type SigningResultErrorEvent

type SigningResultErrorEvent struct {
	NetworkInternalCode string    `json:"network_internal_code"`
	WalletID            string    `json:"wallet_id"`
	TxID                string    `json:"tx_id"`
	ErrorCode           ErrorCode `json:"error_code"`
	ErrorReason         string    `json:"error_reason"`
	IsTimeout           bool      `json:"is_timeout"`
}

type SigningResultEvent

type SigningResultEvent struct {
	ResultType          ResultType `json:"result_type"`
	ErrorCode           ErrorCode  `json:"error_code"`
	ErrorReason         string     `json:"error_reason"`
	IsTimeout           bool       `json:"is_timeout"`
	NetworkInternalCode string     `json:"network_internal_code"`
	WalletID            string     `json:"wallet_id"`
	TxID                string     `json:"tx_id"`
	R                   []byte     `json:"r"`
	S                   []byte     `json:"s"`
	SignatureRecovery   []byte     `json:"signature_recovery"`

	// TODO: define two separate events for eddsa and ecdsa
	Signature []byte `json:"signature"`
}

func CreateSignFailure

func CreateSignFailure(sessionID, walletID string, metadata map[string]any) SigningResultEvent

func CreateSignSuccess

func CreateSignSuccess(sessionID, walletID, r, s string, metadata map[string]any) SigningResultEvent

type SigningResultSuccessEvent

type SigningResultSuccessEvent struct {
	NetworkInternalCode string `json:"network_internal_code"`
	WalletID            string `json:"wallet_id"`
	TxID                string `json:"tx_id"`
	R                   []byte `json:"r"`
	S                   []byte `json:"s"`
	SignatureRecovery   []byte `json:"signature_recovery"`

	// TODO: define two separate events for eddsa and ecdsa
	Signature []byte `json:"signature"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL