@ottochain/sdk 2.3.0 → 2.5.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 (287) hide show
  1. package/dist/cjs/apps/compute/index.js +33 -0
  2. package/dist/cjs/apps/compute/state-machines/compute-rule110.js +164 -0
  3. package/dist/cjs/apps/compute/state-machines/index.js +9 -0
  4. package/dist/cjs/apps/contracts/index.js +16 -9
  5. package/dist/cjs/apps/contracts/state-machines/contract-agreement.js +134 -161
  6. package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +192 -170
  7. package/dist/cjs/apps/contracts/state-machines/contract-universal.js +46 -58
  8. package/dist/cjs/apps/corporate/index.js +2 -2
  9. package/dist/cjs/apps/corporate/state-machines/corp-board.js +500 -456
  10. package/dist/cjs/apps/corporate/state-machines/corp-entity.js +487 -361
  11. package/dist/cjs/apps/corporate/state-machines/corp-securities.js +769 -576
  12. package/dist/cjs/apps/corporate/state-machines/corp-shareholders.js +567 -557
  13. package/dist/cjs/apps/governance/index.js +21 -21
  14. package/dist/cjs/apps/governance/state-machines/dao-multisig.js +188 -209
  15. package/dist/cjs/apps/governance/state-machines/dao-reputation.js +181 -228
  16. package/dist/cjs/apps/governance/state-machines/dao-single.js +105 -88
  17. package/dist/cjs/apps/governance/state-machines/dao-token.js +199 -227
  18. package/dist/cjs/apps/governance/state-machines/governance-simple.js +231 -231
  19. package/dist/cjs/apps/governance/state-machines/governance-universal.js +64 -64
  20. package/dist/cjs/apps/identity/constants.js +55 -22
  21. package/dist/cjs/apps/identity/index.js +28 -12
  22. package/dist/cjs/apps/identity/state-machines/identity-agent.js +124 -158
  23. package/dist/cjs/apps/identity/state-machines/identity-oracle.js +158 -173
  24. package/dist/cjs/apps/identity/state-machines/identity-registry.js +262 -0
  25. package/dist/cjs/apps/identity/state-machines/identity-universal.js +51 -57
  26. package/dist/cjs/apps/identity/state-machines/index.js +3 -1
  27. package/dist/cjs/apps/index.js +22 -8
  28. package/dist/cjs/apps/lending/assets.js +247 -0
  29. package/dist/cjs/apps/lending/credit-scoring.js +87 -0
  30. package/dist/cjs/apps/lending/eligibility.js +105 -0
  31. package/dist/cjs/apps/lending/index.js +91 -0
  32. package/dist/cjs/apps/lending/state-machines/index.js +9 -0
  33. package/dist/cjs/apps/lending/state-machines/lending-zk-loan.js +433 -0
  34. package/dist/cjs/apps/markets/index.js +22 -12
  35. package/dist/cjs/apps/markets/state-machines/market-auction.js +116 -134
  36. package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +131 -141
  37. package/dist/cjs/apps/markets/state-machines/market-group-buy.js +163 -184
  38. package/dist/cjs/apps/markets/state-machines/market-prediction.js +226 -233
  39. package/dist/cjs/apps/markets/state-machines/market-universal.js +65 -80
  40. package/dist/cjs/apps/oracles/index.js +3 -3
  41. package/dist/cjs/apps/privacy/index.js +67 -0
  42. package/dist/cjs/apps/privacy/state-machines/index.js +17 -0
  43. package/dist/cjs/apps/privacy/state-machines/mixer-ddhRing.js +286 -0
  44. package/dist/cjs/apps/privacy/state-machines/note-pool.js +476 -0
  45. package/dist/cjs/apps/staked-pool/assets.js +103 -0
  46. package/dist/cjs/apps/staked-pool/base.js +498 -0
  47. package/dist/cjs/apps/staked-pool/consumer.js +55 -0
  48. package/dist/cjs/apps/staked-pool/index.js +83 -0
  49. package/dist/cjs/apps/staked-pool/state-machines/index.js +12 -0
  50. package/dist/cjs/apps/staked-pool/state-machines/staked-pool-base.js +49 -0
  51. package/dist/cjs/apps/staked-pool/state-machines/staked-pool-oracle.js +131 -0
  52. package/dist/cjs/errors.js +3 -3
  53. package/dist/cjs/generated/google/protobuf/struct.js +5 -5
  54. package/dist/cjs/generated/google/protobuf/timestamp.js +1 -1
  55. package/dist/cjs/generated/index.js +11 -7
  56. package/dist/cjs/generated/openapi.js +6 -0
  57. package/dist/cjs/generated/ottochain/apps/contracts/v1/contract.js +51 -51
  58. package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate.js +20 -21
  59. package/dist/cjs/generated/ottochain/apps/governance/v1/governance.js +14 -14
  60. package/dist/cjs/generated/ottochain/apps/identity/v1/attestation.js +5 -5
  61. package/dist/cjs/generated/ottochain/apps/identity/v1/identity.js +125 -131
  62. package/dist/cjs/generated/ottochain/apps/markets/v1/market.js +108 -108
  63. package/dist/cjs/generated/ottochain/v1/common.js +5 -5
  64. package/dist/cjs/generated/ottochain/v1/fiber.js +44 -6
  65. package/dist/cjs/generated/ottochain/v1/messages.js +1 -1
  66. package/dist/cjs/generated/ottochain/v1/records.js +1 -1
  67. package/dist/cjs/index.js +58 -7
  68. package/dist/cjs/openapi.js +2 -0
  69. package/dist/cjs/ottochain/drop-nulls.js +1 -2
  70. package/dist/cjs/ottochain/genesis-manifest.js +17 -11
  71. package/dist/cjs/ottochain/index.js +23 -13
  72. package/dist/cjs/ottochain/metagraph-client.js +81 -16
  73. package/dist/cjs/ottochain/snapshot.js +13 -16
  74. package/dist/cjs/ottochain/transaction.js +67 -14
  75. package/dist/cjs/ottochain/types.js +16 -2
  76. package/dist/cjs/privacy/index.js +14 -0
  77. package/dist/cjs/privacy/sealed-bid.js +213 -0
  78. package/dist/cjs/privacy/shield-app.js +131 -0
  79. package/dist/cjs/schema/effects.js +156 -0
  80. package/dist/cjs/schema/fiber-app.js +150 -15
  81. package/dist/cjs/schema/guard-lint.js +343 -0
  82. package/dist/cjs/schema/guards.js +246 -0
  83. package/dist/cjs/signing.js +80 -0
  84. package/dist/cjs/templates/asset-policy.js +190 -0
  85. package/dist/cjs/templates/index.js +86 -0
  86. package/dist/cjs/templates/machine.js +130 -0
  87. package/dist/cjs/templates/migration.js +39 -0
  88. package/dist/cjs/templates/state-shape.js +38 -0
  89. package/dist/cjs/types.js +2 -3
  90. package/dist/cjs/validation.js +9 -11
  91. package/dist/cjs/verify.js +9 -4
  92. package/dist/cjs/zk/commit.js +53 -0
  93. package/dist/cjs/zk/guard.js +107 -0
  94. package/dist/cjs/zk/index.js +48 -0
  95. package/dist/cjs/zk/preimage.js +37 -0
  96. package/dist/cjs/zk/prover.js +87 -0
  97. package/dist/cjs/zk/registry.js +62 -0
  98. package/dist/cjs/zk/types.js +28 -0
  99. package/dist/cjs/zk/witness.js +19 -0
  100. package/dist/esm/apps/compute/index.js +29 -0
  101. package/dist/esm/apps/compute/state-machines/compute-rule110.js +161 -0
  102. package/dist/esm/apps/compute/state-machines/index.js +5 -0
  103. package/dist/esm/apps/contracts/index.js +9 -5
  104. package/dist/esm/apps/contracts/state-machines/contract-agreement.js +135 -162
  105. package/dist/esm/apps/contracts/state-machines/contract-escrow.js +193 -171
  106. package/dist/esm/apps/contracts/state-machines/contract-universal.js +47 -59
  107. package/dist/esm/apps/corporate/index.js +2 -2
  108. package/dist/esm/apps/corporate/state-machines/corp-board.js +501 -457
  109. package/dist/esm/apps/corporate/state-machines/corp-entity.js +488 -362
  110. package/dist/esm/apps/corporate/state-machines/corp-securities.js +770 -577
  111. package/dist/esm/apps/corporate/state-machines/corp-shareholders.js +568 -558
  112. package/dist/esm/apps/governance/index.js +10 -10
  113. package/dist/esm/apps/governance/state-machines/dao-multisig.js +189 -210
  114. package/dist/esm/apps/governance/state-machines/dao-reputation.js +182 -229
  115. package/dist/esm/apps/governance/state-machines/dao-single.js +106 -89
  116. package/dist/esm/apps/governance/state-machines/dao-token.js +200 -228
  117. package/dist/esm/apps/governance/state-machines/governance-simple.js +232 -232
  118. package/dist/esm/apps/governance/state-machines/governance-universal.js +65 -65
  119. package/dist/esm/apps/identity/constants.js +52 -21
  120. package/dist/esm/apps/identity/index.js +14 -9
  121. package/dist/esm/apps/identity/state-machines/identity-agent.js +125 -159
  122. package/dist/esm/apps/identity/state-machines/identity-oracle.js +159 -174
  123. package/dist/esm/apps/identity/state-machines/identity-registry.js +259 -0
  124. package/dist/esm/apps/identity/state-machines/identity-universal.js +52 -58
  125. package/dist/esm/apps/identity/state-machines/index.js +1 -0
  126. package/dist/esm/apps/index.js +9 -5
  127. package/dist/esm/apps/lending/assets.js +231 -0
  128. package/dist/esm/apps/lending/credit-scoring.js +81 -0
  129. package/dist/esm/apps/lending/eligibility.js +99 -0
  130. package/dist/esm/apps/lending/index.js +69 -0
  131. package/dist/esm/apps/lending/state-machines/index.js +5 -0
  132. package/dist/esm/apps/lending/state-machines/lending-zk-loan.js +430 -0
  133. package/dist/esm/apps/markets/index.js +11 -7
  134. package/dist/esm/apps/markets/state-machines/market-auction.js +117 -135
  135. package/dist/esm/apps/markets/state-machines/market-crowdfund.js +132 -142
  136. package/dist/esm/apps/markets/state-machines/market-group-buy.js +164 -185
  137. package/dist/esm/apps/markets/state-machines/market-prediction.js +227 -234
  138. package/dist/esm/apps/markets/state-machines/market-universal.js +66 -81
  139. package/dist/esm/apps/oracles/index.js +3 -3
  140. package/dist/esm/apps/privacy/index.js +56 -0
  141. package/dist/esm/apps/privacy/state-machines/index.js +6 -0
  142. package/dist/esm/apps/privacy/state-machines/mixer-ddhRing.js +282 -0
  143. package/dist/esm/apps/privacy/state-machines/note-pool.js +470 -0
  144. package/dist/esm/apps/staked-pool/assets.js +91 -0
  145. package/dist/esm/apps/staked-pool/base.js +493 -0
  146. package/dist/esm/apps/staked-pool/consumer.js +49 -0
  147. package/dist/esm/apps/staked-pool/index.js +60 -0
  148. package/dist/esm/apps/staked-pool/state-machines/index.js +6 -0
  149. package/dist/esm/apps/staked-pool/state-machines/staked-pool-base.js +46 -0
  150. package/dist/esm/apps/staked-pool/state-machines/staked-pool-oracle.js +127 -0
  151. package/dist/esm/generated/google/protobuf/struct.js +1 -1
  152. package/dist/esm/generated/google/protobuf/timestamp.js +1 -1
  153. package/dist/esm/generated/index.js +9 -5
  154. package/dist/esm/generated/openapi.js +5 -0
  155. package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +47 -47
  156. package/dist/esm/generated/ottochain/apps/corporate/v1/corporate.js +1 -1
  157. package/dist/esm/generated/ottochain/apps/governance/v1/governance.js +1 -1
  158. package/dist/esm/generated/ottochain/apps/identity/v1/attestation.js +1 -1
  159. package/dist/esm/generated/ottochain/apps/identity/v1/identity.js +115 -121
  160. package/dist/esm/generated/ottochain/apps/markets/v1/market.js +101 -101
  161. package/dist/esm/generated/ottochain/v1/common.js +1 -1
  162. package/dist/esm/generated/ottochain/v1/fiber.js +40 -2
  163. package/dist/esm/generated/ottochain/v1/messages.js +1 -1
  164. package/dist/esm/generated/ottochain/v1/records.js +1 -1
  165. package/dist/esm/index.js +28 -3
  166. package/dist/esm/openapi.js +1 -0
  167. package/dist/esm/ottochain/genesis-manifest.js +15 -9
  168. package/dist/esm/ottochain/index.js +2 -3
  169. package/dist/esm/ottochain/metagraph-client.js +81 -16
  170. package/dist/esm/ottochain/snapshot.js +6 -8
  171. package/dist/esm/ottochain/transaction.js +51 -3
  172. package/dist/esm/ottochain/types.js +15 -1
  173. package/dist/esm/privacy/index.js +6 -0
  174. package/dist/esm/privacy/sealed-bid.js +209 -0
  175. package/dist/esm/privacy/shield-app.js +127 -0
  176. package/dist/esm/schema/effects.js +145 -0
  177. package/dist/esm/schema/fiber-app.js +139 -8
  178. package/dist/esm/schema/guard-lint.js +337 -0
  179. package/dist/esm/schema/guards.js +228 -0
  180. package/dist/esm/signing.js +74 -0
  181. package/dist/esm/templates/asset-policy.js +182 -0
  182. package/dist/esm/templates/index.js +41 -0
  183. package/dist/esm/templates/machine.js +125 -0
  184. package/dist/esm/templates/migration.js +34 -0
  185. package/dist/esm/templates/state-shape.js +34 -0
  186. package/dist/esm/validation.js +1 -3
  187. package/dist/esm/verify.js +8 -2
  188. package/dist/esm/zk/commit.js +44 -0
  189. package/dist/esm/zk/guard.js +99 -0
  190. package/dist/esm/zk/index.js +19 -0
  191. package/dist/esm/zk/preimage.js +30 -0
  192. package/dist/esm/zk/prover.js +82 -0
  193. package/dist/esm/zk/registry.js +55 -0
  194. package/dist/esm/zk/types.js +25 -0
  195. package/dist/esm/zk/witness.js +15 -0
  196. package/dist/types/apps/compute/index.d.ts +176 -0
  197. package/dist/types/apps/compute/state-machines/compute-rule110.d.ts +157 -0
  198. package/dist/types/apps/compute/state-machines/index.d.ts +5 -0
  199. package/dist/types/apps/contracts/index.d.ts +81 -221
  200. package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +23 -98
  201. package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +49 -115
  202. package/dist/types/apps/contracts/state-machines/contract-universal.d.ts +4 -4
  203. package/dist/types/apps/corporate/index.d.ts +1176 -440
  204. package/dist/types/apps/corporate/state-machines/corp-board.d.ts +271 -135
  205. package/dist/types/apps/corporate/state-machines/corp-entity.d.ts +279 -74
  206. package/dist/types/apps/corporate/state-machines/corp-securities.d.ts +373 -149
  207. package/dist/types/apps/corporate/state-machines/corp-shareholders.d.ts +252 -80
  208. package/dist/types/apps/governance/index.d.ts +368 -470
  209. package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +92 -107
  210. package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +61 -85
  211. package/dist/types/apps/governance/state-machines/dao-single.d.ts +25 -47
  212. package/dist/types/apps/governance/state-machines/dao-token.d.ts +79 -68
  213. package/dist/types/apps/governance/state-machines/governance-simple.d.ts +95 -125
  214. package/dist/types/apps/governance/state-machines/governance-universal.d.ts +6 -6
  215. package/dist/types/apps/identity/constants.d.ts +33 -5
  216. package/dist/types/apps/identity/index.d.ts +415 -131
  217. package/dist/types/apps/identity/state-machines/identity-agent.d.ts +23 -23
  218. package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +27 -98
  219. package/dist/types/apps/identity/state-machines/identity-registry.d.ts +379 -0
  220. package/dist/types/apps/identity/state-machines/identity-universal.d.ts +4 -4
  221. package/dist/types/apps/identity/state-machines/index.d.ts +1 -0
  222. package/dist/types/apps/index.d.ts +9 -5
  223. package/dist/types/apps/lending/assets.d.ts +258 -0
  224. package/dist/types/apps/lending/credit-scoring.d.ts +80 -0
  225. package/dist/types/apps/lending/eligibility.d.ts +83 -0
  226. package/dist/types/apps/lending/index.d.ts +556 -0
  227. package/dist/types/apps/lending/state-machines/index.d.ts +5 -0
  228. package/dist/types/apps/lending/state-machines/lending-zk-loan.d.ts +536 -0
  229. package/dist/types/apps/markets/index.d.ts +181 -276
  230. package/dist/types/apps/markets/state-machines/market-auction.d.ts +25 -49
  231. package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +35 -53
  232. package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +35 -61
  233. package/dist/types/apps/markets/state-machines/market-prediction.d.ts +65 -86
  234. package/dist/types/apps/markets/state-machines/market-universal.d.ts +12 -12
  235. package/dist/types/apps/oracles/index.d.ts +1 -1
  236. package/dist/types/apps/privacy/index.d.ts +328 -0
  237. package/dist/types/apps/privacy/state-machines/index.d.ts +6 -0
  238. package/dist/types/apps/privacy/state-machines/mixer-ddhRing.d.ts +337 -0
  239. package/dist/types/apps/privacy/state-machines/note-pool.d.ts +196 -0
  240. package/dist/types/apps/staked-pool/assets.d.ts +53 -0
  241. package/dist/types/apps/staked-pool/base.d.ts +80 -0
  242. package/dist/types/apps/staked-pool/consumer.d.ts +29 -0
  243. package/dist/types/apps/staked-pool/index.d.ts +51 -0
  244. package/dist/types/apps/staked-pool/state-machines/index.d.ts +6 -0
  245. package/dist/types/apps/staked-pool/state-machines/staked-pool-base.d.ts +8 -0
  246. package/dist/types/apps/staked-pool/state-machines/staked-pool-oracle.d.ts +34 -0
  247. package/dist/types/generated/index.d.ts +5 -5
  248. package/dist/types/generated/openapi.d.ts +1270 -0
  249. package/dist/types/generated/ottochain/apps/contracts/v1/contract.d.ts +5 -5
  250. package/dist/types/generated/ottochain/apps/identity/v1/identity.d.ts +12 -12
  251. package/dist/types/generated/ottochain/apps/markets/v1/market.d.ts +11 -11
  252. package/dist/types/generated/ottochain/v1/fiber.d.ts +7 -0
  253. package/dist/types/index.d.ts +7 -3
  254. package/dist/types/openapi.d.ts +24 -0
  255. package/dist/types/ottochain/genesis-manifest.d.ts +11 -5
  256. package/dist/types/ottochain/index.d.ts +5 -6
  257. package/dist/types/ottochain/metagraph-client.d.ts +49 -7
  258. package/dist/types/ottochain/snapshot.d.ts +6 -6
  259. package/dist/types/ottochain/transaction.d.ts +41 -1
  260. package/dist/types/ottochain/types.d.ts +336 -31
  261. package/dist/types/privacy/index.d.ts +6 -0
  262. package/dist/types/privacy/sealed-bid.d.ts +348 -0
  263. package/dist/types/privacy/shield-app.d.ts +48 -0
  264. package/dist/types/schema/effects.d.ts +141 -0
  265. package/dist/types/schema/fiber-app.d.ts +282 -2
  266. package/dist/types/schema/guard-lint.d.ts +111 -0
  267. package/dist/types/schema/guards.d.ts +146 -0
  268. package/dist/types/signing.d.ts +45 -0
  269. package/dist/types/templates/asset-policy.d.ts +119 -0
  270. package/dist/types/templates/index.d.ts +26 -0
  271. package/dist/types/templates/machine.d.ts +139 -0
  272. package/dist/types/templates/migration.d.ts +34 -0
  273. package/dist/types/templates/state-shape.d.ts +30 -0
  274. package/dist/types/validation.d.ts +22 -217
  275. package/dist/types/verify.d.ts +4 -0
  276. package/dist/types/zk/commit.d.ts +28 -0
  277. package/dist/types/zk/guard.d.ts +46 -0
  278. package/dist/types/zk/index.d.ts +19 -0
  279. package/dist/types/zk/preimage.d.ts +10 -0
  280. package/dist/types/zk/prover.d.ts +34 -0
  281. package/dist/types/zk/registry.d.ts +34 -0
  282. package/dist/types/zk/types.d.ts +33 -0
  283. package/dist/types/zk/witness.d.ts +40 -0
  284. package/package.json +47 -15
  285. package/dist/cjs/ottochain/normalize.js +0 -186
  286. package/dist/esm/ottochain/normalize.js +0 -179
  287. package/dist/types/ottochain/normalize.d.ts +0 -79
