@ottochain/sdk 2.2.5 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/dist/cjs/apps/contracts/index.js +15 -8
  2. package/dist/cjs/apps/contracts/state-machines/contract-agreement.js +89 -46
  3. package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +152 -45
  4. package/dist/cjs/apps/contracts/state-machines/contract-universal.js +40 -8
  5. package/dist/cjs/apps/corporate/index.js +2 -2
  6. package/dist/cjs/apps/corporate/state-machines/corp-board.js +169 -59
  7. package/dist/cjs/apps/corporate/state-machines/corp-entity.js +245 -47
  8. package/dist/cjs/apps/corporate/state-machines/corp-securities.js +407 -99
  9. package/dist/cjs/apps/corporate/state-machines/corp-shareholders.js +151 -37
  10. package/dist/cjs/apps/governance/index.js +14 -14
  11. package/dist/cjs/apps/governance/state-machines/dao-multisig.js +85 -43
  12. package/dist/cjs/apps/governance/state-machines/dao-reputation.js +73 -43
  13. package/dist/cjs/apps/governance/state-machines/dao-single.js +55 -14
  14. package/dist/cjs/apps/governance/state-machines/dao-token.js +103 -45
  15. package/dist/cjs/apps/governance/state-machines/governance-simple.js +129 -65
  16. package/dist/cjs/apps/governance/state-machines/governance-universal.js +29 -5
  17. package/dist/cjs/apps/identity/constants.js +55 -14
  18. package/dist/cjs/apps/identity/index.js +27 -11
  19. package/dist/cjs/apps/identity/state-machines/identity-agent.js +57 -9
  20. package/dist/cjs/apps/identity/state-machines/identity-oracle.js +70 -27
  21. package/dist/cjs/apps/identity/state-machines/identity-registry.js +288 -0
  22. package/dist/cjs/apps/identity/state-machines/identity-universal.js +30 -6
  23. package/dist/cjs/apps/identity/state-machines/index.js +3 -1
  24. package/dist/cjs/apps/index.js +19 -8
  25. package/dist/cjs/apps/lending/assets.js +223 -0
  26. package/dist/cjs/apps/lending/credit-scoring.js +87 -0
  27. package/dist/cjs/apps/lending/eligibility.js +121 -0
  28. package/dist/cjs/apps/lending/index.js +91 -0
  29. package/dist/cjs/apps/lending/state-machines/index.js +9 -0
  30. package/dist/cjs/apps/lending/state-machines/lending-zk-loan.js +412 -0
  31. package/dist/cjs/apps/markets/index.js +21 -11
  32. package/dist/cjs/apps/markets/state-machines/market-auction.js +44 -19
  33. package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +54 -29
  34. package/dist/cjs/apps/markets/state-machines/market-group-buy.js +53 -31
  35. package/dist/cjs/apps/markets/state-machines/market-prediction.js +120 -61
  36. package/dist/cjs/apps/markets/state-machines/market-universal.js +50 -10
  37. package/dist/cjs/apps/oracles/index.js +2 -2
  38. package/dist/cjs/errors.js +3 -3
  39. package/dist/cjs/generated/google/protobuf/struct.js +4 -4
  40. package/dist/cjs/generated/index.js +11 -7
  41. package/dist/cjs/generated/openapi.js +6 -0
  42. package/dist/cjs/generated/ottochain/apps/contracts/v1/contract.js +50 -50
  43. package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate.js +19 -20
  44. package/dist/cjs/generated/ottochain/apps/governance/v1/governance.js +13 -13
  45. package/dist/cjs/generated/ottochain/apps/identity/v1/attestation.js +4 -4
  46. package/dist/cjs/generated/ottochain/apps/identity/v1/identity.js +124 -130
  47. package/dist/cjs/generated/ottochain/apps/markets/v1/market.js +107 -107
  48. package/dist/cjs/generated/ottochain/v1/common.js +1722 -1
  49. package/dist/cjs/generated/ottochain/v1/fiber.js +355 -5
  50. package/dist/cjs/generated/ottochain/v1/messages.js +775 -3
  51. package/dist/cjs/generated/ottochain/v1/records.js +350 -3
  52. package/dist/cjs/index.js +45 -7
  53. package/dist/cjs/openapi.js +2 -0
  54. package/dist/cjs/ottochain/drop-nulls.js +1 -2
  55. package/dist/cjs/ottochain/genesis-manifest.js +193 -0
  56. package/dist/cjs/ottochain/index.js +27 -13
  57. package/dist/cjs/ottochain/metagraph-client.js +65 -8
  58. package/dist/cjs/ottochain/snapshot.js +11 -12
  59. package/dist/cjs/ottochain/transaction.js +57 -14
  60. package/dist/cjs/ottochain/types.js +19 -1
  61. package/dist/cjs/privacy/index.js +14 -0
  62. package/dist/cjs/privacy/sealed-bid.js +210 -0
  63. package/dist/cjs/privacy/shield-app.js +131 -0
  64. package/dist/cjs/schema/effects.js +40 -0
  65. package/dist/cjs/schema/fiber-app.js +19 -13
  66. package/dist/cjs/schema/guard-lint.js +352 -0
  67. package/dist/cjs/schema/guards.js +246 -0
  68. package/dist/cjs/signing.js +80 -0
  69. package/dist/cjs/types.js +2 -3
  70. package/dist/cjs/validation.js +8 -8
  71. package/dist/cjs/verify.js +9 -4
  72. package/dist/cjs/zk/commit.js +53 -0
  73. package/dist/cjs/zk/guard.js +107 -0
  74. package/dist/cjs/zk/index.js +48 -0
  75. package/dist/cjs/zk/preimage.js +37 -0
  76. package/dist/cjs/zk/prover.js +87 -0
  77. package/dist/cjs/zk/registry.js +62 -0
  78. package/dist/cjs/zk/types.js +28 -0
  79. package/dist/cjs/zk/witness.js +19 -0
  80. package/dist/esm/apps/contracts/index.js +7 -3
  81. package/dist/esm/apps/contracts/state-machines/contract-agreement.js +89 -46
  82. package/dist/esm/apps/contracts/state-machines/contract-escrow.js +152 -45
  83. package/dist/esm/apps/contracts/state-machines/contract-universal.js +40 -8
  84. package/dist/esm/apps/corporate/state-machines/corp-board.js +169 -59
  85. package/dist/esm/apps/corporate/state-machines/corp-entity.js +245 -47
  86. package/dist/esm/apps/corporate/state-machines/corp-securities.js +407 -99
  87. package/dist/esm/apps/corporate/state-machines/corp-shareholders.js +151 -37
  88. package/dist/esm/apps/governance/state-machines/dao-multisig.js +85 -43
  89. package/dist/esm/apps/governance/state-machines/dao-reputation.js +73 -43
  90. package/dist/esm/apps/governance/state-machines/dao-single.js +55 -14
  91. package/dist/esm/apps/governance/state-machines/dao-token.js +103 -45
  92. package/dist/esm/apps/governance/state-machines/governance-simple.js +129 -65
  93. package/dist/esm/apps/governance/state-machines/governance-universal.js +29 -5
  94. package/dist/esm/apps/identity/constants.js +51 -12
  95. package/dist/esm/apps/identity/index.js +12 -7
  96. package/dist/esm/apps/identity/state-machines/identity-agent.js +57 -9
  97. package/dist/esm/apps/identity/state-machines/identity-oracle.js +70 -27
  98. package/dist/esm/apps/identity/state-machines/identity-registry.js +285 -0
  99. package/dist/esm/apps/identity/state-machines/identity-universal.js +30 -6
  100. package/dist/esm/apps/identity/state-machines/index.js +1 -0
  101. package/dist/esm/apps/index.js +1 -0
  102. package/dist/esm/apps/lending/assets.js +207 -0
  103. package/dist/esm/apps/lending/credit-scoring.js +81 -0
  104. package/dist/esm/apps/lending/eligibility.js +115 -0
  105. package/dist/esm/apps/lending/index.js +69 -0
  106. package/dist/esm/apps/lending/state-machines/index.js +5 -0
  107. package/dist/esm/apps/lending/state-machines/lending-zk-loan.js +409 -0
  108. package/dist/esm/apps/markets/index.js +8 -4
  109. package/dist/esm/apps/markets/state-machines/market-auction.js +44 -19
  110. package/dist/esm/apps/markets/state-machines/market-crowdfund.js +54 -29
  111. package/dist/esm/apps/markets/state-machines/market-group-buy.js +53 -31
  112. package/dist/esm/apps/markets/state-machines/market-prediction.js +120 -61
  113. package/dist/esm/apps/markets/state-machines/market-universal.js +50 -10
  114. package/dist/esm/generated/index.js +9 -5
  115. package/dist/esm/generated/openapi.js +5 -0
  116. package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +46 -46
  117. package/dist/esm/generated/ottochain/apps/identity/v1/identity.js +114 -120
  118. package/dist/esm/generated/ottochain/apps/markets/v1/market.js +100 -100
  119. package/dist/esm/generated/ottochain/v1/common.js +1718 -0
  120. package/dist/esm/generated/ottochain/v1/fiber.js +351 -1
  121. package/dist/esm/generated/ottochain/v1/messages.js +774 -2
  122. package/dist/esm/generated/ottochain/v1/records.js +349 -2
  123. package/dist/esm/index.js +23 -2
  124. package/dist/esm/openapi.js +1 -0
  125. package/dist/esm/ottochain/genesis-manifest.js +189 -0
  126. package/dist/esm/ottochain/index.js +4 -3
  127. package/dist/esm/ottochain/metagraph-client.js +65 -8
  128. package/dist/esm/ottochain/snapshot.js +4 -4
  129. package/dist/esm/ottochain/transaction.js +43 -3
  130. package/dist/esm/ottochain/types.js +18 -0
  131. package/dist/esm/privacy/index.js +6 -0
  132. package/dist/esm/privacy/sealed-bid.js +206 -0
  133. package/dist/esm/privacy/shield-app.js +127 -0
  134. package/dist/esm/schema/effects.js +35 -0
  135. package/dist/esm/schema/fiber-app.js +13 -6
  136. package/dist/esm/schema/guard-lint.js +346 -0
  137. package/dist/esm/schema/guards.js +229 -0
  138. package/dist/esm/signing.js +74 -0
  139. package/dist/esm/verify.js +8 -2
  140. package/dist/esm/zk/commit.js +44 -0
  141. package/dist/esm/zk/guard.js +99 -0
  142. package/dist/esm/zk/index.js +19 -0
  143. package/dist/esm/zk/preimage.js +30 -0
  144. package/dist/esm/zk/prover.js +82 -0
  145. package/dist/esm/zk/registry.js +55 -0
  146. package/dist/esm/zk/types.js +25 -0
  147. package/dist/esm/zk/witness.js +15 -0
  148. package/dist/types/apps/contracts/index.d.ts +159 -227
  149. package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +50 -101
  150. package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +86 -120
  151. package/dist/types/apps/contracts/state-machines/contract-universal.d.ts +20 -4
  152. package/dist/types/apps/corporate/index.d.ts +1040 -304
  153. package/dist/types/apps/corporate/state-machines/corp-board.d.ts +188 -52
  154. package/dist/types/apps/corporate/state-machines/corp-entity.d.ts +267 -62
  155. package/dist/types/apps/corporate/state-machines/corp-securities.d.ts +355 -131
  156. package/dist/types/apps/corporate/state-machines/corp-shareholders.d.ts +225 -53
  157. package/dist/types/apps/governance/index.d.ts +396 -417
  158. package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +92 -95
  159. package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +57 -69
  160. package/dist/types/apps/governance/state-machines/dao-single.d.ts +40 -50
  161. package/dist/types/apps/governance/state-machines/dao-token.d.ts +80 -53
  162. package/dist/types/apps/governance/state-machines/governance-simple.d.ts +107 -121
  163. package/dist/types/apps/governance/state-machines/governance-universal.d.ts +17 -5
  164. package/dist/types/apps/identity/constants.d.ts +32 -4
  165. package/dist/types/apps/identity/index.d.ts +449 -100
  166. package/dist/types/apps/identity/state-machines/identity-agent.d.ts +30 -0
  167. package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +41 -87
  168. package/dist/types/apps/identity/state-machines/identity-registry.d.ts +379 -0
  169. package/dist/types/apps/identity/state-machines/identity-universal.d.ts +15 -0
  170. package/dist/types/apps/identity/state-machines/index.d.ts +1 -0
  171. package/dist/types/apps/index.d.ts +1 -0
  172. package/dist/types/apps/lending/assets.d.ts +258 -0
  173. package/dist/types/apps/lending/credit-scoring.d.ts +80 -0
  174. package/dist/types/apps/lending/eligibility.d.ts +83 -0
  175. package/dist/types/apps/lending/index.d.ts +548 -0
  176. package/dist/types/apps/lending/state-machines/index.d.ts +5 -0
  177. package/dist/types/apps/lending/state-machines/lending-zk-loan.d.ts +528 -0
  178. package/dist/types/apps/markets/index.d.ts +184 -204
  179. package/dist/types/apps/markets/state-machines/market-auction.d.ts +25 -37
  180. package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +26 -34
  181. package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +31 -43
  182. package/dist/types/apps/markets/state-machines/market-prediction.d.ts +67 -72
  183. package/dist/types/apps/markets/state-machines/market-universal.d.ts +30 -10
  184. package/dist/types/generated/index.d.ts +5 -5
  185. package/dist/types/generated/openapi.d.ts +1257 -0
  186. package/dist/types/generated/ottochain/apps/contracts/v1/contract.d.ts +5 -5
  187. package/dist/types/generated/ottochain/apps/identity/v1/identity.d.ts +12 -12
  188. package/dist/types/generated/ottochain/apps/markets/v1/market.d.ts +11 -11
  189. package/dist/types/generated/ottochain/v1/common.d.ts +228 -0
  190. package/dist/types/generated/ottochain/v1/fiber.d.ts +32 -1
  191. package/dist/types/generated/ottochain/v1/messages.d.ts +84 -0
  192. package/dist/types/generated/ottochain/v1/records.d.ts +34 -0
  193. package/dist/types/index.d.ts +8 -2
  194. package/dist/types/openapi.d.ts +22 -0
  195. package/dist/types/ottochain/genesis-manifest.d.ts +130 -0
  196. package/dist/types/ottochain/index.d.ts +6 -5
  197. package/dist/types/ottochain/metagraph-client.d.ts +49 -7
  198. package/dist/types/ottochain/snapshot.d.ts +6 -6
  199. package/dist/types/ottochain/transaction.d.ts +33 -1
  200. package/dist/types/ottochain/types.d.ts +602 -11
  201. package/dist/types/privacy/index.d.ts +6 -0
  202. package/dist/types/privacy/sealed-bid.d.ts +348 -0
  203. package/dist/types/privacy/shield-app.d.ts +48 -0
  204. package/dist/types/schema/effects.d.ts +34 -0
  205. package/dist/types/schema/fiber-app.d.ts +41 -3
  206. package/dist/types/schema/guard-lint.d.ts +111 -0
  207. package/dist/types/schema/guards.d.ts +134 -0
  208. package/dist/types/signing.d.ts +45 -0
  209. package/dist/types/validation.d.ts +22 -217
  210. package/dist/types/verify.d.ts +4 -0
  211. package/dist/types/zk/commit.d.ts +28 -0
  212. package/dist/types/zk/guard.d.ts +46 -0
  213. package/dist/types/zk/index.d.ts +19 -0
  214. package/dist/types/zk/preimage.d.ts +10 -0
  215. package/dist/types/zk/prover.d.ts +34 -0
  216. package/dist/types/zk/registry.d.ts +34 -0
  217. package/dist/types/zk/types.d.ts +33 -0
  218. package/dist/types/zk/witness.d.ts +40 -0
  219. package/package.json +52 -35
  220. package/dist/cjs/ottochain/normalize.js +0 -186
  221. package/dist/esm/ottochain/normalize.js +0 -179
  222. package/dist/types/ottochain/normalize.d.ts +0 -79
