@ottochain/sdk 2.2.5 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/dist/cjs/apps/contracts/index.js +15 -8
  2. package/dist/cjs/apps/contracts/state-machines/contract-agreement.js +89 -46
  3. package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +152 -45
  4. package/dist/cjs/apps/contracts/state-machines/contract-universal.js +40 -8
  5. package/dist/cjs/apps/corporate/index.js +2 -2
  6. package/dist/cjs/apps/corporate/state-machines/corp-board.js +169 -59
  7. package/dist/cjs/apps/corporate/state-machines/corp-entity.js +245 -47
  8. package/dist/cjs/apps/corporate/state-machines/corp-securities.js +407 -99
  9. package/dist/cjs/apps/corporate/state-machines/corp-shareholders.js +151 -37
  10. package/dist/cjs/apps/governance/index.js +14 -14
  11. package/dist/cjs/apps/governance/state-machines/dao-multisig.js +85 -43
  12. package/dist/cjs/apps/governance/state-machines/dao-reputation.js +73 -43
  13. package/dist/cjs/apps/governance/state-machines/dao-single.js +55 -14
  14. package/dist/cjs/apps/governance/state-machines/dao-token.js +103 -45
  15. package/dist/cjs/apps/governance/state-machines/governance-simple.js +129 -65
  16. package/dist/cjs/apps/governance/state-machines/governance-universal.js +29 -5
  17. package/dist/cjs/apps/identity/constants.js +55 -14
  18. package/dist/cjs/apps/identity/index.js +27 -11
  19. package/dist/cjs/apps/identity/state-machines/identity-agent.js +57 -9
  20. package/dist/cjs/apps/identity/state-machines/identity-oracle.js +70 -27
  21. package/dist/cjs/apps/identity/state-machines/identity-registry.js +288 -0
  22. package/dist/cjs/apps/identity/state-machines/identity-universal.js +30 -6
  23. package/dist/cjs/apps/identity/state-machines/index.js +3 -1
  24. package/dist/cjs/apps/index.js +19 -8
  25. package/dist/cjs/apps/lending/assets.js +223 -0
  26. package/dist/cjs/apps/lending/credit-scoring.js +87 -0
  27. package/dist/cjs/apps/lending/eligibility.js +121 -0
  28. package/dist/cjs/apps/lending/index.js +91 -0
  29. package/dist/cjs/apps/lending/state-machines/index.js +9 -0
  30. package/dist/cjs/apps/lending/state-machines/lending-zk-loan.js +412 -0
  31. package/dist/cjs/apps/markets/index.js +21 -11
  32. package/dist/cjs/apps/markets/state-machines/market-auction.js +44 -19
  33. package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +54 -29
  34. package/dist/cjs/apps/markets/state-machines/market-group-buy.js +53 -31
  35. package/dist/cjs/apps/markets/state-machines/market-prediction.js +120 -61
  36. package/dist/cjs/apps/markets/state-machines/market-universal.js +50 -10
  37. package/dist/cjs/apps/oracles/index.js +2 -2
  38. package/dist/cjs/errors.js +3 -3
  39. package/dist/cjs/generated/google/protobuf/struct.js +4 -4
  40. package/dist/cjs/generated/index.js +11 -7
  41. package/dist/cjs/generated/openapi.js +6 -0
  42. package/dist/cjs/generated/ottochain/apps/contracts/v1/contract.js +50 -50
  43. package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate.js +19 -20
  44. package/dist/cjs/generated/ottochain/apps/governance/v1/governance.js +13 -13
  45. package/dist/cjs/generated/ottochain/apps/identity/v1/attestation.js +4 -4
  46. package/dist/cjs/generated/ottochain/apps/identity/v1/identity.js +124 -130
  47. package/dist/cjs/generated/ottochain/apps/markets/v1/market.js +107 -107
  48. package/dist/cjs/generated/ottochain/v1/common.js +1722 -1
  49. package/dist/cjs/generated/ottochain/v1/fiber.js +355 -5
  50. package/dist/cjs/generated/ottochain/v1/messages.js +775 -3
  51. package/dist/cjs/generated/ottochain/v1/records.js +350 -3
  52. package/dist/cjs/index.js +45 -7
  53. package/dist/cjs/openapi.js +2 -0
  54. package/dist/cjs/ottochain/drop-nulls.js +1 -2
  55. package/dist/cjs/ottochain/genesis-manifest.js +193 -0
  56. package/dist/cjs/ottochain/index.js +27 -13
  57. package/dist/cjs/ottochain/metagraph-client.js +65 -8
  58. package/dist/cjs/ottochain/snapshot.js +11 -12
  59. package/dist/cjs/ottochain/transaction.js +57 -14
  60. package/dist/cjs/ottochain/types.js +19 -1
  61. package/dist/cjs/privacy/index.js +14 -0
  62. package/dist/cjs/privacy/sealed-bid.js +210 -0
  63. package/dist/cjs/privacy/shield-app.js +131 -0
  64. package/dist/cjs/schema/effects.js +40 -0
  65. package/dist/cjs/schema/fiber-app.js +19 -13
  66. package/dist/cjs/schema/guard-lint.js +352 -0
  67. package/dist/cjs/schema/guards.js +246 -0
  68. package/dist/cjs/signing.js +80 -0
  69. package/dist/cjs/types.js +2 -3
  70. package/dist/cjs/validation.js +8 -8
  71. package/dist/cjs/verify.js +9 -4
  72. package/dist/cjs/zk/commit.js +53 -0
  73. package/dist/cjs/zk/guard.js +107 -0
  74. package/dist/cjs/zk/index.js +48 -0
  75. package/dist/cjs/zk/preimage.js +37 -0
  76. package/dist/cjs/zk/prover.js +87 -0
  77. package/dist/cjs/zk/registry.js +62 -0
  78. package/dist/cjs/zk/types.js +28 -0
  79. package/dist/cjs/zk/witness.js +19 -0
  80. package/dist/esm/apps/contracts/index.js +7 -3
  81. package/dist/esm/apps/contracts/state-machines/contract-agreement.js +89 -46
  82. package/dist/esm/apps/contracts/state-machines/contract-escrow.js +152 -45
  83. package/dist/esm/apps/contracts/state-machines/contract-universal.js +40 -8
  84. package/dist/esm/apps/corporate/state-machines/corp-board.js +169 -59
  85. package/dist/esm/apps/corporate/state-machines/corp-entity.js +245 -47
  86. package/dist/esm/apps/corporate/state-machines/corp-securities.js +407 -99
  87. package/dist/esm/apps/corporate/state-machines/corp-shareholders.js +151 -37
  88. package/dist/esm/apps/governance/state-machines/dao-multisig.js +85 -43
  89. package/dist/esm/apps/governance/state-machines/dao-reputation.js +73 -43
  90. package/dist/esm/apps/governance/state-machines/dao-single.js +55 -14
  91. package/dist/esm/apps/governance/state-machines/dao-token.js +103 -45
  92. package/dist/esm/apps/governance/state-machines/governance-simple.js +129 -65
  93. package/dist/esm/apps/governance/state-machines/governance-universal.js +29 -5
  94. package/dist/esm/apps/identity/constants.js +51 -12
  95. package/dist/esm/apps/identity/index.js +12 -7
  96. package/dist/esm/apps/identity/state-machines/identity-agent.js +57 -9
  97. package/dist/esm/apps/identity/state-machines/identity-oracle.js +70 -27
  98. package/dist/esm/apps/identity/state-machines/identity-registry.js +285 -0
  99. package/dist/esm/apps/identity/state-machines/identity-universal.js +30 -6
  100. package/dist/esm/apps/identity/state-machines/index.js +1 -0
  101. package/dist/esm/apps/index.js +1 -0
  102. package/dist/esm/apps/lending/assets.js +207 -0
  103. package/dist/esm/apps/lending/credit-scoring.js +81 -0
  104. package/dist/esm/apps/lending/eligibility.js +115 -0
  105. package/dist/esm/apps/lending/index.js +69 -0
  106. package/dist/esm/apps/lending/state-machines/index.js +5 -0
  107. package/dist/esm/apps/lending/state-machines/lending-zk-loan.js +409 -0
  108. package/dist/esm/apps/markets/index.js +8 -4
  109. package/dist/esm/apps/markets/state-machines/market-auction.js +44 -19
  110. package/dist/esm/apps/markets/state-machines/market-crowdfund.js +54 -29
  111. package/dist/esm/apps/markets/state-machines/market-group-buy.js +53 -31
  112. package/dist/esm/apps/markets/state-machines/market-prediction.js +120 -61
  113. package/dist/esm/apps/markets/state-machines/market-universal.js +50 -10
  114. package/dist/esm/generated/index.js +9 -5
  115. package/dist/esm/generated/openapi.js +5 -0
  116. package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +46 -46
  117. package/dist/esm/generated/ottochain/apps/identity/v1/identity.js +114 -120
  118. package/dist/esm/generated/ottochain/apps/markets/v1/market.js +100 -100
  119. package/dist/esm/generated/ottochain/v1/common.js +1718 -0
  120. package/dist/esm/generated/ottochain/v1/fiber.js +351 -1
  121. package/dist/esm/generated/ottochain/v1/messages.js +774 -2
  122. package/dist/esm/generated/ottochain/v1/records.js +349 -2
  123. package/dist/esm/index.js +23 -2
  124. package/dist/esm/openapi.js +1 -0
  125. package/dist/esm/ottochain/genesis-manifest.js +189 -0
  126. package/dist/esm/ottochain/index.js +4 -3
  127. package/dist/esm/ottochain/metagraph-client.js +65 -8
  128. package/dist/esm/ottochain/snapshot.js +4 -4
  129. package/dist/esm/ottochain/transaction.js +43 -3
  130. package/dist/esm/ottochain/types.js +18 -0
  131. package/dist/esm/privacy/index.js +6 -0
  132. package/dist/esm/privacy/sealed-bid.js +206 -0
  133. package/dist/esm/privacy/shield-app.js +127 -0
  134. package/dist/esm/schema/effects.js +35 -0
  135. package/dist/esm/schema/fiber-app.js +13 -6
  136. package/dist/esm/schema/guard-lint.js +346 -0
  137. package/dist/esm/schema/guards.js +229 -0
  138. package/dist/esm/signing.js +74 -0
  139. package/dist/esm/verify.js +8 -2
  140. package/dist/esm/zk/commit.js +44 -0
  141. package/dist/esm/zk/guard.js +99 -0
  142. package/dist/esm/zk/index.js +19 -0
  143. package/dist/esm/zk/preimage.js +30 -0
  144. package/dist/esm/zk/prover.js +82 -0
  145. package/dist/esm/zk/registry.js +55 -0
  146. package/dist/esm/zk/types.js +25 -0
  147. package/dist/esm/zk/witness.js +15 -0
  148. package/dist/types/apps/contracts/index.d.ts +159 -227
  149. package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +50 -101
  150. package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +86 -120
  151. package/dist/types/apps/contracts/state-machines/contract-universal.d.ts +20 -4
  152. package/dist/types/apps/corporate/index.d.ts +1040 -304
  153. package/dist/types/apps/corporate/state-machines/corp-board.d.ts +188 -52
  154. package/dist/types/apps/corporate/state-machines/corp-entity.d.ts +267 -62
  155. package/dist/types/apps/corporate/state-machines/corp-securities.d.ts +355 -131
  156. package/dist/types/apps/corporate/state-machines/corp-shareholders.d.ts +225 -53
  157. package/dist/types/apps/governance/index.d.ts +396 -417
  158. package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +92 -95
  159. package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +57 -69
  160. package/dist/types/apps/governance/state-machines/dao-single.d.ts +40 -50
  161. package/dist/types/apps/governance/state-machines/dao-token.d.ts +80 -53
  162. package/dist/types/apps/governance/state-machines/governance-simple.d.ts +107 -121
  163. package/dist/types/apps/governance/state-machines/governance-universal.d.ts +17 -5
  164. package/dist/types/apps/identity/constants.d.ts +32 -4
  165. package/dist/types/apps/identity/index.d.ts +449 -100
  166. package/dist/types/apps/identity/state-machines/identity-agent.d.ts +30 -0
  167. package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +41 -87
  168. package/dist/types/apps/identity/state-machines/identity-registry.d.ts +379 -0
  169. package/dist/types/apps/identity/state-machines/identity-universal.d.ts +15 -0
  170. package/dist/types/apps/identity/state-machines/index.d.ts +1 -0
  171. package/dist/types/apps/index.d.ts +1 -0
  172. package/dist/types/apps/lending/assets.d.ts +258 -0
  173. package/dist/types/apps/lending/credit-scoring.d.ts +80 -0
  174. package/dist/types/apps/lending/eligibility.d.ts +83 -0
  175. package/dist/types/apps/lending/index.d.ts +548 -0
  176. package/dist/types/apps/lending/state-machines/index.d.ts +5 -0
  177. package/dist/types/apps/lending/state-machines/lending-zk-loan.d.ts +528 -0
  178. package/dist/types/apps/markets/index.d.ts +184 -204
  179. package/dist/types/apps/markets/state-machines/market-auction.d.ts +25 -37
  180. package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +26 -34
  181. package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +31 -43
  182. package/dist/types/apps/markets/state-machines/market-prediction.d.ts +67 -72
  183. package/dist/types/apps/markets/state-machines/market-universal.d.ts +30 -10
  184. package/dist/types/generated/index.d.ts +5 -5
  185. package/dist/types/generated/openapi.d.ts +1257 -0
  186. package/dist/types/generated/ottochain/apps/contracts/v1/contract.d.ts +5 -5
  187. package/dist/types/generated/ottochain/apps/identity/v1/identity.d.ts +12 -12
  188. package/dist/types/generated/ottochain/apps/markets/v1/market.d.ts +11 -11
  189. package/dist/types/generated/ottochain/v1/common.d.ts +228 -0
  190. package/dist/types/generated/ottochain/v1/fiber.d.ts +32 -1
  191. package/dist/types/generated/ottochain/v1/messages.d.ts +84 -0
  192. package/dist/types/generated/ottochain/v1/records.d.ts +34 -0
  193. package/dist/types/index.d.ts +8 -2
  194. package/dist/types/openapi.d.ts +22 -0
  195. package/dist/types/ottochain/genesis-manifest.d.ts +130 -0
  196. package/dist/types/ottochain/index.d.ts +6 -5
  197. package/dist/types/ottochain/metagraph-client.d.ts +49 -7
  198. package/dist/types/ottochain/snapshot.d.ts +6 -6
  199. package/dist/types/ottochain/transaction.d.ts +33 -1
  200. package/dist/types/ottochain/types.d.ts +602 -11
  201. package/dist/types/privacy/index.d.ts +6 -0
  202. package/dist/types/privacy/sealed-bid.d.ts +348 -0
  203. package/dist/types/privacy/shield-app.d.ts +48 -0
  204. package/dist/types/schema/effects.d.ts +34 -0
  205. package/dist/types/schema/fiber-app.d.ts +41 -3
  206. package/dist/types/schema/guard-lint.d.ts +111 -0
  207. package/dist/types/schema/guards.d.ts +134 -0
  208. package/dist/types/signing.d.ts +45 -0
  209. package/dist/types/validation.d.ts +22 -217
  210. package/dist/types/verify.d.ts +4 -0
  211. package/dist/types/zk/commit.d.ts +28 -0
  212. package/dist/types/zk/guard.d.ts +46 -0
  213. package/dist/types/zk/index.d.ts +19 -0
  214. package/dist/types/zk/preimage.d.ts +10 -0
  215. package/dist/types/zk/prover.d.ts +34 -0
  216. package/dist/types/zk/registry.d.ts +34 -0
  217. package/dist/types/zk/types.d.ts +33 -0
  218. package/dist/types/zk/witness.d.ts +40 -0
  219. package/package.json +52 -35
  220. package/dist/cjs/ottochain/normalize.js +0 -186
  221. package/dist/esm/ottochain/normalize.js +0 -179
  222. package/dist/types/ottochain/normalize.d.ts +0 -79