@@ -2,161 +2,162 @@
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
  */
8
9
  exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
9
10
  metadata: {
10
- name: "MarketGroupBuy",
11
- app: "markets",
12
- type: "groupBuy",
13
- version: "1.0.0",
14
- description: "Collective purchasing with quantity thresholds and tiered pricing",
11
+ name: 'MarketGroupBuy',
12
+ app: 'markets',
13
+ type: 'groupBuy',
14
+ version: '1.0.0',
15
+ description: 'Collective purchasing with quantity thresholds and tiered pricing',
15
16
  crossReferences: {
16
17
  vendorIdentityId: "Links to vendor's IdentityAgent",
17
- escrowId: "Links to ContractEscrow for payment custody",
18
+ escrowId: 'Links to ContractEscrow for payment custody',
18
19
  },
19
20
  },
20
21
  createSchema: {
21
- required: ["organizer", "minQuantity", "deadline"],
22
+ required: ['organizer', 'minQuantity', 'deadline'],
22
23
  properties: {
23
24
  organizer: {
24
- type: "address",
25
- description: "DAG address of group buy organizer",
25
+ type: 'address',
26
+ description: 'DAG address of group buy organizer',
26
27
  immutable: true,
27
28
  },
28
29
  minQuantity: {
29
- type: "number",
30
+ type: 'number',
30
31
  minimum: 1,
31
- description: "Minimum quantity to proceed",
32
+ description: 'Minimum quantity to proceed',
32
33
  immutable: true,
33
34
  },
34
35
  deadline: {
35
- type: "timestamp",
36
- description: "Order deadline",
36
+ type: 'timestamp',
37
+ description: 'Order deadline',
37
38
  immutable: true,
38
39
  },
39
- vendor: { type: "address", description: "DAG address of the vendor" },
40
+ vendor: { type: 'address', description: 'DAG address of the vendor' },
40
41
  maxPerBuyer: {
41
- type: "number",
42
+ type: 'number',
42
43
  minimum: 1,
43
- description: "Max quantity per buyer",
44
+ description: 'Max quantity per buyer',
44
45
  },
45
46
  priceTiers: {
46
- type: "array",
47
- description: "Quantity-based pricing tiers",
47
+ type: 'array',
48
+ description: 'Quantity-based pricing tiers',
48
49
  },
49
50
  },
50
51
  },