@@ -1,4 +1,5 @@
1
1
  import { defineFiberApp } from "../../../schema/fiber-app.js";
2
+ import { signerIsParty, signerIsNotParty } from "../../../schema/guards.js";
2
3
  /**
3
4
  * All-or-nothing crowdfunding with threshold, deadline, and stretch goals.
4
5
  */
@@ -78,27 +79,47 @@ export const marketCrowdfundDef = defineFiberApp({
78
79
  PROPOSED: {
79
80
  id: "PROPOSED",
80
81
  isFinal: false,
81
- metadata: { description: "Campaign created but not yet open" },
82
+ metadata: {
83
+ label: "Proposed",
84
+ description: "Campaign created but not yet open",
85
+ category: "initial",
86
+ },
82
87
  },
83
88
  OPEN: {
84
89
  id: "OPEN",
85
90
  isFinal: false,
86
- metadata: { description: "Accepting pledges" },
91
+ metadata: {
92
+ label: "Open",
93
+ description: "Accepting pledges",
94
+ category: "active",
95
+ },
87
96
  },
88
97
  FUNDED: {
89
98
  id: "FUNDED",
90
99
  isFinal: true,
91
- metadata: { description: "Threshold met, funds released to creator" },
100
+ metadata: {
101
+ label: "Funded",
102
+ description: "Threshold met, funds released to creator",
103
+ category: "terminal",
104
+ },
92
105
  },
93
106
  REFUNDED: {
94
107
  id: "REFUNDED",
95
108
  isFinal: true,
96
- metadata: { description: "Threshold not met, all pledges refunded" },
109
+ metadata: {
110
+ label: "Refunded",
111
+ description: "Threshold not met, all pledges refunded",
112
+ category: "terminal",
113
+ },
97
114
  },
98
115
  CANCELLED: {
99
116
  id: "CANCELLED",
100
117
  isFinal: true,
101
- metadata: { description: "Campaign cancelled by creator" },
118
+ metadata: {
119
+ label: "Cancelled",
120
+ description: "Campaign cancelled by creator",
121
+ category: "terminal",
122
+ },
102
123
  },
103
124
  },
104
125
  initialState: "PROPOSED",
@@ -107,13 +128,13 @@ export const marketCrowdfundDef = defineFiberApp({
107
128
  from: "PROPOSED",
108
129
  to: "OPEN",
109
130
  eventName: "launch",
110
- guard: { "===": [{ var: "event.agent" }, { var: "state.creator" }] },
131
+ guard: signerIsParty("state.creator"),
111
132
  effect: {
112
133
  merge: [
113
134
  { var: "state" },
114
135
  {
115
136
  status: "OPEN",
116
- launchedAt: { var: "$timestamp" },
137
+ launchedAt: { var: "$ordinal" },
117
138
  pledges: [],
118
139
  totalPledged: 0,
119
140
  backerCount: 0,
@@ -126,11 +147,11 @@ export const marketCrowdfundDef = defineFiberApp({
126
147
  from: "PROPOSED",
127
148
  to: "CANCELLED",
128
149
  eventName: "cancel",
129
- guard: { "===": [{ var: "event.agent" }, { var: "state.creator" }] },
150
+ guard: signerIsParty("state.creator"),
130
151
  effect: {
131
152
  merge: [
132
153
  { var: "state" },
133
- { status: "CANCELLED", cancelledAt: { var: "$timestamp" } },
154
+ { status: "CANCELLED", cancelledAt: { var: "$ordinal" } },
134
155
  ],
135
156
  },
136
157
  dependencies: [],
@@ -142,14 +163,14 @@ export const marketCrowdfundDef = defineFiberApp({
142
163
  guard: {
143
164
  and: [
144
165
  { ">": [{ var: "event.amount" }, 0] },
145
- { "!==": [{ var: "event.agent" }, { var: "state.creator" }] },
166
+ signerIsNotParty("state.creator"),
146
167
  {
147
168
  or: [
148
169
  { "!": [{ var: "state.minPledge" }] },
149
170
  { ">=": [{ var: "event.amount" }, { var: "state.minPledge" }] },
150
171
  ],
151
172
  },
152
- { "<=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
173
+ { "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
153
174
  ],
154
175
  },
155
176
  effect: {
@@ -164,7 +185,7 @@ export const marketCrowdfundDef = defineFiberApp({
164
185
  backer: { var: "event.agent" },
165
186
  amount: { var: "event.amount" },
166
187
  rewardTier: { var: "event.rewardTier" },
167
- pledgedAt: { var: "$timestamp" },
188
+ pledgedAt: { var: "$ordinal" },
168
189
  },
169
190
  ],
170
191
  ],
@@ -185,16 +206,18 @@ export const marketCrowdfundDef = defineFiberApp({
185
206
  guard: {
186
207
  and: [
187
208
  { ">": [{ var: "event.additionalAmount" }, 0] },
188
- { "<=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
209
+ { "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
189
210
  {
190
211
  ">": [
191
212
  {
192
- size: {
193
- filter: [
194
- { var: "state.pledges" },
195
- { "===": [{ var: "backer" }, { var: "event.agent" }] },
196
- ],
197
- },
213
+ length: [
214
+ {
215
+ filter: [
216
+ { var: "state.pledges" },
217
+ { "===": [{ var: "backer" }, { var: "event.agent" }] },
218
+ ],
219
+ },
220
+ ],
198
221
  },
199
222
  0,
200
223
  ],
@@ -223,7 +246,7 @@ export const marketCrowdfundDef = defineFiberApp({
223
246
  guard: {
224
247
  and: [
225
248
  { ">=": [{ var: "state.totalPledged" }, { var: "state.threshold" }] },
226
- { ">=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
249
+ { ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
227
250
  ],
228
251
  },
229
252
  effect: {
@@ -231,7 +254,7 @@ export const marketCrowdfundDef = defineFiberApp({
231
254
  { var: "state" },
232
255
  {
233
256
  status: "FUNDED",
234
- fundedAt: { var: "$timestamp" },
257
+ fundedAt: { var: "$ordinal" },
235
258
  stretchGoalsReached: {
236
259
  filter: [
237
260
  { var: "state.stretchGoals" },
@@ -250,7 +273,7 @@ export const marketCrowdfundDef = defineFiberApp({
250
273
  guard: {
251
274
  and: [
252
275
  { "<": [{ var: "state.totalPledged" }, { var: "state.threshold" }] },
253
- { ">=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
276
+ { ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
254
277
  ],
255
278
  },
256
279
  effect: {
@@ -258,7 +281,7 @@ export const marketCrowdfundDef = defineFiberApp({
258
281
  { var: "state" },
259
282
  {
260
283
  status: "REFUNDED",
261
- refundedAt: { var: "$timestamp" },
284
+ refundedAt: { var: "$ordinal" },
262
285
  reason: "threshold_not_met",
263
286
  },
264
287
  ],
@@ -274,12 +297,14 @@ export const marketCrowdfundDef = defineFiberApp({
274
297
  {
275
298
  ">": [
276
299
  {
277
- size: {
278
- filter: [
279
- { var: "state.pledges" },
280
- { "===": [{ var: "backer" }, { var: "event.agent" }] },
281
- ],
282
- },
300
+ length: [
301
+ {
302
+ filter: [
303
+ { var: "state.pledges" },
304
+ { "===": [{ var: "backer" }, { var: "event.agent" }] },
305
+ ],
306
+ },
307
+ ],
283
308
  },
284
309
  0,
285
310
  ],
@@ -1,4 +1,5 @@
1
1
  import { defineFiberApp } from "../../../schema/fiber-app.js";
2
+ import { signerIsParty, signerIsAnyParty } from "../../../schema/guards.js";
2
3
  /**
3
4
  * Collective purchasing with quantity thresholds and tiered pricing.
4
5
  */
@@ -80,41 +81,65 @@ export const marketGroupBuyDef = defineFiberApp({
80
81
  PROPOSED: {
81
82
  id: "PROPOSED",
82
83
  isFinal: false,
83
- metadata: { description: "Group buy created but not yet open" },
84
+ metadata: {
85
+ label: "Proposed",
86
+ description: "Group buy created but not yet open",
87
+ category: "initial",
88
+ },
84
89
  },
85
90
  OPEN: {
86
91
  id: "OPEN",
87
92
  isFinal: false,
88
- metadata: { description: "Accepting orders" },
93
+ metadata: {
94
+ label: "Open",
95
+ description: "Accepting orders",
96
+ category: "active",
97
+ },
89
98
  },
90
99
  THRESHOLD_MET: {
91
100
  id: "THRESHOLD_MET",
92
101
  isFinal: false,
93
102
  metadata: {
103
+ label: "Threshold met",
94
104
  description: "Minimum quantity reached, continuing for better tier",
105
+ category: "active",
95
106
  },
96
107
  },
97
108
  PROCESSING: {
98
109
  id: "PROCESSING",
99
110
  isFinal: false,
100
111
  metadata: {
112
+ label: "Processing",
101
113
  description: "Order placed with vendor, awaiting fulfillment",
114
+ category: "pending",
102
115
  },
103
116
  },
104
117
  FULFILLED: {
105
118
  id: "FULFILLED",
106
119
  isFinal: true,
107
- metadata: { description: "All items delivered to buyers" },
120
+ metadata: {
121
+ label: "Fulfilled",
122
+ description: "All items delivered to buyers",
123
+ category: "terminal",
124
+ },
108
125
  },
109
126
  REFUNDED: {
110
127
  id: "REFUNDED",
111
128
  isFinal: true,
112
- metadata: { description: "Threshold not met, all orders refunded" },
129
+ metadata: {
130
+ label: "Refunded",
131
+ description: "Threshold not met, all orders refunded",
132
+ category: "terminal",
133
+ },
113
134
  },
114
135
  CANCELLED: {
115
136
  id: "CANCELLED",
116
137
  isFinal: true,
117
- metadata: { description: "Group buy cancelled" },
138
+ metadata: {
139
+ label: "Cancelled",
140
+ description: "Group buy cancelled",
141
+ category: "terminal",
142
+ },
118
143
  },
119
144
  },
120
145
  initialState: "PROPOSED",
@@ -123,13 +148,13 @@ export const marketGroupBuyDef = defineFiberApp({
123
148
  from: "PROPOSED",
124
149
  to: "OPEN",
125
150
  eventName: "open",
126
- guard: { "===": [{ var: "event.agent" }, { var: "state.organizer" }] },
151
+ guard: signerIsParty("state.organizer"),
127
152
  effect: {
128
153
  merge: [
129
154
  { var: "state" },
130
155
  {
131
156
  status: "OPEN",
132
- openedAt: { var: "$timestamp" },
157
+ openedAt: { var: "$ordinal" },
133
158
  orders: [],
134
159
  totalQuantity: 0,
135
160
  currentTier: 0,
@@ -142,11 +167,11 @@ export const marketGroupBuyDef = defineFiberApp({
142
167
  from: "PROPOSED",
143
168
  to: "CANCELLED",
144
169
  eventName: "cancel",
145
- guard: { "===": [{ var: "event.agent" }, { var: "state.organizer" }] },
170
+ guard: signerIsParty("state.organizer"),
146
171
  effect: {
147
172
  merge: [
148
173
  { var: "state" },
149
- { status: "CANCELLED", cancelledAt: { var: "$timestamp" } },
174
+ { status: "CANCELLED", cancelledAt: { var: "$ordinal" } },
150
175
  ],
151
176
  },
152
177
  dependencies: [],
@@ -166,7 +191,7 @@ export const marketGroupBuyDef = defineFiberApp({
166
191
  },
167
192
  ],
168
193
  },
169
- { "<=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
194
+ { "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
170
195
  ],
171
196
  },
172
197
  effect: {
@@ -181,7 +206,7 @@ export const marketGroupBuyDef = defineFiberApp({
181
206
  buyer: { var: "event.agent" },
182
207
  quantity: { var: "event.quantity" },
183
208
  shippingInfo: { var: "event.shippingInfo" },
184
- orderedAt: { var: "$timestamp" },
209
+ orderedAt: { var: "$ordinal" },
185
210
  },
186
211
  ],
187
212
  ],
@@ -206,7 +231,7 @@ export const marketGroupBuyDef = defineFiberApp({
206
231
  { var: "state" },
207
232
  {
208
233
  status: "THRESHOLD_MET",
209
- thresholdMetAt: { var: "$timestamp" },
234
+ thresholdMetAt: { var: "$ordinal" },
210
235
  currentTier: {
211
236
  reduce: [
212
237
  { var: "state.priceTiers" },
@@ -237,7 +262,7 @@ export const marketGroupBuyDef = defineFiberApp({
237
262
  guard: {
238
263
  and: [
239
264
  { ">": [{ var: "event.quantity" }, 0] },
240
- { "<=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
265
+ { "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
241
266
  ],
242
267
  },
243
268
  effect: {
@@ -252,7 +277,7 @@ export const marketGroupBuyDef = defineFiberApp({
252
277
  buyer: { var: "event.agent" },
253
278
  quantity: { var: "event.quantity" },
254
279
  shippingInfo: { var: "event.shippingInfo" },
255
- orderedAt: { var: "$timestamp" },
280
+ orderedAt: { var: "$ordinal" },
256
281
  },
257
282
  ],
258
283
  ],
@@ -292,13 +317,13 @@ export const marketGroupBuyDef = defineFiberApp({
292
317
  from: "THRESHOLD_MET",
293
318
  to: "PROCESSING",
294
319
  eventName: "finalize",
295
- guard: { ">=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
320
+ guard: { ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
296
321
  effect: {
297
322
  merge: [
298
323
  { var: "state" },
299
324
  {
300
325
  status: "PROCESSING",
301
- finalizedAt: { var: "$timestamp" },
326
+ finalizedAt: { var: "$ordinal" },
302
327
  finalTier: { var: "state.currentTier" },
303
328
  finalPricePerUnit: {
304
329
  var: {
@@ -318,18 +343,13 @@ export const marketGroupBuyDef = defineFiberApp({
318
343
  from: "PROCESSING",
319
344
  to: "FULFILLED",
320
345
  eventName: "fulfill",
321
- guard: {
322
- or: [
323
- { "===": [{ var: "event.agent" }, { var: "state.vendor" }] },
324
- { "===": [{ var: "event.agent" }, { var: "state.organizer" }] },
325
- ],
326
- },
346
+ guard: signerIsAnyParty(["state.vendor", "state.organizer"]),
327
347
  effect: {
328
348
  merge: [
329
349
  { var: "state" },
330
350
  {
331
351
  status: "FULFILLED",
332
- fulfilledAt: { var: "$timestamp" },
352
+ fulfilledAt: { var: "$ordinal" },
333
353
  trackingInfo: { var: "event.trackingInfo" },
334
354
  },
335
355
  ],
@@ -345,7 +365,7 @@ export const marketGroupBuyDef = defineFiberApp({
345
365
  {
346
366
  "<": [{ var: "state.totalQuantity" }, { var: "state.minQuantity" }],
347
367
  },
348
- { ">=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
368
+ { ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
349
369
  ],
350
370
  },
351
371
  effect: {
@@ -353,7 +373,7 @@ export const marketGroupBuyDef = defineFiberApp({
353
373
  { var: "state" },
354
374
  {
355
375
  status: "REFUNDED",
356
- refundedAt: { var: "$timestamp" },
376
+ refundedAt: { var: "$ordinal" },
357
377
  reason: "threshold_not_met",
358
378
  },
359
379
  ],
@@ -369,12 +389,14 @@ export const marketGroupBuyDef = defineFiberApp({
369
389
  {
370
390
  ">": [
371
391
  {
372
- size: {
373
- filter: [
374
- { var: "state.orders" },
375
- { "===": [{ var: "buyer" }, { var: "event.agent" }] },
376
- ],
377
- },
392
+ length: [
393
+ {
394
+ filter: [
395
+ { var: "state.orders" },
396
+ { "===": [{ var: "buyer" }, { var: "event.agent" }] },
397
+ ],
398
+ },
399
+ ],
378
400
  },
379
401
  0,
380
402
  ],