forked from cardano-foundation/CIPs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cip-0108.common.schema.json
122 lines (122 loc) · 4.17 KB
/
cip-0108.common.schema.json
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
{
"title": "CIP-108 Common",
"description": "Metadata document for Cardano governance actions, extending CIP-100",
"type": "object",
"required": ["hashAlgorithm", "authors", "body"],
"properties": {
"hashAlgorithm": {
"$ref": "#/definitions/hashAlgorithm"
},
"authors": {
"$ref": "#/definitions/authors"
},
"body": {
"$ref": "#/definitions/body"
}
},
"definitions": {
"hashAlgorithm": {
"type": "string",
"enum": ["blake2b-256"],
"title": "Hash Algorithm",
"description": "The algorithm used to authenticate this document externally (CIP-100)"
},
"authors": {
"title": "Authors",
"description": "The authors of this governance metadata (CIP-100)",
"type": "array",
"items": {
"$ref": "#/definitions/author"
}
},
"author": {
"title": "Author",
"description": "An author endorsing the content of a metadata document (CIP-100)",
"type": "object",
"required": ["name", "witness"],
"properties": {
"name": {
"type": "string",
"title": "Name"
},
"witness": {
"$ref": "#/definitions/witness"
}
}
},
"body": {
"title": "Body",
"description": "The body of the metadata document that is hashed to produce a signature (CIP-100)",
"type": "object",
"required": ["title", "abstract", "motivation", "rationale"],
"properties": {
"title": {
"type": "string",
"title": "Title",
"description": "A brief introduction to the motivation for the governance action"
},
"abstract": {
"type": "string",
"title": "Abstract",
"description": "A concise summary of the motivation and rationale for the governance action"
},
"motivation": {
"type": "string",
"title": "Motivation",
"description": "Context around the problem being addressed by the on-chain action"
},
"rationale": {
"type": "string",
"title": "Rationale",
"description": "Explanation of how the governance action addresses the problem outlined in 'motivation'"
},
"references": {
"type": "array",
"title": "References",
"items": {
"$ref": "#/definitions/reference"
}
}
}
},
"reference": {
"title": "Reference",
"description": "A reference to a document",
"type": "object",
"required": ["type", "label", "uri"],
"properties": {
"type": {
"type": "string",
"enum": ["GovernanceMetadata", "Other"],
"title": "Type"
},
"label": {
"type": "string",
"title": "Label"
},
"uri": {
"type": "string",
"title": "URI"
},
"referenceHash": {
"$ref": "#/definitions/referenceHash"
}
}
},
"referenceHash": {
"title": "Reference Hash",
"description": "A hash of a reference document",
"type": "object",
"required": ["hashDigest", "hashAlgorithm"],
"properties": {
"hashDigest": {
"type": "string",
"title": "Hash"
},
"hashAlgorithm": {
"$ref": "#/definitions/hashAlgorithm"
}
}
}
}
}