51
52
  stateSchema: {
52
53
  properties: {
53
- status: { type: "string", computed: true },
54
- organizer: { type: "address", immutable: true },
55
- vendor: { type: "address" },
56
- minQuantity: { type: "number", immutable: true },
57
- maxPerBuyer: { type: "number" },
58
- deadline: { type: "timestamp", immutable: true },
59
- priceTiers: { type: "array" },
60
- orders: { type: "array", computed: true },
61
- totalQuantity: { type: "number", computed: true },
62
- currentTier: { type: "number", computed: true },
63
- refundsClaimed: { type: "array", computed: true },
54
+ status: { type: 'string', computed: true },
55
+ organizer: { type: 'address', immutable: true },
56
+ vendor: { type: 'address' },
57
+ minQuantity: { type: 'number', immutable: true },
58
+ maxPerBuyer: { type: 'number' },
59
+ deadline: { type: 'timestamp', immutable: true },
60
+ priceTiers: { type: 'array' },
61
+ orders: { type: 'array', computed: true },
62
+ totalQuantity: { type: 'number', computed: true },
63
+ currentTier: { type: 'number', computed: true },
64
+ refundsClaimed: { type: 'array', computed: true },
64
65
  },
65
66
  },
66
67
  eventSchemas: {
67
- open: { description: "Open the group buy for orders" },
68
- cancel: { description: "Cancel the group buy" },
68
+ open: { description: 'Open the group buy for orders' },
69
+ cancel: { description: 'Cancel the group buy' },
69
70
  order: {
70
- description: "Place an order",
71
- required: ["quantity"],
71
+ description: 'Place an order',
72
+ required: ['quantity'],
72
73
  properties: {
73
- quantity: { type: "number", minimum: 1 },
74
- shippingInfo: { type: "object" },
74
+ quantity: { type: 'number', minimum: 1 },
75
+ shippingInfo: { type: 'object' },
75
76
  },
76
77
  },
77
- check_threshold: { description: "Check if minimum threshold reached" },
78
- finalize: { description: "Finalize after deadline" },
79
- fulfill: { description: "Mark group buy as fulfilled by vendor/organizer" },
80
- claim_refund: { description: "Claim refund if threshold not met" },
78
+ check_threshold: { description: 'Check if minimum threshold reached' },
79
+ finalize: { description: 'Finalize after deadline' },
80
+ fulfill: { description: 'Mark group buy as fulfilled by vendor/organizer' },
81
+ claim_refund: { description: 'Claim refund if threshold not met' },
81
82
  },
