@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,140 +1,141 @@
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
  * Auction market supporting English, Dutch, and sealed-bid variants.
4
5
  */
5
6
  export const marketAuctionDef = defineFiberApp({
6
7
  metadata: {
7
- name: "MarketAuction",
8
- app: "markets",
9
- type: "auction",
10
- version: "1.0.0",
11
- description: "Auction market supporting English, Dutch, and sealed-bid variants",
8
+ name: 'MarketAuction',
9
+ app: 'markets',
10
+ type: 'auction',
11
+ version: '1.0.0',
12
+ description: 'Auction market supporting English, Dutch, and sealed-bid variants',
12
13
  crossReferences: {
13
14
  sellerIdentityId: "Links to seller's IdentityAgent",
14
- escrowId: "Links to ContractEscrow for asset custody",
15
+ escrowId: 'Links to ContractEscrow for asset custody',
15
16
  },
16
17
  },
17
18
  createSchema: {
18
- required: ["seller", "minBid"],
19
+ required: ['seller', 'minBid'],
19
20
  properties: {
20
21
  seller: {
21
- type: "address",
22
- description: "DAG address of the seller",
22
+ type: 'address',
23
+ description: 'DAG address of the seller',
23
24
  immutable: true,
24
25
  },
25
26
  minBid: {
26
- type: "number",
27
+ type: 'number',
27
28
  minimum: 0,
28
- description: "Minimum opening bid",
29
+ description: 'Minimum opening bid',
29
30
  immutable: true,
30
31
  },
31
32
  bidIncrement: {
32
- type: "number",
33
+ type: 'number',
33
34
  minimum: 0,
34
- description: "Minimum bid increment",
35
+ description: 'Minimum bid increment',
35
36
  },
36
37
  reservePrice: {
37
- type: "number",
38
+ type: 'number',
38
39
  minimum: 0,
39
- description: "Reserve price (if any)",
40
+ description: 'Reserve price (if any)',
40
41
  },
41
- deadline: { type: "timestamp", description: "Auction deadline" },
42
+ deadline: { type: 'timestamp', description: 'Auction deadline' },
42
43
  },
43
44
  },
44
45
  stateSchema: {
45
46
  properties: {
46
- status: { type: "string", computed: true },
47
- seller: { type: "address", immutable: true },
48
- minBid: { type: "number", immutable: true },
49
- bidIncrement: { type: "number" },
50
- reservePrice: { type: "number" },
51
- deadline: { type: "timestamp" },
52
- bids: { type: "array", computed: true },
53
- highBid: { type: "number", computed: true },
54
- highBidder: { type: "address", computed: true },
47
+ status: { type: 'string', computed: true },
48
+ seller: { type: 'address', immutable: true },
49
+ minBid: { type: 'number', immutable: true },
50
+ bidIncrement: { type: 'number' },
51
+ reservePrice: { type: 'number' },
52
+ deadline: { type: 'timestamp' },
53
+ bids: { type: 'array', computed: true },
54
+ highBid: { type: 'number', computed: true },
55
+ highBidder: { type: 'address', computed: true },
55
56
  },
56
57
  },
57
58
  eventSchemas: {
58
- open: { description: "Open the auction" },
59
- cancel: { description: "Cancel the auction" },
59
+ open: { description: 'Open the auction' },
60
+ cancel: { description: 'Cancel the auction' },
60
61
  bid: {
61
- description: "Place a bid",
62
- required: ["amount"],
63
- properties: { amount: { type: "number", minimum: 0 } },
62
+ description: 'Place a bid',
63
+ required: ['amount'],
64
+ properties: { amount: { type: 'number', minimum: 0 } },
64
65
  },
65
- close: { description: "Close bidding" },
66
- settle: { description: "Settle with winning bidder" },
67
- no_sale: { description: "Declare no sale (reserve not met or no bids)" },
66
+ close: { description: 'Close bidding' },
67
+ settle: { description: 'Settle with winning bidder' },
68
+ no_sale: { description: 'Declare no sale (reserve not met or no bids)' },
68
69
  },
69
70
  states: {
70
71
  PROPOSED: {
71
- id: "PROPOSED",
72
+ id: 'PROPOSED',
72
73
  isFinal: false,
73
74
  metadata: {
74
- label: "Proposed",
75
- description: "Auction created but not yet open",
76
- category: "initial",
75
+ label: 'Proposed',
76
+ description: 'Auction created but not yet open',
77
+ category: 'initial',
77
78
  },
78
79
  },
79
80
  OPEN: {
80
- id: "OPEN",
81
+ id: 'OPEN',
81
82
  isFinal: false,
82
83
  metadata: {
83
- label: "Open",
84
- description: "Accepting bids",
85
- category: "active",
84
+ label: 'Open',
85
+ description: 'Accepting bids',
86
+ category: 'active',
86
87
  },
87
88
  },
88
89
  CLOSING: {
89
- id: "CLOSING",
90
+ id: 'CLOSING',
90
91
  isFinal: false,
91
92
  metadata: {
92
- label: "Closing",
93
- description: "Bid period ended, determining winner",
94
- category: "pending",
93
+ label: 'Closing',
94
+ description: 'Bid period ended, determining winner',
95
+ category: 'pending',
95
96
  },
96
97
  },
97
98
  SETTLED: {
98
- id: "SETTLED",
99
+ id: 'SETTLED',
99
100
  isFinal: true,
100
101
  metadata: {
101
- label: "Settled",
102
- description: "Winner determined, transfer complete",
103
- category: "terminal",
102
+ label: 'Settled',
103
+ description: 'Winner determined, transfer complete',
104
+ category: 'terminal',
104
105
  },
105
106
  },
106
107
  NO_SALE: {
107
- id: "NO_SALE",
108
+ id: 'NO_SALE',
108
109
  isFinal: true,
109
110
  metadata: {
110
- label: "No sale",
111
- description: "Reserve not met or no valid bids",
112
- category: "terminal",
111
+ label: 'No sale',
112
+ description: 'Reserve not met or no valid bids',
113
+ category: 'terminal',
113
114
  },
114
115
  },
115
116
  CANCELLED: {
116
- id: "CANCELLED",
117
+ id: 'CANCELLED',
117
118
  isFinal: true,
118
119
  metadata: {
119
- label: "Cancelled",
120
- description: "Auction cancelled by seller",
121
- category: "terminal",
120
+ label: 'Cancelled',
121
+ description: 'Auction cancelled by seller',
122
+ category: 'terminal',
122
123
  },
123
124
  },
124
125
  },
125
- initialState: "PROPOSED",
126
+ initialState: 'PROPOSED',
126
127
  transitions: [
127
128
  {
128
- from: "PROPOSED",
129
- to: "OPEN",
130
- eventName: "open",
131
- guard: { "===": [{ var: "event.agent" }, { var: "state.seller" }] },
129
+ from: 'PROPOSED',
130
+ to: 'OPEN',
131
+ eventName: 'open',
132
+ guard: signerIsParty('state.seller'),
132
133
  effect: {
133
134
  merge: [
134
- { var: "state" },
135
+ { var: 'state' },
135
136
  {
136
- status: "OPEN",
137
- openedAt: { var: "$timestamp" },
137
+ status: 'OPEN',
138
+ openedAt: { var: '$ordinal' },
138
139
  bids: [],
139
140
  highBid: null,
140
141
  highBidder: null,
@@ -144,109 +145,94 @@ export const marketAuctionDef = defineFiberApp({
144
145
  dependencies: [],
145
146
  },
146
147
  {
147
- from: "PROPOSED",
148
- to: "CANCELLED",
149
- eventName: "cancel",
150
- guard: { "===": [{ var: "event.agent" }, { var: "state.seller" }] },
148
+ from: 'PROPOSED',
149
+ to: 'CANCELLED',
150
+ eventName: 'cancel',
151
+ guard: signerIsParty('state.seller'),
151
152
  effect: {
152
- merge: [
153
- { var: "state" },
154
- { status: "CANCELLED", cancelledAt: { var: "$timestamp" } },
155
- ],
153
+ merge: [{ var: 'state' }, { status: 'CANCELLED', cancelledAt: { var: '$ordinal' } }],
156
154
  },
157
155
  dependencies: [],
158
156
  },
159
157
  {
160
- from: "OPEN",
161
- to: "OPEN",
162
- eventName: "bid",
158
+ from: 'OPEN',
159
+ to: 'OPEN',
160
+ eventName: 'bid',
163
161
  guard: {
164
162
  and: [
165
- { "!==": [{ var: "event.agent" }, { var: "state.seller" }] },
166
- { ">=": [{ var: "event.amount" }, { var: "state.minBid" }] },
163
+ signerIsNotParty('state.seller'),
164
+ { '>=': [{ var: 'event.amount' }, { var: 'state.minBid' }] },
167
165
  {
168
166
  or: [
169
- { "!": [{ var: "state.highBid" }] },
167
+ { '!': [{ var: 'state.highBid' }] },
170
168
  {
171
- ">=": [
172
- { var: "event.amount" },
169
+ '>=': [
170
+ { var: 'event.amount' },
173
171
  {
174
- "+": [
175
- { var: "state.highBid" },
176
- { var: "state.bidIncrement" },
177
- ],
172
+ '+': [{ var: 'state.highBid' }, { var: 'state.bidIncrement' }],
178
173
  },
179
174
  ],
180
175
  },
181
176
  ],
182
177
  },
183
178
  {
184
- or: [
185
- { "!": [{ var: "state.deadline" }] },
186
- { "<=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
187
- ],
179
+ or: [{ '!': [{ var: 'state.deadline' }] }, { '<=': [{ var: '$ordinal' }, { var: 'state.deadline' }] }],
188
180
  },
189
181
  ],
190
182
  },
191
183
  effect: {
192
184
  merge: [
193
- { var: "state" },
185
+ { var: 'state' },
194
186
  {
195
187
  bids: {
196
188
  cat: [
197
- { var: "state.bids" },
189
+ { var: 'state.bids' },
198
190
  [
199
191
  {
200
- bidder: { var: "event.agent" },
201
- amount: { var: "event.amount" },
202
- bidAt: { var: "$timestamp" },
192
+ bidder: { var: 'event.agent' },
193
+ amount: { var: 'event.amount' },
194
+ bidAt: { var: '$ordinal' },
203
195
  },
204
196
  ],
205
197
  ],
206
198
  },
207
- highBid: { var: "event.amount" },
208
- highBidder: { var: "event.agent" },
209
- lastBidAt: { var: "$timestamp" },
199
+ highBid: { var: 'event.amount' },
200
+ highBidder: { var: 'event.agent' },
201
+ lastBidAt: { var: '$ordinal' },
210
202
  },
211
203
  ],
212
204
  },
213
205
  dependencies: [],
214
206
  },
215
207
  {
216
- from: "OPEN",
217
- to: "CLOSING",
218
- eventName: "close",
208
+ from: 'OPEN',
209
+ to: 'CLOSING',
210
+ eventName: 'close',
219
211
  guard: {
220
212
  or: [
221
- { "===": [{ var: "event.agent" }, { var: "state.seller" }] },
213
+ signerIsParty('state.seller'),
222
214
  {
223
- and: [
224
- { var: "state.deadline" },
225
- { ">=": [{ var: "$timestamp" }, { var: "state.deadline" }] },
226
- ],
215
+ and: [{ var: 'state.deadline' }, { '>=': [{ var: '$ordinal' }, { var: 'state.deadline' }] }],
227
216
  },
228
217
  ],
229
218
  },
230
219
  effect: {
231
- merge: [
232
- { var: "state" },
233
- { status: "CLOSING", closedAt: { var: "$timestamp" } },
234
- ],
220
+ merge: [{ var: 'state' }, { status: 'CLOSING', closedAt: { var: '$ordinal' } }],
235
221
  },
236
222
  dependencies: [],
237
223
  },
238
224
  {
239
- from: "CLOSING",
240
- to: "SETTLED",
241
- eventName: "settle",
225
+ from: 'CLOSING',
226
+ to: 'SETTLED',
227
+ eventName: 'settle',
242
228
  guard: {
243
229
  and: [
244
- { var: "state.highBidder" },
230
+ { var: 'state.highBidder' },
245
231
  {
246
232
  or: [
247
- { "!": [{ var: "state.reservePrice" }] },
233
+ { '!': [{ var: 'state.reservePrice' }] },
248
234
  {
249
- ">=": [{ var: "state.highBid" }, { var: "state.reservePrice" }],
235
+ '>=': [{ var: 'state.highBid' }, { var: 'state.reservePrice' }],
250
236
  },
251
237
  ],
252
238
  },
@@ -254,29 +240,29 @@ export const marketAuctionDef = defineFiberApp({
254
240
  },
255
241
  effect: {
256
242
  merge: [
257
- { var: "state" },
243
+ { var: 'state' },
258
244
  {
259
- status: "SETTLED",
260
- settledAt: { var: "$timestamp" },
261
- winner: { var: "state.highBidder" },
262
- finalPrice: { var: "state.highBid" },
245
+ status: 'SETTLED',
246
+ settledAt: { var: '$ordinal' },
247
+ winner: { var: 'state.highBidder' },
248
+ finalPrice: { var: 'state.highBid' },
263
249
  },
264
250
  ],
265
251
  },
266
252
  dependencies: [],
267
253
  },
268
254
  {
269
- from: "CLOSING",
270
- to: "NO_SALE",
271
- eventName: "no_sale",
255
+ from: 'CLOSING',
256
+ to: 'NO_SALE',
257
+ eventName: 'no_sale',
272
258
  guard: {
273
259
  or: [
274
- { "!": [{ var: "state.highBidder" }] },
260
+ { '!': [{ var: 'state.highBidder' }] },
275
261
  {
276
262
  and: [
277
- { var: "state.reservePrice" },
263
+ { var: 'state.reservePrice' },
278
264
  {
279
- "<": [{ var: "state.highBid" }, { var: "state.reservePrice" }],
265
+ '<': [{ var: 'state.highBid' }, { var: 'state.reservePrice' }],
280
266
  },
281
267
  ],
282
268
  },
@@ -284,16 +270,12 @@ export const marketAuctionDef = defineFiberApp({
284
270
  },
285
271
  effect: {
286
272
  merge: [
287
- { var: "state" },
273
+ { var: 'state' },
288
274
  {
289
- status: "NO_SALE",
290
- closedAt: { var: "$timestamp" },
275
+ status: 'NO_SALE',
276
+ closedAt: { var: '$ordinal' },
291
277
  reason: {
292
- if: [
293
- { "!": [{ var: "state.highBidder" }] },
294
- "no_bids",
295
- "reserve_not_met",
296
- ],
278
+ if: [{ '!': [{ var: 'state.highBidder' }] }, 'no_bids', 'reserve_not_met'],
297
279
  },
298
280
  },
299
281
  ],