@ottochain/sdk 2.3.0 → 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 (209) hide show
  1. package/dist/cjs/apps/contracts/index.js +15 -8
  2. package/dist/cjs/apps/contracts/state-machines/contract-agreement.js +35 -40
  3. package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +80 -37
  4. package/dist/cjs/apps/contracts/state-machines/contract-universal.js +4 -4
  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 +58 -40
  12. package/dist/cjs/apps/governance/state-machines/dao-reputation.js +46 -40
  13. package/dist/cjs/apps/governance/state-machines/dao-single.js +28 -11
  14. package/dist/cjs/apps/governance/state-machines/dao-token.js +67 -41
  15. package/dist/cjs/apps/governance/state-machines/governance-simple.js +93 -61
  16. package/dist/cjs/apps/governance/state-machines/governance-universal.js +2 -2
  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 +3 -3
  20. package/dist/cjs/apps/identity/state-machines/identity-oracle.js +25 -22
  21. package/dist/cjs/apps/identity/state-machines/identity-registry.js +288 -0
  22. package/dist/cjs/apps/identity/state-machines/identity-universal.js +3 -3
  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 +14 -13
  33. package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +29 -24
  34. package/dist/cjs/apps/markets/state-machines/market-group-buy.js +24 -26
  35. package/dist/cjs/apps/markets/state-machines/market-prediction.js +80 -53
  36. package/dist/cjs/apps/markets/state-machines/market-universal.js +5 -5
  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 +4 -4
  49. package/dist/cjs/generated/ottochain/v1/fiber.js +4 -4
  50. package/dist/cjs/index.js +41 -7
  51. package/dist/cjs/openapi.js +2 -0
  52. package/dist/cjs/ottochain/drop-nulls.js +1 -2
  53. package/dist/cjs/ottochain/genesis-manifest.js +11 -11
  54. package/dist/cjs/ottochain/index.js +23 -13
  55. package/dist/cjs/ottochain/metagraph-client.js +65 -8
  56. package/dist/cjs/ottochain/snapshot.js +11 -12
  57. package/dist/cjs/ottochain/transaction.js +57 -14
  58. package/dist/cjs/ottochain/types.js +16 -2
  59. package/dist/cjs/privacy/index.js +14 -0
  60. package/dist/cjs/privacy/sealed-bid.js +210 -0
  61. package/dist/cjs/privacy/shield-app.js +131 -0
  62. package/dist/cjs/schema/effects.js +40 -0
  63. package/dist/cjs/schema/fiber-app.js +19 -13
  64. package/dist/cjs/schema/guard-lint.js +352 -0
  65. package/dist/cjs/schema/guards.js +246 -0
  66. package/dist/cjs/signing.js +80 -0
  67. package/dist/cjs/types.js +2 -3
  68. package/dist/cjs/validation.js +8 -8
  69. package/dist/cjs/verify.js +9 -4
  70. package/dist/cjs/zk/commit.js +53 -0
  71. package/dist/cjs/zk/guard.js +107 -0
  72. package/dist/cjs/zk/index.js +48 -0
  73. package/dist/cjs/zk/preimage.js +37 -0
  74. package/dist/cjs/zk/prover.js +87 -0
  75. package/dist/cjs/zk/registry.js +62 -0
  76. package/dist/cjs/zk/types.js +28 -0
  77. package/dist/cjs/zk/witness.js +19 -0
  78. package/dist/esm/apps/contracts/index.js +7 -3
  79. package/dist/esm/apps/contracts/state-machines/contract-agreement.js +35 -40
  80. package/dist/esm/apps/contracts/state-machines/contract-escrow.js +80 -37
  81. package/dist/esm/apps/contracts/state-machines/contract-universal.js +4 -4
  82. package/dist/esm/apps/corporate/state-machines/corp-board.js +169 -59
  83. package/dist/esm/apps/corporate/state-machines/corp-entity.js +245 -47
  84. package/dist/esm/apps/corporate/state-machines/corp-securities.js +407 -99
  85. package/dist/esm/apps/corporate/state-machines/corp-shareholders.js +151 -37
  86. package/dist/esm/apps/governance/state-machines/dao-multisig.js +58 -40
  87. package/dist/esm/apps/governance/state-machines/dao-reputation.js +46 -40
  88. package/dist/esm/apps/governance/state-machines/dao-single.js +28 -11
  89. package/dist/esm/apps/governance/state-machines/dao-token.js +67 -41
  90. package/dist/esm/apps/governance/state-machines/governance-simple.js +93 -61
  91. package/dist/esm/apps/governance/state-machines/governance-universal.js +2 -2
  92. package/dist/esm/apps/identity/constants.js +51 -12
  93. package/dist/esm/apps/identity/index.js +12 -7
  94. package/dist/esm/apps/identity/state-machines/identity-agent.js +3 -3
  95. package/dist/esm/apps/identity/state-machines/identity-oracle.js +25 -22
  96. package/dist/esm/apps/identity/state-machines/identity-registry.js +285 -0
  97. package/dist/esm/apps/identity/state-machines/identity-universal.js +3 -3
  98. package/dist/esm/apps/identity/state-machines/index.js +1 -0
  99. package/dist/esm/apps/index.js +1 -0
  100. package/dist/esm/apps/lending/assets.js +207 -0
  101. package/dist/esm/apps/lending/credit-scoring.js +81 -0
  102. package/dist/esm/apps/lending/eligibility.js +115 -0
  103. package/dist/esm/apps/lending/index.js +69 -0
  104. package/dist/esm/apps/lending/state-machines/index.js +5 -0
  105. package/dist/esm/apps/lending/state-machines/lending-zk-loan.js +409 -0
  106. package/dist/esm/apps/markets/index.js +8 -4
  107. package/dist/esm/apps/markets/state-machines/market-auction.js +14 -13
  108. package/dist/esm/apps/markets/state-machines/market-crowdfund.js +29 -24
  109. package/dist/esm/apps/markets/state-machines/market-group-buy.js +24 -26
  110. package/dist/esm/apps/markets/state-machines/market-prediction.js +80 -53
  111. package/dist/esm/apps/markets/state-machines/market-universal.js +5 -5
  112. package/dist/esm/generated/index.js +9 -5
  113. package/dist/esm/generated/openapi.js +5 -0
  114. package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +46 -46
  115. package/dist/esm/generated/ottochain/apps/identity/v1/identity.js +114 -120
  116. package/dist/esm/generated/ottochain/apps/markets/v1/market.js +100 -100
  117. package/dist/esm/index.js +21 -2
  118. package/dist/esm/openapi.js +1 -0
  119. package/dist/esm/ottochain/genesis-manifest.js +9 -9
  120. package/dist/esm/ottochain/index.js +2 -3
  121. package/dist/esm/ottochain/metagraph-client.js +65 -8
  122. package/dist/esm/ottochain/snapshot.js +4 -4
  123. package/dist/esm/ottochain/transaction.js +43 -3
  124. package/dist/esm/ottochain/types.js +15 -1
  125. package/dist/esm/privacy/index.js +6 -0
  126. package/dist/esm/privacy/sealed-bid.js +206 -0
  127. package/dist/esm/privacy/shield-app.js +127 -0
  128. package/dist/esm/schema/effects.js +35 -0
  129. package/dist/esm/schema/fiber-app.js +13 -6
  130. package/dist/esm/schema/guard-lint.js +346 -0
  131. package/dist/esm/schema/guards.js +229 -0
  132. package/dist/esm/signing.js +74 -0
  133. package/dist/esm/verify.js +8 -2
  134. package/dist/esm/zk/commit.js +44 -0
  135. package/dist/esm/zk/guard.js +99 -0
  136. package/dist/esm/zk/index.js +19 -0
  137. package/dist/esm/zk/preimage.js +30 -0
  138. package/dist/esm/zk/prover.js +82 -0
  139. package/dist/esm/zk/registry.js +55 -0
  140. package/dist/esm/zk/types.js +25 -0
  141. package/dist/esm/zk/witness.js +15 -0
  142. package/dist/types/apps/contracts/index.d.ts +69 -209
  143. package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +20 -95
  144. package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +46 -112
  145. package/dist/types/apps/corporate/index.d.ts +1040 -304
  146. package/dist/types/apps/corporate/state-machines/corp-board.d.ts +188 -52
  147. package/dist/types/apps/corporate/state-machines/corp-entity.d.ts +267 -62
  148. package/dist/types/apps/corporate/state-machines/corp-securities.d.ts +355 -131
  149. package/dist/types/apps/corporate/state-machines/corp-shareholders.d.ts +225 -53
  150. package/dist/types/apps/governance/index.d.ts +296 -398
  151. package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +77 -92
  152. package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +42 -66
  153. package/dist/types/apps/governance/state-machines/dao-single.d.ts +25 -47
  154. package/dist/types/apps/governance/state-machines/dao-token.d.ts +60 -49
  155. package/dist/types/apps/governance/state-machines/governance-simple.d.ts +87 -117
  156. package/dist/types/apps/governance/state-machines/governance-universal.d.ts +2 -2
  157. package/dist/types/apps/identity/constants.d.ts +32 -4
  158. package/dist/types/apps/identity/index.d.ts +378 -94
  159. package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +16 -87
  160. package/dist/types/apps/identity/state-machines/identity-registry.d.ts +379 -0
  161. package/dist/types/apps/identity/state-machines/index.d.ts +1 -0
  162. package/dist/types/apps/index.d.ts +1 -0
  163. package/dist/types/apps/lending/assets.d.ts +258 -0
  164. package/dist/types/apps/lending/credit-scoring.d.ts +80 -0
  165. package/dist/types/apps/lending/eligibility.d.ts +83 -0
  166. package/dist/types/apps/lending/index.d.ts +548 -0
  167. package/dist/types/apps/lending/state-machines/index.d.ts +5 -0
  168. package/dist/types/apps/lending/state-machines/lending-zk-loan.d.ts +528 -0
  169. package/dist/types/apps/markets/index.d.ts +108 -203
  170. package/dist/types/apps/markets/state-machines/market-auction.d.ts +13 -37
  171. package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +16 -34
  172. package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +17 -43
  173. package/dist/types/apps/markets/state-machines/market-prediction.d.ts +51 -72
  174. package/dist/types/apps/markets/state-machines/market-universal.d.ts +5 -5
  175. package/dist/types/generated/index.d.ts +5 -5
  176. package/dist/types/generated/openapi.d.ts +1257 -0
  177. package/dist/types/generated/ottochain/apps/contracts/v1/contract.d.ts +5 -5
  178. package/dist/types/generated/ottochain/apps/identity/v1/identity.d.ts +12 -12
  179. package/dist/types/generated/ottochain/apps/markets/v1/market.d.ts +11 -11
  180. package/dist/types/index.d.ts +6 -2
  181. package/dist/types/openapi.d.ts +22 -0
  182. package/dist/types/ottochain/genesis-manifest.d.ts +5 -5
  183. package/dist/types/ottochain/index.d.ts +5 -6
  184. package/dist/types/ottochain/metagraph-client.d.ts +49 -7
  185. package/dist/types/ottochain/snapshot.d.ts +6 -6
  186. package/dist/types/ottochain/transaction.d.ts +33 -1
  187. package/dist/types/ottochain/types.d.ts +335 -30
  188. package/dist/types/privacy/index.d.ts +6 -0
  189. package/dist/types/privacy/sealed-bid.d.ts +348 -0
  190. package/dist/types/privacy/shield-app.d.ts +48 -0
  191. package/dist/types/schema/effects.d.ts +34 -0
  192. package/dist/types/schema/fiber-app.d.ts +1 -2
  193. package/dist/types/schema/guard-lint.d.ts +111 -0
  194. package/dist/types/schema/guards.d.ts +134 -0
  195. package/dist/types/signing.d.ts +45 -0
  196. package/dist/types/validation.d.ts +22 -217
  197. package/dist/types/verify.d.ts +4 -0
  198. package/dist/types/zk/commit.d.ts +28 -0
  199. package/dist/types/zk/guard.d.ts +46 -0
  200. package/dist/types/zk/index.d.ts +19 -0
  201. package/dist/types/zk/preimage.d.ts +10 -0
  202. package/dist/types/zk/prover.d.ts +34 -0
  203. package/dist/types/zk/registry.d.ts +34 -0
  204. package/dist/types/zk/types.d.ts +33 -0
  205. package/dist/types/zk/witness.d.ts +40 -0
  206. package/package.json +27 -13
  207. package/dist/cjs/ottochain/normalize.js +0 -186
  208. package/dist/esm/ottochain/normalize.js +0 -179
  209. package/dist/types/ottochain/normalize.d.ts +0 -79
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.marketCrowdfundDef = void 0;
4
4
  const fiber_app_js_1 = require("../../../schema/fiber-app.js");