82
83
  states: {
83
84
  PROPOSED: {
84
- id: "PROPOSED",
85
+ id: 'PROPOSED',
85
86
  isFinal: false,
86
87
  metadata: {
87
- label: "Proposed",
88
- description: "Group buy created but not yet open",
89
- category: "initial",
88
+ label: 'Proposed',
89
+ description: 'Group buy created but not yet open',
90
+ category: 'initial',
90
91
  },
91
92
  },
92
93
  OPEN: {
93
- id: "OPEN",
94
+ id: 'OPEN',
94
95
  isFinal: false,
95
96
  metadata: {
96
- label: "Open",
97
- description: "Accepting orders",
98
- category: "active",
97
+ label: 'Open',
98
+ description: 'Accepting orders',
99
+ category: 'active',
99
100
  },
100
101
  },
101
102
  THRESHOLD_MET: {
102
- id: "THRESHOLD_MET",
103
+ id: 'THRESHOLD_MET',
103
104
  isFinal: false,
104
105
  metadata: {
105
- label: "Threshold met",
106
- description: "Minimum quantity reached, continuing for better tier",
107
- category: "active",
106
+ label: 'Threshold met',
107
+ description: 'Minimum quantity reached, continuing for better tier',
108
+ category: 'active',
108
109
  },
109
110
  },
110
111
  PROCESSING: {
111
- id: "PROCESSING",
112
+ id: 'PROCESSING',
112
113
  isFinal: false,
113
114
  metadata: {
114
- label: "Processing",
115
- description: "Order placed with vendor, awaiting fulfillment",
116
- category: "pending",
115
+ label: 'Processing',
116
+ description: 'Order placed with vendor, awaiting fulfillment',
117
+ category: 'pending',
117
118
  },
118
119
  },
119
120
  FULFILLED: {
120
- id: "FULFILLED",
121
+ id: 'FULFILLED',
121
122
  isFinal: true,
122
123
  metadata: {
123
- label: "Fulfilled",
124
- description: "All items delivered to buyers",
125
- category: "terminal",
124
+ label: 'Fulfilled',
125
+ description: 'All items delivered to buyers',
126
+ category: 'terminal',
126
127
  },
127
128
  },
128
129
  REFUNDED: {
129
- id: "REFUNDED",
130
+ id: 'REFUNDED',
130
131
  isFinal: true,
131
132
  metadata: {
132
- label: "Refunded",
133
- description: "Threshold not met, all orders refunded",
134
- category: "terminal",
133
+ label: 'Refunded',
134
+ description: 'Threshold not met, all orders refunded',
135
+ category: 'terminal',
135
136
  },
136
137
  },
137
138
  CANCELLED: {
138
- id: "CANCELLED",
139
+ id: 'CANCELLED',
139
140
  isFinal: true,
140
141
  metadata: {
141
- label: "Cancelled",
142
- description: "Group buy cancelled",
143
- category: "terminal",
142
+ label: 'Cancelled',
143
+ description: 'Group buy cancelled',
144
+ category: 'terminal',
144
145
  },
145
146
  },
146
147
  },