@@ -170,26 +170,56 @@ export declare const identityAgentDef: {
170
170
  REGISTERED: {
171
171
  id: string;
172
172
  isFinal: false;
173
+ metadata: {
174
+ label: string;
175
+ description: string;
176
+ category: "initial";
177
+ };
173
178
  };
174
179
  ACTIVE: {
175
180
  id: string;
176
181
  isFinal: false;
182
+ metadata: {
183
+ label: string;
184
+ description: string;
185
+ category: "active";
186
+ };
177
187
  };
178
188
  CHALLENGED: {
179
189
  id: string;
180
190
  isFinal: false;
191
+ metadata: {
192
+ label: string;
193
+ description: string;
194
+ category: "pending";
195
+ };
181
196
  };
182
197
  SUSPENDED: {
183
198
  id: string;
184
199
  isFinal: false;
200
+ metadata: {
201
+ label: string;
202
+ description: string;
203
+ category: "pending";
204
+ };
185
205
  };
186
206
  PROBATION: {
187
207
  id: string;
188
208
  isFinal: false;
209
+ metadata: {
210
+ label: string;
211
+ description: string;
212
+ category: "active";
213
+ };
189
214
  };
190
215
  WITHDRAWN: {
191
216
  id: string;
192
217
  isFinal: true;
218
+ metadata: {
219
+ label: string;
220
+ description: string;
221
+ category: "terminal";
222
+ };
193
223
  };
194
224
  };
