@ottochain/sdk 2.0.0 → 2.2.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 (142) hide show
  1. package/dist/cjs/apps/contracts/index.js +1 -1
  2. package/dist/cjs/apps/contracts/state-machines/contract-agreement.js +272 -0
  3. package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +284 -0
  4. package/dist/cjs/apps/contracts/state-machines/contract-universal.js +93 -0
  5. package/dist/cjs/apps/contracts/state-machines/index.js +177 -1
  6. package/dist/cjs/apps/corporate/state-machines/corp-board.js +1022 -0
  7. package/dist/cjs/apps/corporate/state-machines/corp-entity.js +671 -0
  8. package/dist/cjs/apps/corporate/state-machines/corp-securities.js +998 -0
  9. package/dist/cjs/apps/corporate/state-machines/corp-shareholders.js +1102 -0
  10. package/dist/cjs/apps/corporate/state-machines/index.js +20 -4440
  11. package/dist/cjs/apps/governance/index.js +7 -7
  12. package/dist/cjs/apps/governance/state-machines/dao-multisig.js +467 -0
  13. package/dist/cjs/apps/governance/state-machines/dao-reputation.js +458 -0
  14. package/dist/cjs/apps/governance/state-machines/dao-single.js +199 -0
  15. package/dist/cjs/apps/governance/state-machines/dao-token.js +503 -0
  16. package/dist/cjs/apps/governance/state-machines/governance-simple.js +482 -0
  17. package/dist/cjs/apps/governance/state-machines/governance-universal.js +138 -0
  18. package/dist/cjs/apps/governance/state-machines/index.js +16 -2934
  19. package/dist/cjs/apps/identity/constants.js +28 -14
  20. package/dist/cjs/apps/identity/index.js +27 -12
  21. package/dist/cjs/apps/identity/state-machines/identity-agent.js +256 -0
  22. package/dist/cjs/apps/identity/state-machines/identity-oracle.js +321 -0
  23. package/dist/cjs/apps/identity/state-machines/identity-universal.js +106 -0
  24. package/dist/cjs/apps/identity/state-machines/index.js +15 -784
  25. package/dist/cjs/apps/markets/index.js +1 -1
  26. package/dist/cjs/apps/markets/state-machines/index.js +14 -2298
  27. package/dist/cjs/apps/markets/state-machines/market-auction.js +283 -0
  28. package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +312 -0
  29. package/dist/cjs/apps/markets/state-machines/market-group-buy.js +407 -0
  30. package/dist/cjs/apps/markets/state-machines/market-prediction.js +485 -0
  31. package/dist/cjs/apps/markets/state-machines/market-universal.js +129 -0
  32. package/dist/cjs/apps/oracles/index.js +36 -0
  33. package/dist/cjs/generated/google/protobuf/struct.js +1 -1
  34. package/dist/cjs/generated/google/protobuf/timestamp.js +1 -1
  35. package/dist/cjs/generated/index.js +26 -22
  36. package/dist/cjs/generated/ottochain/apps/contracts/v1/contract.js +1 -1
  37. package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate.js +1 -1
  38. package/dist/cjs/generated/ottochain/apps/governance/v1/governance.js +1 -1
  39. package/dist/cjs/generated/ottochain/apps/identity/v1/attestation.js +12 -12
  40. package/dist/cjs/generated/ottochain/apps/identity/v1/identity.js +1688 -0
  41. package/dist/cjs/generated/ottochain/apps/markets/v1/market.js +1 -1
  42. package/dist/cjs/generated/ottochain/v1/common.js +1 -1
  43. package/dist/cjs/generated/ottochain/v1/fiber.js +1 -1
  44. package/dist/cjs/generated/ottochain/v1/messages.js +1 -1
  45. package/dist/cjs/generated/ottochain/v1/records.js +1 -1
  46. package/dist/cjs/schema/fiber-app.js +95 -0
  47. package/dist/cjs/schema/index.js +20 -0
  48. package/dist/esm/apps/contracts/index.js +3 -3
  49. package/dist/esm/apps/contracts/state-machines/contract-agreement.js +269 -0
  50. package/dist/esm/apps/contracts/state-machines/contract-escrow.js +281 -0
  51. package/dist/esm/apps/contracts/state-machines/contract-universal.js +90 -0
  52. package/dist/esm/apps/contracts/state-machines/index.js +177 -1
  53. package/dist/esm/apps/corporate/index.js +3 -3
  54. package/dist/esm/apps/corporate/state-machines/corp-board.js +1019 -0
  55. package/dist/esm/apps/corporate/state-machines/corp-entity.js +668 -0
  56. package/dist/esm/apps/corporate/state-machines/corp-securities.js +995 -0
  57. package/dist/esm/apps/corporate/state-machines/corp-shareholders.js +1099 -0
  58. package/dist/esm/apps/corporate/state-machines/index.js +15 -4439
  59. package/dist/esm/apps/governance/index.js +9 -9
  60. package/dist/esm/apps/governance/state-machines/dao-multisig.js +464 -0
  61. package/dist/esm/apps/governance/state-machines/dao-reputation.js +455 -0
  62. package/dist/esm/apps/governance/state-machines/dao-single.js +196 -0
  63. package/dist/esm/apps/governance/state-machines/dao-token.js +500 -0
  64. package/dist/esm/apps/governance/state-machines/governance-simple.js +479 -0
  65. package/dist/esm/apps/governance/state-machines/governance-universal.js +135 -0
  66. package/dist/esm/apps/governance/state-machines/index.js +9 -2933
  67. package/dist/esm/apps/identity/constants.js +28 -14
  68. package/dist/esm/apps/identity/index.js +7 -5
  69. package/dist/esm/apps/identity/state-machines/identity-agent.js +253 -0
  70. package/dist/esm/apps/identity/state-machines/identity-oracle.js +318 -0
  71. package/dist/esm/apps/identity/state-machines/identity-universal.js +103 -0
  72. package/dist/esm/apps/identity/state-machines/index.js +11 -783
  73. package/dist/esm/apps/index.js +5 -5
  74. package/dist/esm/apps/markets/index.js +3 -3
  75. package/dist/esm/apps/markets/state-machines/index.js +8 -2297
  76. package/dist/esm/apps/markets/state-machines/market-auction.js +280 -0
  77. package/dist/esm/apps/markets/state-machines/market-crowdfund.js +309 -0
  78. package/dist/esm/apps/markets/state-machines/market-group-buy.js +404 -0
  79. package/dist/esm/apps/markets/state-machines/market-prediction.js +482 -0
  80. package/dist/esm/apps/markets/state-machines/market-universal.js +126 -0
  81. package/dist/esm/apps/oracles/index.js +21 -0
  82. package/dist/esm/generated/google/protobuf/struct.js +1 -1
  83. package/dist/esm/generated/google/protobuf/timestamp.js +1 -1
  84. package/dist/esm/generated/index.js +8 -4
  85. package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +1 -1
  86. package/dist/esm/generated/ottochain/apps/corporate/v1/corporate.js +1 -1
  87. package/dist/esm/generated/ottochain/apps/governance/v1/governance.js +1 -1
  88. package/dist/esm/generated/ottochain/apps/identity/v1/attestation.js +2 -2
  89. package/dist/esm/generated/ottochain/apps/identity/v1/identity.js +1676 -0
  90. package/dist/esm/generated/ottochain/apps/markets/v1/market.js +1 -1
  91. package/dist/esm/generated/ottochain/v1/common.js +1 -1
  92. package/dist/esm/generated/ottochain/v1/fiber.js +1 -1
  93. package/dist/esm/generated/ottochain/v1/messages.js +1 -1
  94. package/dist/esm/generated/ottochain/v1/records.js +1 -1
  95. package/dist/esm/schema/fiber-app.js +86 -0
  96. package/dist/esm/schema/index.js +4 -0
  97. package/dist/types/apps/contracts/index.d.ts +151 -2
  98. package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +462 -0
  99. package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +511 -0
  100. package/dist/types/apps/contracts/state-machines/contract-universal.d.ts +147 -0
  101. package/dist/types/apps/contracts/state-machines/index.d.ts +149 -0
  102. package/dist/types/apps/corporate/index.d.ts +5263 -3825
  103. package/dist/types/apps/corporate/state-machines/corp-board.d.ts +1479 -0
  104. package/dist/types/apps/corporate/state-machines/corp-entity.d.ts +970 -0
  105. package/dist/types/apps/corporate/state-machines/corp-securities.d.ts +1381 -0
  106. package/dist/types/apps/corporate/state-machines/corp-shareholders.d.ts +1631 -0
  107. package/dist/types/apps/corporate/state-machines/index.d.ts +5245 -3802
  108. package/dist/types/apps/governance/index.d.ts +875 -37
  109. package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +644 -0
  110. package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +610 -0
  111. package/dist/types/apps/governance/state-machines/dao-single.d.ts +276 -0
  112. package/dist/types/apps/governance/state-machines/dao-token.d.ts +601 -0
  113. package/dist/types/apps/governance/state-machines/governance-simple.d.ts +652 -0
  114. package/dist/types/apps/governance/state-machines/governance-universal.d.ts +181 -0
  115. package/dist/types/apps/governance/state-machines/index.d.ts +9 -2136
  116. package/dist/types/apps/identity/constants.d.ts +8 -6
  117. package/dist/types/apps/identity/index.d.ts +1078 -577
  118. package/dist/types/apps/identity/state-machines/identity-agent.d.ts +401 -0
  119. package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +550 -0
  120. package/dist/types/apps/identity/state-machines/identity-universal.d.ts +151 -0
  121. package/dist/types/apps/identity/state-machines/index.d.ts +1069 -567
  122. package/dist/types/apps/index.d.ts +5 -5
  123. package/dist/types/apps/markets/index.d.ts +535 -7
  124. package/dist/types/apps/markets/state-machines/index.d.ts +8 -1678
  125. package/dist/types/apps/markets/state-machines/market-auction.d.ts +392 -0
  126. package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +443 -0
  127. package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +539 -0
  128. package/dist/types/apps/markets/state-machines/market-prediction.d.ts +651 -0
  129. package/dist/types/apps/markets/state-machines/market-universal.d.ts +191 -0
  130. package/dist/types/apps/oracles/index.d.ts +18 -0
  131. package/dist/types/generated/index.d.ts +3 -2
  132. package/dist/types/generated/ottochain/apps/identity/v1/attestation.d.ts +1 -1
  133. package/dist/types/generated/ottochain/apps/identity/v1/identity.d.ts +187 -0
  134. package/dist/types/schema/fiber-app.d.ts +172 -0
  135. package/dist/types/schema/index.d.ts +4 -0
  136. package/package.json +1 -1
  137. package/dist/cjs/generated/ottochain/apps/identity/v1/agent.js +0 -619
  138. package/dist/cjs/generated/ottochain/apps/oracles/v1/oracle.js +0 -1223
  139. package/dist/esm/generated/ottochain/apps/identity/v1/agent.js +0 -610
  140. package/dist/esm/generated/ottochain/apps/oracles/v1/oracle.js +0 -1217
  141. package/dist/types/generated/ottochain/apps/identity/v1/agent.d.ts +0 -94
  142. package/dist/types/generated/ottochain/apps/oracles/v1/oracle.d.ts +0 -150
