@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
@@ -1,4 +1,5 @@
1
1
  import { defineFiberApp } from "../../../schema/fiber-app.js";
2
+ import { signerIsParty, signerInSet } from "../../../schema/guards.js";
2
3
  /**
3
4
  * Binary or multi-outcome prediction market with oracle resolution and position staking.
4
5
  */
@@ -15,13 +16,18 @@ export const marketPredictionDef = defineFiberApp({
15
16
  },
16
17
  },
17
18
  createSchema: {
18
- required: ["creator", "outcomes", "oracles", "quorum"],
19
+ required: ["creator", "outcomes", "oracles", "quorum", "arbiter"],
19
20
  properties: {
20
21
  creator: {
21
22
  type: "address",
22
23
  description: "DAG address of the market creator",
23
24
  immutable: true,
24
25
  },
26
+ arbiter: {
27
+ type: "address",
28
+ description: "DAG address of the arbiter authorized to rule on a disputed resolution",
29
+ immutable: true,
30
+ },
25
31
  outcomes: {
26
32
  type: "array",
27
33
  description: "Valid outcome identifiers",
@@ -44,6 +50,7 @@ export const marketPredictionDef = defineFiberApp({
44
50
  properties: {
45
51
  status: { type: "string", computed: true },
46
52
  creator: { type: "address", immutable: true },
53
+ arbiter: { type: "address", immutable: true },
47
54
  outcomes: { type: "array", immutable: true },
48
55
  oracles: { type: "array", immutable: true },
49
56
  quorum: { type: "number", immutable: true },
@@ -80,7 +87,6 @@ export const marketPredictionDef = defineFiberApp({
80
87
  },
81
88
  finalize: {
82
89
  description: "Finalize market after quorum reached",
83
- properties: { outcome: { type: "string" } },
84
90
  },
85
91
  dispute: {
86
92
  description: "Dispute the resolution",
@@ -93,8 +99,7 @@ export const marketPredictionDef = defineFiberApp({
93
99
  ruling: {
94
100
  description: "Judicial ruling on dispute",
95
101
  properties: {
96
- judicialRuling: { type: "boolean" },
97
- outcome: { type: "string" },
102
+ finalOutcome: { type: "string" },
98
103
  rulingId: { type: "string" },
99
104
  },
100
105
  },
@@ -108,42 +113,74 @@ export const marketPredictionDef = defineFiberApp({
108
113
  PROPOSED: {
109
114
  id: "PROPOSED",
110
115
  isFinal: false,
111
- metadata: { description: "Market created but not yet open for trading" },
116
+ metadata: {
117
+ label: "Proposed",
118
+ description: "Market created but not yet open for trading",
119
+ category: "initial",
120
+ },
112
121
  },
113
122
  OPEN: {
114
123
  id: "OPEN",
115
124
  isFinal: false,
116
- metadata: { description: "Accepting positions on outcomes" },
125
+ metadata: {
126
+ label: "Open",
127
+ description: "Accepting positions on outcomes",
128
+ category: "active",
129
+ },
117
130
  },
118
131
  CLOSED: {
119
132
  id: "CLOSED",
120
133
  isFinal: false,
121
- metadata: { description: "No more positions, awaiting resolution" },
134
+ metadata: {
135
+ label: "Closed",
136
+ description: "No more positions, awaiting resolution",
137
+ category: "pending",
138
+ },
122
139
  },
123
140
  RESOLVING: {
124
141
  id: "RESOLVING",
125
142
  isFinal: false,
126
- metadata: { description: "Oracle(s) submitting resolution" },
143
+ metadata: {
144
+ label: "Resolving",
145
+ description: "Oracle(s) submitting resolution",
146
+ category: "pending",
147
+ },
127
148
  },
128
149
  DISPUTED: {
129
150
  id: "DISPUTED",
130
151
  isFinal: false,
131
- metadata: { description: "Resolution challenged, awaiting arbitration" },
152
+ metadata: {
153
+ label: "Disputed",
154
+ description: "Resolution challenged, awaiting arbitration",
155
+ category: "pending",
156
+ },
132
157
  },
133
158
  SETTLED: {
134
159
  id: "SETTLED",
135
160
  isFinal: true,
136
- metadata: { description: "Outcome finalized, payouts available" },
161
+ metadata: {
162
+ label: "Settled",
163
+ description: "Outcome finalized, payouts available",
164
+ category: "terminal",
165
+ },
137
166
  },
138
167
  REFUNDED: {
139
168
  id: "REFUNDED",
140
169
  isFinal: true,
141
- metadata: { description: "Market invalidated, all positions refunded" },
170
+ metadata: {
171
+ label: "Refunded",
172
+ description: "Market invalidated, all positions refunded",
173
+ category: "terminal",
174
+ },
142
175
  },
143
176
  CANCELLED: {
144
177
  id: "CANCELLED",
145
178
  isFinal: true,
146
- metadata: { description: "Market cancelled before opening" },
179
+ metadata: {
180
+ label: "Cancelled",
181
+ description: "Market cancelled before opening",
182
+ category: "terminal",
183
+ },
147
184
  },
148
185
  },
149
186
  initialState: "PROPOSED",
@@ -152,13 +189,13 @@ export const marketPredictionDef = defineFiberApp({
152
189
  from: "PROPOSED",
153
190
  to: "OPEN",
154
191
  eventName: "open",
155
- guard: { "===": [{ var: "event.agent" }, { var: "state.creator" }] },
192
+ guard: signerIsParty("state.creator"),
156
193
  effect: {
157
194
  merge: [
158
195
  { var: "state" },
159
196
  {
160
197
  status: "OPEN",
161
- openedAt: { var: "$timestamp" },
198
+ openedAt: { var: "$ordinal" },
162
199
  positions: {},
163
200
  totalPool: 0,
164
201
  },
@@ -170,13 +207,13 @@ export const marketPredictionDef = defineFiberApp({
170
207
  from: "PROPOSED",
171
208
  to: "CANCELLED",
172
209
  eventName: "cancel",
173
- guard: { "===": [{ var: "event.agent" }, { var: "state.creator" }] },
210
+ guard: signerIsParty("state.creator"),
174
211
  effect: {
175
212
  merge: [
176
213
  { var: "state" },
177
214
  {
178
215
  status: "CANCELLED",
179
- cancelledAt: { var: "$timestamp" },
216
+ cancelledAt: { var: "$ordinal" },
180
217
  reason: { var: "event.reason" },
181
218
  },
182
219
  ],
@@ -194,7 +231,7 @@ export const marketPredictionDef = defineFiberApp({
194
231
  {
195
232
  or: [
196
233
  { "!": [{ var: "state.deadline" }] },
197
- { "<=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
234
+ { "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
198
235
  ],
199
236
  },
200
237
  ],
@@ -231,11 +268,11 @@ export const marketPredictionDef = defineFiberApp({
231
268
  eventName: "close",
232
269
  guard: {
233
270
  or: [
234
- { "===": [{ var: "event.agent" }, { var: "state.creator" }] },
271
+ signerIsParty("state.creator"),
235
272
  {
236
273
  and: [
237
274
  { var: "state.deadline" },
238
- { ">=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
275
+ { ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
239
276
  ],
240
277
  },
241
278
  ],
@@ -243,7 +280,7 @@ export const marketPredictionDef = defineFiberApp({
243
280
  effect: {
244
281
  merge: [
245
282
  { var: "state" },
246
- { status: "CLOSED", closedAt: { var: "$timestamp" } },
283
+ { status: "CLOSED", closedAt: { var: "$ordinal" } },
247
284
  ],
248
285
  },
249
286
  dependencies: [],
@@ -252,7 +289,7 @@ export const marketPredictionDef = defineFiberApp({
252
289
  from: "CLOSED",
253
290
  to: "RESOLVING",
254
291
  eventName: "submit_resolution",
255
- guard: { in: [{ var: "event.agent" }, { var: "state.oracles" }] },
292
+ guard: signerInSet("state.oracles"),
256
293
  effect: {
257
294
  merge: [
258
295
  { var: "state" },
@@ -263,7 +300,7 @@ export const marketPredictionDef = defineFiberApp({
263
300
  oracle: { var: "event.agent" },
264
301
  outcome: { var: "event.outcome" },
265
302
  proof: { var: "event.proof" },
266
- submittedAt: { var: "$timestamp" },
303
+ submittedAt: { var: "$ordinal" },
267
304
  },
268
305
  ],
269
306
  },
@@ -277,7 +314,7 @@ export const marketPredictionDef = defineFiberApp({
277
314
  eventName: "submit_resolution",
278
315
  guard: {
279
316
  and: [
280
- { in: [{ var: "event.agent" }, { var: "state.oracles" }] },
317
+ signerInSet("state.oracles"),
281
318
  {
282
319
  "!": [
283
320
  {
@@ -302,7 +339,7 @@ export const marketPredictionDef = defineFiberApp({
302
339
  oracle: { var: "event.agent" },
303
340
  outcome: { var: "event.outcome" },
304
341
  proof: { var: "event.proof" },
305
- submittedAt: { var: "$timestamp" },
342
+ submittedAt: { var: "$ordinal" },
306
343
  },
307
344
  ],
308
345
  ],
@@ -316,16 +353,26 @@ export const marketPredictionDef = defineFiberApp({
316
353
  from: "RESOLVING",
317
354
  to: "SETTLED",
318
355
  eventName: "finalize",
356
+ // authority gate — an ARBITER/SLASHER attestation check layers on additively when the identity registry lands (see docs/design/app-hardening-identity-integration.md §4.2)
319
357
  guard: {
320
- ">=": [{ size: { var: "state.resolutions" } }, { var: "state.quorum" }],
358
+ and: [
359
+ signerInSet("state.oracles"),
360
+ {
361
+ ">=": [
362
+ { count: { var: "state.resolutions" } },
363
+ { var: "state.quorum" },
364
+ ],
365
+ },
366
+ ],
321
367
  },
322
368
  effect: {
323
369
  merge: [
324
370
  { var: "state" },
325
371
  {
326
372
  status: "SETTLED",
327
- settledAt: { var: "$timestamp" },
328
- finalOutcome: { var: "event.outcome" },
373
+ settledAt: { var: "$ordinal" },
374
+ // finalOutcome derives from the quorum-agreed resolution, not a raw event field
375
+ finalOutcome: { var: "state.resolutions.0.outcome" },
329
376
  claims: [],
330
377
  },
331
378
  ],
@@ -341,12 +388,14 @@ export const marketPredictionDef = defineFiberApp({
341
388
  {
342
389
  ">": [
343
390
  {
344
- size: {
345
- filter: [
346
- { var: "state.positions" },
347
- { "===": [{ var: "agent" }, { var: "event.agent" }] },
348
- ],
349
- },
391
+ length: [
392
+ {
393
+ filter: [
394
+ { var: "state.positions" },
395
+ { "===": [{ var: "agent" }, { var: "event.agent" }] },
396
+ ],
397
+ },
398
+ ],
350
399
  },
351
400
  0,
352
401
  ],
@@ -359,7 +408,7 @@ export const marketPredictionDef = defineFiberApp({
359
408
  { var: "state" },
360
409
  {
361
410
  status: "DISPUTED",
362
- disputedAt: { var: "$timestamp" },
411
+ disputedAt: { var: "$ordinal" },
363
412
  disputedBy: { var: "event.agent" },
364
413
  disputeStake: { var: "event.stake" },
365
414
  disputeReason: { var: "event.reason" },
@@ -372,14 +421,20 @@ export const marketPredictionDef = defineFiberApp({
372
421
  from: "DISPUTED",
373
422
  to: "SETTLED",
374
423
  eventName: "ruling",
375
- guard: { var: "event.judicialRuling" },
424
+ // authority gate — an ARBITER/SLASHER attestation check layers on additively when the identity registry lands (see docs/design/app-hardening-identity-integration.md §4.2)
425
+ guard: {
426
+ and: [
427
+ signerIsParty("state.arbiter"),
428
+ { in: [{ var: "event.finalOutcome" }, { var: "state.outcomes" }] },
429
+ ],
430
+ },
376
431
  effect: {
377
432
  merge: [
378
433
  { var: "state" },
379
434
  {
380
435
  status: "SETTLED",
381
- settledAt: { var: "$timestamp" },
382
- finalOutcome: { var: "event.outcome" },
436
+ settledAt: { var: "$ordinal" },
437
+ finalOutcome: { var: "event.finalOutcome" },
383
438
  rulingId: { var: "event.rulingId" },
384
439
  claims: [],
385
440
  },
@@ -394,12 +449,14 @@ export const marketPredictionDef = defineFiberApp({
394
449
  guard: {
395
450
  ">=": [
396
451
  {
397
- size: {
398
- filter: [
399
- { var: "state.resolutions" },
400
- { "===": [{ var: "outcome" }, "INVALID"] },
401
- ],
402
- },
452
+ length: [
453
+ {
454
+ filter: [
455
+ { var: "state.resolutions" },
456
+ { "===": [{ var: "outcome" }, "INVALID"] },
457
+ ],
458
+ },
459
+ ],
403
460
  },
404
461
  { var: "state.quorum" },
405
462
  ],
@@ -409,7 +466,7 @@ export const marketPredictionDef = defineFiberApp({
409
466
  { var: "state" },
410
467
  {
411
468
  status: "REFUNDED",
412
- refundedAt: { var: "$timestamp" },
469
+ refundedAt: { var: "$ordinal" },
413
470
  reason: "oracle_invalidation",
414
471
  },
415
472
  ],
@@ -425,22 +482,24 @@ export const marketPredictionDef = defineFiberApp({
425
482
  {
426
483
  ">": [
427
484
  {
428
- size: {
429
- filter: [
430
- { var: "state.positions" },
431
- {
432
- and: [
433
- { "===": [{ var: "agent" }, { var: "event.agent" }] },
434
- {
435
- "===": [
436
- { var: "outcome" },
437
- { var: "state.finalOutcome" },
438
- ],
439
- },
440
- ],
441
- },
442
- ],
443
- },
485
+ length: [
486
+ {
487
+ filter: [
488
+ { var: "state.positions" },
489
+ {
490
+ and: [
491
+ { "===": [{ var: "agent" }, { var: "event.agent" }] },
492
+ {
493
+ "===": [
494
+ { var: "outcome" },
495
+ { var: "state.finalOutcome" },
496
+ ],
497
+ },
498
+ ],
499
+ },
500
+ ],
501
+ },
502
+ ],
444
503
  },
445
504
  0,
446
505
  ],
@@ -468,7 +527,7 @@ export const marketPredictionDef = defineFiberApp({
468
527
  {
469
528
  agent: { var: "event.agent" },
470
529
  amount: { var: "event.amount" },
471
- claimedAt: { var: "$timestamp" },
530
+ claimedAt: { var: "$ordinal" },
472
531
  },
473
532
  ],
474
533
  ],
@@ -32,11 +32,51 @@ export const marketUniversalDef = defineFiberApp({
32
32
  settle: { description: "Settle the market" },
33
33
  },
34
34
  states: {
35
- PROPOSED: { id: "PROPOSED", isFinal: false, metadata: null },
36
- OPEN: { id: "OPEN", isFinal: false, metadata: null },
37
- CLOSED: { id: "CLOSED", isFinal: false, metadata: null },
38
- SETTLED: { id: "SETTLED", isFinal: true, metadata: null },
39
- CANCELLED: { id: "CANCELLED", isFinal: true, metadata: null },
35
+ PROPOSED: {
36
+ id: "PROPOSED",
37
+ isFinal: false,
38
+ metadata: {
39
+ label: "Proposed",
40
+ description: "Market created but not yet open",
41
+ category: "initial",
42
+ },
43
+ },
44
+ OPEN: {
45
+ id: "OPEN",
46
+ isFinal: false,
47
+ metadata: {
48
+ label: "Open",
49
+ description: "Market is open for participation",
50
+ category: "active",
51
+ },
52
+ },
53
+ CLOSED: {
54
+ id: "CLOSED",
55
+ isFinal: false,
56
+ metadata: {
57
+ label: "Closed",
58
+ description: "Participation closed; awaiting settlement",
59
+ category: "pending",
60
+ },
61
+ },
62
+ SETTLED: {
63
+ id: "SETTLED",
64
+ isFinal: true,
65
+ metadata: {
66
+ label: "Settled",
67
+ description: "Market settled and payouts available (terminal)",
68
+ category: "terminal",
69
+ },
70
+ },
71
+ CANCELLED: {
72
+ id: "CANCELLED",
73
+ isFinal: true,
74
+ metadata: {
75
+ label: "Cancelled",
76
+ description: "Market cancelled before settlement (terminal)",
77
+ category: "terminal",
78
+ },
79
+ },
40
80
  },
41
81
  initialState: "PROPOSED",
42
82
  transitions: [
@@ -48,7 +88,7 @@ export const marketUniversalDef = defineFiberApp({
48
88
  effect: {
49
89
  merge: [
50
90
  { var: "state" },
51
- { status: "OPEN", openedAt: { var: "$timestamp" } },
91
+ { status: "OPEN", openedAt: { var: "$ordinal" } },
52
92
  ],
53
93
  },
54
94
  dependencies: [],
@@ -61,7 +101,7 @@ export const marketUniversalDef = defineFiberApp({
61
101
  effect: {
62
102
  merge: [
63
103
  { var: "state" },
64
- { status: "CANCELLED", cancelledAt: { var: "$timestamp" } },
104
+ { status: "CANCELLED", cancelledAt: { var: "$ordinal" } },
65
105
  ],
66
106
  },
67
107
  dependencies: [],
@@ -91,7 +131,7 @@ export const marketUniversalDef = defineFiberApp({
91
131
  effect: {
92
132
  merge: [
93
133
  { var: "state" },
94
- { status: "CLOSED", closedAt: { var: "$timestamp" } },
134
+ { status: "CLOSED", closedAt: { var: "$ordinal" } },
95
135
  ],
96
136
  },
97
137
  dependencies: [],
@@ -104,7 +144,7 @@ export const marketUniversalDef = defineFiberApp({
104
144
  effect: {
105
145
  merge: [
106
146
  { var: "state" },
107
- { status: "SETTLED", settledAt: { var: "$timestamp" } },
147
+ { status: "SETTLED", settledAt: { var: "$ordinal" } },
108
148
  ],
109
149
  },
110
150
  dependencies: [],
@@ -117,7 +157,7 @@ export const marketUniversalDef = defineFiberApp({
117
157
  effect: {
118
158
  merge: [
119
159
  { var: "state" },
120
- { status: "CANCELLED", cancelledAt: { var: "$timestamp" } },
160
+ { status: "CANCELLED", cancelledAt: { var: "$ordinal" } },
121
161
  ],
122
162
  },
123
163
  dependencies: [],
@@ -22,15 +22,19 @@ export { FiberStatus, AccessControlPolicy, PublicAccess, WhitelistAccess, FiberO
22
22
  export { CreateStateMachine, TransitionStateMachine, ArchiveStateMachine, CreateScript, InvokeScript, OttochainMessage, } from './ottochain/v1/messages.js';
23
23
  export { StateMachineFiberRecord, ScriptFiberRecord, FiberCommit, OnChainState, CalculatedState, } from './ottochain/v1/records.js';
24
24
  // App: Identity (unified in v2.1)
25
- export { IdentityType, IdentityState, Platform, PlatformLink, Reputation, PenaltyEvent, Identity, RegisterIdentityRequest, ActivateIdentityRequest, LinkPlatformRequest, ChallengeIdentityRequest, AddStakeRequest, WithdrawIdentityRequest, IdentityDefinition, } from './ottochain/apps/identity/v1/identity.js';
25
+ // The nested lifecycle/kind enums dropped their app prefix in the proto
26
+ // (now Type/State, disambiguated by package ottochain.apps.identity.v1).
27
+ // This flat barrel re-aliases them back to app-qualified names so the global
28
+ // export namespace stays collision-free across apps.
29
+ export { Type as IdentityType, State as IdentityState, Platform, PlatformLink, Reputation, PenaltyEvent, Identity, RegisterIdentityRequest, ActivateIdentityRequest, LinkPlatformRequest, ChallengeIdentityRequest, AddStakeRequest, WithdrawIdentityRequest, IdentityDefinition, } from './ottochain/apps/identity/v1/identity.js';
26
30
  // Legacy aliases for backward compatibility
27
- export { IdentityState as AgentState } from './ottochain/apps/identity/v1/identity.js';
28
- export { IdentityState as OracleState } from './ottochain/apps/identity/v1/identity.js';
31
+ export { State as AgentState } from './ottochain/apps/identity/v1/identity.js';
32
+ export { State as OracleState } from './ottochain/apps/identity/v1/identity.js';
29
33
  export { AttestationType, ReputationDelta, Attestation, VouchRequest, ChallengeRequest, ReputationConfig, } from './ottochain/apps/identity/v1/attestation.js';
30
34
  // App: Contracts
31
- export { ContractState, Contract, ProposeContractRequest, AcceptContractRequest, CompleteContractRequest, RejectContractRequest, DisputeContractRequest, ContractDefinition, } from './ottochain/apps/contracts/v1/contract.js';
35
+ export { State as ContractState, Contract, ProposeContractRequest, AcceptContractRequest, CompleteContractRequest, RejectContractRequest, DisputeContractRequest, ContractDefinition, } from './ottochain/apps/contracts/v1/contract.js';
32
36
  // App: Markets
33
- export { MarketType, MarketState, Commitment, Resolution, Market, CreateMarketRequest, CommitToMarketRequest, SubmitResolutionRequest, CancelMarketRequest, MarketDefinition, } from './ottochain/apps/markets/v1/market.js';
37
+ export { Type as MarketType, State as MarketState, Commitment, Resolution, Market, CreateMarketRequest, CommitToMarketRequest, SubmitResolutionRequest, CancelMarketRequest, MarketDefinition, } from './ottochain/apps/markets/v1/market.js';
34
38
  // App: Oracles - REMOVED in v2.1 (absorbed into identity)
35
39
  // OracleState is now an alias for IdentityState (see above)
36
40
  // Oracle-specific messages moved to identity.proto
@@ -0,0 +1,5 @@
1
+ /**
2
+ * This file was auto-generated by openapi-typescript.
3
+ * Do not make direct changes to the file.
4
+ */
5
+ export {};