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