@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,321 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.identityOracleDef = void 0;
4
+ const fiber_app_js_1 = require("../../../schema/fiber-app.js");
5
+ /**
6
+ * Oracle identity with staking, attestations, reputation, and slashing mechanics.
7
+ */
8
+ exports.identityOracleDef = (0, fiber_app_js_1.defineFiberApp)({
9
+ metadata: {
10
+ name: "IdentityOracle",
11
+ app: "identity",
12
+ type: "oracle",
13
+ version: "1.0.0",
14
+ description: "Oracle identity with staking, attestations, reputation, and slashing mechanics",
15
+ },
16
+ createSchema: {
17
+ required: ["owner", "stake", "domains"],
18
+ properties: {
19
+ owner: {
20
+ type: "address",
21
+ description: "Oracle owner DAG address",
22
+ immutable: true,
23
+ },
24
+ stake: {
25
+ type: "integer",
26
+ minimum: 0,
27
+ description: "Initial stake amount",
28
+ },
29
+ domains: {
30
+ type: "array",
31
+ items: { type: "string" },
32
+ description: "Oracle specialization domains",
33
+ },
34
+ minStake: {
35
+ type: "integer",
36
+ default: 1000,
37
+ description: "Minimum stake required",
38
+ },
39
+ },
40
+ },
41
+ stateSchema: {
42
+ properties: {
43
+ owner: { type: "address", immutable: true },
44
+ address: { type: "address", computed: true },
45
+ stake: { type: "integer", computed: true },
46
+ minStake: { type: "integer" },
47
+ domains: { type: "array", items: { type: "string" } },
48
+ status: {
49
+ type: "string",
50
+ enum: [
51
+ "UNREGISTERED",
52
+ "REGISTERED",
53
+ "ACTIVE",
54
+ "SLASHED",
55
+ "WITHDRAWN",
56
+ ],
57
+ computed: true,
58
+ },
59
+ reputation: {
60
+ type: "object",
61
+ properties: {
62
+ accuracy: { type: "integer" },
63
+ totalResolutions: { type: "integer" },
64
+ disputesWon: { type: "integer" },
65
+ disputesLost: { type: "integer" },
66
+ },
67
+ computed: true,
68
+ },
69
+ slashingHistory: { type: "array", computed: true },
70
+ registeredAt: { type: "timestamp", computed: true },
71
+ activatedAt: { type: "timestamp", computed: true },
72
+ slashedAt: { type: "timestamp", computed: true },
73
+ withdrawnAt: { type: "timestamp", computed: true },
74
+ },
75
+ },
76
+ eventSchemas: {
77
+ register: {
78
+ description: "Register as an oracle with initial stake",
79
+ required: ["agent", "stake", "domains"],
80
+ properties: {
81
+ agent: { type: "address" },
82
+ stake: { type: "integer", minimum: 0 },
83
+ domains: { type: "array", items: { type: "string" } },
84
+ },
85
+ },
86
+ activate: {
87
+ description: "Activate a registered oracle",
88
+ required: ["agent"],
89
+ properties: {
90
+ agent: { type: "address" },
91
+ adminOverride: { type: "boolean", default: false },
92
+ },
93
+ },
94
+ add_stake: {
95
+ description: "Add stake to an active oracle",
96
+ required: ["agent", "amount"],
97
+ properties: {
98
+ agent: { type: "address" },
99
+ amount: { type: "integer", minimum: 1 },
100
+ },
101
+ },
102
+ record_resolution: {
103
+ description: "Record a market resolution outcome",
104
+ required: ["marketId", "correct"],
105
+ properties: {
106
+ marketId: { type: "uuid" },
107
+ correct: { type: "boolean" },
108
+ },
109
+ },
110
+ slash: {
111
+ description: "Slash oracle stake for misconduct",
112
+ required: ["reason", "amount"],
113
+ properties: {
114
+ reason: { type: "string" },
115
+ amount: { type: "integer", minimum: 1 },
116
+ marketId: { type: "uuid" },
117
+ },
118
+ },
119
+ reactivate: {
120
+ description: "Reactivate a slashed oracle",
121
+ required: ["agent"],
122
+ properties: {
123
+ agent: { type: "address" },
124
+ },
125
+ },
126
+ withdraw: {
127
+ description: "Withdraw oracle and reclaim stake",
128
+ required: ["agent"],
129
+ properties: {
130
+ agent: { type: "address" },
131
+ },
132
+ },
133
+ },
134
+ states: {
135
+ UNREGISTERED: { id: "UNREGISTERED", isFinal: false },
136
+ REGISTERED: { id: "REGISTERED", isFinal: false },
137
+ ACTIVE: { id: "ACTIVE", isFinal: false },
138
+ SLASHED: { id: "SLASHED", isFinal: false },
139
+ WITHDRAWN: { id: "WITHDRAWN", isFinal: true },
140
+ },
141
+ initialState: "UNREGISTERED",
142
+ transitions: [
143
+ {
144
+ from: "UNREGISTERED",
145
+ to: "REGISTERED",
146
+ eventName: "register",
147
+ guard: { ">=": [{ var: "event.stake" }, { var: "state.minStake" }] },
148
+ effect: {
149
+ merge: [
150
+ { var: "state" },
151
+ {
152
+ status: "REGISTERED",
153
+ address: { var: "event.agent" },
154
+ stake: { var: "event.stake" },
155
+ registeredAt: { var: "$timestamp" },
156
+ reputation: {
157
+ accuracy: 100,
158
+ totalResolutions: 0,
159
+ disputesWon: 0,
160
+ disputesLost: 0,
161
+ },
162
+ domains: { var: "event.domains" },
163
+ slashingHistory: [],
164
+ },
165
+ ],
166
+ },
167
+ },
168
+ {
169
+ from: "REGISTERED",
170
+ to: "ACTIVE",
171
+ eventName: "activate",
172
+ guard: {
173
+ or: [
174
+ { "===": [{ var: "event.agent" }, { var: "state.address" }] },
175
+ { var: "event.adminOverride" },
176
+ ],
177
+ },
178
+ effect: {
179
+ merge: [
180
+ { var: "state" },
181
+ { status: "ACTIVE", activatedAt: { var: "$timestamp" } },
182
+ ],
183
+ },
184
+ },
185
+ {
186
+ from: "ACTIVE",
187
+ to: "ACTIVE",
188
+ eventName: "add_stake",
189
+ guard: {
190
+ and: [
191
+ { "===": [{ var: "event.agent" }, { var: "state.address" }] },
192
+ { ">": [{ var: "event.amount" }, 0] },
193
+ ],
194
+ },
195
+ effect: {
196
+ merge: [
197
+ { var: "state" },
198
+ {
199
+ stake: { "+": [{ var: "state.stake" }, { var: "event.amount" }] },
200
+ lastStakeAt: { var: "$timestamp" },
201
+ },
202
+ ],
203
+ },
204
+ },
205
+ {
206
+ from: "ACTIVE",
207
+ to: "ACTIVE",
208
+ eventName: "record_resolution",
209
+ guard: { var: "event.marketId" },
210
+ effect: {
211
+ merge: [
212
+ { var: "state" },
213
+ {
214
+ reputation: {
215
+ merge: [
216
+ { var: "state.reputation" },
217
+ {
218
+ totalResolutions: {
219
+ "+": [{ var: "state.reputation.totalResolutions" }, 1],
220
+ },
221
+ accuracy: {
222
+ if: [
223
+ { var: "event.correct" },
224
+ { var: "state.reputation.accuracy" },
225
+ { "-": [{ var: "state.reputation.accuracy" }, 5] },
226
+ ],
227
+ },
228
+ },
229
+ ],
230
+ },
231
+ lastResolutionAt: { var: "$timestamp" },
232
+ },
233
+ ],
234
+ },
235
+ },
236
+ {
237
+ from: "ACTIVE",
238
+ to: "SLASHED",
239
+ eventName: "slash",
240
+ guard: {
241
+ and: [
242
+ { var: "event.reason" },
243
+ { ">": [{ var: "event.amount" }, 0] },
244
+ { "<=": [{ var: "event.amount" }, { var: "state.stake" }] },
245
+ ],
246
+ },
247
+ effect: {
248
+ merge: [
249
+ { var: "state" },
250
+ {
251
+ status: "SLASHED",
252
+ stake: { "-": [{ var: "state.stake" }, { var: "event.amount" }] },
253
+ slashingHistory: {
254
+ cat: [
255
+ { var: "state.slashingHistory" },
256
+ [
257
+ {
258
+ reason: { var: "event.reason" },
259
+ amount: { var: "event.amount" },
260
+ marketId: { var: "event.marketId" },
261
+ slashedAt: { var: "$timestamp" },
262
+ },
263
+ ],
264
+ ],
265
+ },
266
+ slashedAt: { var: "$timestamp" },
267
+ },
268
+ ],
269
+ },
270
+ },
271
+ {
272
+ from: "SLASHED",
273
+ to: "ACTIVE",
274
+ eventName: "reactivate",
275
+ guard: {
276
+ and: [
277
+ { "===": [{ var: "event.agent" }, { var: "state.address" }] },
278
+ { ">=": [{ var: "state.stake" }, { var: "state.minStake" }] },
279
+ ],
280
+ },
281
+ effect: {
282
+ merge: [
283
+ { var: "state" },
284
+ { status: "ACTIVE", reactivatedAt: { var: "$timestamp" } },
285
+ ],
286
+ },
287
+ },
288
+ {
289
+ from: "ACTIVE",
290
+ to: "WITHDRAWN",
291
+ eventName: "withdraw",
292
+ guard: { "===": [{ var: "event.agent" }, { var: "state.address" }] },
293
+ effect: {
294
+ merge: [
295
+ { var: "state" },
296
+ {
297
+ status: "WITHDRAWN",
298
+ withdrawnAt: { var: "$timestamp" },
299
+ finalStake: { var: "state.stake" },
300
+ },
301
+ ],
302
+ },
303
+ },
304
+ {
305
+ from: "SLASHED",
306
+ to: "WITHDRAWN",
307
+ eventName: "withdraw",
308
+ guard: { "===": [{ var: "event.agent" }, { var: "state.address" }] },
309
+ effect: {
310
+ merge: [
311
+ { var: "state" },
312
+ {
313
+ status: "WITHDRAWN",
314
+ withdrawnAt: { var: "$timestamp" },
315
+ finalStake: { var: "state.stake" },
316
+ },
317
+ ],
318
+ },
319
+ },
320
+ ],
321
+ });
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.identityUniversalDef = void 0;
4
+ const fiber_app_js_1 = require("../../../schema/fiber-app.js");
5
+ /**
6
+ * Minimal identity state machine - extend for custom use cases.
7
+ */
8
+ exports.identityUniversalDef = (0, fiber_app_js_1.defineFiberApp)({
9
+ metadata: {
10
+ name: "IdentityUniversal",
11
+ app: "identity",
12
+ type: "universal",
13
+ version: "1.0.0",
14
+ description: "Minimal identity state machine - extend for custom use cases",
15
+ },
16
+ createSchema: {
17
+ required: ["owner"],
18
+ properties: {
19
+ owner: {
20
+ type: "address",
21
+ description: "Identity owner DAG address",
22
+ immutable: true,
23
+ },
24
+ metadata: {
25
+ type: "object",
26
+ description: "Arbitrary metadata",
27
+ default: {},
28
+ },
29
+ },
30
+ },
31
+ stateSchema: {
32
+ properties: {
33
+ owner: { type: "address", immutable: true },
34
+ status: {
35
+ type: "string",
36
+ enum: ["CREATED", "ACTIVE", "INACTIVE"],
37
+ computed: true,
38
+ },
39
+ metadata: { type: "object" },
40
+ activatedAt: { type: "timestamp", computed: true },
41
+ updatedAt: { type: "timestamp", computed: true },
42
+ deactivatedAt: { type: "timestamp", computed: true },
43
+ },
44
+ },
45
+ eventSchemas: {
46
+ activate: {
47
+ description: "Activate the identity",
48
+ },
49
+ update: {
50
+ description: "Update identity metadata",
51
+ properties: {
52
+ metadata: { type: "object" },
53
+ },
54
+ },
55
+ deactivate: {
56
+ description: "Deactivate the identity",
57
+ },
58
+ },
59
+ states: {
60
+ CREATED: { id: "CREATED", isFinal: false },
61
+ ACTIVE: { id: "ACTIVE", isFinal: false },
62
+ INACTIVE: { id: "INACTIVE", isFinal: true },
63
+ },
64
+ initialState: "CREATED",
65
+ transitions: [
66
+ {
67
+ from: "CREATED",
68
+ to: "ACTIVE",
69
+ eventName: "activate",
70
+ guard: { "==": [1, 1] },
71
+ effect: {
72
+ merge: [
73
+ { var: "state" },
74
+ { status: "ACTIVE", activatedAt: { var: "$timestamp" } },
75
+ ],
76
+ },
77
+ },
78
+ {
79
+ from: "ACTIVE",
80
+ to: "ACTIVE",
81
+ eventName: "update",
82
+ guard: { "==": [1, 1] },
83
+ effect: {
84
+ merge: [
85
+ { var: "state" },
86
+ {
87
+ updatedAt: { var: "$timestamp" },
88
+ metadata: { var: "event.metadata" },
89
+ },
90
+ ],
91
+ },
92
+ },
93
+ {
94
+ from: "ACTIVE",
95
+ to: "INACTIVE",
96
+ eventName: "deactivate",
97
+ guard: { "==": [1, 1] },
98
+ effect: {
99
+ merge: [
100
+ { var: "state" },
101
+ { status: "INACTIVE", deactivatedAt: { var: "$timestamp" } },
102
+ ],
103
+ },
104
+ },
105
+ ],
106
+ });