@ottochain/sdk 2.4.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 (225) 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 +1 -1
  5. package/dist/cjs/apps/contracts/state-machines/contract-agreement.js +126 -148
  6. package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +153 -174
  7. package/dist/cjs/apps/contracts/state-machines/contract-universal.js +46 -58
  8. package/dist/cjs/apps/corporate/state-machines/corp-board.js +415 -481
  9. package/dist/cjs/apps/corporate/state-machines/corp-entity.js +368 -440
  10. package/dist/cjs/apps/corporate/state-machines/corp-securities.js +532 -647
  11. package/dist/cjs/apps/corporate/state-machines/corp-shareholders.js +499 -603
  12. package/dist/cjs/apps/governance/index.js +7 -7
  13. package/dist/cjs/apps/governance/state-machines/dao-multisig.js +170 -209
  14. package/dist/cjs/apps/governance/state-machines/dao-reputation.js +161 -214
  15. package/dist/cjs/apps/governance/state-machines/dao-single.js +92 -92
  16. package/dist/cjs/apps/governance/state-machines/dao-token.js +169 -223
  17. package/dist/cjs/apps/governance/state-machines/governance-simple.js +185 -217
  18. package/dist/cjs/apps/governance/state-machines/governance-universal.js +64 -64
  19. package/dist/cjs/apps/identity/constants.js +16 -24
  20. package/dist/cjs/apps/identity/index.js +1 -1
  21. package/dist/cjs/apps/identity/state-machines/identity-agent.js +124 -158
  22. package/dist/cjs/apps/identity/state-machines/identity-oracle.js +151 -169
  23. package/dist/cjs/apps/identity/state-machines/identity-registry.js +89 -115
  24. package/dist/cjs/apps/identity/state-machines/identity-universal.js +51 -57
  25. package/dist/cjs/apps/index.js +4 -1
  26. package/dist/cjs/apps/lending/assets.js +41 -17
  27. package/dist/cjs/apps/lending/credit-scoring.js +4 -4
  28. package/dist/cjs/apps/lending/eligibility.js +9 -25
  29. package/dist/cjs/apps/lending/index.js +1 -1
  30. package/dist/cjs/apps/lending/state-machines/lending-zk-loan.js +177 -156
  31. package/dist/cjs/apps/markets/index.js +1 -1
  32. package/dist/cjs/apps/markets/state-machines/market-auction.js +115 -134
  33. package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +122 -137
  34. package/dist/cjs/apps/markets/state-machines/market-group-buy.js +158 -177
  35. package/dist/cjs/apps/markets/state-machines/market-prediction.js +193 -227
  36. package/dist/cjs/apps/markets/state-machines/market-universal.js +65 -80
  37. package/dist/cjs/apps/oracles/index.js +1 -1
  38. package/dist/cjs/apps/privacy/index.js +67 -0
  39. package/dist/cjs/apps/privacy/state-machines/index.js +17 -0
  40. package/dist/cjs/apps/privacy/state-machines/mixer-ddhRing.js +286 -0
  41. package/dist/cjs/apps/privacy/state-machines/note-pool.js +476 -0
  42. package/dist/cjs/apps/staked-pool/assets.js +103 -0
  43. package/dist/cjs/apps/staked-pool/base.js +498 -0
  44. package/dist/cjs/apps/staked-pool/consumer.js +55 -0
  45. package/dist/cjs/apps/staked-pool/index.js +83 -0
  46. package/dist/cjs/apps/staked-pool/state-machines/index.js +12 -0
  47. package/dist/cjs/apps/staked-pool/state-machines/staked-pool-base.js +49 -0
  48. package/dist/cjs/apps/staked-pool/state-machines/staked-pool-oracle.js +131 -0
  49. package/dist/cjs/generated/google/protobuf/struct.js +1 -1
  50. package/dist/cjs/generated/google/protobuf/timestamp.js +1 -1
  51. package/dist/cjs/generated/ottochain/apps/contracts/v1/contract.js +1 -1
  52. package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate.js +1 -1
  53. package/dist/cjs/generated/ottochain/apps/governance/v1/governance.js +1 -1
  54. package/dist/cjs/generated/ottochain/apps/identity/v1/attestation.js +1 -1
  55. package/dist/cjs/generated/ottochain/apps/identity/v1/identity.js +1 -1
  56. package/dist/cjs/generated/ottochain/apps/markets/v1/market.js +1 -1
  57. package/dist/cjs/generated/ottochain/v1/common.js +1 -1
  58. package/dist/cjs/generated/ottochain/v1/fiber.js +40 -2
  59. package/dist/cjs/generated/ottochain/v1/messages.js +1 -1
  60. package/dist/cjs/generated/ottochain/v1/records.js +1 -1
  61. package/dist/cjs/index.js +20 -3
  62. package/dist/cjs/ottochain/genesis-manifest.js +6 -0
  63. package/dist/cjs/ottochain/metagraph-client.js +16 -8
  64. package/dist/cjs/ottochain/snapshot.js +2 -4
  65. package/dist/cjs/ottochain/transaction.js +10 -0
  66. package/dist/cjs/privacy/sealed-bid.js +85 -82
  67. package/dist/cjs/privacy/shield-app.js +32 -32
  68. package/dist/cjs/schema/effects.js +117 -1
  69. package/dist/cjs/schema/fiber-app.js +132 -3
  70. package/dist/cjs/schema/guard-lint.js +3 -12
  71. package/dist/cjs/schema/guards.js +38 -38
  72. package/dist/cjs/templates/asset-policy.js +190 -0
  73. package/dist/cjs/templates/index.js +86 -0
  74. package/dist/cjs/templates/machine.js +130 -0
  75. package/dist/cjs/templates/migration.js +39 -0
  76. package/dist/cjs/templates/state-shape.js +38 -0
  77. package/dist/cjs/validation.js +1 -3
  78. package/dist/esm/apps/compute/index.js +29 -0
  79. package/dist/esm/apps/compute/state-machines/compute-rule110.js +161 -0
  80. package/dist/esm/apps/compute/state-machines/index.js +5 -0
  81. package/dist/esm/apps/contracts/index.js +4 -4
  82. package/dist/esm/apps/contracts/state-machines/contract-agreement.js +128 -150
  83. package/dist/esm/apps/contracts/state-machines/contract-escrow.js +155 -176
  84. package/dist/esm/apps/contracts/state-machines/contract-universal.js +47 -59
  85. package/dist/esm/apps/corporate/index.js +2 -2
  86. package/dist/esm/apps/corporate/state-machines/corp-board.js +418 -484
  87. package/dist/esm/apps/corporate/state-machines/corp-entity.js +371 -443
  88. package/dist/esm/apps/corporate/state-machines/corp-securities.js +535 -650
  89. package/dist/esm/apps/corporate/state-machines/corp-shareholders.js +502 -606
  90. package/dist/esm/apps/governance/index.js +10 -10
  91. package/dist/esm/apps/governance/state-machines/dao-multisig.js +172 -211
  92. package/dist/esm/apps/governance/state-machines/dao-reputation.js +163 -216
  93. package/dist/esm/apps/governance/state-machines/dao-single.js +94 -94
  94. package/dist/esm/apps/governance/state-machines/dao-token.js +171 -225
  95. package/dist/esm/apps/governance/state-machines/governance-simple.js +187 -219
  96. package/dist/esm/apps/governance/state-machines/governance-universal.js +65 -65
  97. package/dist/esm/apps/identity/constants.js +18 -26
  98. package/dist/esm/apps/identity/index.js +8 -8
  99. package/dist/esm/apps/identity/state-machines/identity-agent.js +125 -159
  100. package/dist/esm/apps/identity/state-machines/identity-oracle.js +153 -171
  101. package/dist/esm/apps/identity/state-machines/identity-registry.js +91 -117
  102. package/dist/esm/apps/identity/state-machines/identity-universal.js +52 -58
  103. package/dist/esm/apps/index.js +9 -6
  104. package/dist/esm/apps/lending/assets.js +41 -17
  105. package/dist/esm/apps/lending/credit-scoring.js +6 -6
  106. package/dist/esm/apps/lending/eligibility.js +10 -26
  107. package/dist/esm/apps/lending/index.js +5 -5
  108. package/dist/esm/apps/lending/state-machines/lending-zk-loan.js +178 -157
  109. package/dist/esm/apps/markets/index.js +5 -5
  110. package/dist/esm/apps/markets/state-machines/market-auction.js +117 -136
  111. package/dist/esm/apps/markets/state-machines/market-crowdfund.js +124 -139
  112. package/dist/esm/apps/markets/state-machines/market-group-buy.js +160 -179
  113. package/dist/esm/apps/markets/state-machines/market-prediction.js +195 -229
  114. package/dist/esm/apps/markets/state-machines/market-universal.js +66 -81
  115. package/dist/esm/apps/oracles/index.js +3 -3
  116. package/dist/esm/apps/privacy/index.js +56 -0
  117. package/dist/esm/apps/privacy/state-machines/index.js +6 -0
  118. package/dist/esm/apps/privacy/state-machines/mixer-ddhRing.js +282 -0
  119. package/dist/esm/apps/privacy/state-machines/note-pool.js +470 -0
  120. package/dist/esm/apps/staked-pool/assets.js +91 -0
  121. package/dist/esm/apps/staked-pool/base.js +493 -0
  122. package/dist/esm/apps/staked-pool/consumer.js +49 -0
  123. package/dist/esm/apps/staked-pool/index.js +60 -0
  124. package/dist/esm/apps/staked-pool/state-machines/index.js +6 -0
  125. package/dist/esm/apps/staked-pool/state-machines/staked-pool-base.js +46 -0
  126. package/dist/esm/apps/staked-pool/state-machines/staked-pool-oracle.js +127 -0
  127. package/dist/esm/generated/google/protobuf/struct.js +1 -1
  128. package/dist/esm/generated/google/protobuf/timestamp.js +1 -1
  129. package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +1 -1
  130. package/dist/esm/generated/ottochain/apps/corporate/v1/corporate.js +1 -1
  131. package/dist/esm/generated/ottochain/apps/governance/v1/governance.js +1 -1
  132. package/dist/esm/generated/ottochain/apps/identity/v1/attestation.js +1 -1
  133. package/dist/esm/generated/ottochain/apps/identity/v1/identity.js +1 -1
  134. package/dist/esm/generated/ottochain/apps/markets/v1/market.js +1 -1
  135. package/dist/esm/generated/ottochain/v1/common.js +1 -1
  136. package/dist/esm/generated/ottochain/v1/fiber.js +40 -2
  137. package/dist/esm/generated/ottochain/v1/messages.js +1 -1
  138. package/dist/esm/generated/ottochain/v1/records.js +1 -1
  139. package/dist/esm/index.js +10 -4
  140. package/dist/esm/ottochain/genesis-manifest.js +6 -0
  141. package/dist/esm/ottochain/metagraph-client.js +16 -8
  142. package/dist/esm/ottochain/snapshot.js +2 -4
  143. package/dist/esm/ottochain/transaction.js +8 -0
  144. package/dist/esm/privacy/index.js +2 -2
  145. package/dist/esm/privacy/sealed-bid.js +87 -84
  146. package/dist/esm/privacy/shield-app.js +33 -33
  147. package/dist/esm/schema/effects.js +110 -0
  148. package/dist/esm/schema/fiber-app.js +127 -3
  149. package/dist/esm/schema/guard-lint.js +3 -12
  150. package/dist/esm/schema/guards.js +36 -37
  151. package/dist/esm/templates/asset-policy.js +182 -0
  152. package/dist/esm/templates/index.js +41 -0
  153. package/dist/esm/templates/machine.js +125 -0
  154. package/dist/esm/templates/migration.js +34 -0
  155. package/dist/esm/templates/state-shape.js +34 -0
  156. package/dist/esm/validation.js +1 -3
  157. package/dist/esm/zk/index.js +4 -4
  158. package/dist/types/apps/compute/index.d.ts +176 -0
  159. package/dist/types/apps/compute/state-machines/compute-rule110.d.ts +157 -0
  160. package/dist/types/apps/compute/state-machines/index.d.ts +5 -0
  161. package/dist/types/apps/contracts/index.d.ts +14 -14
  162. package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +3 -3
  163. package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +3 -3
  164. package/dist/types/apps/contracts/state-machines/contract-universal.d.ts +4 -4
  165. package/dist/types/apps/corporate/index.d.ts +162 -162
  166. package/dist/types/apps/corporate/state-machines/corp-board.d.ts +88 -88
  167. package/dist/types/apps/corporate/state-machines/corp-entity.d.ts +14 -14
  168. package/dist/types/apps/corporate/state-machines/corp-securities.d.ts +18 -18
  169. package/dist/types/apps/corporate/state-machines/corp-shareholders.d.ts +43 -43
  170. package/dist/types/apps/governance/index.d.ts +81 -81
  171. package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +16 -16
  172. package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +22 -22
  173. package/dist/types/apps/governance/state-machines/dao-token.d.ts +21 -21
  174. package/dist/types/apps/governance/state-machines/governance-simple.d.ts +11 -11
  175. package/dist/types/apps/governance/state-machines/governance-universal.d.ts +4 -4
  176. package/dist/types/apps/identity/constants.d.ts +2 -2
  177. package/dist/types/apps/identity/index.d.ts +70 -70
  178. package/dist/types/apps/identity/state-machines/identity-agent.d.ts +23 -23
  179. package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +11 -11
  180. package/dist/types/apps/identity/state-machines/identity-registry.d.ts +27 -27
  181. package/dist/types/apps/identity/state-machines/identity-universal.d.ts +4 -4
  182. package/dist/types/apps/index.d.ts +9 -6
  183. package/dist/types/apps/lending/assets.d.ts +2 -2
  184. package/dist/types/apps/lending/credit-scoring.d.ts +5 -5
  185. package/dist/types/apps/lending/eligibility.d.ts +2 -2
  186. package/dist/types/apps/lending/index.d.ts +20 -12
  187. package/dist/types/apps/lending/state-machines/lending-zk-loan.d.ts +15 -7
  188. package/dist/types/apps/markets/index.d.ts +76 -76
  189. package/dist/types/apps/markets/state-machines/market-auction.d.ts +12 -12
  190. package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +19 -19
  191. package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +18 -18
  192. package/dist/types/apps/markets/state-machines/market-prediction.d.ts +15 -15
  193. package/dist/types/apps/markets/state-machines/market-universal.d.ts +7 -7
  194. package/dist/types/apps/oracles/index.d.ts +1 -1
  195. package/dist/types/apps/privacy/index.d.ts +328 -0
  196. package/dist/types/apps/privacy/state-machines/index.d.ts +6 -0
  197. package/dist/types/apps/privacy/state-machines/mixer-ddhRing.d.ts +337 -0
  198. package/dist/types/apps/privacy/state-machines/note-pool.d.ts +196 -0
  199. package/dist/types/apps/staked-pool/assets.d.ts +53 -0
  200. package/dist/types/apps/staked-pool/base.d.ts +80 -0
  201. package/dist/types/apps/staked-pool/consumer.d.ts +29 -0
  202. package/dist/types/apps/staked-pool/index.d.ts +51 -0
  203. package/dist/types/apps/staked-pool/state-machines/index.d.ts +6 -0
  204. package/dist/types/apps/staked-pool/state-machines/staked-pool-base.d.ts +8 -0
  205. package/dist/types/apps/staked-pool/state-machines/staked-pool-oracle.d.ts +34 -0
  206. package/dist/types/generated/openapi.d.ts +13 -0
  207. package/dist/types/generated/ottochain/v1/fiber.d.ts +7 -0
  208. package/dist/types/index.d.ts +3 -3
  209. package/dist/types/openapi.d.ts +4 -2
  210. package/dist/types/ottochain/genesis-manifest.d.ts +6 -0
  211. package/dist/types/ottochain/transaction.d.ts +9 -1
  212. package/dist/types/ottochain/types.d.ts +1 -1
  213. package/dist/types/privacy/index.d.ts +2 -2
  214. package/dist/types/privacy/sealed-bid.d.ts +9 -9
  215. package/dist/types/privacy/shield-app.d.ts +1 -1
  216. package/dist/types/schema/effects.d.ts +107 -0
  217. package/dist/types/schema/fiber-app.d.ts +281 -0
  218. package/dist/types/schema/guards.d.ts +12 -0
  219. package/dist/types/templates/asset-policy.d.ts +119 -0
  220. package/dist/types/templates/index.d.ts +26 -0
  221. package/dist/types/templates/machine.d.ts +139 -0
  222. package/dist/types/templates/migration.d.ts +34 -0
  223. package/dist/types/templates/state-shape.d.ts +30 -0
  224. package/dist/types/zk/index.d.ts +4 -4
  225. package/package.json +31 -13
