@ottochain/sdk 2.3.0 → 2.5.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 (287) hide show
  1. package/dist/cjs/apps/compute/index.js +33 -0
  2. package/dist/cjs/apps/compute/state-machines/compute-rule110.js +164 -0
  3. package/dist/cjs/apps/compute/state-machines/index.js +9 -0
  4. package/dist/cjs/apps/contracts/index.js +16 -9
  5. package/dist/cjs/apps/contracts/state-machines/contract-agreement.js +134 -161
  6. package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +192 -170
  7. package/dist/cjs/apps/contracts/state-machines/contract-universal.js +46 -58
  8. package/dist/cjs/apps/corporate/index.js +2 -2
  9. package/dist/cjs/apps/corporate/state-machines/corp-board.js +500 -456
  10. package/dist/cjs/apps/corporate/state-machines/corp-entity.js +487 -361
  11. package/dist/cjs/apps/corporate/state-machines/corp-securities.js +769 -576
  12. package/dist/cjs/apps/corporate/state-machines/corp-shareholders.js +567 -557
  13. package/dist/cjs/apps/governance/index.js +21 -21
  14. package/dist/cjs/apps/governance/state-machines/dao-multisig.js +188 -209
  15. package/dist/cjs/apps/governance/state-machines/dao-reputation.js +181 -228
  16. package/dist/cjs/apps/governance/state-machines/dao-single.js +105 -88
  17. package/dist/cjs/apps/governance/state-machines/dao-token.js +199 -227
  18. package/dist/cjs/apps/governance/state-machines/governance-simple.js +231 -231
  19. package/dist/cjs/apps/governance/state-machines/governance-universal.js +64 -64
  20. package/dist/cjs/apps/identity/constants.js +55 -22
  21. package/dist/cjs/apps/identity/index.js +28 -12
  22. package/dist/cjs/apps/identity/state-machines/identity-agent.js +124 -158
  23. package/dist/cjs/apps/identity/state-machines/identity-oracle.js +158 -173
  24. package/dist/cjs/apps/identity/state-machines/identity-registry.js +262 -0
  25. package/dist/cjs/apps/identity/state-machines/identity-universal.js +51 -57
  26. package/dist/cjs/apps/identity/state-machines/index.js +3 -1
  27. package/dist/cjs/apps/index.js +22 -8
  28. package/dist/cjs/apps/lending/assets.js +247 -0
  29. package/dist/cjs/apps/lending/credit-scoring.js +87 -0
  30. package/dist/cjs/apps/lending/eligibility.js +105 -0
  31. package/dist/cjs/apps/lending/index.js +91 -0
  32. package/dist/cjs/apps/lending/state-machines/index.js +9 -0
  33. package/dist/cjs/apps/lending/state-machines/lending-zk-loan.js +433 -0
  34. package/dist/cjs/apps/markets/index.js +22 -12
  35. package/dist/cjs/apps/markets/state-machines/market-auction.js +116 -134
  36. package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +131 -141
  37. package/dist/cjs/apps/markets/state-machines/market-group-buy.js +163 -184
  38. package/dist/cjs/apps/markets/state-machines/market-prediction.js +226 -233
  39. package/dist/cjs/apps/markets/state-machines/market-universal.js +65 -80
  40. package/dist/cjs/apps/oracles/index.js +3 -3
  41. package/dist/cjs/apps/privacy/index.js +67 -0
  42. package/dist/cjs/apps/privacy/state-machines/index.js +17 -0
  43. package/dist/cjs/apps/privacy/state-machines/mixer-ddhRing.js +286 -0
  44. package/dist/cjs/apps/privacy/state-machines/note-pool.js +476 -0
  45. package/dist/cjs/apps/staked-pool/assets.js +103 -0
  46. package/dist/cjs/apps/staked-pool/base.js +498 -0
  47. package/dist/cjs/apps/staked-pool/consumer.js +55 -0
  48. package/dist/cjs/apps/staked-pool/index.js +83 -0
  49. package/dist/cjs/apps/staked-pool/state-machines/index.js +12 -0
  50. package/dist/cjs/apps/staked-pool/state-machines/staked-pool-base.js +49 -0
  51. package/dist/cjs/apps/staked-pool/state-machines/staked-pool-oracle.js +131 -0
  52. package/dist/cjs/errors.js +3 -3
  53. package/dist/cjs/generated/google/protobuf/struct.js +5 -5
  54. package/dist/cjs/generated/google/protobuf/timestamp.js +1 -1
  55. package/dist/cjs/generated/index.js +11 -7
  56. package/dist/cjs/generated/openapi.js +6 -0
  57. package/dist/cjs/generated/ottochain/apps/contracts/v1/contract.js +51 -51
  58. package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate.js +20 -21
  59. package/dist/cjs/generated/ottochain/apps/governance/v1/governance.js +14 -14
  60. package/dist/cjs/generated/ottochain/apps/identity/v1/attestation.js +5 -5
  61. package/dist/cjs/generated/ottochain/apps/identity/v1/identity.js +125 -131
  62. package/dist/cjs/generated/ottochain/apps/markets/v1/market.js +108 -108
  63. package/dist/cjs/generated/ottochain/v1/common.js +5 -5
  64. package/dist/cjs/generated/ottochain/v1/fiber.js +44 -6
  65. package/dist/cjs/generated/ottochain/v1/messages.js +1 -1
  66. package/dist/cjs/generated/ottochain/v1/records.js +1 -1
  67. package/dist/cjs/index.js +58 -7
  68. package/dist/cjs/openapi.js +2 -0
  69. package/dist/cjs/ottochain/drop-nulls.js +1 -2
  70. package/dist/cjs/ottochain/genesis-manifest.js +17 -11
  71. package/dist/cjs/ottochain/index.js +23 -13
  72. package/dist/cjs/ottochain/metagraph-client.js +81 -16
  73. package/dist/cjs/ottochain/snapshot.js +13 -16
  74. package/dist/cjs/ottochain/transaction.js +67 -14
  75. package/dist/cjs/ottochain/types.js +16 -2
  76. package/dist/cjs/privacy/index.js +14 -0
  77. package/dist/cjs/privacy/sealed-bid.js +213 -0
  78. package/dist/cjs/privacy/shield-app.js +131 -0
  79. package/dist/cjs/schema/effects.js +156 -0
  80. package/dist/cjs/schema/fiber-app.js +150 -15
  81. package/dist/cjs/schema/guard-lint.js +343 -0
  82. package/dist/cjs/schema/guards.js +246 -0
  83. package/dist/cjs/signing.js +80 -0
  84. package/dist/cjs/templates/asset-policy.js +190 -0
  85. package/dist/cjs/templates/index.js +86 -0
  86. package/dist/cjs/templates/machine.js +130 -0
  87. package/dist/cjs/templates/migration.js +39 -0
  88. package/dist/cjs/templates/state-shape.js +38 -0
  89. package/dist/cjs/types.js +2 -3
  90. package/dist/cjs/validation.js +9 -11
  91. package/dist/cjs/verify.js +9 -4
  92. package/dist/cjs/zk/commit.js +53 -0
  93. package/dist/cjs/zk/guard.js +107 -0
  94. package/dist/cjs/zk/index.js +48 -0
  95. package/dist/cjs/zk/preimage.js +37 -0
  96. package/dist/cjs/zk/prover.js +87 -0
  97. package/dist/cjs/zk/registry.js +62 -0
  98. package/dist/cjs/zk/types.js +28 -0
  99. package/dist/cjs/zk/witness.js +19 -0
  100. package/dist/esm/apps/compute/index.js +29 -0
  101. package/dist/esm/apps/compute/state-machines/compute-rule110.js +161 -0
  102. package/dist/esm/apps/compute/state-machines/index.js +5 -0
  103. package/dist/esm/apps/contracts/index.js +9 -5
  104. package/dist/esm/apps/contracts/state-machines/contract-agreement.js +135 -162
  105. package/dist/esm/apps/contracts/state-machines/contract-escrow.js +193 -171
  106. package/dist/esm/apps/contracts/state-machines/contract-universal.js +47 -59
  107. package/dist/esm/apps/corporate/index.js +2 -2
  108. package/dist/esm/apps/corporate/state-machines/corp-board.js +501 -457
  109. package/dist/esm/apps/corporate/state-machines/corp-entity.js +488 -362
  110. package/dist/esm/apps/corporate/state-machines/corp-securities.js +770 -577
  111. package/dist/esm/apps/corporate/state-machines/corp-shareholders.js +568 -558
  112. package/dist/esm/apps/governance/index.js +10 -10
  113. package/dist/esm/apps/governance/state-machines/dao-multisig.js +189 -210
  114. package/dist/esm/apps/governance/state-machines/dao-reputation.js +182 -229
  115. package/dist/esm/apps/governance/state-machines/dao-single.js +106 -89
  116. package/dist/esm/apps/governance/state-machines/dao-token.js +200 -228
  117. package/dist/esm/apps/governance/state-machines/governance-simple.js +232 -232
  118. package/dist/esm/apps/governance/state-machines/governance-universal.js +65 -65
  119. package/dist/esm/apps/identity/constants.js +52 -21
  120. package/dist/esm/apps/identity/index.js +14 -9
  121. package/dist/esm/apps/identity/state-machines/identity-agent.js +125 -159
  122. package/dist/esm/apps/identity/state-machines/identity-oracle.js +159 -174
  123. package/dist/esm/apps/identity/state-machines/identity-registry.js +259 -0
  124. package/dist/esm/apps/identity/state-machines/identity-universal.js +52 -58
  125. package/dist/esm/apps/identity/state-machines/index.js +1 -0
  126. package/dist/esm/apps/index.js +9 -5
  127. package/dist/esm/apps/lending/assets.js +231 -0
  128. package/dist/esm/apps/lending/credit-scoring.js +81 -0
  129. package/dist/esm/apps/lending/eligibility.js +99 -0
  130. package/dist/esm/apps/lending/index.js +69 -0
  131. package/dist/esm/apps/lending/state-machines/index.js +5 -0
  132. package/dist/esm/apps/lending/state-machines/lending-zk-loan.js +430 -0
  133. package/dist/esm/apps/markets/index.js +11 -7
  134. package/dist/esm/apps/markets/state-machines/market-auction.js +117 -135
  135. package/dist/esm/apps/markets/state-machines/market-crowdfund.js +132 -142
  136. package/dist/esm/apps/markets/state-machines/market-group-buy.js +164 -185
  137. package/dist/esm/apps/markets/state-machines/market-prediction.js +227 -234
  138. package/dist/esm/apps/markets/state-machines/market-universal.js +66 -81
  139. package/dist/esm/apps/oracles/index.js +3 -3
  140. package/dist/esm/apps/privacy/index.js +56 -0
  141. package/dist/esm/apps/privacy/state-machines/index.js +6 -0
  142. package/dist/esm/apps/privacy/state-machines/mixer-ddhRing.js +282 -0
  143. package/dist/esm/apps/privacy/state-machines/note-pool.js +470 -0
  144. package/dist/esm/apps/staked-pool/assets.js +91 -0
  145. package/dist/esm/apps/staked-pool/base.js +493 -0
  146. package/dist/esm/apps/staked-pool/consumer.js +49 -0
  147. package/dist/esm/apps/staked-pool/index.js +60 -0
  148. package/dist/esm/apps/staked-pool/state-machines/index.js +6 -0
  149. package/dist/esm/apps/staked-pool/state-machines/staked-pool-base.js +46 -0
  150. package/dist/esm/apps/staked-pool/state-machines/staked-pool-oracle.js +127 -0
  151. package/dist/esm/generated/google/protobuf/struct.js +1 -1
  152. package/dist/esm/generated/google/protobuf/timestamp.js +1 -1
  153. package/dist/esm/generated/index.js +9 -5
  154. package/dist/esm/generated/openapi.js +5 -0
  155. package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +47 -47
  156. package/dist/esm/generated/ottochain/apps/corporate/v1/corporate.js +1 -1
  157. package/dist/esm/generated/ottochain/apps/governance/v1/governance.js +1 -1
  158. package/dist/esm/generated/ottochain/apps/identity/v1/attestation.js +1 -1
  159. package/dist/esm/generated/ottochain/apps/identity/v1/identity.js +115 -121
  160. package/dist/esm/generated/ottochain/apps/markets/v1/market.js +101 -101
  161. package/dist/esm/generated/ottochain/v1/common.js +1 -1
  162. package/dist/esm/generated/ottochain/v1/fiber.js +40 -2
  163. package/dist/esm/generated/ottochain/v1/messages.js +1 -1
  164. package/dist/esm/generated/ottochain/v1/records.js +1 -1
  165. package/dist/esm/index.js +28 -3
  166. package/dist/esm/openapi.js +1 -0
  167. package/dist/esm/ottochain/genesis-manifest.js +15 -9
  168. package/dist/esm/ottochain/index.js +2 -3
  169. package/dist/esm/ottochain/metagraph-client.js +81 -16
  170. package/dist/esm/ottochain/snapshot.js +6 -8
  171. package/dist/esm/ottochain/transaction.js +51 -3
  172. package/dist/esm/ottochain/types.js +15 -1
  173. package/dist/esm/privacy/index.js +6 -0
  174. package/dist/esm/privacy/sealed-bid.js +209 -0
  175. package/dist/esm/privacy/shield-app.js +127 -0
  176. package/dist/esm/schema/effects.js +145 -0
  177. package/dist/esm/schema/fiber-app.js +139 -8
  178. package/dist/esm/schema/guard-lint.js +337 -0
  179. package/dist/esm/schema/guards.js +228 -0
  180. package/dist/esm/signing.js +74 -0
  181. package/dist/esm/templates/asset-policy.js +182 -0
  182. package/dist/esm/templates/index.js +41 -0
  183. package/dist/esm/templates/machine.js +125 -0
  184. package/dist/esm/templates/migration.js +34 -0
  185. package/dist/esm/templates/state-shape.js +34 -0
  186. package/dist/esm/validation.js +1 -3
  187. package/dist/esm/verify.js +8 -2
  188. package/dist/esm/zk/commit.js +44 -0
  189. package/dist/esm/zk/guard.js +99 -0
  190. package/dist/esm/zk/index.js +19 -0
  191. package/dist/esm/zk/preimage.js +30 -0
  192. package/dist/esm/zk/prover.js +82 -0
  193. package/dist/esm/zk/registry.js +55 -0
  194. package/dist/esm/zk/types.js +25 -0
  195. package/dist/esm/zk/witness.js +15 -0
  196. package/dist/types/apps/compute/index.d.ts +176 -0
  197. package/dist/types/apps/compute/state-machines/compute-rule110.d.ts +157 -0
  198. package/dist/types/apps/compute/state-machines/index.d.ts +5 -0
  199. package/dist/types/apps/contracts/index.d.ts +81 -221
  200. package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +23 -98
  201. package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +49 -115
  202. package/dist/types/apps/contracts/state-machines/contract-universal.d.ts +4 -4
  203. package/dist/types/apps/corporate/index.d.ts +1176 -440
  204. package/dist/types/apps/corporate/state-machines/corp-board.d.ts +271 -135
  205. package/dist/types/apps/corporate/state-machines/corp-entity.d.ts +279 -74
  206. package/dist/types/apps/corporate/state-machines/corp-securities.d.ts +373 -149
  207. package/dist/types/apps/corporate/state-machines/corp-shareholders.d.ts +252 -80
  208. package/dist/types/apps/governance/index.d.ts +368 -470
  209. package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +92 -107
  210. package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +61 -85
  211. package/dist/types/apps/governance/state-machines/dao-single.d.ts +25 -47
  212. package/dist/types/apps/governance/state-machines/dao-token.d.ts +79 -68
  213. package/dist/types/apps/governance/state-machines/governance-simple.d.ts +95 -125
  214. package/dist/types/apps/governance/state-machines/governance-universal.d.ts +6 -6
  215. package/dist/types/apps/identity/constants.d.ts +33 -5
  216. package/dist/types/apps/identity/index.d.ts +415 -131
  217. package/dist/types/apps/identity/state-machines/identity-agent.d.ts +23 -23
  218. package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +27 -98
  219. package/dist/types/apps/identity/state-machines/identity-registry.d.ts +379 -0
  220. package/dist/types/apps/identity/state-machines/identity-universal.d.ts +4 -4
  221. package/dist/types/apps/identity/state-machines/index.d.ts +1 -0
  222. package/dist/types/apps/index.d.ts +9 -5
  223. package/dist/types/apps/lending/assets.d.ts +258 -0
  224. package/dist/types/apps/lending/credit-scoring.d.ts +80 -0
  225. package/dist/types/apps/lending/eligibility.d.ts +83 -0
  226. package/dist/types/apps/lending/index.d.ts +556 -0
  227. package/dist/types/apps/lending/state-machines/index.d.ts +5 -0
  228. package/dist/types/apps/lending/state-machines/lending-zk-loan.d.ts +536 -0
  229. package/dist/types/apps/markets/index.d.ts +181 -276
  230. package/dist/types/apps/markets/state-machines/market-auction.d.ts +25 -49
  231. package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +35 -53
  232. package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +35 -61
  233. package/dist/types/apps/markets/state-machines/market-prediction.d.ts +65 -86
  234. package/dist/types/apps/markets/state-machines/market-universal.d.ts +12 -12
  235. package/dist/types/apps/oracles/index.d.ts +1 -1
  236. package/dist/types/apps/privacy/index.d.ts +328 -0
  237. package/dist/types/apps/privacy/state-machines/index.d.ts +6 -0
  238. package/dist/types/apps/privacy/state-machines/mixer-ddhRing.d.ts +337 -0
  239. package/dist/types/apps/privacy/state-machines/note-pool.d.ts +196 -0
  240. package/dist/types/apps/staked-pool/assets.d.ts +53 -0
  241. package/dist/types/apps/staked-pool/base.d.ts +80 -0
  242. package/dist/types/apps/staked-pool/consumer.d.ts +29 -0
  243. package/dist/types/apps/staked-pool/index.d.ts +51 -0
  244. package/dist/types/apps/staked-pool/state-machines/index.d.ts +6 -0
  245. package/dist/types/apps/staked-pool/state-machines/staked-pool-base.d.ts +8 -0
  246. package/dist/types/apps/staked-pool/state-machines/staked-pool-oracle.d.ts +34 -0
  247. package/dist/types/generated/index.d.ts +5 -5
  248. package/dist/types/generated/openapi.d.ts +1270 -0
  249. package/dist/types/generated/ottochain/apps/contracts/v1/contract.d.ts +5 -5
  250. package/dist/types/generated/ottochain/apps/identity/v1/identity.d.ts +12 -12
  251. package/dist/types/generated/ottochain/apps/markets/v1/market.d.ts +11 -11
  252. package/dist/types/generated/ottochain/v1/fiber.d.ts +7 -0
  253. package/dist/types/index.d.ts +7 -3
  254. package/dist/types/openapi.d.ts +24 -0
  255. package/dist/types/ottochain/genesis-manifest.d.ts +11 -5
  256. package/dist/types/ottochain/index.d.ts +5 -6
  257. package/dist/types/ottochain/metagraph-client.d.ts +49 -7
  258. package/dist/types/ottochain/snapshot.d.ts +6 -6
  259. package/dist/types/ottochain/transaction.d.ts +41 -1
  260. package/dist/types/ottochain/types.d.ts +336 -31
  261. package/dist/types/privacy/index.d.ts +6 -0
  262. package/dist/types/privacy/sealed-bid.d.ts +348 -0
  263. package/dist/types/privacy/shield-app.d.ts +48 -0
  264. package/dist/types/schema/effects.d.ts +141 -0
  265. package/dist/types/schema/fiber-app.d.ts +282 -2
  266. package/dist/types/schema/guard-lint.d.ts +111 -0
  267. package/dist/types/schema/guards.d.ts +146 -0
  268. package/dist/types/signing.d.ts +45 -0
  269. package/dist/types/templates/asset-policy.d.ts +119 -0
  270. package/dist/types/templates/index.d.ts +26 -0
  271. package/dist/types/templates/machine.d.ts +139 -0
  272. package/dist/types/templates/migration.d.ts +34 -0
  273. package/dist/types/templates/state-shape.d.ts +30 -0
  274. package/dist/types/validation.d.ts +22 -217
  275. package/dist/types/verify.d.ts +4 -0
  276. package/dist/types/zk/commit.d.ts +28 -0
  277. package/dist/types/zk/guard.d.ts +46 -0
  278. package/dist/types/zk/index.d.ts +19 -0
  279. package/dist/types/zk/preimage.d.ts +10 -0
  280. package/dist/types/zk/prover.d.ts +34 -0
  281. package/dist/types/zk/registry.d.ts +34 -0
  282. package/dist/types/zk/types.d.ts +33 -0
  283. package/dist/types/zk/witness.d.ts +40 -0
  284. package/package.json +47 -15
  285. package/dist/cjs/ottochain/normalize.js +0 -186
  286. package/dist/esm/ottochain/normalize.js +0 -179
  287. package/dist/types/ottochain/normalize.d.ts +0 -79
