@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
@@ -1,139 +1,140 @@
1
- import { defineFiberApp } from "../../../schema/fiber-app.js";
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
  */
5
6
  export const marketCrowdfundDef = defineFiberApp({
6
7
  metadata: {
7
- name: "MarketCrowdfund",
8
- app: "markets",
9
- type: "crowdfund",
10
- version: "1.0.0",
11
- description: "All-or-nothing crowdfunding with threshold, deadline, and stretch goals",
8
+ name: 'MarketCrowdfund',
9
+ app: 'markets',
10
+ type: 'crowdfund',
11
+ version: '1.0.0',
12
+ description: 'All-or-nothing crowdfunding with threshold, deadline, and stretch goals',
12
13
  crossReferences: {
13
14
  creatorIdentityId: "Links to creator's IdentityAgent",
14
- treasuryId: "Links to Treasury for fund custody",
15
+ treasuryId: 'Links to Treasury for fund custody',
15
16
  },
16
17
  },
17
18
  createSchema: {
18
- required: ["creator", "threshold", "deadline"],
19
+ required: ['creator', 'threshold', 'deadline'],
19
20
  properties: {
20
21
  creator: {
21
- type: "address",
22
- description: "DAG address of campaign creator",
22
+ type: 'address',
23
+ description: 'DAG address of campaign creator',
23
24
  immutable: true,
24
25
  },
25
26
  threshold: {
26
- type: "number",
27
+ type: 'number',
27
28
  minimum: 0,
28
- description: "Funding goal amount",
29
+ description: 'Funding goal amount',
29
30
  immutable: true,
30
31
  },
31
32
  deadline: {
32
- type: "timestamp",
33
- description: "Campaign deadline",
33
+ type: 'timestamp',
34
+ description: 'Campaign deadline',
34
35
  immutable: true,
35
36
  },
36
37
  minPledge: {
37
- type: "number",
38
+ type: 'number',
38
39
  minimum: 0,
39
- description: "Minimum pledge amount",
40
+ description: 'Minimum pledge amount',
40
41
  },
41
- stretchGoals: { type: "array", description: "Stretch goal targets" },
42
+ stretchGoals: { type: 'array', description: 'Stretch goal targets' },
42
43
  },
43
44
  },
44
45
  stateSchema: {
45
46
  properties: {
46
- status: { type: "string", computed: true },
47
- creator: { type: "address", immutable: true },
48
- threshold: { type: "number", immutable: true },
49
- deadline: { type: "timestamp", immutable: true },
50
- minPledge: { type: "number" },
51
- stretchGoals: { type: "array" },
52
- pledges: { type: "array", computed: true },
53
- totalPledged: { type: "number", computed: true },
54
- backerCount: { type: "number", computed: true },
55
- refundsClaimed: { type: "array", computed: true },
47
+ status: { type: 'string', computed: true },
48
+ creator: { type: 'address', immutable: true },
49
+ threshold: { type: 'number', immutable: true },
50
+ deadline: { type: 'timestamp', immutable: true },
51
+ minPledge: { type: 'number' },
52
+ stretchGoals: { type: 'array' },
53
+ pledges: { type: 'array', computed: true },
54
+ totalPledged: { type: 'number', computed: true },
55
+ backerCount: { type: 'number', computed: true },
56
+ refundsClaimed: { type: 'array', computed: true },
56
57
  },
57
58
  },
58
59
  eventSchemas: {
59
- launch: { description: "Launch the campaign" },
60
- cancel: { description: "Cancel the campaign" },
60
+ launch: { description: 'Launch the campaign' },
61
+ cancel: { description: 'Cancel the campaign' },
61
62
  pledge: {
62
- description: "Make a pledge",
63
- required: ["amount"],
63
+ description: 'Make a pledge',
64
+ required: ['amount'],
64
65
  properties: {
65
- amount: { type: "number", minimum: 0 },
66
- rewardTier: { type: "string" },
66
+ amount: { type: 'number', minimum: 0 },
67
+ rewardTier: { type: 'string' },
67
68
  },
68
69
  },
69
70
  increase_pledge: {
70
- description: "Increase an existing pledge",
71
- required: ["additionalAmount"],
72
- properties: { additionalAmount: { type: "number", minimum: 0 } },
71
+ description: 'Increase an existing pledge',
72
+ required: ['additionalAmount'],
73
+ properties: { additionalAmount: { type: 'number', minimum: 0 } },
73
74
  },
74
- finalize: { description: "Finalize the campaign after deadline" },
75
- claim_refund: { description: "Claim refund in failed campaign" },
75
+ finalize: { description: 'Finalize the campaign after deadline' },
76
+ claim_refund: { description: 'Claim refund in failed campaign' },
76
77
  },
77
78
  states: {
78
79
  PROPOSED: {
79
- id: "PROPOSED",
80
+ id: 'PROPOSED',
80
81
  isFinal: false,
81
82
  metadata: {
82
- label: "Proposed",
83
- description: "Campaign created but not yet open",
84
- category: "initial",
83
+ label: 'Proposed',
84
+ description: 'Campaign created but not yet open',
85
+ category: 'initial',
85
86
  },
86
87
  },
87
88
  OPEN: {
88
- id: "OPEN",
89
+ id: 'OPEN',
89
90
  isFinal: false,
90
91
  metadata: {
91
- label: "Open",
92
- description: "Accepting pledges",
93
- category: "active",
92
+ label: 'Open',
93
+ description: 'Accepting pledges',
94
+ category: 'active',
94
95
  },
95
96
  },
96
97
  FUNDED: {
97
- id: "FUNDED",
98
+ id: 'FUNDED',
98
99
  isFinal: true,
99
100
  metadata: {
100
- label: "Funded",
101
- description: "Threshold met, funds released to creator",
102
- category: "terminal",
101
+ label: 'Funded',
102
+ description: 'Threshold met, funds released to creator',
103
+ category: 'terminal',
103
104
  },
104
105
  },
105
106
  REFUNDED: {
106
- id: "REFUNDED",
107
+ id: 'REFUNDED',
107
108
  isFinal: true,
108
109
  metadata: {
109
- label: "Refunded",
110
- description: "Threshold not met, all pledges refunded",
111
- category: "terminal",
110
+ label: 'Refunded',
111
+ description: 'Threshold not met, all pledges refunded',
112
+ category: 'terminal',
112
113
  },
113
114
  },
114
115
  CANCELLED: {
115
- id: "CANCELLED",
116
+ id: 'CANCELLED',
116
117
  isFinal: true,
117
118
  metadata: {
118
- label: "Cancelled",
119
- description: "Campaign cancelled by creator",
120
- category: "terminal",
119
+ label: 'Cancelled',
120
+ description: 'Campaign cancelled by creator',
121
+ category: 'terminal',
121
122
  },
122
123
  },
123
124
  },
124
- initialState: "PROPOSED",
125
+ initialState: 'PROPOSED',
125
126
  transitions: [
126
127
  {
127
- from: "PROPOSED",
128
- to: "OPEN",
129
- eventName: "launch",
130
- guard: { "===": [{ var: "event.agent" }, { var: "state.creator" }] },
128
+ from: 'PROPOSED',
129
+ to: 'OPEN',
130
+ eventName: 'launch',
131
+ guard: signerIsParty('state.creator'),
131
132
  effect: {
132
133
  merge: [
133
- { var: "state" },
134
+ { var: 'state' },
134
135
  {
135
- status: "OPEN",
136
- launchedAt: { var: "$timestamp" },
136
+ status: 'OPEN',
137
+ launchedAt: { var: '$ordinal' },
137
138
  pledges: [],
138
139
  totalPledged: 0,
139
140
  backerCount: 0,
@@ -143,78 +144,74 @@ export const marketCrowdfundDef = defineFiberApp({
143
144
  dependencies: [],
144
145
  },
145
146
  {
146
- from: "PROPOSED",
147
- to: "CANCELLED",
148
- eventName: "cancel",
149
- guard: { "===": [{ var: "event.agent" }, { var: "state.creator" }] },
147
+ from: 'PROPOSED',
148
+ to: 'CANCELLED',
149
+ eventName: 'cancel',
150
+ guard: signerIsParty('state.creator'),
150
151
  effect: {
151
- merge: [
152
- { var: "state" },
153
- { status: "CANCELLED", cancelledAt: { var: "$timestamp" } },
154
- ],
152
+ merge: [{ var: 'state' }, { status: 'CANCELLED', cancelledAt: { var: '$ordinal' } }],
155
153
  },
156
154
  dependencies: [],
157
155
  },
158
156
  {
159
- from: "OPEN",
160
- to: "OPEN",
161
- eventName: "pledge",
157
+ from: 'OPEN',
158
+ to: 'OPEN',
159
+ eventName: 'pledge',
162
160
  guard: {
163
161
  and: [
164
- { ">": [{ var: "event.amount" }, 0] },
165
- { "!==": [{ var: "event.agent" }, { var: "state.creator" }] },
162
+ { '>': [{ var: 'event.amount' }, 0] },
163
+ signerIsNotParty('state.creator'),
166
164
  {
167
165
  or: [
168
- { "!": [{ var: "state.minPledge" }] },
169
- { ">=": [{ var: "event.amount" }, { var: "state.minPledge" }] },
166
+ { '!': [{ var: 'state.minPledge' }] },
167
+ { '>=': [{ var: 'event.amount' }, { var: 'state.minPledge' }] },
170
168
  ],
171
169
  },
172
- { "<=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
170
+ { '<=': [{ var: '$ordinal' }, { var: 'state.deadline' }] },
173
171
  ],
174
172
  },
175
173
  effect: {
176
174
  merge: [
177
- { var: "state" },
175
+ { var: 'state' },
178
176
  {
179
177
  pledges: {
180
178
  cat: [
181
- { var: "state.pledges" },
179
+ { var: 'state.pledges' },
182
180
  [
183
181
  {
184
- backer: { var: "event.agent" },
185
- amount: { var: "event.amount" },
186
- rewardTier: { var: "event.rewardTier" },
187
- pledgedAt: { var: "$timestamp" },
182
+ backer: { var: 'event.agent' },
183
+ amount: { var: 'event.amount' },
184
+ rewardTier: { var: 'event.rewardTier' },
185
+ pledgedAt: { var: '$ordinal' },
188
186
  },
189
187
  ],
190
188
  ],
191
189
  },
192
190
  totalPledged: {
193
- "+": [{ var: "state.totalPledged" }, { var: "event.amount" }],
191
+ '+': [{ var: 'state.totalPledged' }, { var: 'event.amount' }],
194
192
  },
195
- backerCount: { "+": [{ var: "state.backerCount" }, 1] },
193
+ backerCount: { '+': [{ var: 'state.backerCount' }, 1] },
196
194
  },
197
195
  ],
198
196
  },
199
197
  dependencies: [],
200
198
  },
201
199
  {
202
- from: "OPEN",
203
- to: "OPEN",
204
- eventName: "increase_pledge",
200
+ from: 'OPEN',
201
+ to: 'OPEN',
202
+ eventName: 'increase_pledge',
205
203
  guard: {
206
204
  and: [
207
- { ">": [{ var: "event.additionalAmount" }, 0] },
208
- { "<=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
205
+ { '>': [{ var: 'event.additionalAmount' }, 0] },
206
+ { '<=': [{ var: '$ordinal' }, { var: 'state.deadline' }] },
209
207
  {
210
- ">": [
208
+ '>': [
211
209
  {
212
- size: {
213
- filter: [
214
- { var: "state.pledges" },
215
- { "===": [{ var: "backer" }, { var: "event.agent" }] },
216
- ],
217
- },
210
+ length: [
211
+ {
212
+ filter: [{ var: 'state.pledges' }, { '===': [{ var: 'backer' }, { var: 'event.agent' }] }],
213
+ },
214
+ ],
218
215
  },
219
216
  0,
220
217
  ],
@@ -223,13 +220,10 @@ export const marketCrowdfundDef = defineFiberApp({
223
220
  },
224
221
  effect: {
225
222
  merge: [
226
- { var: "state" },
223
+ { var: 'state' },
227
224
  {
228
225
  totalPledged: {
229
- "+": [
230
- { var: "state.totalPledged" },
231
- { var: "event.additionalAmount" },
232
- ],
226
+ '+': [{ var: 'state.totalPledged' }, { var: 'event.additionalAmount' }],
233
227
  },
234
228
  },
235
229
  ],
@@ -237,26 +231,23 @@ export const marketCrowdfundDef = defineFiberApp({
237
231
  dependencies: [],
238
232
  },
239
233
  {
240
- from: "OPEN",
241
- to: "FUNDED",
242
- eventName: "finalize",
234
+ from: 'OPEN',
235
+ to: 'FUNDED',
236
+ eventName: 'finalize',
243
237
  guard: {
244
238
  and: [
245
- { ">=": [{ var: "state.totalPledged" }, { var: "state.threshold" }] },
246
- { ">=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
239
+ { '>=': [{ var: 'state.totalPledged' }, { var: 'state.threshold' }] },
240
+ { '>=': [{ var: '$ordinal' }, { var: 'state.deadline' }] },
247
241
  ],
248
242
  },
249
243
  effect: {
250
244
  merge: [
251
- { var: "state" },
245
+ { var: 'state' },
252
246
  {
253
- status: "FUNDED",
254
- fundedAt: { var: "$timestamp" },
247
+ status: 'FUNDED',
248
+ fundedAt: { var: '$ordinal' },
255
249
  stretchGoalsReached: {
256
- filter: [
257
- { var: "state.stretchGoals" },
258
- { "<=": [{ var: "target" }, { var: "state.totalPledged" }] },
259
- ],
250
+ filter: [{ var: 'state.stretchGoals' }, { '<=': [{ var: 'target' }, { var: 'state.totalPledged' }] }],
260
251
  },
261
252
  },
262
253
  ],
@@ -264,50 +255,49 @@ export const marketCrowdfundDef = defineFiberApp({
264
255
  dependencies: [],
265
256
  },
266
257
  {
267
- from: "OPEN",
268
- to: "REFUNDED",
269
- eventName: "finalize",
258
+ from: 'OPEN',
259
+ to: 'REFUNDED',
260
+ eventName: 'finalize',
270
261
  guard: {
271
262
  and: [
272
- { "<": [{ var: "state.totalPledged" }, { var: "state.threshold" }] },
273
- { ">=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
263
+ { '<': [{ var: 'state.totalPledged' }, { var: 'state.threshold' }] },
264
+ { '>=': [{ var: '$ordinal' }, { var: 'state.deadline' }] },
274
265
  ],
275
266
  },
276
267
  effect: {
277
268
  merge: [
278
- { var: "state" },
269
+ { var: 'state' },
279
270
  {
280
- status: "REFUNDED",
281
- refundedAt: { var: "$timestamp" },
282
- reason: "threshold_not_met",
271
+ status: 'REFUNDED',
272
+ refundedAt: { var: '$ordinal' },
273
+ reason: 'threshold_not_met',
283
274
  },
284
275
  ],
285
276
  },
286
277
  dependencies: [],
287
278
  },
288
279
  {
289
- from: "REFUNDED",
290
- to: "REFUNDED",
291
- eventName: "claim_refund",
280
+ from: 'REFUNDED',
281
+ to: 'REFUNDED',
282
+ eventName: 'claim_refund',
292
283
  guard: {
293
284
  and: [
294
285
  {
295
- ">": [
286
+ '>': [
296
287
  {
297
- size: {
298
- filter: [
299
- { var: "state.pledges" },
300
- { "===": [{ var: "backer" }, { var: "event.agent" }] },
301
- ],
302
- },
288
+ length: [
289
+ {
290
+ filter: [{ var: 'state.pledges' }, { '===': [{ var: 'backer' }, { var: 'event.agent' }] }],
291
+ },
292
+ ],
303
293
  },
304
294
  0,
305
295
  ],
306
296
  },
307
297
  {
308
- "!": [
298
+ '!': [
309
299
  {
310
- in: [{ var: "event.agent" }, { var: "state.refundsClaimed" }],
300
+ in: [{ var: 'event.agent' }, { var: 'state.refundsClaimed' }],
311
301
  },
312
302
  ],
313
303
  },
@@ -315,10 +305,10 @@ export const marketCrowdfundDef = defineFiberApp({
315
305
  },
316
306
  effect: {
317
307
  merge: [
318
- { var: "state" },
308
+ { var: 'state' },
319
309
  {
320
310
  refundsClaimed: {
321
- cat: [{ var: "state.refundsClaimed" }, [{ var: "event.agent" }]],
311
+ cat: [{ var: 'state.refundsClaimed' }, [{ var: 'event.agent' }]],
322
312
  },
323
313
  },
324
314
  ],