@@ -1,201 +1,201 @@
1
- import { defineFiberApp } from "../../../schema/fiber-app.js";
2
- import { signerIsParty, signerInSet } from "../../../schema/guards.js";
1
+ import { defineFiberApp } from '../../../schema/fiber-app.js';
2
+ import { signerIsParty, signerInSet } from '../../../schema/guards.js';
3
3
  /**
4
4
  * Binary or multi-outcome prediction market with oracle resolution and position staking.
5
5
  */
6
6
  export const marketPredictionDef = defineFiberApp({
7
7
  metadata: {
8
- name: "MarketPrediction",
9
- app: "markets",
10
- type: "prediction",
11
- version: "1.0.0",
12
- description: "Binary or multi-outcome prediction market with oracle resolution and position staking",
8
+ name: 'MarketPrediction',
9
+ app: 'markets',
10
+ type: 'prediction',
11
+ version: '1.0.0',
12
+ description: 'Binary or multi-outcome prediction market with oracle resolution and position staking',
13
13
  crossReferences: {
14
- oracleId: "Links to IdentityOracle that resolves the outcome",
14
+ oracleId: 'Links to IdentityOracle that resolves the outcome',
15
15
  creatorIdentityId: "Links to creator's IdentityAgent",
16
16
  },
17
17
  },
18
18
  createSchema: {
19
- required: ["creator", "outcomes", "oracles", "quorum", "arbiter"],
19
+ required: ['creator', 'outcomes', 'oracles', 'quorum', 'arbiter'],
20
20
  properties: {
21
21
  creator: {
22
- type: "address",
23
- description: "DAG address of the market creator",
22
+ type: 'address',
23
+ description: 'DAG address of the market creator',
24
24
  immutable: true,
25
25
  },
26
26
  arbiter: {
27
- type: "address",
28
- description: "DAG address of the arbiter authorized to rule on a disputed resolution",
27
+ type: 'address',
28
+ description: 'DAG address of the arbiter authorized to rule on a disputed resolution',
29
29
  immutable: true,
30
30
  },
31
31
  outcomes: {
32
- type: "array",
33
- description: "Valid outcome identifiers",
32
+ type: 'array',
33
+ description: 'Valid outcome identifiers',
34
34
  immutable: true,
35
35
  },
36
36
  oracles: {
37
- type: "array",
38
- description: "Authorized oracle addresses",
37
+ type: 'array',
38
+ description: 'Authorized oracle addresses',
39
39
  immutable: true,
40
40
  },
41
41
  quorum: {
42
- type: "number",
43
- description: "Minimum oracle submissions needed to resolve",
42
+ type: 'number',
43
+ description: 'Minimum oracle submissions needed to resolve',
44
44
  immutable: true,
45
45
  },
46
- deadline: { type: "timestamp", description: "Optional trading deadline" },
46
+ deadline: { type: 'timestamp', description: 'Optional trading deadline' },
47
47
  },
48
48
  },
49
49
  stateSchema: {
50
50
  properties: {
51
- status: { type: "string", computed: true },
52
- creator: { type: "address", immutable: true },
53
- arbiter: { type: "address", immutable: true },
54
- outcomes: { type: "array", immutable: true },
55
- oracles: { type: "array", immutable: true },
56
- quorum: { type: "number", immutable: true },
57
- deadline: { type: "timestamp" },
58
- positions: { type: "object", computed: true },
59
- totalPool: { type: "number", computed: true },
60
- resolutions: { type: "array", computed: true },
61
- finalOutcome: { type: "string", computed: true },
62
- claims: { type: "array", computed: true },
51
+ status: { type: 'string', computed: true },
52
+ creator: { type: 'address', immutable: true },
53
+ arbiter: { type: 'address', immutable: true },
54
+ outcomes: { type: 'array', immutable: true },
55
+ oracles: { type: 'array', immutable: true },
56
+ quorum: { type: 'number', immutable: true },
57
+ deadline: { type: 'timestamp' },
58
+ positions: { type: 'object', computed: true },
59
+ totalPool: { type: 'number', computed: true },
60
+ resolutions: { type: 'array', computed: true },
61
+ finalOutcome: { type: 'string', computed: true },
62
+ claims: { type: 'array', computed: true },
63
63
  },
64
64
  },
65
65
  eventSchemas: {
66
- open: { description: "Open the market for trading" },
66
+ open: { description: 'Open the market for trading' },
67
67
  cancel: {
68
- description: "Cancel the market before opening",
69
- properties: { reason: { type: "string" } },
68
+ description: 'Cancel the market before opening',
69
+ properties: { reason: { type: 'string' } },
70
70
  },
71
71
  take_position: {
72
- description: "Take a position on an outcome",
73
- required: ["outcome", "amount"],
72
+ description: 'Take a position on an outcome',
73
+ required: ['outcome', 'amount'],
74
74
  properties: {
75
- outcome: { type: "string" },
76
- amount: { type: "number", minimum: 0 },
75
+ outcome: { type: 'string' },
76
+ amount: { type: 'number', minimum: 0 },
77
77
  },
78
78
  },
79
- close: { description: "Close trading" },
79
+ close: { description: 'Close trading' },
80
80
  submit_resolution: {
81
- description: "Submit oracle resolution",
82
- required: ["outcome", "proof"],
81
+ description: 'Submit oracle resolution',
82
+ required: ['outcome', 'proof'],
83
83
  properties: {
84
- outcome: { type: "string" },
85
- proof: { type: "string" },
84
+ outcome: { type: 'string' },
85
+ proof: { type: 'string' },
86
86
  },
87
87
  },
88
88
  finalize: {
89
- description: "Finalize market after quorum reached",
89
+ description: 'Finalize market after quorum reached',
90
90
  },
91
91
  dispute: {
92
- description: "Dispute the resolution",
93
- required: ["stake"],
92
+ description: 'Dispute the resolution',
93
+ required: ['stake'],
94
94
  properties: {
95
- stake: { type: "number", minimum: 0 },
96
- reason: { type: "string" },
95
+ stake: { type: 'number', minimum: 0 },
96
+ reason: { type: 'string' },
97
97
  },
98
98
  },
99
99
  ruling: {
100
- description: "Judicial ruling on dispute",
100
+ description: 'Judicial ruling on dispute',
101
101
  properties: {
102
- finalOutcome: { type: "string" },
103
- rulingId: { type: "string" },
102
+ finalOutcome: { type: 'string' },
103
+ rulingId: { type: 'string' },
104
104
  },
105
105
  },
106
- invalidate: { description: "Invalidate market by oracle consensus" },
106
+ invalidate: { description: 'Invalidate market by oracle consensus' },
107
107
  claim: {
108
- description: "Claim payout after settlement",
109
- properties: { amount: { type: "number" } },
108
+ description: 'Claim payout after settlement',
109
+ properties: { amount: { type: 'number' } },
110
110
  },
111
111
  },
112
112
  states: {
113
113
  PROPOSED: {
114
- id: "PROPOSED",
114
+ id: 'PROPOSED',
115
115
  isFinal: false,
116
116
  metadata: {
117
- label: "Proposed",
118
- description: "Market created but not yet open for trading",
119
- category: "initial",
117
+ label: 'Proposed',
118
+ description: 'Market created but not yet open for trading',
119
+ category: 'initial',
120
120
  },
121
121
  },
122
122
  OPEN: {
123
- id: "OPEN",
123
+ id: 'OPEN',
124
124
  isFinal: false,
125
125
  metadata: {
126
- label: "Open",
127
- description: "Accepting positions on outcomes",
128
- category: "active",
126
+ label: 'Open',
127
+ description: 'Accepting positions on outcomes',
128
+ category: 'active',
129
129
  },
130
130
  },
131
131
  CLOSED: {
132
- id: "CLOSED",
132
+ id: 'CLOSED',
133
133
  isFinal: false,
134
134
  metadata: {
135
- label: "Closed",
136
- description: "No more positions, awaiting resolution",
137
- category: "pending",
135
+ label: 'Closed',
136
+ description: 'No more positions, awaiting resolution',
137
+ category: 'pending',
138
138
  },
139
139
  },
140
140
  RESOLVING: {
141
- id: "RESOLVING",
141
+ id: 'RESOLVING',
142
142
  isFinal: false,
143
143
  metadata: {
144
- label: "Resolving",
145
- description: "Oracle(s) submitting resolution",
146
- category: "pending",
144
+ label: 'Resolving',
145
+ description: 'Oracle(s) submitting resolution',
146
+ category: 'pending',
147
147
  },
148
148
  },
149
149
  DISPUTED: {
150
- id: "DISPUTED",
150
+ id: 'DISPUTED',
151
151
  isFinal: false,
152
152
  metadata: {
153
- label: "Disputed",
154
- description: "Resolution challenged, awaiting arbitration",
155
- category: "pending",
153
+ label: 'Disputed',
154
+ description: 'Resolution challenged, awaiting arbitration',
155
+ category: 'pending',
156
156
  },
157
157
  },
158
158
  SETTLED: {
159
- id: "SETTLED",
159
+ id: 'SETTLED',
160
160
  isFinal: true,
161
161
  metadata: {
162
- label: "Settled",
163
- description: "Outcome finalized, payouts available",
164
- category: "terminal",
162
+ label: 'Settled',
163
+ description: 'Outcome finalized, payouts available',
164
+ category: 'terminal',
165
165
  },
166
166
  },
167
167
  REFUNDED: {
168
- id: "REFUNDED",
168
+ id: 'REFUNDED',
169
169
  isFinal: true,
170
170
  metadata: {
171
- label: "Refunded",
172
- description: "Market invalidated, all positions refunded",
173
- category: "terminal",
171
+ label: 'Refunded',
172
+ description: 'Market invalidated, all positions refunded',
173
+ category: 'terminal',
174
174
  },
175
175
  },
176
176
  CANCELLED: {
177
- id: "CANCELLED",
177
+ id: 'CANCELLED',
178
178
  isFinal: true,
179
179
  metadata: {
180
- label: "Cancelled",
181
- description: "Market cancelled before opening",
182
- category: "terminal",
180
+ label: 'Cancelled',
181
+ description: 'Market cancelled before opening',
182
+ category: 'terminal',
183
183
  },
184
184
  },
185
185
  },
186
- initialState: "PROPOSED",
186
+ initialState: 'PROPOSED',
187
187
  transitions: [
188
188
  {
189
- from: "PROPOSED",
190
- to: "OPEN",
191
- eventName: "open",
192
- guard: signerIsParty("state.creator"),
189
+ from: 'PROPOSED',
190
+ to: 'OPEN',
191
+ eventName: 'open',
192
+ guard: signerIsParty('state.creator'),
193
193
  effect: {
194
194
  merge: [
195
- { var: "state" },
195
+ { var: 'state' },
196
196
  {
197
- status: "OPEN",
198
- openedAt: { var: "$ordinal" },
197
+ status: 'OPEN',
198
+ openedAt: { var: '$ordinal' },
199
199
  positions: {},
200
200
  totalPool: 0,
201
201
  },
@@ -204,58 +204,51 @@ export const marketPredictionDef = defineFiberApp({
204
204
  dependencies: [],
205
205
  },
206
206
  {
207
- from: "PROPOSED",
208
- to: "CANCELLED",
209
- eventName: "cancel",
210
- guard: signerIsParty("state.creator"),
207
+ from: 'PROPOSED',
208
+ to: 'CANCELLED',
209
+ eventName: 'cancel',
210
+ guard: signerIsParty('state.creator'),
211
211
  effect: {
212
212
  merge: [
213
- { var: "state" },
213
+ { var: 'state' },
214
214
  {
215
- status: "CANCELLED",
216
- cancelledAt: { var: "$ordinal" },
217
- reason: { var: "event.reason" },
215
+ status: 'CANCELLED',
216
+ cancelledAt: { var: '$ordinal' },
217
+ reason: { var: 'event.reason' },
218
218
  },
219
219
  ],
220
220
  },
221
221
  dependencies: [],
222
222
  },
223
223
  {
224
- from: "OPEN",
225
- to: "OPEN",
226
- eventName: "take_position",
224
+ from: 'OPEN',
225
+ to: 'OPEN',
226
+ eventName: 'take_position',
227
227
  guard: {
228
228
  and: [
229
- { ">": [{ var: "event.amount" }, 0] },
230
- { in: [{ var: "event.outcome" }, { var: "state.outcomes" }] },
229
+ { '>': [{ var: 'event.amount' }, 0] },
230
+ { in: [{ var: 'event.outcome' }, { var: 'state.outcomes' }] },
231
231
  {
232
- or: [
233
- { "!": [{ var: "state.deadline" }] },
234
- { "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
235
- ],
232
+ or: [{ '!': [{ var: 'state.deadline' }] }, { '<=': [{ var: '$ordinal' }, { var: 'state.deadline' }] }],
236
233
  },
237
234
  ],
238
235
  },
239
236
  effect: {
240
237
  merge: [
241
- { var: "state" },
238
+ { var: 'state' },
242
239
  {
243
240
  positions: {
244
241
  merge: [
245
- { var: "state.positions" },
242
+ { var: 'state.positions' },
246
243
  {
247
244
  __computed: {
248
- cat: [
249
- { var: "event.agent" },
250
- "_",
251
- { var: "event.outcome" },
252
- ],
245
+ cat: [{ var: 'event.agent' }, '_', { var: 'event.outcome' }],
253
246
  },
254
247
  },
255
248
  ],
256
249
  },
257
250
  totalPool: {
258
- "+": [{ var: "state.totalPool" }, { var: "event.amount" }],
251
+ '+': [{ var: 'state.totalPool' }, { var: 'event.amount' }],
259
252
  },
260
253
  },
261
254
  ],
@@ -263,44 +256,38 @@ export const marketPredictionDef = defineFiberApp({
263
256
  dependencies: [],
264
257
  },
265
258
  {
266
- from: "OPEN",
267
- to: "CLOSED",
268
- eventName: "close",
259
+ from: 'OPEN',
260
+ to: 'CLOSED',
261
+ eventName: 'close',
269
262
  guard: {
270
263
  or: [
271
- signerIsParty("state.creator"),
264
+ signerIsParty('state.creator'),
272
265
  {
273
- and: [
274
- { var: "state.deadline" },
275
- { ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
276
- ],
266
+ and: [{ var: 'state.deadline' }, { '>=': [{ var: '$ordinal' }, { var: 'state.deadline' }] }],
277
267
  },
278
268
  ],
279
269
  },
280
270
  effect: {
281
- merge: [
282
- { var: "state" },
283
- { status: "CLOSED", closedAt: { var: "$ordinal" } },
284
- ],
271
+ merge: [{ var: 'state' }, { status: 'CLOSED', closedAt: { var: '$ordinal' } }],
285
272
  },
286
273
  dependencies: [],
287
274
  },
288
275
  {
289
- from: "CLOSED",
290
- to: "RESOLVING",
291
- eventName: "submit_resolution",
292
- guard: signerInSet("state.oracles"),
276
+ from: 'CLOSED',
277
+ to: 'RESOLVING',
278
+ eventName: 'submit_resolution',
279
+ guard: signerInSet('state.oracles'),
293
280
  effect: {
294
281
  merge: [
295
- { var: "state" },
282
+ { var: 'state' },
296
283
  {
297
- status: "RESOLVING",
284
+ status: 'RESOLVING',
298
285
  resolutions: [
299
286
  {
300
- oracle: { var: "event.agent" },
301
- outcome: { var: "event.outcome" },
302
- proof: { var: "event.proof" },
303
- submittedAt: { var: "$ordinal" },
287
+ oracle: { var: 'event.agent' },
288
+ outcome: { var: 'event.outcome' },
289
+ proof: { var: 'event.proof' },
290
+ submittedAt: { var: '$ordinal' },
304
291
  },
305
292
  ],
306
293
  },
@@ -309,19 +296,16 @@ export const marketPredictionDef = defineFiberApp({
309
296
  dependencies: [],
310
297
  },
311
298
  {
312
- from: "RESOLVING",
313
- to: "RESOLVING",
314
- eventName: "submit_resolution",
299
+ from: 'RESOLVING',
300
+ to: 'RESOLVING',
301
+ eventName: 'submit_resolution',
315
302
  guard: {
316
303
  and: [
317
- signerInSet("state.oracles"),
304
+ signerInSet('state.oracles'),
318
305
  {
319
- "!": [
306
+ '!': [
320
307
  {
321
- in: [
322
- { var: "event.agent" },
323
- { map: [{ var: "state.resolutions" }, { var: "oracle" }] },
324
- ],
308
+ in: [{ var: 'event.agent' }, { map: [{ var: 'state.resolutions' }, { var: 'oracle' }] }],
325
309
  },
326
310
  ],
327
311
  },
@@ -329,17 +313,17 @@ export const marketPredictionDef = defineFiberApp({
329
313
  },
330
314
  effect: {
331
315
  merge: [
332
- { var: "state" },
316
+ { var: 'state' },
333
317
  {
334
318
  resolutions: {
335
319
  cat: [
336
- { var: "state.resolutions" },
320
+ { var: 'state.resolutions' },
337
321
  [
338
322
  {
339
- oracle: { var: "event.agent" },
340
- outcome: { var: "event.outcome" },
341
- proof: { var: "event.proof" },
342
- submittedAt: { var: "$ordinal" },
323
+ oracle: { var: 'event.agent' },
324
+ outcome: { var: 'event.outcome' },
325
+ proof: { var: 'event.proof' },
326
+ submittedAt: { var: '$ordinal' },
343
327
  },
344
328
  ],
345
329
  ],
@@ -350,29 +334,26 @@ export const marketPredictionDef = defineFiberApp({
350
334
  dependencies: [],
351
335
  },
352
336
  {
353
- from: "RESOLVING",
354
- to: "SETTLED",
355
- eventName: "finalize",
337
+ from: 'RESOLVING',
338
+ to: 'SETTLED',
339
+ eventName: 'finalize',
356
340
  // authority gate — an ARBITER/SLASHER attestation check layers on additively when the identity registry lands (see docs/design/app-hardening-identity-integration.md §4.2)
357
341
  guard: {
358
342
  and: [
359
- signerInSet("state.oracles"),
343
+ signerInSet('state.oracles'),
360
344
  {
361
- ">=": [
362
- { count: { var: "state.resolutions" } },
363
- { var: "state.quorum" },
364
- ],
345
+ '>=': [{ count: { var: 'state.resolutions' } }, { var: 'state.quorum' }],
365
346
  },
366
347
  ],
367
348
  },
368
349
  effect: {
369
350
  merge: [
370
- { var: "state" },
351
+ { var: 'state' },
371
352
  {
372
- status: "SETTLED",
373
- settledAt: { var: "$ordinal" },
353
+ status: 'SETTLED',
354
+ settledAt: { var: '$ordinal' },
374
355
  // finalOutcome derives from the quorum-agreed resolution, not a raw event field
375
- finalOutcome: { var: "state.resolutions.0.outcome" },
356
+ finalOutcome: { var: 'state.resolutions.0.outcome' },
376
357
  claims: [],
377
358
  },
378
359
  ],
@@ -380,62 +361,56 @@ export const marketPredictionDef = defineFiberApp({
380
361
  dependencies: [],
381
362
  },
382
363
  {
383
- from: "RESOLVING",
384
- to: "DISPUTED",
385
- eventName: "dispute",
364
+ from: 'RESOLVING',
365
+ to: 'DISPUTED',
366
+ eventName: 'dispute',
386
367
  guard: {
387
368
  and: [
388
369
  {
389
- ">": [
370
+ '>': [
390
371
  {
391
372
  length: [
392
373
  {
393
- filter: [
394
- { var: "state.positions" },
395
- { "===": [{ var: "agent" }, { var: "event.agent" }] },
396
- ],
374
+ filter: [{ var: 'state.positions' }, { '===': [{ var: 'agent' }, { var: 'event.agent' }] }],
397
375
  },
398
376
  ],
399
377
  },
400
378
  0,
401
379
  ],
402
380
  },
403
- { var: "event.stake" },
381
+ { var: 'event.stake' },
404
382
  ],
405
383
  },
406
384
  effect: {
407
385
  merge: [
408
- { var: "state" },
386
+ { var: 'state' },
409
387
  {
410
- status: "DISPUTED",
411
- disputedAt: { var: "$ordinal" },
412
- disputedBy: { var: "event.agent" },
413
- disputeStake: { var: "event.stake" },
414
- disputeReason: { var: "event.reason" },
388
+ status: 'DISPUTED',
389
+ disputedAt: { var: '$ordinal' },
390
+ disputedBy: { var: 'event.agent' },
391
+ disputeStake: { var: 'event.stake' },
392
+ disputeReason: { var: 'event.reason' },
415
393
  },
416
394
  ],
417
395
  },
418
396
  dependencies: [],
419
397
  },
420
398
  {
421
- from: "DISPUTED",
422
- to: "SETTLED",
423
- eventName: "ruling",
399
+ from: 'DISPUTED',
400
+ to: 'SETTLED',
401
+ eventName: 'ruling',
424
402
  // authority gate — an ARBITER/SLASHER attestation check layers on additively when the identity registry lands (see docs/design/app-hardening-identity-integration.md §4.2)
425
403
  guard: {
426
- and: [
427
- signerIsParty("state.arbiter"),
428
- { in: [{ var: "event.finalOutcome" }, { var: "state.outcomes" }] },
429
- ],
404
+ and: [signerIsParty('state.arbiter'), { in: [{ var: 'event.finalOutcome' }, { var: 'state.outcomes' }] }],
430
405
  },
431
406
  effect: {
432
407
  merge: [
433
- { var: "state" },
408
+ { var: 'state' },
434
409
  {
435
- status: "SETTLED",
436
- settledAt: { var: "$ordinal" },
437
- finalOutcome: { var: "event.finalOutcome" },
438
- rulingId: { var: "event.rulingId" },
410
+ status: 'SETTLED',
411
+ settledAt: { var: '$ordinal' },
412
+ finalOutcome: { var: 'event.finalOutcome' },
413
+ rulingId: { var: 'event.rulingId' },
439
414
  claims: [],
440
415
  },
441
416
  ],
@@ -443,57 +418,51 @@ export const marketPredictionDef = defineFiberApp({
443
418
  dependencies: [],
444
419
  },
445
420
  {
446
- from: "RESOLVING",
447
- to: "REFUNDED",
448
- eventName: "invalidate",
421
+ from: 'RESOLVING',
422
+ to: 'REFUNDED',
423
+ eventName: 'invalidate',
449
424
  guard: {
450
- ">=": [
425
+ '>=': [
451
426
  {
452
427
  length: [
453
428
  {
454
- filter: [
455
- { var: "state.resolutions" },
456
- { "===": [{ var: "outcome" }, "INVALID"] },
457
- ],
429
+ filter: [{ var: 'state.resolutions' }, { '===': [{ var: 'outcome' }, 'INVALID'] }],
458
430
  },
459
431
  ],
460
432
  },
461
- { var: "state.quorum" },
433
+ { var: 'state.quorum' },
462
434
  ],
463
435
  },
464
436
  effect: {
465
437
  merge: [
466
- { var: "state" },
438
+ { var: 'state' },
467
439
  {
468
- status: "REFUNDED",
469
- refundedAt: { var: "$ordinal" },
470
- reason: "oracle_invalidation",
440
+ status: 'REFUNDED',
441
+ refundedAt: { var: '$ordinal' },
442
+ reason: 'oracle_invalidation',
471
443
  },
472
444
  ],
473
445
  },
474
446
  dependencies: [],
475
447
  },
476
448
  {
477
- from: "SETTLED",
478
- to: "SETTLED",
479
- eventName: "claim",
449
+ from: 'SETTLED',
450
+ to: 'SETTLED',
451
+ eventName: 'claim',
480
452
  guard: {
481
453
  and: [
482
454
  {
483
- ">": [
455
+ '>': [
484
456
  {
485
457
  length: [
486
458
  {
487
459
  filter: [
488
- { var: "state.positions" },
460
+ { var: 'state.positions' },
489
461
  {
490
462
  and: [
491
- { "===": [{ var: "agent" }, { var: "event.agent" }] },
463
+ { '===': [{ var: 'agent' }, { var: 'event.agent' }] },
492
464
  {
493
- "===": [
494
- { var: "outcome" },
495
- { var: "state.finalOutcome" },
496
- ],
465
+ '===': [{ var: 'outcome' }, { var: 'state.finalOutcome' }],
497
466
  },
498
467
  ],
499
468
  },
@@ -505,12 +474,9 @@ export const marketPredictionDef = defineFiberApp({
505
474
  ],
506
475
  },
507
476
  {
508
- "!": [
477
+ '!': [
509
478
  {
510
- in: [
511
- { var: "event.agent" },
512
- { map: [{ var: "state.claims" }, { var: "agent" }] },
513
- ],
479
+ in: [{ var: 'event.agent' }, { map: [{ var: 'state.claims' }, { var: 'agent' }] }],
514
480
  },
515
481
  ],
516
482
  },
@@ -518,16 +484,16 @@ export const marketPredictionDef = defineFiberApp({
518
484
  },
519
485
  effect: {
520
486
  merge: [
521
- { var: "state" },
487
+ { var: 'state' },
522
488
  {
523
489
  claims: {
524
490
  cat: [
525
- { var: "state.claims" },
491
+ { var: 'state.claims' },
526
492
  [
527
493
  {
528
- agent: { var: "event.agent" },
529
- amount: { var: "event.amount" },
530
- claimedAt: { var: "$ordinal" },
494
+ agent: { var: 'event.agent' },
495
+ amount: { var: 'event.amount' },
496
+ claimedAt: { var: '$ordinal' },
531
497
  },
532
498
  ],
533
499
  ],