@@ -1,96 +1,96 @@
1
- import { defineFiberApp } from "../../../schema/fiber-app.js";
1
+ import { defineFiberApp } from '../../../schema/fiber-app.js';
2
2
  /**
3
3
  * Minimal governance state machine - extend for custom use cases.
4
4
  */
5
5
  export const govUniversalDef = defineFiberApp({
6
6
  metadata: {
7
- name: "GovernanceUniversal",
8
- app: "governance",
9
- type: "universal",
10
- version: "1.0.0",
11
- description: "Minimal governance state machine - extend for custom use cases",
7
+ name: 'GovernanceUniversal',
8
+ app: 'governance',
9
+ type: 'universal',
10
+ version: '1.0.0',
11
+ description: 'Minimal governance state machine - extend for custom use cases',
12
12
  },
13
13
  createSchema: {
14
14
  properties: {},
15
15
  },
16
16
  stateSchema: {
17
17
  properties: {
18
- status: { type: "string" },
19
- proposal: { type: "object" },
20
- proposedAt: { type: "timestamp" },
21
- votes: { type: "object", computed: true },
22
- lastProposal: { type: "object" },
23
- lastResult: { type: "string" },
24
- dissolvedAt: { type: "timestamp" },
18
+ status: { type: 'string' },
19
+ proposal: { type: 'object' },
20
+ proposedAt: { type: 'timestamp' },
21
+ votes: { type: 'object', computed: true },
22
+ lastProposal: { type: 'object' },
23
+ lastResult: { type: 'string' },
24
+ dissolvedAt: { type: 'timestamp' },
25
25
  },
26
26
  },
27
27
  eventSchemas: {
28
28
  propose: {
29
- description: "Submit a new proposal",
29
+ description: 'Submit a new proposal',
30
30
  properties: {
31
- proposal: { type: "object" },
31
+ proposal: { type: 'object' },
32
32
  },
33
33
  },
34
34
  vote: {
35
- description: "Cast a vote on the active proposal",
35
+ description: 'Cast a vote on the active proposal',
36
36
  properties: {
37
- agent: { type: "address" },
38
- vote: { type: "string" },
37
+ agent: { type: 'address' },
38
+ vote: { type: 'string' },
39
39
  },
40
40
  },
41
41
  finalize: {
42
- description: "Finalize the current proposal",
42
+ description: 'Finalize the current proposal',
43
43
  properties: {
44
- result: { type: "string" },
44
+ result: { type: 'string' },
45
45
  },
46
46
  },
47
47
  dissolve: {
48
- description: "Dissolve the governance entity",
48
+ description: 'Dissolve the governance entity',
49
49
  },
50
50
  },
51
51
  states: {
52
52
  ACTIVE: {
53
- id: "ACTIVE",
53
+ id: 'ACTIVE',
54
54
  isFinal: false,
55
55
  metadata: {
56
- label: "Active",
57
- description: "Governance is idle and ready to accept a proposal",
58
- category: "initial",
56
+ label: 'Active',
57
+ description: 'Governance is idle and ready to accept a proposal',
58
+ category: 'initial',
59
59
  },
60
60
  },
61
61
  VOTING: {
62
- id: "VOTING",
62
+ id: 'VOTING',
63
63
  isFinal: false,
64
64
  metadata: {
65
- label: "Voting",
66
- description: "A proposal is open for voting",
67
- category: "pending",
65
+ label: 'Voting',
66
+ description: 'A proposal is open for voting',
67
+ category: 'pending',
68
68
  },
69
69
  },
70
70
  DISSOLVED: {
71
- id: "DISSOLVED",
71
+ id: 'DISSOLVED',
72
72
  isFinal: true,
73
73
  metadata: {
74
- label: "Dissolved",
75
- description: "Governance entity dissolved (terminal)",
76
- category: "terminal",
74
+ label: 'Dissolved',
75
+ description: 'Governance entity dissolved (terminal)',
76
+ category: 'terminal',
77
77
  },
78
78
  },
79
79
  },
80
- initialState: "ACTIVE",
80
+ initialState: 'ACTIVE',
81
81
  transitions: [
82
82
  {
83
- from: "ACTIVE",
84
- to: "VOTING",
85
- eventName: "propose",
86
- guard: { "==": [1, 1] },
83
+ from: 'ACTIVE',
84
+ to: 'VOTING',
85
+ eventName: 'propose',
86
+ guard: { '==': [1, 1] },
87
87
  effect: {
88
88
  merge: [
89
- { var: "state" },
89
+ { var: 'state' },
90
90
  {
91
- status: "VOTING",
92
- proposal: { var: "event.proposal" },
93
- proposedAt: { var: "$timestamp" },
91
+ status: 'VOTING',
92
+ proposal: { var: 'event.proposal' },
93
+ proposedAt: { var: '$ordinal' },
94
94
  votes: {},
95
95
  },
96
96
  ],
@@ -98,20 +98,20 @@ export const govUniversalDef = defineFiberApp({
98
98
  dependencies: [],
99
99
  },
100
100
  {
101
- from: "VOTING",
102
- to: "VOTING",
103
- eventName: "vote",
104
- guard: { "==": [1, 1] },
101
+ from: 'VOTING',
102
+ to: 'VOTING',
103
+ eventName: 'vote',
104
+ guard: { '==': [1, 1] },
105
105
  effect: {
106
106
  merge: [
107
- { var: "state" },
107
+ { var: 'state' },
108
108
  {
109
109
  votes: {
110
110
  merge: [
111
- { var: "state.votes" },
111
+ { var: 'state.votes' },
112
112
  {
113
- __key: { var: "event.agent" },
114
- __value: { var: "event.vote" },
113
+ __key: { var: 'event.agent' },
114
+ __value: { var: 'event.vote' },
115
115
  },
116
116
  ],
117
117
  },
@@ -121,17 +121,17 @@ export const govUniversalDef = defineFiberApp({
121
121
  dependencies: [],
122
122
  },
123
123
  {
124
- from: "VOTING",
125
- to: "ACTIVE",
126
- eventName: "finalize",
127
- guard: { "==": [1, 1] },
124
+ from: 'VOTING',
125
+ to: 'ACTIVE',
126
+ eventName: 'finalize',
127
+ guard: { '==': [1, 1] },
128
128
  effect: {
129
129
  merge: [
130
- { var: "state" },
130
+ { var: 'state' },
131
131
  {
132
- status: "ACTIVE",
133
- lastProposal: { var: "state.proposal" },
134
- lastResult: { var: "event.result" },
132
+ status: 'ACTIVE',
133
+ lastProposal: { var: 'state.proposal' },
134
+ lastResult: { var: 'event.result' },
135
135
  proposal: null,
136
136
  votes: null,
137
137
  },
@@ -140,16 +140,16 @@ export const govUniversalDef = defineFiberApp({
140
140
  dependencies: [],
141
141
  },
142
142
  {
143
- from: "ACTIVE",
144
- to: "DISSOLVED",
145
- eventName: "dissolve",
146
- guard: { "==": [1, 1] },
143
+ from: 'ACTIVE',
144
+ to: 'DISSOLVED',
145
+ eventName: 'dissolve',
146
+ guard: { '==': [1, 1] },
147
147
  effect: {
148
148
  merge: [
149
- { var: "state" },
149
+ { var: 'state' },
150
150
  {
151
- status: "DISSOLVED",
152
- dissolvedAt: { var: "$timestamp" },
151
+ status: 'DISSOLVED',
152
+ dissolvedAt: { var: '$ordinal' },
153
153
  },
154
154
  ],
155
155
  },
@@ -5,8 +5,8 @@
5
5
  *
6
6
  * @packageDocumentation
7
7
  */
8
- import { IdentityState } from "../../generated/ottochain/apps/identity/v1/identity.js";
9
- import { AttestationType } from "../../generated/ottochain/apps/identity/v1/attestation.js";
8
+ import { State } from '../../generated/ottochain/apps/identity/v1/identity.js';
9
+ import { AttestationType } from '../../generated/ottochain/apps/identity/v1/attestation.js';
10
10
  // ---------------------------------------------------------------------------
11
11
  // State Machine Transitions
12
12
  // ---------------------------------------------------------------------------
@@ -16,25 +16,17 @@ import { AttestationType } from "../../generated/ottochain/apps/identity/v1/atte
16
16
  * Note: Some transitions are type-specific (agent vs oracle)
17
17
  */
18
18
  export const IDENTITY_TRANSITIONS = {
19
- [IdentityState.IDENTITY_STATE_UNSPECIFIED]: [],
20
- [IdentityState.IDENTITY_STATE_UNREGISTERED]: ["register"],
21
- [IdentityState.IDENTITY_STATE_REGISTERED]: ["activate", "withdraw"],
22
- [IdentityState.IDENTITY_STATE_ACTIVE]: [
23
- "challenge",
24
- "slash",
25
- "deactivate",
26
- "withdraw",
27
- ],
28
- [IdentityState.IDENTITY_STATE_CHALLENGED]: [
29
- "uphold_challenge",
30
- "dismiss_challenge",
31
- ],
32
- [IdentityState.IDENTITY_STATE_SUSPENDED]: ["begin_probation"],
33
- [IdentityState.IDENTITY_STATE_PROBATION]: ["complete_probation"],
34
- [IdentityState.IDENTITY_STATE_SLASHED]: ["reactivate", "withdraw"],
35
- [IdentityState.IDENTITY_STATE_INACTIVE]: ["activate", "withdraw"],
36
- [IdentityState.IDENTITY_STATE_WITHDRAWN]: [], // Terminal state
37
- [IdentityState.UNRECOGNIZED]: [],
19
+ [State.IDENTITY_STATE_UNSPECIFIED]: [],
20
+ [State.IDENTITY_STATE_UNREGISTERED]: ['register'],
21
+ [State.IDENTITY_STATE_REGISTERED]: ['activate', 'withdraw'],
22
+ [State.IDENTITY_STATE_ACTIVE]: ['challenge', 'slash', 'deactivate', 'withdraw'],
23
+ [State.IDENTITY_STATE_CHALLENGED]: ['uphold_challenge', 'dismiss_challenge'],
24
+ [State.IDENTITY_STATE_SUSPENDED]: ['begin_probation'],
25
+ [State.IDENTITY_STATE_PROBATION]: ['complete_probation'],
26
+ [State.IDENTITY_STATE_SLASHED]: ['reactivate', 'withdraw'],
27
+ [State.IDENTITY_STATE_INACTIVE]: ['activate', 'withdraw'],
28
+ [State.IDENTITY_STATE_WITHDRAWN]: [], // Terminal state
29
+ [State.UNRECOGNIZED]: [],
38
30
  };
39
31
  // Legacy alias
40
32
  export const AGENT_TRANSITIONS = IDENTITY_TRANSITIONS;
@@ -53,6 +45,45 @@ export const ATTESTATION_DELTAS = {
53
45
  [AttestationType.ATTESTATION_TYPE_BEHAVIORAL]: 3,
54
46
  [AttestationType.UNRECOGNIZED]: 0,
55
47
  };
48
+ // ---------------------------------------------------------------------------
49
+ // Identity Registry — role attestations
50
+ // ---------------------------------------------------------------------------
51
+ /**
52
+ * Role-attestation types issued by the identity registry (identity-registry fiber).
53
+ * These are the ecosystem-wide authority roles consumer apps gate on via the registry
54
+ * dependency + `signerHasRole` (see docs/design/app-hardening-identity-integration.md §4.2).
55
+ */
56
+ export const REGISTRY_ROLES = {
57
+ ARBITER: 'ARBITER',
58
+ SLASHER: 'SLASHER',
59
+ ISSUER: 'ISSUER',
60
+ BOARD_MEMBER: 'BOARD_MEMBER',
61
+ };
62
+ /**
63
+ * Maps each role to the registry's flat per-role state-map field. A consumer app reads
64
+ * `machines.<registryDep>.state.<field>` (a `{ <address>: true }` map) and binds membership to a
65
+ * verified signer with `signerHasRole`. Kept in lock-step with the identity-registry stateSchema.
66
+ */
67
+ export const REGISTRY_ROLE_MAP = {
68
+ ARBITER: 'arbiters',
69
+ SLASHER: 'slashers',
70
+ ISSUER: 'issuers',
71
+ BOARD_MEMBER: 'boardMembers',
72
+ };
73
+ /**
74
+ * Build the `machines.<registryDep>.state.<roleMap>` var path a consumer guard reads to check a role,
75
+ * e.g. `registryRolePath("reg-uuid", "ARBITER")` → `"machines.reg-uuid.state.arbiters"`.
76
+ */
77
+ export function registryRolePath(registryDep, role) {
78
+ return `machines.${registryDep}.state.${REGISTRY_ROLE_MAP[role]}`;
79
+ }
80
+ /**
81
+ * Build the `machines.<registryDep>.state.reputations` var path a consumer guard reads for a
82
+ * reputation gate (`signerHasReputation`).
83
+ */
84
+ export function registryReputationPath(registryDep) {
85
+ return `machines.${registryDep}.state.reputations`;
86
+ }
56
87
  /**
57
88
  * Check if a transition is valid for the given state.
58
89
  */
@@ -16,13 +16,17 @@
16
16
  *
17
17
  * @packageDocumentation
18
18
  */
19
- // Re-export generated protobuf types (source of truth)
20
- export { IdentityType, IdentityState, Platform, PlatformLink, Reputation, PenaltyEvent, Identity, RegisterIdentityRequest, ActivateIdentityRequest, LinkPlatformRequest, ChallengeIdentityRequest, AddStakeRequest, WithdrawIdentityRequest, IdentityDefinition, identityTypeFromJSON, identityTypeToJSON, identityStateFromJSON, identityStateToJSON, platformFromJSON, platformToJSON, } from "../../generated/ottochain/apps/identity/v1/identity.js";
19
+ // Re-export generated protobuf types (source of truth).
20
+ // The nested lifecycle/kind enums dropped their app prefix in the proto; under
21
+ // this app-scoped entrypoint they are unambiguously Type / State.
22
+ export { Type, State, Platform, PlatformLink, Reputation, PenaltyEvent, Identity, RegisterIdentityRequest, ActivateIdentityRequest, LinkPlatformRequest, ChallengeIdentityRequest, AddStakeRequest, WithdrawIdentityRequest, IdentityDefinition, typeFromJSON, typeToJSON, stateFromJSON, stateToJSON, platformFromJSON, platformToJSON, } from '../../generated/ottochain/apps/identity/v1/identity.js';
21
23
  // Legacy aliases for backward compatibility
22
- export { IdentityState as AgentState } from "../../generated/ottochain/apps/identity/v1/identity.js";
23
- export { AttestationType, ReputationDelta, Attestation, VouchRequest, ChallengeRequest, ReputationConfig, attestationTypeFromJSON, attestationTypeToJSON, } from "../../generated/ottochain/apps/identity/v1/attestation.js";
24
+ export { State as AgentState } from '../../generated/ottochain/apps/identity/v1/identity.js';
25
+ // Deprecated app-prefixed aliases (renamed to Type / State); kept for compat.
26
+ export { Type as IdentityType, State as IdentityState, typeFromJSON as identityTypeFromJSON, typeToJSON as identityTypeToJSON, stateFromJSON as identityStateFromJSON, stateToJSON as identityStateToJSON, } from '../../generated/ottochain/apps/identity/v1/identity.js';
27
+ export { AttestationType, ReputationDelta, Attestation, VouchRequest, ChallengeRequest, ReputationConfig, attestationTypeFromJSON, attestationTypeToJSON, } from '../../generated/ottochain/apps/identity/v1/attestation.js';
24
28
  // Re-export constants and utilities
25
- export { IDENTITY_TRANSITIONS, AGENT_TRANSITIONS, ATTESTATION_DELTAS, canTransition, getReputationDelta, } from "./constants.js";
29
+ export { IDENTITY_TRANSITIONS, AGENT_TRANSITIONS, ATTESTATION_DELTAS, REGISTRY_ROLES, REGISTRY_ROLE_MAP, registryRolePath, registryReputationPath, canTransition, getReputationDelta, } from './constants.js';
26
30
  // ---------------------------------------------------------------------------
27
31
  // Configuration Defaults
28
32
  // ---------------------------------------------------------------------------
@@ -41,18 +45,19 @@ export const DEFAULT_REPUTATION_CONFIG = {
41
45
  // ---------------------------------------------------------------------------
42
46
  // State Machine Definitions (generated from JSON at build time)
43
47
  // ---------------------------------------------------------------------------
44
- import { identityUniversalDef, identityAgentDef, identityOracleDef, } from "./state-machines/index.js";
45
- export { identityUniversalDef, identityAgentDef, identityOracleDef };
48
+ import { identityUniversalDef, identityAgentDef, identityOracleDef, identityRegistryDef, } from './state-machines/index.js';
49
+ export { identityUniversalDef, identityAgentDef, identityOracleDef, identityRegistryDef };
46
50
  /** All identity state machine definitions */
47
51
  export const IDENTITY_DEFINITIONS = {
48
52
  universal: identityUniversalDef,
49
53
  agent: identityAgentDef,
50
54
  oracle: identityOracleDef,
55
+ registry: identityRegistryDef,
51
56
  };
52
57
  /**
53
58
  * Get an identity state machine definition by type.
54
- * @param type - 'universal' | 'agent' | 'oracle' (default: 'agent')
59
+ * @param type - 'universal' | 'agent' | 'oracle' | 'registry' (default: 'agent')
55
60
  */
56
- export function getIdentityDefinition(type = "agent") {
61
+ export function getIdentityDefinition(type = 'agent') {
57
62
  return IDENTITY_DEFINITIONS[type];
58
63
  }