195
225
  initialState: "REGISTERED";
@@ -10,13 +10,18 @@ export declare const identityOracleDef: {
10
10
  description: string;
11
11
  };
12
12
  createSchema: {
13
- required: readonly ["owner", "stake", "domains"];
13
+ required: readonly ["owner", "stake", "domains", "slasher"];
14
14
  properties: {
15
15
  owner: {
16
16
  type: "address";
17
17
  description: string;
18
18
  immutable: true;
19
19
  };
20
+ slasher: {
21
+ type: "address";
22
+ description: string;
23
+ immutable: true;
24
+ };
20
25
  stake: {
21
26
  type: "integer";
22
27
  minimum: number;
@@ -42,6 +47,10 @@ export declare const identityOracleDef: {
42
47
  type: "address";
43
48
  immutable: true;
44
49
  };
50
+ slasher: {
51
+ type: "address";
52
+ immutable: true;
53
+ };
45
54
  address: {
46
55
  type: "address";
47
56
  computed: true;
@@ -131,10 +140,6 @@ export declare const identityOracleDef: {
131
140
  agent: {
132
141
  type: "address";
133
142
  };
134
- adminOverride: {
135
- type: "boolean";
136
- default: boolean;
137
- };
138
143
  };
139
144
  };
140
145
  add_stake: {
@@ -201,22 +206,47 @@ export declare const identityOracleDef: {
201
206
  UNREGISTERED: {
202
207
  id: string;
203
208
  isFinal: false;
209
+ metadata: {
210
+ label: string;
211
+ description: string;
212
+ category: "initial";
213
+ };
204
214
  };
205
215
  REGISTERED: {
206
216
  id: string;
207
217
  isFinal: false;
218
+ metadata: {
219
+ label: string;
220
+ description: string;
221
+ category: "pending";
222
+ };
208
223
  };
209
224
  ACTIVE: {
210
225
  id: string;
211
226
  isFinal: false;
227
+ metadata: {
228
+ label: string;
229
+ description: string;
230
+ category: "active";
231
+ };
212
232
  };
213
233
  SLASHED: {
214
234
  id: string;
215
235
  isFinal: false;
236
+ metadata: {
237
+ label: string;
238
+ description: string;
239
+ category: "pending";
240
+ };
216
241
  };
217
242
  WITHDRAWN: {
218
243
  id: string;
219
244
  isFinal: true;
245
+ metadata: {
246
+ label: string;
247
+ description: string;
248
+ category: "terminal";
249
+ };
220
250
  };
221
251
  };
222
252
  initialState: "UNREGISTERED";
@@ -228,10 +258,8 @@ export declare const identityOracleDef: {
228
258
  ">=": {
229
259
  var: string;
230
260
  }[];
231
- or?: undefined;
232
261
  and?: undefined;
233
262
  var?: undefined;
234
- "==="?: undefined;
235
263
  };
236
264
  effect: {
237
265
  merge: ({
@@ -271,21 +299,7 @@ export declare const identityOracleDef: {
271
299
  from: "REGISTERED";
272
300
  to: "ACTIVE";
273
301
  eventName: "activate";
274
- guard: {
275
- or: ({
276
- "===": {
277
- var: string;
278
- }[];
279
- var?: undefined;
280
- } | {
281
- var: string;
282
- "==="?: undefined;
283
- })[];
284
- ">="?: undefined;
285
- and?: undefined;
286
- var?: undefined;
287
- "==="?: undefined;
288
- };
302
+ guard: import("../../../schema/guards.js").GuardRule;
289
303
  effect: {
290
304
  merge: ({
291
305
  var: string;
@@ -304,21 +318,9 @@ export declare const identityOracleDef: {
304
318
  to: "ACTIVE";
305
319
  eventName: "add_stake";
306
320
  guard: {
307
- and: ({
308
- "===": {
309
- var: string;
310
- }[];
311
- ">"?: undefined;
312
- } | {
313
- ">": (number | {
314
- var: string;
315
- })[];
316
- "==="?: undefined;
317
- })[];
321
+ and: import("../../../schema/guards.js").GuardRule[];
318
322
  ">="?: undefined;
319
- or?: undefined;
320
323
  var?: undefined;
321
- "==="?: undefined;
322
324
  };
323
325
  effect: {
324
326
  merge: ({
@@ -344,9 +346,7 @@ export declare const identityOracleDef: {
344
346
  guard: {
345
347
  var: string;
346
348
  ">="?: undefined;
347
- or?: undefined;
348
349
  and?: undefined;
349
- "==="?: undefined;
350
350
  };
351
351
  effect: {
352
352
  merge: ({
@@ -390,27 +390,9 @@ export declare const identityOracleDef: {
390
390
  to: "SLASHED";
391
391
  eventName: "slash";
392
392
  guard: {
393
- and: ({
394
- var: string;
395
- ">"?: undefined;
396
- "<="?: undefined;
397
- } | {
398
- ">": (number | {
399
- var: string;
400
- })[];
401
- var?: undefined;
402
- "<="?: undefined;
403
- } | {
404
- "<=": {
405
- var: string;
406
- }[];
407
- var?: undefined;
408
- ">"?: undefined;
409
- })[];
393
+ and: import("../../../schema/guards.js").GuardRule[];
410
394
  ">="?: undefined;
411
- or?: undefined;
412
395
  var?: undefined;
413
- "==="?: undefined;
414
396
  };
415
397
  effect: {
416
398
  merge: ({
@@ -455,21 +437,9 @@ export declare const identityOracleDef: {
455
437
  to: "ACTIVE";
456
438
  eventName: "reactivate";
457
439
  guard: {
458
- and: ({
459
- "===": {
460
- var: string;
461
- }[];
462
- ">="?: undefined;
463
- } | {
464
- ">=": {
465
- var: string;
466
- }[];
467
- "==="?: undefined;
468
- })[];
440
+ and: import("../../../schema/guards.js").GuardRule[];
469
441
  ">="?: undefined;
470
- or?: undefined;
471
442
  var?: undefined;
472
- "==="?: undefined;
473
443
  };
474
444
  effect: {
475
445
  merge: ({
@@ -488,15 +458,7 @@ export declare const identityOracleDef: {
488
458
  from: "ACTIVE";
489
459
  to: "WITHDRAWN";
490
460
  eventName: "withdraw";
491
- guard: {
492
- "===": {
493
- var: string;
494
- }[];
495
- ">="?: undefined;
496
- or?: undefined;
497
- and?: undefined;
498
- var?: undefined;
499
- };
461
+ guard: import("../../../schema/guards.js").GuardRule;
500
462
  effect: {
501
463
  merge: ({
502
464
  var: string;
@@ -518,15 +480,7 @@ export declare const identityOracleDef: {
518
480
  from: "SLASHED";
519
481
  to: "WITHDRAWN";
520
482
  eventName: "withdraw";
521
- guard: {
522
- "===": {
523
- var: string;
524
- }[];
525
- ">="?: undefined;
526
- or?: undefined;
527
- and?: undefined;
528
- var?: undefined;
529
- };
483
+ guard: import("../../../schema/guards.js").GuardRule;
530
484
  effect: {
531
485
  merge: ({
532
486
  var: string;
@@ -0,0 +1,379 @@
1
+ /**
2
+ * Identity Registry — the ecosystem authority & reputation source.
3
+ *
4
+ * Aggregates, under a single authority-governed fiber:
5
+ * - `reputations: { <address>: int }` — the public reputation read by reputation-gated apps
6
+ * (dao-reputation, credit-scoring) via a declared dependency + the `signerHasReputation` helper.
7
+ * - role attestations (ARBITER / SLASHER / ISSUER / BOARD_MEMBER) as FLAT per-role maps
8
+ * `{ <address>: true }`, read via the `signerHasRole` helper for judicial / issuance / governance
9
+ * authority gates.
10
+ *
11
+ * Writes are gated to the registry's pinned `authority` (immutable, set at create) and bound to the
12
+ * CHAIN-VERIFIED signer via `signerIsParty("state.authority")` — never `event.agent`. Reads happen
13
+ * cross-fiber: a consumer app declares this registry as a dependency and reads
14
+ * `machines.<registryDep>.state.reputations` / `.arbiters` / … bound to `proofs[].address`.
15
+ *
16
+ * Roles are flat per-role maps rather than a nested `roles[addr][ROLE]` map on purpose: metakit
17
+ * `get`/`has` on a NULL inner map throw (they are not null-total), so a nested read would error for
18
+ * any signer with no roles entry — the common case. Flat maps keep both the write (`set`/`unset`) and
19
+ * the read (`has`) total and fail-closed. New role types are added as new state maps + a cascade arm.
20
+ *
21
+ * See docs/design/app-hardening-identity-integration.md §3–§4 and src/schema/guards.ts
22
+ * (signerHasReputation / signerHasRole).
23
+ */
24
+ export declare const identityRegistryDef: {
25
+ metadata: {
26
+ name: string;
27
+ app: string;
28
+ type: string;
29
+ version: string;
30
+ description: string;
31
+ crossReferences: {
32
+ IdentityAgent: string;
33
+ Governance: string;
34
+ Contracts: string;
35
+ Corporate: string;
36
+ };
37
+ };
38
+ createSchema: {
39
+ required: readonly ["authority"];
40
+ properties: {
41
+ authority: {
42
+ type: "address";
43
+ description: string;
44
+ immutable: true;
45
+ };
46
+ };
47
+ };
48
+ stateSchema: {
49
+ properties: {
50
+ authority: {
51
+ type: "address";
52
+ immutable: true;
53
+ };
54
+ reputations: {
55
+ type: "object";
56
+ computed: true;
57
+ };
58
+ arbiters: {
59
+ type: "object";
60
+ computed: true;
61
+ };
62
+ slashers: {
63
+ type: "object";
64
+ computed: true;
65
+ };
66
+ issuers: {
67
+ type: "object";
68
+ computed: true;
69
+ };
70
+ boardMembers: {
71
+ type: "object";
72
+ computed: true;
73
+ };
74
+ };
75
+ };
76
+ eventSchemas: {
77
+ set_reputation: {
78
+ description: string;
79
+ required: readonly ["subject", "score"];
80
+ properties: {
81
+ subject: {
82
+ type: "address";
83
+ };
84
+ score: {
85
+ type: "integer";
86
+ };
87
+ };
88
+ };
89
+ adjust_reputation: {
90
+ description: string;
91
+ required: readonly ["subject", "delta"];
92
+ properties: {
93
+ subject: {
94
+ type: "address";
95
+ };
96
+ delta: {
97
+ type: "integer";
98
+ };
99
+ };
100
+ };
101
+ grant_role: {
102
+ description: string;
103
+ required: readonly ["subject", "role"];
104
+ properties: {
105
+ subject: {
106
+ type: "address";
107
+ };
108
+ role: {
109
+ type: "string";
110
+ enum: readonly ["ARBITER", "SLASHER", "ISSUER", "BOARD_MEMBER"];
111
+ };
112
+ };
113
+ };
114
+ revoke_role: {
115
+ description: string;
116
+ required: readonly ["subject", "role"];
117
+ properties: {
118
+ subject: {
119
+ type: "address";
120
+ };
121
+ role: {
122
+ type: "string";
123
+ enum: readonly ["ARBITER", "SLASHER", "ISSUER", "BOARD_MEMBER"];
124
+ };
125
+ };
126
+ };
127
+ };
128
+ states: {
129
+ ACTIVE: {
130
+ id: string;
131
+ isFinal: false;
132
+ metadata: {
133
+ label: string;
134
+ description: string;
135
+ category: "active";
136
+ };
137
+ };
138
+ };
139
+ initialState: "ACTIVE";
140
+ transitions: ({
141
+ from: "ACTIVE";
142
+ to: "ACTIVE";
143
+ eventName: "set_reputation";
144
+ guard: import("../../../schema/guards.js").GuardRule;
145
+ effect: {
146
+ merge: ({
147
+ var: string;
148
+ reputations?: undefined;
149
+ } | {
150
+ reputations: {
151
+ set: {
152
+ var: string;
153
+ }[];
154
+ };
155
+ var?: undefined;
156
+ })[];
157
+ };
158
+ dependencies: never[];
159
+ } | {
160
+ from: "ACTIVE";
161
+ to: "ACTIVE";
162
+ eventName: "adjust_reputation";
163
+ guard: import("../../../schema/guards.js").GuardRule;
164
+ effect: {
165
+ merge: ({
166
+ var: string;
167
+ reputations?: undefined;
168
+ } | {
169
+ reputations: {
170
+ set: ({
171
+ var: string;
172
+ "+"?: undefined;
173
+ } | {
174
+ "+": ({
175
+ get: {
176
+ var: string;
177
+ }[];
178
+ var?: undefined;
179
+ } | {
180
+ var: string;
181
+ get?: undefined;
182
+ })[];
183
+ var?: undefined;
184
+ })[];
185
+ };
186
+ var?: undefined;
187
+ })[];
188
+ };
189
+ dependencies: never[];
190
+ } | {
191
+ from: "ACTIVE";
192
+ to: "ACTIVE";
193
+ eventName: "grant_role";
194
+ guard: import("../../../schema/guards.js").GuardRule;
195
+ effect: {
196
+ merge: ({
197
+ var: string;
198
+ arbiters?: undefined;
199
+ slashers?: undefined;
200
+ issuers?: undefined;
201
+ boardMembers?: undefined;
202
+ } | {
203
+ arbiters: {
204
+ if: ({
205
+ "==": (string | {
206
+ var: string;
207
+ })[];
208
+ set?: undefined;
209
+ var?: undefined;
210
+ } | {
211
+ set: (boolean | {
212
+ var: string;
213
+ })[];
214
+ "=="?: undefined;
215
+ var?: undefined;
216
+ } | {
217
+ var: string;
218
+ "=="?: undefined;
219
+ set?: undefined;
220
+ })[];
221
+ };
222
+ slashers: {
223
+ if: ({
224
+ "==": (string | {
225
+ var: string;
226
+ })[];
227
+ set?: undefined;
228
+ var?: undefined;
229
+ } | {
230
+ set: (boolean | {
231
+ var: string;
232
+ })[];
233
+ "=="?: undefined;
234
+ var?: undefined;
235
+ } | {
236
+ var: string;
237
+ "=="?: undefined;
238
+ set?: undefined;
239
+ })[];
240
+ };
241
+ issuers: {
242
+ if: ({
243
+ "==": (string | {
244
+ var: string;
245
+ })[];
246
+ set?: undefined;
247
+ var?: undefined;
248
+ } | {
249
+ set: (boolean | {
250
+ var: string;
251
+ })[];
252
+ "=="?: undefined;
253
+ var?: undefined;
254
+ } | {
255
+ var: string;
256
+ "=="?: undefined;
257
+ set?: undefined;
258
+ })[];
259
+ };
260
+ boardMembers: {
261
+ if: ({
262
+ "==": (string | {
263
+ var: string;
264
+ })[];
265
+ set?: undefined;
266
+ var?: undefined;
267
+ } | {
268
+ set: (boolean | {
269
+ var: string;
270
+ })[];
271
+ "=="?: undefined;
272
+ var?: undefined;
273
+ } | {
274
+ var: string;
275
+ "=="?: undefined;
276
+ set?: undefined;
277
+ })[];
278
+ };
279
+ var?: undefined;
280
+ })[];
281
+ };
282
+ dependencies: never[];
283
+ } | {
284
+ from: "ACTIVE";
285
+ to: "ACTIVE";
286
+ eventName: "revoke_role";
287
+ guard: import("../../../schema/guards.js").GuardRule;
288
+ effect: {
289
+ merge: ({
290
+ var: string;
291
+ arbiters?: undefined;
292
+ slashers?: undefined;
293
+ issuers?: undefined;
294
+ boardMembers?: undefined;
295
+ } | {
296
+ arbiters: {
297
+ if: ({
298
+ "==": (string | {
299
+ var: string;
300
+ })[];
301
+ unset?: undefined;
302
+ var?: undefined;
303
+ } | {
304
+ unset: {
305
+ var: string;
306
+ }[];
307
+ "=="?: undefined;
308
+ var?: undefined;
309
+ } | {
310
+ var: string;
311
+ "=="?: undefined;
312
+ unset?: undefined;
313
+ })[];
314
+ };
315
+ slashers: {
316
+ if: ({
317
+ "==": (string | {
318
+ var: string;
319
+ })[];
320
+ unset?: undefined;
321
+ var?: undefined;
322
+ } | {
323
+ unset: {
324
+ var: string;
325
+ }[];
326
+ "=="?: undefined;
327
+ var?: undefined;
328
+ } | {
329
+ var: string;
330
+ "=="?: undefined;
331
+ unset?: undefined;
332
+ })[];
333
+ };
334
+ issuers: {
335
+ if: ({
336
+ "==": (string | {
337
+ var: string;
338
+ })[];
339
+ unset?: undefined;
340
+ var?: undefined;
341
+ } | {
342
+ unset: {
343
+ var: string;
344
+ }[];
345
+ "=="?: undefined;
346
+ var?: undefined;
347
+ } | {
348
+ var: string;
349
+ "=="?: undefined;
350
+ unset?: undefined;
351
+ })[];
352
+ };
353
+ boardMembers: {
354
+ if: ({
355
+ "==": (string | {
356
+ var: string;
357
+ })[];
358
+ unset?: undefined;
359
+ var?: undefined;
360
+ } | {
361
+ unset: {
362
+ var: string;
363
+ }[];
364
+ "=="?: undefined;
365
+ var?: undefined;
366
+ } | {
367
+ var: string;
368
+ "=="?: undefined;
369
+ unset?: undefined;
370
+ })[];
371
+ };
372
+ var?: undefined;
373
+ })[];
374
+ };
375
+ dependencies: never[];
376
+ })[];
377
+ };
378
+ export type RegistryState = keyof typeof identityRegistryDef.states;
379
+ export type RegistryEvent = (typeof identityRegistryDef.transitions)[number]["eventName"];
@@ -72,14 +72,29 @@ export declare const identityUniversalDef: {
72
72
  CREATED: {
73
73
  id: string;
74
74
  isFinal: false;
75
+ metadata: {
76
+ label: string;
77
+ description: string;
78
+ category: "initial";
79
+ };
75
80
  };
76
81
  ACTIVE: {
77
82
  id: string;
78
83
  isFinal: false;
84
+ metadata: {
85
+ label: string;
86
+ description: string;
87
+ category: "active";
88
+ };
79
89
  };
80
90
  INACTIVE: {
81
91
  id: string;
82
92
  isFinal: true;
93
+ metadata: {
94
+ label: string;
95
+ description: string;
96
+ category: "terminal";
97
+ };
83
98
  };
84
99
  };
85
100
  initialState: "CREATED";
@@ -5,3 +5,4 @@
5
5
  export { identityAgentDef } from './identity-agent.js';
6
6
  export { identityOracleDef } from './identity-oracle.js';
7
7
  export { identityUniversalDef } from './identity-universal.js';
8
+ export { identityRegistryDef } from './identity-registry.js';