@@ -0,0 +1,485 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.marketPredictionDef = void 0;
4
+ const fiber_app_js_1 = require("../../../schema/fiber-app.js");
5
+ /**
6
+ * Binary or multi-outcome prediction market with oracle resolution and position staking.
7
+ */
8
+ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
9
+ metadata: {
10
+ name: "MarketPrediction",
11
+ app: "markets",
12
+ type: "prediction",
13
+ version: "1.0.0",
14
+ description: "Binary or multi-outcome prediction market with oracle resolution and position staking",
15
+ crossReferences: {
16
+ oracleId: "Links to IdentityOracle that resolves the outcome",
17
+ creatorIdentityId: "Links to creator's IdentityAgent",
18
+ },
19
+ },
20
+ createSchema: {
21
+ required: ["creator", "outcomes", "oracles", "quorum"],
22
+ properties: {
23
+ creator: {
24
+ type: "address",
25
+ description: "DAG address of the market creator",
26
+ immutable: true,
27
+ },
28
+ outcomes: {
29
+ type: "array",
30
+ description: "Valid outcome identifiers",
31
+ immutable: true,
32
+ },
33
+ oracles: {
34
+ type: "array",
35
+ description: "Authorized oracle addresses",
36
+ immutable: true,
37
+ },
38
+ quorum: {
39
+ type: "number",
40
+ description: "Minimum oracle submissions needed to resolve",
41
+ immutable: true,
42
+ },
43
+ deadline: { type: "timestamp", description: "Optional trading deadline" },
44
+ },
45
+ },
46
+ stateSchema: {
47
+ properties: {
48
+ status: { type: "string", computed: true },
49
+ creator: { type: "address", immutable: true },
50
+ outcomes: { type: "array", immutable: true },
51
+ oracles: { type: "array", immutable: true },
52
+ quorum: { type: "number", immutable: true },
53
+ deadline: { type: "timestamp" },
54
+ positions: { type: "object", computed: true },
55
+ totalPool: { type: "number", computed: true },
56
+ resolutions: { type: "array", computed: true },
57
+ finalOutcome: { type: "string", computed: true },
58
+ claims: { type: "array", computed: true },
59
+ },
60
+ },
61
+ eventSchemas: {
62
+ open: { description: "Open the market for trading" },
63
+ cancel: {
64
+ description: "Cancel the market before opening",
65
+ properties: { reason: { type: "string" } },
66
+ },
67
+ take_position: {
68
+ description: "Take a position on an outcome",
69
+ required: ["outcome", "amount"],
70
+ properties: {
71
+ outcome: { type: "string" },
72
+ amount: { type: "number", minimum: 0 },
73
+ },
74
+ },
75
+ close: { description: "Close trading" },
76
+ submit_resolution: {
77
+ description: "Submit oracle resolution",
78
+ required: ["outcome", "proof"],
79
+ properties: {
80
+ outcome: { type: "string" },
81
+ proof: { type: "string" },
82
+ },
83
+ },
84
+ finalize: {
85
+ description: "Finalize market after quorum reached",
86
+ properties: { outcome: { type: "string" } },
87
+ },
88
+ dispute: {
89
+ description: "Dispute the resolution",
90
+ required: ["stake"],
91
+ properties: {
92
+ stake: { type: "number", minimum: 0 },
93
+ reason: { type: "string" },
94
+ },
95
+ },
96
+ ruling: {
97
+ description: "Judicial ruling on dispute",
98
+ properties: {
99
+ judicialRuling: { type: "boolean" },
100
+ outcome: { type: "string" },
101
+ rulingId: { type: "string" },
102
+ },
103
+ },
104
+ invalidate: { description: "Invalidate market by oracle consensus" },
105
+ claim: {
106
+ description: "Claim payout after settlement",
107
+ properties: { amount: { type: "number" } },
108
+ },
109
+ },
110
+ states: {
111
+ PROPOSED: {
112
+ id: "PROPOSED",
113
+ isFinal: false,
114
+ metadata: { description: "Market created but not yet open for trading" },
115
+ },
116
+ OPEN: {
117
+ id: "OPEN",
118
+ isFinal: false,
119
+ metadata: { description: "Accepting positions on outcomes" },
120
+ },
121
+ CLOSED: {
122
+ id: "CLOSED",
123
+ isFinal: false,
124
+ metadata: { description: "No more positions, awaiting resolution" },
125
+ },
126
+ RESOLVING: {
127
+ id: "RESOLVING",
128
+ isFinal: false,
129
+ metadata: { description: "Oracle(s) submitting resolution" },
130
+ },
131
+ DISPUTED: {
132
+ id: "DISPUTED",
133
+ isFinal: false,
134
+ metadata: { description: "Resolution challenged, awaiting arbitration" },
135
+ },
136
+ SETTLED: {
137
+ id: "SETTLED",
138
+ isFinal: true,
139
+ metadata: { description: "Outcome finalized, payouts available" },
140
+ },
141
+ REFUNDED: {
142
+ id: "REFUNDED",
143
+ isFinal: true,
144
+ metadata: { description: "Market invalidated, all positions refunded" },
145
+ },
146
+ CANCELLED: {
147
+ id: "CANCELLED",
148
+ isFinal: true,
149
+ metadata: { description: "Market cancelled before opening" },
150
+ },
151
+ },
152
+ initialState: "PROPOSED",
153
+ transitions: [
154
+ {
155
+ from: "PROPOSED",
156
+ to: "OPEN",
157
+ eventName: "open",
158
+ guard: { "===": [{ var: "event.agent" }, { var: "state.creator" }] },
159
+ effect: {
160
+ merge: [
161
+ { var: "state" },
162
+ {
163
+ status: "OPEN",
164
+ openedAt: { var: "$timestamp" },
165
+ positions: {},
166
+ totalPool: 0,
167
+ },
168
+ ],
169
+ },
170
+ dependencies: [],
171
+ },
172
+ {
173
+ from: "PROPOSED",
174
+ to: "CANCELLED",
175
+ eventName: "cancel",
176
+ guard: { "===": [{ var: "event.agent" }, { var: "state.creator" }] },
177
+ effect: {
178
+ merge: [
179
+ { var: "state" },
180
+ {
181
+ status: "CANCELLED",
182
+ cancelledAt: { var: "$timestamp" },
183
+ reason: { var: "event.reason" },
184
+ },
185
+ ],
186
+ },
187
+ dependencies: [],
188
+ },
189
+ {
190
+ from: "OPEN",
191
+ to: "OPEN",
192
+ eventName: "take_position",
193
+ guard: {
194
+ and: [
195
+ { ">": [{ var: "event.amount" }, 0] },
196
+ { in: [{ var: "event.outcome" }, { var: "state.outcomes" }] },
197
+ {
198
+ or: [
199
+ { "!": [{ var: "state.deadline" }] },
200
+ { "<=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
201
+ ],
202
+ },
203
+ ],
204
+ },
205
+ effect: {
206
+ merge: [
207
+ { var: "state" },
208
+ {
209
+ positions: {
210
+ merge: [
211
+ { var: "state.positions" },
212
+ {
213
+ __computed: {
214
+ cat: [
215
+ { var: "event.agent" },
216
+ "_",
217
+ { var: "event.outcome" },
218
+ ],
219
+ },
220
+ },
221
+ ],
222
+ },
223
+ totalPool: {
224
+ "+": [{ var: "state.totalPool" }, { var: "event.amount" }],
225
+ },
226
+ },
227
+ ],
228
+ },
229
+ dependencies: [],
230
+ },
231
+ {
232
+ from: "OPEN",
233
+ to: "CLOSED",
234
+ eventName: "close",
235
+ guard: {
236
+ or: [
237
+ { "===": [{ var: "event.agent" }, { var: "state.creator" }] },
238
+ {
239
+ and: [
240
+ { var: "state.deadline" },
241
+ { ">=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
242
+ ],
243
+ },
244
+ ],
245
+ },
246
+ effect: {
247
+ merge: [
248
+ { var: "state" },
249
+ { status: "CLOSED", closedAt: { var: "$timestamp" } },
250
+ ],
251
+ },
252
+ dependencies: [],
253
+ },
254
+ {
255
+ from: "CLOSED",
256
+ to: "RESOLVING",
257
+ eventName: "submit_resolution",
258
+ guard: { in: [{ var: "event.agent" }, { var: "state.oracles" }] },
259
+ effect: {
260
+ merge: [
261
+ { var: "state" },
262
+ {
263
+ status: "RESOLVING",
264
+ resolutions: [
265
+ {
266
+ oracle: { var: "event.agent" },
267
+ outcome: { var: "event.outcome" },
268
+ proof: { var: "event.proof" },
269
+ submittedAt: { var: "$timestamp" },
270
+ },
271
+ ],
272
+ },
273
+ ],
274
+ },
275
+ dependencies: [],
276
+ },
277
+ {
278
+ from: "RESOLVING",
279
+ to: "RESOLVING",
280
+ eventName: "submit_resolution",
281
+ guard: {
282
+ and: [
283
+ { in: [{ var: "event.agent" }, { var: "state.oracles" }] },
284
+ {
285
+ "!": [
286
+ {
287
+ in: [
288
+ { var: "event.agent" },
289
+ { map: [{ var: "state.resolutions" }, { var: "oracle" }] },
290
+ ],
291
+ },
292
+ ],
293
+ },
294
+ ],
295
+ },
296
+ effect: {
297
+ merge: [
298
+ { var: "state" },
299
+ {
300
+ resolutions: {
301
+ cat: [
302
+ { var: "state.resolutions" },
303
+ [
304
+ {
305
+ oracle: { var: "event.agent" },
306
+ outcome: { var: "event.outcome" },
307
+ proof: { var: "event.proof" },
308
+ submittedAt: { var: "$timestamp" },
309
+ },
310
+ ],
311
+ ],
312
+ },
313
+ },
314
+ ],
315
+ },
316
+ dependencies: [],
317
+ },
318
+ {
319
+ from: "RESOLVING",
320
+ to: "SETTLED",
321
+ eventName: "finalize",
322
+ guard: {
323
+ ">=": [{ size: { var: "state.resolutions" } }, { var: "state.quorum" }],
324
+ },
325
+ effect: {
326
+ merge: [
327
+ { var: "state" },
328
+ {
329
+ status: "SETTLED",
330
+ settledAt: { var: "$timestamp" },
331
+ finalOutcome: { var: "event.outcome" },
332
+ claims: [],
333
+ },
334
+ ],
335
+ },
336
+ dependencies: [],
337
+ },
338
+ {
339
+ from: "RESOLVING",
340
+ to: "DISPUTED",
341
+ eventName: "dispute",
342
+ guard: {
343
+ and: [
344
+ {
345
+ ">": [
346
+ {
347
+ size: {
348
+ filter: [
349
+ { var: "state.positions" },
350
+ { "===": [{ var: "agent" }, { var: "event.agent" }] },
351
+ ],
352
+ },
353
+ },
354
+ 0,
355
+ ],
356
+ },
357
+ { var: "event.stake" },
358
+ ],
359
+ },
360
+ effect: {
361
+ merge: [
362
+ { var: "state" },
363
+ {
364
+ status: "DISPUTED",
365
+ disputedAt: { var: "$timestamp" },
366
+ disputedBy: { var: "event.agent" },
367
+ disputeStake: { var: "event.stake" },
368
+ disputeReason: { var: "event.reason" },
369
+ },
370
+ ],
371
+ },
372
+ dependencies: [],
373
+ },
374
+ {
375
+ from: "DISPUTED",
376
+ to: "SETTLED",
377
+ eventName: "ruling",
378
+ guard: { var: "event.judicialRuling" },
379
+ effect: {
380
+ merge: [
381
+ { var: "state" },
382
+ {
383
+ status: "SETTLED",
384
+ settledAt: { var: "$timestamp" },
385
+ finalOutcome: { var: "event.outcome" },
386
+ rulingId: { var: "event.rulingId" },
387
+ claims: [],
388
+ },
389
+ ],
390
+ },
391
+ dependencies: [],
392
+ },
393
+ {
394
+ from: "RESOLVING",
395
+ to: "REFUNDED",
396
+ eventName: "invalidate",
397
+ guard: {
398
+ ">=": [
399
+ {
400
+ size: {
401
+ filter: [
402
+ { var: "state.resolutions" },
403
+ { "===": [{ var: "outcome" }, "INVALID"] },
404
+ ],
405
+ },
406
+ },
407
+ { var: "state.quorum" },
408
+ ],
409
+ },
410
+ effect: {
411
+ merge: [
412
+ { var: "state" },
413
+ {
414
+ status: "REFUNDED",
415
+ refundedAt: { var: "$timestamp" },
416
+ reason: "oracle_invalidation",
417
+ },
418
+ ],
419
+ },
420
+ dependencies: [],
421
+ },
422
+ {
423
+ from: "SETTLED",
424
+ to: "SETTLED",
425
+ eventName: "claim",
426
+ guard: {
427
+ and: [
428
+ {
429
+ ">": [
430
+ {
431
+ size: {
432
+ filter: [
433
+ { var: "state.positions" },
434
+ {
435
+ and: [
436
+ { "===": [{ var: "agent" }, { var: "event.agent" }] },
437
+ {
438
+ "===": [
439
+ { var: "outcome" },
440
+ { var: "state.finalOutcome" },
441
+ ],
442
+ },
443
+ ],
444
+ },
445
+ ],
446
+ },
447
+ },
448
+ 0,
449
+ ],
450
+ },
451
+ {
452
+ "!": [
453
+ {
454
+ in: [
455
+ { var: "event.agent" },
456
+ { map: [{ var: "state.claims" }, { var: "agent" }] },
457
+ ],
458
+ },
459
+ ],
460
+ },
461
+ ],
462
+ },
463
+ effect: {
464
+ merge: [
465
+ { var: "state" },
466
+ {
467
+ claims: {
468
+ cat: [
469
+ { var: "state.claims" },
470
+ [
471
+ {
472
+ agent: { var: "event.agent" },
473
+ amount: { var: "event.amount" },
474
+ claimedAt: { var: "$timestamp" },
475
+ },
476
+ ],
477
+ ],
478
+ },
479
+ },
480
+ ],
481
+ },
482
+ dependencies: [],
483
+ },
484
+ ],
485
+ });
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.marketUniversalDef = void 0;
4
+ const fiber_app_js_1 = require("../../../schema/fiber-app.js");
5
+ /**
6
+ * Minimal market state machine - extend for custom use cases.
7
+ */
8
+ exports.marketUniversalDef = (0, fiber_app_js_1.defineFiberApp)({
9
+ metadata: {
10
+ name: "MarketUniversal",
11
+ app: "markets",
12
+ type: "universal",
13
+ version: "1.0.0",
14
+ description: "Minimal market state machine - extend for custom use cases",
15
+ },
16
+ createSchema: {
17
+ properties: {},
18
+ },
19
+ stateSchema: {
20
+ properties: {
21
+ status: { type: "string" },
22
+ totalCommitted: { type: "number", computed: true },
23
+ },
24
+ },
25
+ eventSchemas: {
26
+ open: { description: "Open the market for participation" },
27
+ cancel: { description: "Cancel the market" },
28
+ commit: {
29
+ description: "Commit funds to the market",
30
+ properties: {
31
+ amount: { type: "number", minimum: 0 },
32
+ },
33
+ },
34
+ close: { description: "Close the market to new commits" },
35
+ settle: { description: "Settle the market" },
36
+ },
37
+ states: {
38
+ PROPOSED: { id: "PROPOSED", isFinal: false, metadata: null },
39
+ OPEN: { id: "OPEN", isFinal: false, metadata: null },
40
+ CLOSED: { id: "CLOSED", isFinal: false, metadata: null },
41
+ SETTLED: { id: "SETTLED", isFinal: true, metadata: null },
42
+ CANCELLED: { id: "CANCELLED", isFinal: true, metadata: null },
43
+ },
44
+ initialState: "PROPOSED",
45
+ transitions: [
46
+ {
47
+ from: "PROPOSED",
48
+ to: "OPEN",
49
+ eventName: "open",
50
+ guard: { "==": [1, 1] },
51
+ effect: {
52
+ merge: [
53
+ { var: "state" },
54
+ { status: "OPEN", openedAt: { var: "$timestamp" } },
55
+ ],
56
+ },
57
+ dependencies: [],
58
+ },
59
+ {
60
+ from: "PROPOSED",
61
+ to: "CANCELLED",
62
+ eventName: "cancel",
63
+ guard: { "==": [1, 1] },
64
+ effect: {
65
+ merge: [
66
+ { var: "state" },
67
+ { status: "CANCELLED", cancelledAt: { var: "$timestamp" } },
68
+ ],
69
+ },
70
+ dependencies: [],
71
+ },
72
+ {
73
+ from: "OPEN",
74
+ to: "OPEN",
75
+ eventName: "commit",
76
+ guard: { ">": [{ var: "event.amount" }, 0] },
77
+ effect: {
78
+ merge: [
79
+ { var: "state" },
80
+ {
81
+ totalCommitted: {
82
+ "+": [{ var: "state.totalCommitted" }, { var: "event.amount" }],
83
+ },
84
+ },
85
+ ],
86
+ },
87
+ dependencies: [],
88
+ },
89
+ {
90
+ from: "OPEN",
91
+ to: "CLOSED",
92
+ eventName: "close",
93
+ guard: { "==": [1, 1] },
94
+ effect: {
95
+ merge: [
96
+ { var: "state" },
97
+ { status: "CLOSED", closedAt: { var: "$timestamp" } },
98
+ ],
99
+ },
100
+ dependencies: [],
101
+ },
102
+ {
103
+ from: "CLOSED",
104
+ to: "SETTLED",
105
+ eventName: "settle",
106
+ guard: { "==": [1, 1] },
107
+ effect: {
108
+ merge: [
109
+ { var: "state" },
110
+ { status: "SETTLED", settledAt: { var: "$timestamp" } },
111
+ ],
112
+ },
113
+ dependencies: [],
114
+ },
115
+ {
116
+ from: "CLOSED",
117
+ to: "CANCELLED",
118
+ eventName: "cancel",
119
+ guard: { "==": [1, 1] },
120
+ effect: {
121
+ merge: [
122
+ { var: "state" },
123
+ { status: "CANCELLED", cancelledAt: { var: "$timestamp" } },
124
+ ],
125
+ },
126
+ dependencies: [],
127
+ },
128
+ ],
129
+ });
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * Oracle Application — Backward Compatibility Shim
4
+ *
5
+ * ⚠️ DEPRECATED: Oracle types have been unified into the Identity app.
6
+ * Import from `@ottochain/sdk/apps/identity` instead.
7
+ *
8
+ * @deprecated Use `@ottochain/sdk/apps/identity`
9
+ * @packageDocumentation
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DEFAULT_ORACLE_CONFIG = exports.getOracleDefinition = exports.oracleStateToJSON = exports.oracleStateFromJSON = exports.OracleDefinition = exports.WithdrawOracleRequest = exports.AddStakeRequest = exports.ActivateOracleRequest = exports.RegisterOracleRequest = exports.Oracle = exports.SlashingEvent = exports.OracleReputation = exports.OracleState = void 0;
13
+ var index_js_1 = require("../identity/index.js");
14
+ Object.defineProperty(exports, "OracleState", { enumerable: true, get: function () { return index_js_1.IdentityState; } });
15
+ Object.defineProperty(exports, "OracleReputation", { enumerable: true, get: function () { return index_js_1.Reputation; } });
16
+ Object.defineProperty(exports, "SlashingEvent", { enumerable: true, get: function () { return index_js_1.PenaltyEvent; } });
17
+ Object.defineProperty(exports, "Oracle", { enumerable: true, get: function () { return index_js_1.Identity; } });
18
+ Object.defineProperty(exports, "RegisterOracleRequest", { enumerable: true, get: function () { return index_js_1.RegisterIdentityRequest; } });
19
+ Object.defineProperty(exports, "ActivateOracleRequest", { enumerable: true, get: function () { return index_js_1.ActivateIdentityRequest; } });
20
+ Object.defineProperty(exports, "AddStakeRequest", { enumerable: true, get: function () { return index_js_1.AddStakeRequest; } });
21
+ Object.defineProperty(exports, "WithdrawOracleRequest", { enumerable: true, get: function () { return index_js_1.WithdrawIdentityRequest; } });
22
+ Object.defineProperty(exports, "OracleDefinition", { enumerable: true, get: function () { return index_js_1.IdentityDefinition; } });
23
+ Object.defineProperty(exports, "oracleStateFromJSON", { enumerable: true, get: function () { return index_js_1.identityStateFromJSON; } });
24
+ Object.defineProperty(exports, "oracleStateToJSON", { enumerable: true, get: function () { return index_js_1.identityStateToJSON; } });
25
+ const index_js_2 = require("../identity/index.js");
26
+ /** @deprecated Use `getIdentityDefinition('oracle')` from `@ottochain/sdk/apps/identity` */
27
+ function getOracleDefinition(_type) {
28
+ return (0, index_js_2.getIdentityDefinition)("oracle");
29
+ }
30
+ exports.getOracleDefinition = getOracleDefinition;
31
+ /** @deprecated Use `DEFAULT_REPUTATION_CONFIG` from `@ottochain/sdk/apps/identity` */
32
+ exports.DEFAULT_ORACLE_CONFIG = {
33
+ minStake: 100,
34
+ baseReputation: 10,
35
+ reputationDecay: 0.95,
36
+ };
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
3
3
  // versions:
4
- // protoc-gen-ts_proto v2.11.2
4
+ // protoc-gen-ts_proto v2.11.5
5
5
  // protoc unknown
6
6
  // source: google/protobuf/struct.proto
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
3
3
  // versions:
4
- // protoc-gen-ts_proto v2.11.2
4
+ // protoc-gen-ts_proto v2.11.5
5
5
  // protoc unknown
6
6
  // source: google/protobuf/timestamp.proto
7
7
  Object.defineProperty(exports, "__esModule", { value: true });