5
+ const guards_js_1 = require("../../../schema/guards.js");
5
6
  /**
6
7
  * All-or-nothing crowdfunding with threshold, deadline, and stretch goals.
7
8
  */
@@ -130,13 +131,13 @@ exports.marketCrowdfundDef = (0, fiber_app_js_1.defineFiberApp)({
130
131
  from: "PROPOSED",
131
132
  to: "OPEN",
132
133
  eventName: "launch",
133
- guard: { "===": [{ var: "event.agent" }, { var: "state.creator" }] },
134
+ guard: (0, guards_js_1.signerIsParty)("state.creator"),
134
135
  effect: {
135
136
  merge: [
136
137
  { var: "state" },
137
138
  {
138
139
  status: "OPEN",
139
- launchedAt: { var: "$timestamp" },
140
+ launchedAt: { var: "$ordinal" },
140
141
  pledges: [],
141
142
  totalPledged: 0,
142
143
  backerCount: 0,
@@ -149,11 +150,11 @@ exports.marketCrowdfundDef = (0, fiber_app_js_1.defineFiberApp)({
149
150
  from: "PROPOSED",
150
151
  to: "CANCELLED",
151
152
  eventName: "cancel",
152
- guard: { "===": [{ var: "event.agent" }, { var: "state.creator" }] },
153
+ guard: (0, guards_js_1.signerIsParty)("state.creator"),
153
154
  effect: {
154
155
  merge: [
155
156
  { var: "state" },
156
- { status: "CANCELLED", cancelledAt: { var: "$timestamp" } },
157
+ { status: "CANCELLED", cancelledAt: { var: "$ordinal" } },
157
158
  ],
158
159
  },
159
160
  dependencies: [],
@@ -165,14 +166,14 @@ exports.marketCrowdfundDef = (0, fiber_app_js_1.defineFiberApp)({
165
166
  guard: {
166
167
  and: [
167
168
  { ">": [{ var: "event.amount" }, 0] },
168
- { "!==": [{ var: "event.agent" }, { var: "state.creator" }] },
169
+ (0, guards_js_1.signerIsNotParty)("state.creator"),
169
170
  {
170
171
  or: [
171
172
  { "!": [{ var: "state.minPledge" }] },
172
173
  { ">=": [{ var: "event.amount" }, { var: "state.minPledge" }] },
173
174
  ],
174
175
  },
175
- { "<=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
176
+ { "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
176
177
  ],
177
178
  },
178
179
  effect: {
@@ -187,7 +188,7 @@ exports.marketCrowdfundDef = (0, fiber_app_js_1.defineFiberApp)({
187
188
  backer: { var: "event.agent" },
188
189
  amount: { var: "event.amount" },
189
190
  rewardTier: { var: "event.rewardTier" },
190
- pledgedAt: { var: "$timestamp" },
191
+ pledgedAt: { var: "$ordinal" },
191
192
  },
192
193
  ],
193
194
  ],
@@ -208,16 +209,18 @@ exports.marketCrowdfundDef = (0, fiber_app_js_1.defineFiberApp)({
208
209
  guard: {
209
210
  and: [
210
211
  { ">": [{ var: "event.additionalAmount" }, 0] },
211
- { "<=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
212
+ { "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
212
213
  {
213
214
  ">": [
214
215
  {
215
- size: {
216
- filter: [
217
- { var: "state.pledges" },
218
- { "===": [{ var: "backer" }, { var: "event.agent" }] },
219
- ],
220
- },
216
+ length: [
217
+ {
218
+ filter: [
219
+ { var: "state.pledges" },
220
+ { "===": [{ var: "backer" }, { var: "event.agent" }] },
221
+ ],
222
+ },
223
+ ],
221
224
  },
222
225
  0,
223
226
  ],
@@ -246,7 +249,7 @@ exports.marketCrowdfundDef = (0, fiber_app_js_1.defineFiberApp)({
246
249
  guard: {
247
250
  and: [
248
251
  { ">=": [{ var: "state.totalPledged" }, { var: "state.threshold" }] },
249
- { ">=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
252
+ { ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
250
253
  ],
251
254
  },
252
255
  effect: {
@@ -254,7 +257,7 @@ exports.marketCrowdfundDef = (0, fiber_app_js_1.defineFiberApp)({
254
257
  { var: "state" },
255
258
  {
256
259
  status: "FUNDED",
257
- fundedAt: { var: "$timestamp" },
260
+ fundedAt: { var: "$ordinal" },
258
261
  stretchGoalsReached: {
259
262
  filter: [
260
263
  { var: "state.stretchGoals" },
@@ -273,7 +276,7 @@ exports.marketCrowdfundDef = (0, fiber_app_js_1.defineFiberApp)({
273
276
  guard: {
274
277
  and: [
275
278
  { "<": [{ var: "state.totalPledged" }, { var: "state.threshold" }] },
276
- { ">=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
279
+ { ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
277
280
  ],
278
281
  },
279
282
  effect: {
@@ -281,7 +284,7 @@ exports.marketCrowdfundDef = (0, fiber_app_js_1.defineFiberApp)({
281
284
  { var: "state" },
282
285
  {
283
286
  status: "REFUNDED",
284
- refundedAt: { var: "$timestamp" },
287
+ refundedAt: { var: "$ordinal" },
285
288
  reason: "threshold_not_met",
286
289
  },
287
290
  ],
@@ -297,12 +300,14 @@ exports.marketCrowdfundDef = (0, fiber_app_js_1.defineFiberApp)({
297
300
  {
298
301
  ">": [
299
302
  {
300
- size: {
301
- filter: [
302
- { var: "state.pledges" },
303
- { "===": [{ var: "backer" }, { var: "event.agent" }] },
304
- ],
305
- },
303
+ length: [
304
+ {
305
+ filter: [
306
+ { var: "state.pledges" },
307
+ { "===": [{ var: "backer" }, { var: "event.agent" }] },
308
+ ],
309
+ },
310
+ ],
306
311
  },
307
312
  0,
308
313
  ],
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.marketGroupBuyDef = void 0;
4
4
  const fiber_app_js_1 = require("../../../schema/fiber-app.js");
5
+ const guards_js_1 = require("../../../schema/guards.js");
5
6
  /**
6
7
  * Collective purchasing with quantity thresholds and tiered pricing.
7
8
  */
@@ -150,13 +151,13 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
150
151
  from: "PROPOSED",
151
152
  to: "OPEN",
152
153
  eventName: "open",
153
- guard: { "===": [{ var: "event.agent" }, { var: "state.organizer" }] },
154
+ guard: (0, guards_js_1.signerIsParty)("state.organizer"),
154
155
  effect: {
155
156
  merge: [
156
157
  { var: "state" },
157
158
  {
158
159
  status: "OPEN",
159
- openedAt: { var: "$timestamp" },
160
+ openedAt: { var: "$ordinal" },
160
161
  orders: [],
161
162
  totalQuantity: 0,
162
163
  currentTier: 0,
@@ -169,11 +170,11 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
169
170
  from: "PROPOSED",
170
171
  to: "CANCELLED",
171
172
  eventName: "cancel",
172
- guard: { "===": [{ var: "event.agent" }, { var: "state.organizer" }] },
173
+ guard: (0, guards_js_1.signerIsParty)("state.organizer"),
173
174
  effect: {
174
175
  merge: [
175
176
  { var: "state" },
176
- { status: "CANCELLED", cancelledAt: { var: "$timestamp" } },
177
+ { status: "CANCELLED", cancelledAt: { var: "$ordinal" } },
177
178
  ],
178
179
  },
179
180
  dependencies: [],
@@ -193,7 +194,7 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
193
194
  },
194
195
  ],
195
196
  },
196
- { "<=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
197
+ { "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
197
198
  ],
198
199
  },
199
200
  effect: {
@@ -208,7 +209,7 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
208
209
  buyer: { var: "event.agent" },
209
210
  quantity: { var: "event.quantity" },
210
211
  shippingInfo: { var: "event.shippingInfo" },
211
- orderedAt: { var: "$timestamp" },
212
+ orderedAt: { var: "$ordinal" },
212
213
  },
213
214
  ],
214
215
  ],
@@ -233,7 +234,7 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
233
234
  { var: "state" },
234
235
  {
235
236
  status: "THRESHOLD_MET",
236
- thresholdMetAt: { var: "$timestamp" },
237
+ thresholdMetAt: { var: "$ordinal" },
237
238
  currentTier: {
238
239
  reduce: [
239
240
  { var: "state.priceTiers" },
@@ -264,7 +265,7 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
264
265
  guard: {
265
266
  and: [
266
267
  { ">": [{ var: "event.quantity" }, 0] },
267
- { "<=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
268
+ { "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
268
269
  ],
269
270
  },
270
271
  effect: {
@@ -279,7 +280,7 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
279
280
  buyer: { var: "event.agent" },
280
281
  quantity: { var: "event.quantity" },
281
282
  shippingInfo: { var: "event.shippingInfo" },
282
- orderedAt: { var: "$timestamp" },
283
+ orderedAt: { var: "$ordinal" },
283
284
  },
284
285
  ],
285
286
  ],
@@ -319,13 +320,13 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
319
320
  from: "THRESHOLD_MET",
320
321
  to: "PROCESSING",
321
322
  eventName: "finalize",
322
- guard: { ">=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
323
+ guard: { ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
323
324
  effect: {
324
325
  merge: [
325
326
  { var: "state" },
326
327
  {
327
328
  status: "PROCESSING",
328
- finalizedAt: { var: "$timestamp" },
329
+ finalizedAt: { var: "$ordinal" },
329
330
  finalTier: { var: "state.currentTier" },
330
331
  finalPricePerUnit: {
331
332
  var: {
@@ -345,18 +346,13 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
345
346
  from: "PROCESSING",
346
347
  to: "FULFILLED",
347
348
  eventName: "fulfill",
348
- guard: {
349
- or: [
350
- { "===": [{ var: "event.agent" }, { var: "state.vendor" }] },
351
- { "===": [{ var: "event.agent" }, { var: "state.organizer" }] },
352
- ],
353
- },
349
+ guard: (0, guards_js_1.signerIsAnyParty)(["state.vendor", "state.organizer"]),
354
350
  effect: {
355
351
  merge: [
356
352
  { var: "state" },
357
353
  {
358
354
  status: "FULFILLED",
359
- fulfilledAt: { var: "$timestamp" },
355
+ fulfilledAt: { var: "$ordinal" },
360
356
  trackingInfo: { var: "event.trackingInfo" },
361
357
  },
362
358
  ],
@@ -372,7 +368,7 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
372
368
  {
373
369
  "<": [{ var: "state.totalQuantity" }, { var: "state.minQuantity" }],
374
370
  },
375
- { ">=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
371
+ { ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
376
372
  ],
377
373
  },
378
374
  effect: {
@@ -380,7 +376,7 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
380
376
  { var: "state" },
381
377
  {
382
378
  status: "REFUNDED",
383
- refundedAt: { var: "$timestamp" },
379
+ refundedAt: { var: "$ordinal" },
384
380
  reason: "threshold_not_met",
385
381
  },
386
382
  ],
@@ -396,12 +392,14 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
396
392
  {
397
393
  ">": [
398
394
  {
399
- size: {
400
- filter: [
401
- { var: "state.orders" },
402
- { "===": [{ var: "buyer" }, { var: "event.agent" }] },
403
- ],
404
- },
395
+ length: [
396
+ {
397
+ filter: [
398
+ { var: "state.orders" },
399
+ { "===": [{ var: "buyer" }, { var: "event.agent" }] },
400
+ ],
401
+ },
402
+ ],
405
403
  },
406
404
  0,
407
405
  ],
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.marketPredictionDef = void 0;
4
4
  const fiber_app_js_1 = require("../../../schema/fiber-app.js");
5
+ const guards_js_1 = require("../../../schema/guards.js");
5
6
  /**
6
7
  * Binary or multi-outcome prediction market with oracle resolution and position staking.
7
8
  */
@@ -18,13 +19,18 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
18
19
  },
19
20
  },
20
21
  createSchema: {
21
- required: ["creator", "outcomes", "oracles", "quorum"],
22
+ required: ["creator", "outcomes", "oracles", "quorum", "arbiter"],
22
23
  properties: {
23
24
  creator: {
24
25
  type: "address",
25
26
  description: "DAG address of the market creator",
26
27
  immutable: true,
27
28
  },
29
+ arbiter: {
30
+ type: "address",
31
+ description: "DAG address of the arbiter authorized to rule on a disputed resolution",
32
+ immutable: true,
33
+ },
28
34
  outcomes: {
29
35
  type: "array",
30
36
  description: "Valid outcome identifiers",
@@ -47,6 +53,7 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
47
53
  properties: {
48
54
  status: { type: "string", computed: true },
49
55
  creator: { type: "address", immutable: true },
56
+ arbiter: { type: "address", immutable: true },
50
57
  outcomes: { type: "array", immutable: true },
51
58
  oracles: { type: "array", immutable: true },
52
59
  quorum: { type: "number", immutable: true },
@@ -83,7 +90,6 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
83
90
  },
84
91
  finalize: {
85
92
  description: "Finalize market after quorum reached",
86
- properties: { outcome: { type: "string" } },
87
93
  },
88
94
  dispute: {
89
95
  description: "Dispute the resolution",
@@ -96,8 +102,7 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
96
102
  ruling: {
97
103
  description: "Judicial ruling on dispute",
98
104
  properties: {
99
- judicialRuling: { type: "boolean" },
100
- outcome: { type: "string" },
105
+ finalOutcome: { type: "string" },
101
106
  rulingId: { type: "string" },
102
107
  },
103
108
  },
@@ -187,13 +192,13 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
187
192
  from: "PROPOSED",
188
193
  to: "OPEN",
189
194
  eventName: "open",
190
- guard: { "===": [{ var: "event.agent" }, { var: "state.creator" }] },
195
+ guard: (0, guards_js_1.signerIsParty)("state.creator"),
191
196
  effect: {
192
197
  merge: [
193
198
  { var: "state" },
194
199
  {
195
200
  status: "OPEN",
196
- openedAt: { var: "$timestamp" },
201
+ openedAt: { var: "$ordinal" },
197
202
  positions: {},
198
203
  totalPool: 0,
199
204
  },
@@ -205,13 +210,13 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
205
210
  from: "PROPOSED",
206
211
  to: "CANCELLED",
207
212
  eventName: "cancel",
208
- guard: { "===": [{ var: "event.agent" }, { var: "state.creator" }] },
213
+ guard: (0, guards_js_1.signerIsParty)("state.creator"),
209
214
  effect: {
210
215
  merge: [
211
216
  { var: "state" },
212
217
  {
213
218
  status: "CANCELLED",
214
- cancelledAt: { var: "$timestamp" },
219
+ cancelledAt: { var: "$ordinal" },
215
220
  reason: { var: "event.reason" },
216
221
  },
217
222
  ],
@@ -229,7 +234,7 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
229
234
  {
230
235
  or: [
231
236
  { "!": [{ var: "state.deadline" }] },
232
- { "<=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
237
+ { "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
233
238
  ],
234
239
  },
235
240
  ],
@@ -266,11 +271,11 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
266
271
  eventName: "close",
267
272
  guard: {
268
273
  or: [
269
- { "===": [{ var: "event.agent" }, { var: "state.creator" }] },
274
+ (0, guards_js_1.signerIsParty)("state.creator"),
270
275
  {
271
276
  and: [
272
277
  { var: "state.deadline" },
273
- { ">=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
278
+ { ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
274
279
  ],
275
280
  },
276
281
  ],
@@ -278,7 +283,7 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
278
283
  effect: {
279
284
  merge: [
280
285
  { var: "state" },
281
- { status: "CLOSED", closedAt: { var: "$timestamp" } },
286
+ { status: "CLOSED", closedAt: { var: "$ordinal" } },
282
287
  ],
283
288
  },
284
289
  dependencies: [],
@@ -287,7 +292,7 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
287
292
  from: "CLOSED",
288
293
  to: "RESOLVING",
289
294
  eventName: "submit_resolution",
290
- guard: { in: [{ var: "event.agent" }, { var: "state.oracles" }] },
295
+ guard: (0, guards_js_1.signerInSet)("state.oracles"),
291
296
  effect: {
292
297
  merge: [
293
298
  { var: "state" },
@@ -298,7 +303,7 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
298
303
  oracle: { var: "event.agent" },
299
304
  outcome: { var: "event.outcome" },
300
305
  proof: { var: "event.proof" },
301
- submittedAt: { var: "$timestamp" },
306
+ submittedAt: { var: "$ordinal" },
302
307
  },
303
308
  ],
304
309
  },
@@ -312,7 +317,7 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
312
317
  eventName: "submit_resolution",
313
318
  guard: {
314
319
  and: [
315
- { in: [{ var: "event.agent" }, { var: "state.oracles" }] },
320
+ (0, guards_js_1.signerInSet)("state.oracles"),
316
321
  {
317
322
  "!": [
318
323
  {
@@ -337,7 +342,7 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
337
342
  oracle: { var: "event.agent" },
338
343
  outcome: { var: "event.outcome" },
339
344
  proof: { var: "event.proof" },
340
- submittedAt: { var: "$timestamp" },
345
+ submittedAt: { var: "$ordinal" },
341
346
  },
342
347
  ],
343
348
  ],
@@ -351,16 +356,26 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
351
356
  from: "RESOLVING",
352
357
  to: "SETTLED",
353
358
  eventName: "finalize",
359
+ // 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)
354
360
  guard: {
355
- ">=": [{ size: { var: "state.resolutions" } }, { var: "state.quorum" }],
361
+ and: [
362
+ (0, guards_js_1.signerInSet)("state.oracles"),
363
+ {
364
+ ">=": [
365
+ { count: { var: "state.resolutions" } },
366
+ { var: "state.quorum" },
367
+ ],
368
+ },
369
+ ],
356
370
  },
357
371
  effect: {
358
372
  merge: [
359
373
  { var: "state" },
360
374
  {
361
375
  status: "SETTLED",
362
- settledAt: { var: "$timestamp" },
363
- finalOutcome: { var: "event.outcome" },
376
+ settledAt: { var: "$ordinal" },
377
+ // finalOutcome derives from the quorum-agreed resolution, not a raw event field
378
+ finalOutcome: { var: "state.resolutions.0.outcome" },
364
379
  claims: [],
365
380
  },
366
381
  ],
@@ -376,12 +391,14 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
376
391
  {
377
392
  ">": [
378
393
  {
379
- size: {
380
- filter: [
381
- { var: "state.positions" },
382
- { "===": [{ var: "agent" }, { var: "event.agent" }] },
383
- ],
384
- },
394
+ length: [
395
+ {
396
+ filter: [
397
+ { var: "state.positions" },
398
+ { "===": [{ var: "agent" }, { var: "event.agent" }] },
399
+ ],
400
+ },
401
+ ],
385
402
  },
386
403
  0,
387
404
  ],
@@ -394,7 +411,7 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
394
411
  { var: "state" },
395
412
  {
396
413
  status: "DISPUTED",
397
- disputedAt: { var: "$timestamp" },
414
+ disputedAt: { var: "$ordinal" },
398
415
  disputedBy: { var: "event.agent" },
399
416
  disputeStake: { var: "event.stake" },
400
417
  disputeReason: { var: "event.reason" },
@@ -407,14 +424,20 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
407
424
  from: "DISPUTED",
408
425
  to: "SETTLED",
409
426
  eventName: "ruling",
410
- guard: { var: "event.judicialRuling" },
427
+ // 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)
428
+ guard: {
429
+ and: [
430
+ (0, guards_js_1.signerIsParty)("state.arbiter"),
431
+ { in: [{ var: "event.finalOutcome" }, { var: "state.outcomes" }] },
432
+ ],
433
+ },
411
434
  effect: {
412
435
  merge: [
413
436
  { var: "state" },
414
437
  {
415
438
  status: "SETTLED",
416
- settledAt: { var: "$timestamp" },
417
- finalOutcome: { var: "event.outcome" },
439
+ settledAt: { var: "$ordinal" },
440
+ finalOutcome: { var: "event.finalOutcome" },
418
441
  rulingId: { var: "event.rulingId" },
419
442
  claims: [],
420
443
  },
@@ -429,12 +452,14 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
429
452
  guard: {
430
453
  ">=": [
431
454
  {
432
- size: {
433
- filter: [
434
- { var: "state.resolutions" },
435
- { "===": [{ var: "outcome" }, "INVALID"] },
436
- ],
437
- },
455
+ length: [
456
+ {
457
+ filter: [
458
+ { var: "state.resolutions" },
459
+ { "===": [{ var: "outcome" }, "INVALID"] },
460
+ ],
461
+ },
462
+ ],
438
463
  },
439
464
  { var: "state.quorum" },
440
465
  ],
@@ -444,7 +469,7 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
444
469
  { var: "state" },
445
470
  {
446
471
  status: "REFUNDED",
447
- refundedAt: { var: "$timestamp" },
472
+ refundedAt: { var: "$ordinal" },
448
473
  reason: "oracle_invalidation",
449
474
  },
450
475
  ],
@@ -460,22 +485,24 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
460
485
  {
461
486
  ">": [
462
487
  {
463
- size: {
464
- filter: [
465
- { var: "state.positions" },
466
- {
467
- and: [
468
- { "===": [{ var: "agent" }, { var: "event.agent" }] },
469
- {
470
- "===": [
471
- { var: "outcome" },
472
- { var: "state.finalOutcome" },
473
- ],
474
- },
475
- ],
476
- },
477
- ],
478
- },
488
+ length: [
489
+ {
490
+ filter: [
491
+ { var: "state.positions" },
492
+ {
493
+ and: [
494
+ { "===": [{ var: "agent" }, { var: "event.agent" }] },
495
+ {
496
+ "===": [
497
+ { var: "outcome" },
498
+ { var: "state.finalOutcome" },
499
+ ],
500
+ },
501
+ ],
502
+ },
503
+ ],
504
+ },
505
+ ],
479
506
  },
480
507
  0,
481
508
  ],
@@ -503,7 +530,7 @@ exports.marketPredictionDef = (0, fiber_app_js_1.defineFiberApp)({
503
530
  {
504
531
  agent: { var: "event.agent" },
505
532
  amount: { var: "event.amount" },
506
- claimedAt: { var: "$timestamp" },
533
+ claimedAt: { var: "$ordinal" },
507
534
  },
508
535
  ],
509
536
  ],
@@ -91,7 +91,7 @@ exports.marketUniversalDef = (0, fiber_app_js_1.defineFiberApp)({
91
91
  effect: {
92
92
  merge: [
93
93
  { var: "state" },
94
- { status: "OPEN", openedAt: { var: "$timestamp" } },
94
+ { status: "OPEN", openedAt: { var: "$ordinal" } },
95
95
  ],
96
96
  },
97
97
  dependencies: [],
@@ -104,7 +104,7 @@ exports.marketUniversalDef = (0, fiber_app_js_1.defineFiberApp)({
104
104
  effect: {
105
105
  merge: [
106
106
  { var: "state" },
107
- { status: "CANCELLED", cancelledAt: { var: "$timestamp" } },
107
+ { status: "CANCELLED", cancelledAt: { var: "$ordinal" } },
108
108
  ],
109
109
  },
110
110
  dependencies: [],
@@ -134,7 +134,7 @@ exports.marketUniversalDef = (0, fiber_app_js_1.defineFiberApp)({
134
134
  effect: {
135
135
  merge: [
136
136
  { var: "state" },
137
- { status: "CLOSED", closedAt: { var: "$timestamp" } },
137
+ { status: "CLOSED", closedAt: { var: "$ordinal" } },
138
138
  ],
139
139
  },
140
140
  dependencies: [],
@@ -147,7 +147,7 @@ exports.marketUniversalDef = (0, fiber_app_js_1.defineFiberApp)({
147
147
  effect: {
148
148
  merge: [
149
149
  { var: "state" },
150
- { status: "SETTLED", settledAt: { var: "$timestamp" } },
150
+ { status: "SETTLED", settledAt: { var: "$ordinal" } },
151
151
  ],
152
152
  },
153
153
  dependencies: [],
@@ -160,7 +160,7 @@ exports.marketUniversalDef = (0, fiber_app_js_1.defineFiberApp)({
160
160
  effect: {
161
161
  merge: [
162
162
  { var: "state" },
163
- { status: "CANCELLED", cancelledAt: { var: "$timestamp" } },
163
+ { status: "CANCELLED", cancelledAt: { var: "$ordinal" } },
164
164
  ],
165
165
  },
166
166
  dependencies: [],