147
- initialState: "PROPOSED",
148
+ initialState: 'PROPOSED',
148
149
  transitions: [
149
150
  {
150
- from: "PROPOSED",
151
- to: "OPEN",
152
- eventName: "open",
153
- guard: { "===": [{ var: "event.agent" }, { var: "state.organizer" }] },
151
+ from: 'PROPOSED',
152
+ to: 'OPEN',
153
+ eventName: 'open',
154
+ guard: (0, guards_js_1.signerIsParty)('state.organizer'),
154
155
  effect: {
155
156
  merge: [
156
- { var: "state" },
157
+ { var: 'state' },
157
158
  {
158
- status: "OPEN",
159
- openedAt: { var: "$timestamp" },
159
+ status: 'OPEN',
160
+ openedAt: { var: '$ordinal' },
160
161
  orders: [],
161
162
  totalQuantity: 0,
162
163
  currentTier: 0,
@@ -166,55 +167,52 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
166
167
  dependencies: [],
167
168
  },
168
169
  {
169
- from: "PROPOSED",
170
- to: "CANCELLED",
171
- eventName: "cancel",
172
- guard: { "===": [{ var: "event.agent" }, { var: "state.organizer" }] },
170
+ from: 'PROPOSED',
171
+ to: 'CANCELLED',
172
+ eventName: 'cancel',
173
+ guard: (0, guards_js_1.signerIsParty)('state.organizer'),
173
174
  effect: {
174
- merge: [
175
- { var: "state" },
176
- { status: "CANCELLED", cancelledAt: { var: "$timestamp" } },
177
- ],
175
+ merge: [{ var: 'state' }, { status: 'CANCELLED', cancelledAt: { var: '$ordinal' } }],
178
176
  },
179
177
  dependencies: [],
180
178
  },
181
179
  {
182
- from: "OPEN",
183
- to: "OPEN",
184
- eventName: "order",
180
+ from: 'OPEN',
181
+ to: 'OPEN',
182
+ eventName: 'order',
185
183
  guard: {
186
184
  and: [
187
- { ">": [{ var: "event.quantity" }, 0] },
185
+ { '>': [{ var: 'event.quantity' }, 0] },
188
186
  {
189
187
  or: [
190
- { "!": [{ var: "state.maxPerBuyer" }] },
188
+ { '!': [{ var: 'state.maxPerBuyer' }] },
191
189
  {
192
- "<=": [{ var: "event.quantity" }, { var: "state.maxPerBuyer" }],
190
+ '<=': [{ var: 'event.quantity' }, { var: 'state.maxPerBuyer' }],
193
191
  },
194
192
  ],
195
193
  },
196
- { "<=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
194
+ { '<=': [{ var: '$ordinal' }, { var: 'state.deadline' }] },
197
195
  ],
198
196
  },
199
197
  effect: {
200
198
  merge: [
201
- { var: "state" },
199
+ { var: 'state' },
202
200
  {
203
201
  orders: {
204
202
  cat: [
205
- { var: "state.orders" },
203
+ { var: 'state.orders' },
206
204
  [
207
205
  {
208
- buyer: { var: "event.agent" },
209
- quantity: { var: "event.quantity" },
210
- shippingInfo: { var: "event.shippingInfo" },
211
- orderedAt: { var: "$timestamp" },
206
+ buyer: { var: 'event.agent' },
207
+ quantity: { var: 'event.quantity' },
208
+ shippingInfo: { var: 'event.shippingInfo' },
209
+ orderedAt: { var: '$ordinal' },
212
210
  },
213
211
  ],
214
212
  ],
215
213
  },
216
214
  totalQuantity: {
217
- "+": [{ var: "state.totalQuantity" }, { var: "event.quantity" }],
215
+ '+': [{ var: 'state.totalQuantity' }, { var: 'event.quantity' }],
218
216
  },
219
217
  },
220
218
  ],
@@ -222,31 +220,28 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
222
220
  dependencies: [],
223
221
  },
224
222
  {
225
- from: "OPEN",
226
- to: "THRESHOLD_MET",
227
- eventName: "check_threshold",
223
+ from: 'OPEN',
224
+ to: 'THRESHOLD_MET',
225
+ eventName: 'check_threshold',
228
226
  guard: {
229
- ">=": [{ var: "state.totalQuantity" }, { var: "state.minQuantity" }],
227
+ '>=': [{ var: 'state.totalQuantity' }, { var: 'state.minQuantity' }],
230
228
  },
231
229
  effect: {
232
230
  merge: [
233
- { var: "state" },
231
+ { var: 'state' },
234
232
  {
235
- status: "THRESHOLD_MET",
236
- thresholdMetAt: { var: "$timestamp" },
233
+ status: 'THRESHOLD_MET',
234
+ thresholdMetAt: { var: '$ordinal' },
237
235
  currentTier: {
238
236
  reduce: [
239
- { var: "state.priceTiers" },
237
+ { var: 'state.priceTiers' },
240
238
  {
241
239
  if: [
242
240
  {
243
- "<=": [
244
- { var: "current.minQuantity" },
245
- { var: "state.totalQuantity" },
246
- ],
241
+ '<=': [{ var: 'current.minQuantity' }, { var: 'state.totalQuantity' }],
247
242
  },
248
- { var: "current.tier" },
249
- { var: "accumulator" },
243
+ { var: 'current.tier' },
244
+ { var: 'accumulator' },
250
245
  ],
251
246
  },
252
247
  0,
@@ -258,56 +253,50 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
258
253
  dependencies: [],
259
254
  },
260
255
  {
261
- from: "THRESHOLD_MET",
262
- to: "THRESHOLD_MET",
263
- eventName: "order",
256
+ from: 'THRESHOLD_MET',
257
+ to: 'THRESHOLD_MET',
258
+ eventName: 'order',
264
259
  guard: {
265
- and: [
266
- { ">": [{ var: "event.quantity" }, 0] },
267
- { "<=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
268
- ],
260
+ and: [{ '>': [{ var: 'event.quantity' }, 0] }, { '<=': [{ var: '$ordinal' }, { var: 'state.deadline' }] }],
269
261
  },
270
262
  effect: {
271
263
  merge: [
272
- { var: "state" },
264
+ { var: 'state' },
273
265
  {
274
266
  orders: {
275
267
  cat: [
276
- { var: "state.orders" },
268
+ { var: 'state.orders' },
277
269
  [
278
270
  {
279
- buyer: { var: "event.agent" },
280
- quantity: { var: "event.quantity" },
281
- shippingInfo: { var: "event.shippingInfo" },
282
- orderedAt: { var: "$timestamp" },
271
+ buyer: { var: 'event.agent' },
272
+ quantity: { var: 'event.quantity' },
273
+ shippingInfo: { var: 'event.shippingInfo' },
274
+ orderedAt: { var: '$ordinal' },
283
275
  },
284
276
  ],
285
277
  ],
286
278
  },
287
279
  totalQuantity: {
288
- "+": [{ var: "state.totalQuantity" }, { var: "event.quantity" }],
280
+ '+': [{ var: 'state.totalQuantity' }, { var: 'event.quantity' }],
289
281
  },
290
282
  currentTier: {
291
283
  reduce: [
292
- { var: "state.priceTiers" },
284
+ { var: 'state.priceTiers' },
293
285
  {
294
286
  if: [
295
287
  {
296
- "<=": [
297
- { var: "current.minQuantity" },
288
+ '<=': [
289
+ { var: 'current.minQuantity' },
298
290
  {
299
- "+": [
300
- { var: "state.totalQuantity" },
301
- { var: "event.quantity" },
302
- ],
291
+ '+': [{ var: 'state.totalQuantity' }, { var: 'event.quantity' }],
303
292
  },
304
293
  ],
305
294
  },
306
- { var: "current.tier" },
307
- { var: "accumulator" },
295
+ { var: 'current.tier' },
296
+ { var: 'accumulator' },
308
297
  ],
309
298
  },
310
- { var: "state.currentTier" },
299
+ { var: 'state.currentTier' },
311
300
  ],
312
301
  },
313
302
  },
@@ -316,24 +305,20 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
316
305
  dependencies: [],
317
306
  },
318
307
  {
319
- from: "THRESHOLD_MET",
320
- to: "PROCESSING",
321
- eventName: "finalize",
322
- guard: { ">=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
308
+ from: 'THRESHOLD_MET',
309
+ to: 'PROCESSING',
310
+ eventName: 'finalize',
311
+ guard: { '>=': [{ var: '$ordinal' }, { var: 'state.deadline' }] },
323
312
  effect: {
324
313
  merge: [
325
- { var: "state" },
314
+ { var: 'state' },
326
315
  {
327
- status: "PROCESSING",
328
- finalizedAt: { var: "$timestamp" },
329
- finalTier: { var: "state.currentTier" },
316
+ status: 'PROCESSING',
317
+ finalizedAt: { var: '$ordinal' },
318
+ finalTier: { var: 'state.currentTier' },
330
319
  finalPricePerUnit: {
331
320
  var: {
332
- cat: [
333
- "state.priceTiers.",
334
- { var: "state.currentTier" },
335
- ".pricePerUnit",
336
- ],
321
+ cat: ['state.priceTiers.', { var: 'state.currentTier' }, '.pricePerUnit'],
337
322
  },
338
323
  },
339
324
  },
@@ -342,74 +327,68 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
342
327
  dependencies: [],
343
328
  },
344
329
  {
345
- from: "PROCESSING",
346
- to: "FULFILLED",
347
- eventName: "fulfill",
348
- guard: {
349
- or: [
350
- { "===": [{ var: "event.agent" }, { var: "state.vendor" }] },
351
- { "===": [{ var: "event.agent" }, { var: "state.organizer" }] },
352
- ],
353
- },
330
+ from: 'PROCESSING',
331
+ to: 'FULFILLED',
332
+ eventName: 'fulfill',
333
+ guard: (0, guards_js_1.signerIsAnyParty)(['state.vendor', 'state.organizer']),
354
334
  effect: {
355
335
  merge: [
356
- { var: "state" },
336
+ { var: 'state' },
357
337
  {
358
- status: "FULFILLED",
359
- fulfilledAt: { var: "$timestamp" },
360
- trackingInfo: { var: "event.trackingInfo" },
338
+ status: 'FULFILLED',
339
+ fulfilledAt: { var: '$ordinal' },
340
+ trackingInfo: { var: 'event.trackingInfo' },
361
341
  },
362
342
  ],
363
343
  },
364
344
  dependencies: [],
365
345
  },
366
346
  {
367
- from: "OPEN",
368
- to: "REFUNDED",
369
- eventName: "finalize",
347
+ from: 'OPEN',
348
+ to: 'REFUNDED',
349
+ eventName: 'finalize',
370
350
  guard: {
371
351
  and: [
372
352
  {
373
- "<": [{ var: "state.totalQuantity" }, { var: "state.minQuantity" }],
353
+ '<': [{ var: 'state.totalQuantity' }, { var: 'state.minQuantity' }],
374
354
  },
375
- { ">=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
355
+ { '>=': [{ var: '$ordinal' }, { var: 'state.deadline' }] },
376
356
  ],
377
357
  },
378
358
  effect: {
379
359
  merge: [
380
- { var: "state" },
360
+ { var: 'state' },
381
361
  {
382
- status: "REFUNDED",
383
- refundedAt: { var: "$timestamp" },
384
- reason: "threshold_not_met",
362
+ status: 'REFUNDED',
363
+ refundedAt: { var: '$ordinal' },
364
+ reason: 'threshold_not_met',
385
365
  },
386
366
  ],
387
367
  },
388
368
  dependencies: [],
389
369
  },
390
370
  {
391
- from: "REFUNDED",
392
- to: "REFUNDED",
393
- eventName: "claim_refund",
371
+ from: 'REFUNDED',
372
+ to: 'REFUNDED',
373
+ eventName: 'claim_refund',
394
374
  guard: {
395
375
  and: [
396
376
  {
397
- ">": [
377
+ '>': [
398
378
  {
399
- size: {
400
- filter: [
401
- { var: "state.orders" },
402
- { "===": [{ var: "buyer" }, { var: "event.agent" }] },
403
- ],
404
- },
379
+ length: [
380
+ {
381
+ filter: [{ var: 'state.orders' }, { '===': [{ var: 'buyer' }, { var: 'event.agent' }] }],
382
+ },
383
+ ],
405
384
  },
406
385
  0,
407
386
  ],
408
387
  },
409
388
  {
410
- "!": [
389
+ '!': [
411
390
  {
412
- in: [{ var: "event.agent" }, { var: "state.refundsClaimed" }],
391
+ in: [{ var: 'event.agent' }, { var: 'state.refundsClaimed' }],
413
392
  },
414
393
  ],
415
394
  },
@@ -417,10 +396,10 @@ exports.marketGroupBuyDef = (0, fiber_app_js_1.defineFiberApp)({
417
396
  },
418
397
  effect: {
419
398
  merge: [
420
- { var: "state" },
399
+ { var: 'state' },
421
400
  {
422
401
  refundsClaimed: {
423
- cat: [{ var: "state.refundsClaimed" }, [{ var: "event.agent" }]],
402
+ cat: [{ var: 'state.refundsClaimed' }, [{ var: 'event.agent' }]],
424
403
  },
425
404
  },
426
405
  ],