@ottochain/sdk 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/apps/contracts/index.js +15 -8
- package/dist/cjs/apps/contracts/state-machines/contract-agreement.js +35 -40
- package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +80 -37
- package/dist/cjs/apps/contracts/state-machines/contract-universal.js +4 -4
- package/dist/cjs/apps/corporate/index.js +2 -2
- package/dist/cjs/apps/corporate/state-machines/corp-board.js +169 -59
- package/dist/cjs/apps/corporate/state-machines/corp-entity.js +245 -47
- package/dist/cjs/apps/corporate/state-machines/corp-securities.js +407 -99
- package/dist/cjs/apps/corporate/state-machines/corp-shareholders.js +151 -37
- package/dist/cjs/apps/governance/index.js +14 -14
- package/dist/cjs/apps/governance/state-machines/dao-multisig.js +58 -40
- package/dist/cjs/apps/governance/state-machines/dao-reputation.js +46 -40
- package/dist/cjs/apps/governance/state-machines/dao-single.js +28 -11
- package/dist/cjs/apps/governance/state-machines/dao-token.js +67 -41
- package/dist/cjs/apps/governance/state-machines/governance-simple.js +93 -61
- package/dist/cjs/apps/governance/state-machines/governance-universal.js +2 -2
- package/dist/cjs/apps/identity/constants.js +55 -14
- package/dist/cjs/apps/identity/index.js +27 -11
- package/dist/cjs/apps/identity/state-machines/identity-agent.js +3 -3
- package/dist/cjs/apps/identity/state-machines/identity-oracle.js +25 -22
- package/dist/cjs/apps/identity/state-machines/identity-registry.js +288 -0
- package/dist/cjs/apps/identity/state-machines/identity-universal.js +3 -3
- package/dist/cjs/apps/identity/state-machines/index.js +3 -1
- package/dist/cjs/apps/index.js +19 -8
- package/dist/cjs/apps/lending/assets.js +223 -0
- package/dist/cjs/apps/lending/credit-scoring.js +87 -0
- package/dist/cjs/apps/lending/eligibility.js +121 -0
- package/dist/cjs/apps/lending/index.js +91 -0
- package/dist/cjs/apps/lending/state-machines/index.js +9 -0
- package/dist/cjs/apps/lending/state-machines/lending-zk-loan.js +412 -0
- package/dist/cjs/apps/markets/index.js +21 -11
- package/dist/cjs/apps/markets/state-machines/market-auction.js +14 -13
- package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +29 -24
- package/dist/cjs/apps/markets/state-machines/market-group-buy.js +24 -26
- package/dist/cjs/apps/markets/state-machines/market-prediction.js +80 -53
- package/dist/cjs/apps/markets/state-machines/market-universal.js +5 -5
- package/dist/cjs/apps/oracles/index.js +2 -2
- package/dist/cjs/errors.js +3 -3
- package/dist/cjs/generated/google/protobuf/struct.js +4 -4
- package/dist/cjs/generated/index.js +11 -7
- package/dist/cjs/generated/openapi.js +6 -0
- package/dist/cjs/generated/ottochain/apps/contracts/v1/contract.js +50 -50
- package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate.js +19 -20
- package/dist/cjs/generated/ottochain/apps/governance/v1/governance.js +13 -13
- package/dist/cjs/generated/ottochain/apps/identity/v1/attestation.js +4 -4
- package/dist/cjs/generated/ottochain/apps/identity/v1/identity.js +124 -130
- package/dist/cjs/generated/ottochain/apps/markets/v1/market.js +107 -107
- package/dist/cjs/generated/ottochain/v1/common.js +4 -4
- package/dist/cjs/generated/ottochain/v1/fiber.js +4 -4
- package/dist/cjs/index.js +41 -7
- package/dist/cjs/openapi.js +2 -0
- package/dist/cjs/ottochain/drop-nulls.js +1 -2
- package/dist/cjs/ottochain/genesis-manifest.js +11 -11
- package/dist/cjs/ottochain/index.js +23 -13
- package/dist/cjs/ottochain/metagraph-client.js +65 -8
- package/dist/cjs/ottochain/snapshot.js +11 -12
- package/dist/cjs/ottochain/transaction.js +57 -14
- package/dist/cjs/ottochain/types.js +16 -2
- package/dist/cjs/privacy/index.js +14 -0
- package/dist/cjs/privacy/sealed-bid.js +210 -0
- package/dist/cjs/privacy/shield-app.js +131 -0
- package/dist/cjs/schema/effects.js +40 -0
- package/dist/cjs/schema/fiber-app.js +19 -13
- package/dist/cjs/schema/guard-lint.js +352 -0
- package/dist/cjs/schema/guards.js +246 -0
- package/dist/cjs/signing.js +80 -0
- package/dist/cjs/types.js +2 -3
- package/dist/cjs/validation.js +8 -8
- package/dist/cjs/verify.js +9 -4
- package/dist/cjs/zk/commit.js +53 -0
- package/dist/cjs/zk/guard.js +107 -0
- package/dist/cjs/zk/index.js +48 -0
- package/dist/cjs/zk/preimage.js +37 -0
- package/dist/cjs/zk/prover.js +87 -0
- package/dist/cjs/zk/registry.js +62 -0
- package/dist/cjs/zk/types.js +28 -0
- package/dist/cjs/zk/witness.js +19 -0
- package/dist/esm/apps/contracts/index.js +7 -3
- package/dist/esm/apps/contracts/state-machines/contract-agreement.js +35 -40
- package/dist/esm/apps/contracts/state-machines/contract-escrow.js +80 -37
- package/dist/esm/apps/contracts/state-machines/contract-universal.js +4 -4
- package/dist/esm/apps/corporate/state-machines/corp-board.js +169 -59
- package/dist/esm/apps/corporate/state-machines/corp-entity.js +245 -47
- package/dist/esm/apps/corporate/state-machines/corp-securities.js +407 -99
- package/dist/esm/apps/corporate/state-machines/corp-shareholders.js +151 -37
- package/dist/esm/apps/governance/state-machines/dao-multisig.js +58 -40
- package/dist/esm/apps/governance/state-machines/dao-reputation.js +46 -40
- package/dist/esm/apps/governance/state-machines/dao-single.js +28 -11
- package/dist/esm/apps/governance/state-machines/dao-token.js +67 -41
- package/dist/esm/apps/governance/state-machines/governance-simple.js +93 -61
- package/dist/esm/apps/governance/state-machines/governance-universal.js +2 -2
- package/dist/esm/apps/identity/constants.js +51 -12
- package/dist/esm/apps/identity/index.js +12 -7
- package/dist/esm/apps/identity/state-machines/identity-agent.js +3 -3
- package/dist/esm/apps/identity/state-machines/identity-oracle.js +25 -22
- package/dist/esm/apps/identity/state-machines/identity-registry.js +285 -0
- package/dist/esm/apps/identity/state-machines/identity-universal.js +3 -3
- package/dist/esm/apps/identity/state-machines/index.js +1 -0
- package/dist/esm/apps/index.js +1 -0
- package/dist/esm/apps/lending/assets.js +207 -0
- package/dist/esm/apps/lending/credit-scoring.js +81 -0
- package/dist/esm/apps/lending/eligibility.js +115 -0
- package/dist/esm/apps/lending/index.js +69 -0
- package/dist/esm/apps/lending/state-machines/index.js +5 -0
- package/dist/esm/apps/lending/state-machines/lending-zk-loan.js +409 -0
- package/dist/esm/apps/markets/index.js +8 -4
- package/dist/esm/apps/markets/state-machines/market-auction.js +14 -13
- package/dist/esm/apps/markets/state-machines/market-crowdfund.js +29 -24
- package/dist/esm/apps/markets/state-machines/market-group-buy.js +24 -26
- package/dist/esm/apps/markets/state-machines/market-prediction.js +80 -53
- package/dist/esm/apps/markets/state-machines/market-universal.js +5 -5
- package/dist/esm/generated/index.js +9 -5
- package/dist/esm/generated/openapi.js +5 -0
- package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +46 -46
- package/dist/esm/generated/ottochain/apps/identity/v1/identity.js +114 -120
- package/dist/esm/generated/ottochain/apps/markets/v1/market.js +100 -100
- package/dist/esm/index.js +21 -2
- package/dist/esm/openapi.js +1 -0
- package/dist/esm/ottochain/genesis-manifest.js +9 -9
- package/dist/esm/ottochain/index.js +2 -3
- package/dist/esm/ottochain/metagraph-client.js +65 -8
- package/dist/esm/ottochain/snapshot.js +4 -4
- package/dist/esm/ottochain/transaction.js +43 -3
- package/dist/esm/ottochain/types.js +15 -1
- package/dist/esm/privacy/index.js +6 -0
- package/dist/esm/privacy/sealed-bid.js +206 -0
- package/dist/esm/privacy/shield-app.js +127 -0
- package/dist/esm/schema/effects.js +35 -0
- package/dist/esm/schema/fiber-app.js +13 -6
- package/dist/esm/schema/guard-lint.js +346 -0
- package/dist/esm/schema/guards.js +229 -0
- package/dist/esm/signing.js +74 -0
- package/dist/esm/verify.js +8 -2
- package/dist/esm/zk/commit.js +44 -0
- package/dist/esm/zk/guard.js +99 -0
- package/dist/esm/zk/index.js +19 -0
- package/dist/esm/zk/preimage.js +30 -0
- package/dist/esm/zk/prover.js +82 -0
- package/dist/esm/zk/registry.js +55 -0
- package/dist/esm/zk/types.js +25 -0
- package/dist/esm/zk/witness.js +15 -0
- package/dist/types/apps/contracts/index.d.ts +69 -209
- package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +20 -95
- package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +46 -112
- package/dist/types/apps/corporate/index.d.ts +1040 -304
- package/dist/types/apps/corporate/state-machines/corp-board.d.ts +188 -52
- package/dist/types/apps/corporate/state-machines/corp-entity.d.ts +267 -62
- package/dist/types/apps/corporate/state-machines/corp-securities.d.ts +355 -131
- package/dist/types/apps/corporate/state-machines/corp-shareholders.d.ts +225 -53
- package/dist/types/apps/governance/index.d.ts +296 -398
- package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +77 -92
- package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +42 -66
- package/dist/types/apps/governance/state-machines/dao-single.d.ts +25 -47
- package/dist/types/apps/governance/state-machines/dao-token.d.ts +60 -49
- package/dist/types/apps/governance/state-machines/governance-simple.d.ts +87 -117
- package/dist/types/apps/governance/state-machines/governance-universal.d.ts +2 -2
- package/dist/types/apps/identity/constants.d.ts +32 -4
- package/dist/types/apps/identity/index.d.ts +378 -94
- package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +16 -87
- package/dist/types/apps/identity/state-machines/identity-registry.d.ts +379 -0
- package/dist/types/apps/identity/state-machines/index.d.ts +1 -0
- package/dist/types/apps/index.d.ts +1 -0
- package/dist/types/apps/lending/assets.d.ts +258 -0
- package/dist/types/apps/lending/credit-scoring.d.ts +80 -0
- package/dist/types/apps/lending/eligibility.d.ts +83 -0
- package/dist/types/apps/lending/index.d.ts +548 -0
- package/dist/types/apps/lending/state-machines/index.d.ts +5 -0
- package/dist/types/apps/lending/state-machines/lending-zk-loan.d.ts +528 -0
- package/dist/types/apps/markets/index.d.ts +108 -203
- package/dist/types/apps/markets/state-machines/market-auction.d.ts +13 -37
- package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +16 -34
- package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +17 -43
- package/dist/types/apps/markets/state-machines/market-prediction.d.ts +51 -72
- package/dist/types/apps/markets/state-machines/market-universal.d.ts +5 -5
- package/dist/types/generated/index.d.ts +5 -5
- package/dist/types/generated/openapi.d.ts +1257 -0
- package/dist/types/generated/ottochain/apps/contracts/v1/contract.d.ts +5 -5
- package/dist/types/generated/ottochain/apps/identity/v1/identity.d.ts +12 -12
- package/dist/types/generated/ottochain/apps/markets/v1/market.d.ts +11 -11
- package/dist/types/index.d.ts +6 -2
- package/dist/types/openapi.d.ts +22 -0
- package/dist/types/ottochain/genesis-manifest.d.ts +5 -5
- package/dist/types/ottochain/index.d.ts +5 -6
- package/dist/types/ottochain/metagraph-client.d.ts +49 -7
- package/dist/types/ottochain/snapshot.d.ts +6 -6
- package/dist/types/ottochain/transaction.d.ts +33 -1
- package/dist/types/ottochain/types.d.ts +335 -30
- package/dist/types/privacy/index.d.ts +6 -0
- package/dist/types/privacy/sealed-bid.d.ts +348 -0
- package/dist/types/privacy/shield-app.d.ts +48 -0
- package/dist/types/schema/effects.d.ts +34 -0
- package/dist/types/schema/fiber-app.d.ts +1 -2
- package/dist/types/schema/guard-lint.d.ts +111 -0
- package/dist/types/schema/guards.d.ts +134 -0
- package/dist/types/signing.d.ts +45 -0
- package/dist/types/validation.d.ts +22 -217
- package/dist/types/verify.d.ts +4 -0
- package/dist/types/zk/commit.d.ts +28 -0
- package/dist/types/zk/guard.d.ts +46 -0
- package/dist/types/zk/index.d.ts +19 -0
- package/dist/types/zk/preimage.d.ts +10 -0
- package/dist/types/zk/prover.d.ts +34 -0
- package/dist/types/zk/registry.d.ts +34 -0
- package/dist/types/zk/types.d.ts +33 -0
- package/dist/types/zk/witness.d.ts +40 -0
- package/package.json +27 -13
- package/dist/cjs/ottochain/normalize.js +0 -186
- package/dist/esm/ottochain/normalize.js +0 -179
- package/dist/types/ottochain/normalize.d.ts +0 -79
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { defineFiberApp } from "../../../schema/fiber-app.js";
|
|
2
|
+
import { signerIsParty, signerIsNotParty } from "../../../schema/guards.js";
|
|
2
3
|
/**
|
|
3
4
|
* All-or-nothing crowdfunding with threshold, deadline, and stretch goals.
|
|
4
5
|
*/
|
|
@@ -127,13 +128,13 @@ export const marketCrowdfundDef = defineFiberApp({
|
|
|
127
128
|
from: "PROPOSED",
|
|
128
129
|
to: "OPEN",
|
|
129
130
|
eventName: "launch",
|
|
130
|
-
guard:
|
|
131
|
+
guard: signerIsParty("state.creator"),
|
|
131
132
|
effect: {
|
|
132
133
|
merge: [
|
|
133
134
|
{ var: "state" },
|
|
134
135
|
{
|
|
135
136
|
status: "OPEN",
|
|
136
|
-
launchedAt: { var: "$
|
|
137
|
+
launchedAt: { var: "$ordinal" },
|
|
137
138
|
pledges: [],
|
|
138
139
|
totalPledged: 0,
|
|
139
140
|
backerCount: 0,
|
|
@@ -146,11 +147,11 @@ export const marketCrowdfundDef = defineFiberApp({
|
|
|
146
147
|
from: "PROPOSED",
|
|
147
148
|
to: "CANCELLED",
|
|
148
149
|
eventName: "cancel",
|
|
149
|
-
guard:
|
|
150
|
+
guard: signerIsParty("state.creator"),
|
|
150
151
|
effect: {
|
|
151
152
|
merge: [
|
|
152
153
|
{ var: "state" },
|
|
153
|
-
{ status: "CANCELLED", cancelledAt: { var: "$
|
|
154
|
+
{ status: "CANCELLED", cancelledAt: { var: "$ordinal" } },
|
|
154
155
|
],
|
|
155
156
|
},
|
|
156
157
|
dependencies: [],
|
|
@@ -162,14 +163,14 @@ export const marketCrowdfundDef = defineFiberApp({
|
|
|
162
163
|
guard: {
|
|
163
164
|
and: [
|
|
164
165
|
{ ">": [{ var: "event.amount" }, 0] },
|
|
165
|
-
|
|
166
|
+
signerIsNotParty("state.creator"),
|
|
166
167
|
{
|
|
167
168
|
or: [
|
|
168
169
|
{ "!": [{ var: "state.minPledge" }] },
|
|
169
170
|
{ ">=": [{ var: "event.amount" }, { var: "state.minPledge" }] },
|
|
170
171
|
],
|
|
171
172
|
},
|
|
172
|
-
{ "<=": [{ var: "$
|
|
173
|
+
{ "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
|
|
173
174
|
],
|
|
174
175
|
},
|
|
175
176
|
effect: {
|
|
@@ -184,7 +185,7 @@ export const marketCrowdfundDef = defineFiberApp({
|
|
|
184
185
|
backer: { var: "event.agent" },
|
|
185
186
|
amount: { var: "event.amount" },
|
|
186
187
|
rewardTier: { var: "event.rewardTier" },
|
|
187
|
-
pledgedAt: { var: "$
|
|
188
|
+
pledgedAt: { var: "$ordinal" },
|
|
188
189
|
},
|
|
189
190
|
],
|
|
190
191
|
],
|
|
@@ -205,16 +206,18 @@ export const marketCrowdfundDef = defineFiberApp({
|
|
|
205
206
|
guard: {
|
|
206
207
|
and: [
|
|
207
208
|
{ ">": [{ var: "event.additionalAmount" }, 0] },
|
|
208
|
-
{ "<=": [{ var: "$
|
|
209
|
+
{ "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
|
|
209
210
|
{
|
|
210
211
|
">": [
|
|
211
212
|
{
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
213
|
+
length: [
|
|
214
|
+
{
|
|
215
|
+
filter: [
|
|
216
|
+
{ var: "state.pledges" },
|
|
217
|
+
{ "===": [{ var: "backer" }, { var: "event.agent" }] },
|
|
218
|
+
],
|
|
219
|
+
},
|
|
220
|
+
],
|
|
218
221
|
},
|
|
219
222
|
0,
|
|
220
223
|
],
|
|
@@ -243,7 +246,7 @@ export const marketCrowdfundDef = defineFiberApp({
|
|
|
243
246
|
guard: {
|
|
244
247
|
and: [
|
|
245
248
|
{ ">=": [{ var: "state.totalPledged" }, { var: "state.threshold" }] },
|
|
246
|
-
{ ">=": [{ var: "$
|
|
249
|
+
{ ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
|
|
247
250
|
],
|
|
248
251
|
},
|
|
249
252
|
effect: {
|
|
@@ -251,7 +254,7 @@ export const marketCrowdfundDef = defineFiberApp({
|
|
|
251
254
|
{ var: "state" },
|
|
252
255
|
{
|
|
253
256
|
status: "FUNDED",
|
|
254
|
-
fundedAt: { var: "$
|
|
257
|
+
fundedAt: { var: "$ordinal" },
|
|
255
258
|
stretchGoalsReached: {
|
|
256
259
|
filter: [
|
|
257
260
|
{ var: "state.stretchGoals" },
|
|
@@ -270,7 +273,7 @@ export const marketCrowdfundDef = defineFiberApp({
|
|
|
270
273
|
guard: {
|
|
271
274
|
and: [
|
|
272
275
|
{ "<": [{ var: "state.totalPledged" }, { var: "state.threshold" }] },
|
|
273
|
-
{ ">=": [{ var: "$
|
|
276
|
+
{ ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
|
|
274
277
|
],
|
|
275
278
|
},
|
|
276
279
|
effect: {
|
|
@@ -278,7 +281,7 @@ export const marketCrowdfundDef = defineFiberApp({
|
|
|
278
281
|
{ var: "state" },
|
|
279
282
|
{
|
|
280
283
|
status: "REFUNDED",
|
|
281
|
-
refundedAt: { var: "$
|
|
284
|
+
refundedAt: { var: "$ordinal" },
|
|
282
285
|
reason: "threshold_not_met",
|
|
283
286
|
},
|
|
284
287
|
],
|
|
@@ -294,12 +297,14 @@ export const marketCrowdfundDef = defineFiberApp({
|
|
|
294
297
|
{
|
|
295
298
|
">": [
|
|
296
299
|
{
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
300
|
+
length: [
|
|
301
|
+
{
|
|
302
|
+
filter: [
|
|
303
|
+
{ var: "state.pledges" },
|
|
304
|
+
{ "===": [{ var: "backer" }, { var: "event.agent" }] },
|
|
305
|
+
],
|
|
306
|
+
},
|
|
307
|
+
],
|
|
303
308
|
},
|
|
304
309
|
0,
|
|
305
310
|
],
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { defineFiberApp } from "../../../schema/fiber-app.js";
|
|
2
|
+
import { signerIsParty, signerIsAnyParty } from "../../../schema/guards.js";
|
|
2
3
|
/**
|
|
3
4
|
* Collective purchasing with quantity thresholds and tiered pricing.
|
|
4
5
|
*/
|
|
@@ -147,13 +148,13 @@ export const marketGroupBuyDef = defineFiberApp({
|
|
|
147
148
|
from: "PROPOSED",
|
|
148
149
|
to: "OPEN",
|
|
149
150
|
eventName: "open",
|
|
150
|
-
guard:
|
|
151
|
+
guard: signerIsParty("state.organizer"),
|
|
151
152
|
effect: {
|
|
152
153
|
merge: [
|
|
153
154
|
{ var: "state" },
|
|
154
155
|
{
|
|
155
156
|
status: "OPEN",
|
|
156
|
-
openedAt: { var: "$
|
|
157
|
+
openedAt: { var: "$ordinal" },
|
|
157
158
|
orders: [],
|
|
158
159
|
totalQuantity: 0,
|
|
159
160
|
currentTier: 0,
|
|
@@ -166,11 +167,11 @@ export const marketGroupBuyDef = defineFiberApp({
|
|
|
166
167
|
from: "PROPOSED",
|
|
167
168
|
to: "CANCELLED",
|
|
168
169
|
eventName: "cancel",
|
|
169
|
-
guard:
|
|
170
|
+
guard: signerIsParty("state.organizer"),
|
|
170
171
|
effect: {
|
|
171
172
|
merge: [
|
|
172
173
|
{ var: "state" },
|
|
173
|
-
{ status: "CANCELLED", cancelledAt: { var: "$
|
|
174
|
+
{ status: "CANCELLED", cancelledAt: { var: "$ordinal" } },
|
|
174
175
|
],
|
|
175
176
|
},
|
|
176
177
|
dependencies: [],
|
|
@@ -190,7 +191,7 @@ export const marketGroupBuyDef = defineFiberApp({
|
|
|
190
191
|
},
|
|
191
192
|
],
|
|
192
193
|
},
|
|
193
|
-
{ "<=": [{ var: "$
|
|
194
|
+
{ "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
|
|
194
195
|
],
|
|
195
196
|
},
|
|
196
197
|
effect: {
|
|
@@ -205,7 +206,7 @@ export const marketGroupBuyDef = defineFiberApp({
|
|
|
205
206
|
buyer: { var: "event.agent" },
|
|
206
207
|
quantity: { var: "event.quantity" },
|
|
207
208
|
shippingInfo: { var: "event.shippingInfo" },
|
|
208
|
-
orderedAt: { var: "$
|
|
209
|
+
orderedAt: { var: "$ordinal" },
|
|
209
210
|
},
|
|
210
211
|
],
|
|
211
212
|
],
|
|
@@ -230,7 +231,7 @@ export const marketGroupBuyDef = defineFiberApp({
|
|
|
230
231
|
{ var: "state" },
|
|
231
232
|
{
|
|
232
233
|
status: "THRESHOLD_MET",
|
|
233
|
-
thresholdMetAt: { var: "$
|
|
234
|
+
thresholdMetAt: { var: "$ordinal" },
|
|
234
235
|
currentTier: {
|
|
235
236
|
reduce: [
|
|
236
237
|
{ var: "state.priceTiers" },
|
|
@@ -261,7 +262,7 @@ export const marketGroupBuyDef = defineFiberApp({
|
|
|
261
262
|
guard: {
|
|
262
263
|
and: [
|
|
263
264
|
{ ">": [{ var: "event.quantity" }, 0] },
|
|
264
|
-
{ "<=": [{ var: "$
|
|
265
|
+
{ "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
|
|
265
266
|
],
|
|
266
267
|
},
|
|
267
268
|
effect: {
|
|
@@ -276,7 +277,7 @@ export const marketGroupBuyDef = defineFiberApp({
|
|
|
276
277
|
buyer: { var: "event.agent" },
|
|
277
278
|
quantity: { var: "event.quantity" },
|
|
278
279
|
shippingInfo: { var: "event.shippingInfo" },
|
|
279
|
-
orderedAt: { var: "$
|
|
280
|
+
orderedAt: { var: "$ordinal" },
|
|
280
281
|
},
|
|
281
282
|
],
|
|
282
283
|
],
|
|
@@ -316,13 +317,13 @@ export const marketGroupBuyDef = defineFiberApp({
|
|
|
316
317
|
from: "THRESHOLD_MET",
|
|
317
318
|
to: "PROCESSING",
|
|
318
319
|
eventName: "finalize",
|
|
319
|
-
guard: { ">=": [{ var: "$
|
|
320
|
+
guard: { ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
|
|
320
321
|
effect: {
|
|
321
322
|
merge: [
|
|
322
323
|
{ var: "state" },
|
|
323
324
|
{
|
|
324
325
|
status: "PROCESSING",
|
|
325
|
-
finalizedAt: { var: "$
|
|
326
|
+
finalizedAt: { var: "$ordinal" },
|
|
326
327
|
finalTier: { var: "state.currentTier" },
|
|
327
328
|
finalPricePerUnit: {
|
|
328
329
|
var: {
|
|
@@ -342,18 +343,13 @@ export const marketGroupBuyDef = defineFiberApp({
|
|
|
342
343
|
from: "PROCESSING",
|
|
343
344
|
to: "FULFILLED",
|
|
344
345
|
eventName: "fulfill",
|
|
345
|
-
guard:
|
|
346
|
-
or: [
|
|
347
|
-
{ "===": [{ var: "event.agent" }, { var: "state.vendor" }] },
|
|
348
|
-
{ "===": [{ var: "event.agent" }, { var: "state.organizer" }] },
|
|
349
|
-
],
|
|
350
|
-
},
|
|
346
|
+
guard: signerIsAnyParty(["state.vendor", "state.organizer"]),
|
|
351
347
|
effect: {
|
|
352
348
|
merge: [
|
|
353
349
|
{ var: "state" },
|
|
354
350
|
{
|
|
355
351
|
status: "FULFILLED",
|
|
356
|
-
fulfilledAt: { var: "$
|
|
352
|
+
fulfilledAt: { var: "$ordinal" },
|
|
357
353
|
trackingInfo: { var: "event.trackingInfo" },
|
|
358
354
|
},
|
|
359
355
|
],
|
|
@@ -369,7 +365,7 @@ export const marketGroupBuyDef = defineFiberApp({
|
|
|
369
365
|
{
|
|
370
366
|
"<": [{ var: "state.totalQuantity" }, { var: "state.minQuantity" }],
|
|
371
367
|
},
|
|
372
|
-
{ ">=": [{ var: "$
|
|
368
|
+
{ ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
|
|
373
369
|
],
|
|
374
370
|
},
|
|
375
371
|
effect: {
|
|
@@ -377,7 +373,7 @@ export const marketGroupBuyDef = defineFiberApp({
|
|
|
377
373
|
{ var: "state" },
|
|
378
374
|
{
|
|
379
375
|
status: "REFUNDED",
|
|
380
|
-
refundedAt: { var: "$
|
|
376
|
+
refundedAt: { var: "$ordinal" },
|
|
381
377
|
reason: "threshold_not_met",
|
|
382
378
|
},
|
|
383
379
|
],
|
|
@@ -393,12 +389,14 @@ export const marketGroupBuyDef = defineFiberApp({
|
|
|
393
389
|
{
|
|
394
390
|
">": [
|
|
395
391
|
{
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
392
|
+
length: [
|
|
393
|
+
{
|
|
394
|
+
filter: [
|
|
395
|
+
{ var: "state.orders" },
|
|
396
|
+
{ "===": [{ var: "buyer" }, { var: "event.agent" }] },
|
|
397
|
+
],
|
|
398
|
+
},
|
|
399
|
+
],
|
|
402
400
|
},
|
|
403
401
|
0,
|
|
404
402
|
],
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { defineFiberApp } from "../../../schema/fiber-app.js";
|
|
2
|
+
import { signerIsParty, signerInSet } from "../../../schema/guards.js";
|
|
2
3
|
/**
|
|
3
4
|
* Binary or multi-outcome prediction market with oracle resolution and position staking.
|
|
4
5
|
*/
|
|
@@ -15,13 +16,18 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
15
16
|
},
|
|
16
17
|
},
|
|
17
18
|
createSchema: {
|
|
18
|
-
required: ["creator", "outcomes", "oracles", "quorum"],
|
|
19
|
+
required: ["creator", "outcomes", "oracles", "quorum", "arbiter"],
|
|
19
20
|
properties: {
|
|
20
21
|
creator: {
|
|
21
22
|
type: "address",
|
|
22
23
|
description: "DAG address of the market creator",
|
|
23
24
|
immutable: true,
|
|
24
25
|
},
|
|
26
|
+
arbiter: {
|
|
27
|
+
type: "address",
|
|
28
|
+
description: "DAG address of the arbiter authorized to rule on a disputed resolution",
|
|
29
|
+
immutable: true,
|
|
30
|
+
},
|
|
25
31
|
outcomes: {
|
|
26
32
|
type: "array",
|
|
27
33
|
description: "Valid outcome identifiers",
|
|
@@ -44,6 +50,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
44
50
|
properties: {
|
|
45
51
|
status: { type: "string", computed: true },
|
|
46
52
|
creator: { type: "address", immutable: true },
|
|
53
|
+
arbiter: { type: "address", immutable: true },
|
|
47
54
|
outcomes: { type: "array", immutable: true },
|
|
48
55
|
oracles: { type: "array", immutable: true },
|
|
49
56
|
quorum: { type: "number", immutable: true },
|
|
@@ -80,7 +87,6 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
80
87
|
},
|
|
81
88
|
finalize: {
|
|
82
89
|
description: "Finalize market after quorum reached",
|
|
83
|
-
properties: { outcome: { type: "string" } },
|
|
84
90
|
},
|
|
85
91
|
dispute: {
|
|
86
92
|
description: "Dispute the resolution",
|
|
@@ -93,8 +99,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
93
99
|
ruling: {
|
|
94
100
|
description: "Judicial ruling on dispute",
|
|
95
101
|
properties: {
|
|
96
|
-
|
|
97
|
-
outcome: { type: "string" },
|
|
102
|
+
finalOutcome: { type: "string" },
|
|
98
103
|
rulingId: { type: "string" },
|
|
99
104
|
},
|
|
100
105
|
},
|
|
@@ -184,13 +189,13 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
184
189
|
from: "PROPOSED",
|
|
185
190
|
to: "OPEN",
|
|
186
191
|
eventName: "open",
|
|
187
|
-
guard:
|
|
192
|
+
guard: signerIsParty("state.creator"),
|
|
188
193
|
effect: {
|
|
189
194
|
merge: [
|
|
190
195
|
{ var: "state" },
|
|
191
196
|
{
|
|
192
197
|
status: "OPEN",
|
|
193
|
-
openedAt: { var: "$
|
|
198
|
+
openedAt: { var: "$ordinal" },
|
|
194
199
|
positions: {},
|
|
195
200
|
totalPool: 0,
|
|
196
201
|
},
|
|
@@ -202,13 +207,13 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
202
207
|
from: "PROPOSED",
|
|
203
208
|
to: "CANCELLED",
|
|
204
209
|
eventName: "cancel",
|
|
205
|
-
guard:
|
|
210
|
+
guard: signerIsParty("state.creator"),
|
|
206
211
|
effect: {
|
|
207
212
|
merge: [
|
|
208
213
|
{ var: "state" },
|
|
209
214
|
{
|
|
210
215
|
status: "CANCELLED",
|
|
211
|
-
cancelledAt: { var: "$
|
|
216
|
+
cancelledAt: { var: "$ordinal" },
|
|
212
217
|
reason: { var: "event.reason" },
|
|
213
218
|
},
|
|
214
219
|
],
|
|
@@ -226,7 +231,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
226
231
|
{
|
|
227
232
|
or: [
|
|
228
233
|
{ "!": [{ var: "state.deadline" }] },
|
|
229
|
-
{ "<=": [{ var: "$
|
|
234
|
+
{ "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
|
|
230
235
|
],
|
|
231
236
|
},
|
|
232
237
|
],
|
|
@@ -263,11 +268,11 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
263
268
|
eventName: "close",
|
|
264
269
|
guard: {
|
|
265
270
|
or: [
|
|
266
|
-
|
|
271
|
+
signerIsParty("state.creator"),
|
|
267
272
|
{
|
|
268
273
|
and: [
|
|
269
274
|
{ var: "state.deadline" },
|
|
270
|
-
{ ">=": [{ var: "$
|
|
275
|
+
{ ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
|
|
271
276
|
],
|
|
272
277
|
},
|
|
273
278
|
],
|
|
@@ -275,7 +280,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
275
280
|
effect: {
|
|
276
281
|
merge: [
|
|
277
282
|
{ var: "state" },
|
|
278
|
-
{ status: "CLOSED", closedAt: { var: "$
|
|
283
|
+
{ status: "CLOSED", closedAt: { var: "$ordinal" } },
|
|
279
284
|
],
|
|
280
285
|
},
|
|
281
286
|
dependencies: [],
|
|
@@ -284,7 +289,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
284
289
|
from: "CLOSED",
|
|
285
290
|
to: "RESOLVING",
|
|
286
291
|
eventName: "submit_resolution",
|
|
287
|
-
guard:
|
|
292
|
+
guard: signerInSet("state.oracles"),
|
|
288
293
|
effect: {
|
|
289
294
|
merge: [
|
|
290
295
|
{ var: "state" },
|
|
@@ -295,7 +300,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
295
300
|
oracle: { var: "event.agent" },
|
|
296
301
|
outcome: { var: "event.outcome" },
|
|
297
302
|
proof: { var: "event.proof" },
|
|
298
|
-
submittedAt: { var: "$
|
|
303
|
+
submittedAt: { var: "$ordinal" },
|
|
299
304
|
},
|
|
300
305
|
],
|
|
301
306
|
},
|
|
@@ -309,7 +314,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
309
314
|
eventName: "submit_resolution",
|
|
310
315
|
guard: {
|
|
311
316
|
and: [
|
|
312
|
-
|
|
317
|
+
signerInSet("state.oracles"),
|
|
313
318
|
{
|
|
314
319
|
"!": [
|
|
315
320
|
{
|
|
@@ -334,7 +339,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
334
339
|
oracle: { var: "event.agent" },
|
|
335
340
|
outcome: { var: "event.outcome" },
|
|
336
341
|
proof: { var: "event.proof" },
|
|
337
|
-
submittedAt: { var: "$
|
|
342
|
+
submittedAt: { var: "$ordinal" },
|
|
338
343
|
},
|
|
339
344
|
],
|
|
340
345
|
],
|
|
@@ -348,16 +353,26 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
348
353
|
from: "RESOLVING",
|
|
349
354
|
to: "SETTLED",
|
|
350
355
|
eventName: "finalize",
|
|
356
|
+
// 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)
|
|
351
357
|
guard: {
|
|
352
|
-
|
|
358
|
+
and: [
|
|
359
|
+
signerInSet("state.oracles"),
|
|
360
|
+
{
|
|
361
|
+
">=": [
|
|
362
|
+
{ count: { var: "state.resolutions" } },
|
|
363
|
+
{ var: "state.quorum" },
|
|
364
|
+
],
|
|
365
|
+
},
|
|
366
|
+
],
|
|
353
367
|
},
|
|
354
368
|
effect: {
|
|
355
369
|
merge: [
|
|
356
370
|
{ var: "state" },
|
|
357
371
|
{
|
|
358
372
|
status: "SETTLED",
|
|
359
|
-
settledAt: { var: "$
|
|
360
|
-
finalOutcome
|
|
373
|
+
settledAt: { var: "$ordinal" },
|
|
374
|
+
// finalOutcome derives from the quorum-agreed resolution, not a raw event field
|
|
375
|
+
finalOutcome: { var: "state.resolutions.0.outcome" },
|
|
361
376
|
claims: [],
|
|
362
377
|
},
|
|
363
378
|
],
|
|
@@ -373,12 +388,14 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
373
388
|
{
|
|
374
389
|
">": [
|
|
375
390
|
{
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
391
|
+
length: [
|
|
392
|
+
{
|
|
393
|
+
filter: [
|
|
394
|
+
{ var: "state.positions" },
|
|
395
|
+
{ "===": [{ var: "agent" }, { var: "event.agent" }] },
|
|
396
|
+
],
|
|
397
|
+
},
|
|
398
|
+
],
|
|
382
399
|
},
|
|
383
400
|
0,
|
|
384
401
|
],
|
|
@@ -391,7 +408,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
391
408
|
{ var: "state" },
|
|
392
409
|
{
|
|
393
410
|
status: "DISPUTED",
|
|
394
|
-
disputedAt: { var: "$
|
|
411
|
+
disputedAt: { var: "$ordinal" },
|
|
395
412
|
disputedBy: { var: "event.agent" },
|
|
396
413
|
disputeStake: { var: "event.stake" },
|
|
397
414
|
disputeReason: { var: "event.reason" },
|
|
@@ -404,14 +421,20 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
404
421
|
from: "DISPUTED",
|
|
405
422
|
to: "SETTLED",
|
|
406
423
|
eventName: "ruling",
|
|
407
|
-
|
|
424
|
+
// 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
|
+
guard: {
|
|
426
|
+
and: [
|
|
427
|
+
signerIsParty("state.arbiter"),
|
|
428
|
+
{ in: [{ var: "event.finalOutcome" }, { var: "state.outcomes" }] },
|
|
429
|
+
],
|
|
430
|
+
},
|
|
408
431
|
effect: {
|
|
409
432
|
merge: [
|
|
410
433
|
{ var: "state" },
|
|
411
434
|
{
|
|
412
435
|
status: "SETTLED",
|
|
413
|
-
settledAt: { var: "$
|
|
414
|
-
finalOutcome: { var: "event.
|
|
436
|
+
settledAt: { var: "$ordinal" },
|
|
437
|
+
finalOutcome: { var: "event.finalOutcome" },
|
|
415
438
|
rulingId: { var: "event.rulingId" },
|
|
416
439
|
claims: [],
|
|
417
440
|
},
|
|
@@ -426,12 +449,14 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
426
449
|
guard: {
|
|
427
450
|
">=": [
|
|
428
451
|
{
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
452
|
+
length: [
|
|
453
|
+
{
|
|
454
|
+
filter: [
|
|
455
|
+
{ var: "state.resolutions" },
|
|
456
|
+
{ "===": [{ var: "outcome" }, "INVALID"] },
|
|
457
|
+
],
|
|
458
|
+
},
|
|
459
|
+
],
|
|
435
460
|
},
|
|
436
461
|
{ var: "state.quorum" },
|
|
437
462
|
],
|
|
@@ -441,7 +466,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
441
466
|
{ var: "state" },
|
|
442
467
|
{
|
|
443
468
|
status: "REFUNDED",
|
|
444
|
-
refundedAt: { var: "$
|
|
469
|
+
refundedAt: { var: "$ordinal" },
|
|
445
470
|
reason: "oracle_invalidation",
|
|
446
471
|
},
|
|
447
472
|
],
|
|
@@ -457,22 +482,24 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
457
482
|
{
|
|
458
483
|
">": [
|
|
459
484
|
{
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
485
|
+
length: [
|
|
486
|
+
{
|
|
487
|
+
filter: [
|
|
488
|
+
{ var: "state.positions" },
|
|
489
|
+
{
|
|
490
|
+
and: [
|
|
491
|
+
{ "===": [{ var: "agent" }, { var: "event.agent" }] },
|
|
492
|
+
{
|
|
493
|
+
"===": [
|
|
494
|
+
{ var: "outcome" },
|
|
495
|
+
{ var: "state.finalOutcome" },
|
|
496
|
+
],
|
|
497
|
+
},
|
|
498
|
+
],
|
|
499
|
+
},
|
|
500
|
+
],
|
|
501
|
+
},
|
|
502
|
+
],
|
|
476
503
|
},
|
|
477
504
|
0,
|
|
478
505
|
],
|
|
@@ -500,7 +527,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
500
527
|
{
|
|
501
528
|
agent: { var: "event.agent" },
|
|
502
529
|
amount: { var: "event.amount" },
|
|
503
|
-
claimedAt: { var: "$
|
|
530
|
+
claimedAt: { var: "$ordinal" },
|
|
504
531
|
},
|
|
505
532
|
],
|
|
506
533
|
],
|
|
@@ -88,7 +88,7 @@ export const marketUniversalDef = defineFiberApp({
|
|
|
88
88
|
effect: {
|
|
89
89
|
merge: [
|
|
90
90
|
{ var: "state" },
|
|
91
|
-
{ status: "OPEN", openedAt: { var: "$
|
|
91
|
+
{ status: "OPEN", openedAt: { var: "$ordinal" } },
|
|
92
92
|
],
|
|
93
93
|
},
|
|
94
94
|
dependencies: [],
|
|
@@ -101,7 +101,7 @@ export const marketUniversalDef = defineFiberApp({
|
|
|
101
101
|
effect: {
|
|
102
102
|
merge: [
|
|
103
103
|
{ var: "state" },
|
|
104
|
-
{ status: "CANCELLED", cancelledAt: { var: "$
|
|
104
|
+
{ status: "CANCELLED", cancelledAt: { var: "$ordinal" } },
|
|
105
105
|
],
|
|
106
106
|
},
|
|
107
107
|
dependencies: [],
|
|
@@ -131,7 +131,7 @@ export const marketUniversalDef = defineFiberApp({
|
|
|
131
131
|
effect: {
|
|
132
132
|
merge: [
|
|
133
133
|
{ var: "state" },
|
|
134
|
-
{ status: "CLOSED", closedAt: { var: "$
|
|
134
|
+
{ status: "CLOSED", closedAt: { var: "$ordinal" } },
|
|
135
135
|
],
|
|
136
136
|
},
|
|
137
137
|
dependencies: [],
|
|
@@ -144,7 +144,7 @@ export const marketUniversalDef = defineFiberApp({
|
|
|
144
144
|
effect: {
|
|
145
145
|
merge: [
|
|
146
146
|
{ var: "state" },
|
|
147
|
-
{ status: "SETTLED", settledAt: { var: "$
|
|
147
|
+
{ status: "SETTLED", settledAt: { var: "$ordinal" } },
|
|
148
148
|
],
|
|
149
149
|
},
|
|
150
150
|
dependencies: [],
|
|
@@ -157,7 +157,7 @@ export const marketUniversalDef = defineFiberApp({
|
|
|
157
157
|
effect: {
|
|
158
158
|
merge: [
|
|
159
159
|
{ var: "state" },
|
|
160
|
-
{ status: "CANCELLED", cancelledAt: { var: "$
|
|
160
|
+
{ status: "CANCELLED", cancelledAt: { var: "$ordinal" } },
|
|
161
161
|
],
|
|
162
162
|
},
|
|
163
163
|
dependencies: [],
|