-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcodes.py
More file actions
96 lines (80 loc) · 3.71 KB
/
codes.py
File metadata and controls
96 lines (80 loc) · 3.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
"""Wire `code` strings for Modulr.Core MVP (errors and success).
Aligned with plan/operations.md and plan/validation-and-signing.md.
"""
from enum import StrEnum
class ErrorCode(StrEnum):
"""Stable error codes returned in response envelopes."""
# Request / envelope
MALFORMED_JSON = "MALFORMED_JSON"
INVALID_REQUEST = "INVALID_REQUEST"
MALFORMED_ENVELOPE = "MALFORMED_ENVELOPE"
SIGNATURE_MISSING = "SIGNATURE_MISSING"
INVALID_FIELD = "INVALID_FIELD"
# Routing / version
TARGET_MODULE_MISMATCH = "TARGET_MODULE_MISMATCH"
UNSUPPORTED_OPERATION = "UNSUPPORTED_OPERATION"
MODULE_VERSION_NOT_FOUND = "MODULE_VERSION_NOT_FOUND"
MODULE_VERSION_UNSUPPORTED = "MODULE_VERSION_UNSUPPORTED"
# Time and size
INVALID_EXPIRY = "INVALID_EXPIRY"
MESSAGE_EXPIRED = "MESSAGE_EXPIRED"
EXPIRY_WINDOW_TOO_LARGE = "EXPIRY_WINDOW_TOO_LARGE"
TIMESTAMP_FUTURE_SKEW_EXCEEDED = "TIMESTAMP_FUTURE_SKEW_EXCEEDED"
MESSAGE_TOO_LARGE = "MESSAGE_TOO_LARGE"
PAYLOAD_TOO_LARGE = "PAYLOAD_TOO_LARGE"
# Integrity / crypto
PAYLOAD_HASH_MISMATCH = "PAYLOAD_HASH_MISMATCH"
SIGNATURE_INVALID = "SIGNATURE_INVALID"
PUBLIC_KEY_INVALID = "PUBLIC_KEY_INVALID"
MESSAGE_ID_CONFLICT = "MESSAGE_ID_CONFLICT"
# Payload / policy
PAYLOAD_INVALID = "PAYLOAD_INVALID"
UNAUTHORIZED = "UNAUTHORIZED"
MODULE_NOT_FOUND = "MODULE_NOT_FOUND"
MODULE_ALREADY_REGISTERED = "MODULE_ALREADY_REGISTERED"
NAME_NOT_FOUND = "NAME_NOT_FOUND"
NAME_ALREADY_BOUND = "NAME_ALREADY_BOUND"
IDENTITY_NOT_FOUND = "IDENTITY_NOT_FOUND"
# Operation-specific
INVALID_MODULE_NAME = "INVALID_MODULE_NAME"
MODULE_NAME_RESERVED = "MODULE_NAME_RESERVED"
INVALID_ROUTE = "INVALID_ROUTE"
DIAL_NOT_FOUND = "DIAL_NOT_FOUND"
INVALID_NAME = "INVALID_NAME"
IDENTITY_MISMATCH = "IDENTITY_MISMATCH"
INVALID_STATUS = "INVALID_STATUS"
METRICS_TOO_LARGE = "METRICS_TOO_LARGE"
# HTTP / deployment (until operation handlers land)
OPERATION_NOT_IMPLEMENTED = "OPERATION_NOT_IMPLEMENTED"
INTERNAL_ERROR = "INTERNAL_ERROR"
# Idempotency / replay
REPLAY_RESPONSE_UNAVAILABLE = "REPLAY_RESPONSE_UNAVAILABLE"
# Genesis wizard (unsigned HTTP routes; local/testnet only)
GENESIS_OPERATIONS_NOT_ALLOWED = "GENESIS_OPERATIONS_NOT_ALLOWED"
GENESIS_ALREADY_COMPLETE = "GENESIS_ALREADY_COMPLETE"
GENESIS_CHALLENGE_NOT_FOUND = "GENESIS_CHALLENGE_NOT_FOUND"
GENESIS_CHALLENGE_CONSUMED = "GENESIS_CHALLENGE_CONSUMED"
GENESIS_CHALLENGE_EXPIRED = "GENESIS_CHALLENGE_EXPIRED"
GENESIS_CHALLENGE_NOT_CONSUMED = "GENESIS_CHALLENGE_NOT_CONSUMED"
GENESIS_COMPLETION_WINDOW_EXPIRED = "GENESIS_COMPLETION_WINDOW_EXPIRED"
GENESIS_OPERATOR_SUBJECT_MISMATCH = "GENESIS_OPERATOR_SUBJECT_MISMATCH"
class SuccessCode(StrEnum):
"""Success `code` values for MVP operations."""
PROTOCOL_VERSION_RETURNED = "PROTOCOL_VERSION_RETURNED"
PROTOCOL_METHODS_RETURNED = "PROTOCOL_METHODS_RETURNED"
MODULE_METHODS_RETURNED = "MODULE_METHODS_RETURNED"
MODULE_ROUTE_SUBMITTED = "MODULE_ROUTE_SUBMITTED"
MODULE_ROUTE_REMOVED = "MODULE_ROUTE_REMOVED"
MODULE_ROUTE_RETURNED = "MODULE_ROUTE_RETURNED"
MODULE_REGISTERED = "MODULE_REGISTERED"
MODULE_FOUND = "MODULE_FOUND"
NAME_RESOLVED = "NAME_RESOLVED"
NAME_REGISTERED = "NAME_REGISTERED"
ORG_REGISTERED = "ORG_REGISTERED"
NAME_REVERSE_RESOLVED = "NAME_REVERSE_RESOLVED"
HEARTBEAT_RECORDED = "HEARTBEAT_RECORDED"
MODULE_STATE_REPORTED = "MODULE_STATE_REPORTED"
MODULE_STATE_SNAPSHOT_RETURNED = "MODULE_STATE_SNAPSHOT_RETURNED"
GENESIS_CHALLENGE_ISSUED = "GENESIS_CHALLENGE_ISSUED"
GENESIS_CHALLENGE_VERIFIED = "GENESIS_CHALLENGE_VERIFIED"
GENESIS_WIZARD_COMPLETED = "GENESIS_WIZARD_COMPLETED"