@ottochain/sdk 2.2.5 → 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 +89 -46
- package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +152 -45
- package/dist/cjs/apps/contracts/state-machines/contract-universal.js +40 -8
- 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 +85 -43
- package/dist/cjs/apps/governance/state-machines/dao-reputation.js +73 -43
- package/dist/cjs/apps/governance/state-machines/dao-single.js +55 -14
- package/dist/cjs/apps/governance/state-machines/dao-token.js +103 -45
- package/dist/cjs/apps/governance/state-machines/governance-simple.js +129 -65
- package/dist/cjs/apps/governance/state-machines/governance-universal.js +29 -5
- 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 +57 -9
- package/dist/cjs/apps/identity/state-machines/identity-oracle.js +70 -27
- package/dist/cjs/apps/identity/state-machines/identity-registry.js +288 -0
- package/dist/cjs/apps/identity/state-machines/identity-universal.js +30 -6
- 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 +44 -19
- package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +54 -29
- package/dist/cjs/apps/markets/state-machines/market-group-buy.js +53 -31
- package/dist/cjs/apps/markets/state-machines/market-prediction.js +120 -61
- package/dist/cjs/apps/markets/state-machines/market-universal.js +50 -10
- 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 +1722 -1
- package/dist/cjs/generated/ottochain/v1/fiber.js +355 -5
- package/dist/cjs/generated/ottochain/v1/messages.js +775 -3
- package/dist/cjs/generated/ottochain/v1/records.js +350 -3
- package/dist/cjs/index.js +45 -7
- package/dist/cjs/openapi.js +2 -0
- package/dist/cjs/ottochain/drop-nulls.js +1 -2
- package/dist/cjs/ottochain/genesis-manifest.js +193 -0
- package/dist/cjs/ottochain/index.js +27 -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 +19 -1
- 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 +89 -46
- package/dist/esm/apps/contracts/state-machines/contract-escrow.js +152 -45
- package/dist/esm/apps/contracts/state-machines/contract-universal.js +40 -8
- 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 +85 -43
- package/dist/esm/apps/governance/state-machines/dao-reputation.js +73 -43
- package/dist/esm/apps/governance/state-machines/dao-single.js +55 -14
- package/dist/esm/apps/governance/state-machines/dao-token.js +103 -45
- package/dist/esm/apps/governance/state-machines/governance-simple.js +129 -65
- package/dist/esm/apps/governance/state-machines/governance-universal.js +29 -5
- 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 +57 -9
- package/dist/esm/apps/identity/state-machines/identity-oracle.js +70 -27
- package/dist/esm/apps/identity/state-machines/identity-registry.js +285 -0
- package/dist/esm/apps/identity/state-machines/identity-universal.js +30 -6
- 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 +44 -19
- package/dist/esm/apps/markets/state-machines/market-crowdfund.js +54 -29
- package/dist/esm/apps/markets/state-machines/market-group-buy.js +53 -31
- package/dist/esm/apps/markets/state-machines/market-prediction.js +120 -61
- package/dist/esm/apps/markets/state-machines/market-universal.js +50 -10
- 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/generated/ottochain/v1/common.js +1718 -0
- package/dist/esm/generated/ottochain/v1/fiber.js +351 -1
- package/dist/esm/generated/ottochain/v1/messages.js +774 -2
- package/dist/esm/generated/ottochain/v1/records.js +349 -2
- package/dist/esm/index.js +23 -2
- package/dist/esm/openapi.js +1 -0
- package/dist/esm/ottochain/genesis-manifest.js +189 -0
- package/dist/esm/ottochain/index.js +4 -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 +18 -0
- 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 +159 -227
- package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +50 -101
- package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +86 -120
- package/dist/types/apps/contracts/state-machines/contract-universal.d.ts +20 -4
- 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 +396 -417
- package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +92 -95
- package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +57 -69
- package/dist/types/apps/governance/state-machines/dao-single.d.ts +40 -50
- package/dist/types/apps/governance/state-machines/dao-token.d.ts +80 -53
- package/dist/types/apps/governance/state-machines/governance-simple.d.ts +107 -121
- package/dist/types/apps/governance/state-machines/governance-universal.d.ts +17 -5
- package/dist/types/apps/identity/constants.d.ts +32 -4
- package/dist/types/apps/identity/index.d.ts +449 -100
- package/dist/types/apps/identity/state-machines/identity-agent.d.ts +30 -0
- package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +41 -87
- package/dist/types/apps/identity/state-machines/identity-registry.d.ts +379 -0
- package/dist/types/apps/identity/state-machines/identity-universal.d.ts +15 -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 +184 -204
- package/dist/types/apps/markets/state-machines/market-auction.d.ts +25 -37
- package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +26 -34
- package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +31 -43
- package/dist/types/apps/markets/state-machines/market-prediction.d.ts +67 -72
- package/dist/types/apps/markets/state-machines/market-universal.d.ts +30 -10
- 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/generated/ottochain/v1/common.d.ts +228 -0
- package/dist/types/generated/ottochain/v1/fiber.d.ts +32 -1
- package/dist/types/generated/ottochain/v1/messages.d.ts +84 -0
- package/dist/types/generated/ottochain/v1/records.d.ts +34 -0
- package/dist/types/index.d.ts +8 -2
- package/dist/types/openapi.d.ts +22 -0
- package/dist/types/ottochain/genesis-manifest.d.ts +130 -0
- package/dist/types/ottochain/index.d.ts +6 -5
- 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 +602 -11
- 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 +41 -3
- 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 +52 -35
- 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, 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
|
},
|
|
@@ -108,42 +113,74 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
108
113
|
PROPOSED: {
|
|
109
114
|
id: "PROPOSED",
|
|
110
115
|
isFinal: false,
|
|
111
|
-
metadata: {
|
|
116
|
+
metadata: {
|
|
117
|
+
label: "Proposed",
|
|
118
|
+
description: "Market created but not yet open for trading",
|
|
119
|
+
category: "initial",
|
|
120
|
+
},
|
|
112
121
|
},
|
|
113
122
|
OPEN: {
|
|
114
123
|
id: "OPEN",
|
|
115
124
|
isFinal: false,
|
|
116
|
-
metadata: {
|
|
125
|
+
metadata: {
|
|
126
|
+
label: "Open",
|
|
127
|
+
description: "Accepting positions on outcomes",
|
|
128
|
+
category: "active",
|
|
129
|
+
},
|
|
117
130
|
},
|
|
118
131
|
CLOSED: {
|
|
119
132
|
id: "CLOSED",
|
|
120
133
|
isFinal: false,
|
|
121
|
-
metadata: {
|
|
134
|
+
metadata: {
|
|
135
|
+
label: "Closed",
|
|
136
|
+
description: "No more positions, awaiting resolution",
|
|
137
|
+
category: "pending",
|
|
138
|
+
},
|
|
122
139
|
},
|
|
123
140
|
RESOLVING: {
|
|
124
141
|
id: "RESOLVING",
|
|
125
142
|
isFinal: false,
|
|
126
|
-
metadata: {
|
|
143
|
+
metadata: {
|
|
144
|
+
label: "Resolving",
|
|
145
|
+
description: "Oracle(s) submitting resolution",
|
|
146
|
+
category: "pending",
|
|
147
|
+
},
|
|
127
148
|
},
|
|
128
149
|
DISPUTED: {
|
|
129
150
|
id: "DISPUTED",
|
|
130
151
|
isFinal: false,
|
|
131
|
-
metadata: {
|
|
152
|
+
metadata: {
|
|
153
|
+
label: "Disputed",
|
|
154
|
+
description: "Resolution challenged, awaiting arbitration",
|
|
155
|
+
category: "pending",
|
|
156
|
+
},
|
|
132
157
|
},
|
|
133
158
|
SETTLED: {
|
|
134
159
|
id: "SETTLED",
|
|
135
160
|
isFinal: true,
|
|
136
|
-
metadata: {
|
|
161
|
+
metadata: {
|
|
162
|
+
label: "Settled",
|
|
163
|
+
description: "Outcome finalized, payouts available",
|
|
164
|
+
category: "terminal",
|
|
165
|
+
},
|
|
137
166
|
},
|
|
138
167
|
REFUNDED: {
|
|
139
168
|
id: "REFUNDED",
|
|
140
169
|
isFinal: true,
|
|
141
|
-
metadata: {
|
|
170
|
+
metadata: {
|
|
171
|
+
label: "Refunded",
|
|
172
|
+
description: "Market invalidated, all positions refunded",
|
|
173
|
+
category: "terminal",
|
|
174
|
+
},
|
|
142
175
|
},
|
|
143
176
|
CANCELLED: {
|
|
144
177
|
id: "CANCELLED",
|
|
145
178
|
isFinal: true,
|
|
146
|
-
metadata: {
|
|
179
|
+
metadata: {
|
|
180
|
+
label: "Cancelled",
|
|
181
|
+
description: "Market cancelled before opening",
|
|
182
|
+
category: "terminal",
|
|
183
|
+
},
|
|
147
184
|
},
|
|
148
185
|
},
|
|
149
186
|
initialState: "PROPOSED",
|
|
@@ -152,13 +189,13 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
152
189
|
from: "PROPOSED",
|
|
153
190
|
to: "OPEN",
|
|
154
191
|
eventName: "open",
|
|
155
|
-
guard:
|
|
192
|
+
guard: signerIsParty("state.creator"),
|
|
156
193
|
effect: {
|
|
157
194
|
merge: [
|
|
158
195
|
{ var: "state" },
|
|
159
196
|
{
|
|
160
197
|
status: "OPEN",
|
|
161
|
-
openedAt: { var: "$
|
|
198
|
+
openedAt: { var: "$ordinal" },
|
|
162
199
|
positions: {},
|
|
163
200
|
totalPool: 0,
|
|
164
201
|
},
|
|
@@ -170,13 +207,13 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
170
207
|
from: "PROPOSED",
|
|
171
208
|
to: "CANCELLED",
|
|
172
209
|
eventName: "cancel",
|
|
173
|
-
guard:
|
|
210
|
+
guard: signerIsParty("state.creator"),
|
|
174
211
|
effect: {
|
|
175
212
|
merge: [
|
|
176
213
|
{ var: "state" },
|
|
177
214
|
{
|
|
178
215
|
status: "CANCELLED",
|
|
179
|
-
cancelledAt: { var: "$
|
|
216
|
+
cancelledAt: { var: "$ordinal" },
|
|
180
217
|
reason: { var: "event.reason" },
|
|
181
218
|
},
|
|
182
219
|
],
|
|
@@ -194,7 +231,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
194
231
|
{
|
|
195
232
|
or: [
|
|
196
233
|
{ "!": [{ var: "state.deadline" }] },
|
|
197
|
-
{ "<=": [{ var: "$
|
|
234
|
+
{ "<=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
|
|
198
235
|
],
|
|
199
236
|
},
|
|
200
237
|
],
|
|
@@ -231,11 +268,11 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
231
268
|
eventName: "close",
|
|
232
269
|
guard: {
|
|
233
270
|
or: [
|
|
234
|
-
|
|
271
|
+
signerIsParty("state.creator"),
|
|
235
272
|
{
|
|
236
273
|
and: [
|
|
237
274
|
{ var: "state.deadline" },
|
|
238
|
-
{ ">=": [{ var: "$
|
|
275
|
+
{ ">=": [{ var: "$ordinal" }, { var: "state.deadline" }] },
|
|
239
276
|
],
|
|
240
277
|
},
|
|
241
278
|
],
|
|
@@ -243,7 +280,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
243
280
|
effect: {
|
|
244
281
|
merge: [
|
|
245
282
|
{ var: "state" },
|
|
246
|
-
{ status: "CLOSED", closedAt: { var: "$
|
|
283
|
+
{ status: "CLOSED", closedAt: { var: "$ordinal" } },
|
|
247
284
|
],
|
|
248
285
|
},
|
|
249
286
|
dependencies: [],
|
|
@@ -252,7 +289,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
252
289
|
from: "CLOSED",
|
|
253
290
|
to: "RESOLVING",
|
|
254
291
|
eventName: "submit_resolution",
|
|
255
|
-
guard:
|
|
292
|
+
guard: signerInSet("state.oracles"),
|
|
256
293
|
effect: {
|
|
257
294
|
merge: [
|
|
258
295
|
{ var: "state" },
|
|
@@ -263,7 +300,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
263
300
|
oracle: { var: "event.agent" },
|
|
264
301
|
outcome: { var: "event.outcome" },
|
|
265
302
|
proof: { var: "event.proof" },
|
|
266
|
-
submittedAt: { var: "$
|
|
303
|
+
submittedAt: { var: "$ordinal" },
|
|
267
304
|
},
|
|
268
305
|
],
|
|
269
306
|
},
|
|
@@ -277,7 +314,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
277
314
|
eventName: "submit_resolution",
|
|
278
315
|
guard: {
|
|
279
316
|
and: [
|
|
280
|
-
|
|
317
|
+
signerInSet("state.oracles"),
|
|
281
318
|
{
|
|
282
319
|
"!": [
|
|
283
320
|
{
|
|
@@ -302,7 +339,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
302
339
|
oracle: { var: "event.agent" },
|
|
303
340
|
outcome: { var: "event.outcome" },
|
|
304
341
|
proof: { var: "event.proof" },
|
|
305
|
-
submittedAt: { var: "$
|
|
342
|
+
submittedAt: { var: "$ordinal" },
|
|
306
343
|
},
|
|
307
344
|
],
|
|
308
345
|
],
|
|
@@ -316,16 +353,26 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
316
353
|
from: "RESOLVING",
|
|
317
354
|
to: "SETTLED",
|
|
318
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)
|
|
319
357
|
guard: {
|
|
320
|
-
|
|
358
|
+
and: [
|
|
359
|
+
signerInSet("state.oracles"),
|
|
360
|
+
{
|
|
361
|
+
">=": [
|
|
362
|
+
{ count: { var: "state.resolutions" } },
|
|
363
|
+
{ var: "state.quorum" },
|
|
364
|
+
],
|
|
365
|
+
},
|
|
366
|
+
],
|
|
321
367
|
},
|
|
322
368
|
effect: {
|
|
323
369
|
merge: [
|
|
324
370
|
{ var: "state" },
|
|
325
371
|
{
|
|
326
372
|
status: "SETTLED",
|
|
327
|
-
settledAt: { var: "$
|
|
328
|
-
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" },
|
|
329
376
|
claims: [],
|
|
330
377
|
},
|
|
331
378
|
],
|
|
@@ -341,12 +388,14 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
341
388
|
{
|
|
342
389
|
">": [
|
|
343
390
|
{
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
391
|
+
length: [
|
|
392
|
+
{
|
|
393
|
+
filter: [
|
|
394
|
+
{ var: "state.positions" },
|
|
395
|
+
{ "===": [{ var: "agent" }, { var: "event.agent" }] },
|
|
396
|
+
],
|
|
397
|
+
},
|
|
398
|
+
],
|
|
350
399
|
},
|
|
351
400
|
0,
|
|
352
401
|
],
|
|
@@ -359,7 +408,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
359
408
|
{ var: "state" },
|
|
360
409
|
{
|
|
361
410
|
status: "DISPUTED",
|
|
362
|
-
disputedAt: { var: "$
|
|
411
|
+
disputedAt: { var: "$ordinal" },
|
|
363
412
|
disputedBy: { var: "event.agent" },
|
|
364
413
|
disputeStake: { var: "event.stake" },
|
|
365
414
|
disputeReason: { var: "event.reason" },
|
|
@@ -372,14 +421,20 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
372
421
|
from: "DISPUTED",
|
|
373
422
|
to: "SETTLED",
|
|
374
423
|
eventName: "ruling",
|
|
375
|
-
|
|
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
|
+
},
|
|
376
431
|
effect: {
|
|
377
432
|
merge: [
|
|
378
433
|
{ var: "state" },
|
|
379
434
|
{
|
|
380
435
|
status: "SETTLED",
|
|
381
|
-
settledAt: { var: "$
|
|
382
|
-
finalOutcome: { var: "event.
|
|
436
|
+
settledAt: { var: "$ordinal" },
|
|
437
|
+
finalOutcome: { var: "event.finalOutcome" },
|
|
383
438
|
rulingId: { var: "event.rulingId" },
|
|
384
439
|
claims: [],
|
|
385
440
|
},
|
|
@@ -394,12 +449,14 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
394
449
|
guard: {
|
|
395
450
|
">=": [
|
|
396
451
|
{
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
452
|
+
length: [
|
|
453
|
+
{
|
|
454
|
+
filter: [
|
|
455
|
+
{ var: "state.resolutions" },
|
|
456
|
+
{ "===": [{ var: "outcome" }, "INVALID"] },
|
|
457
|
+
],
|
|
458
|
+
},
|
|
459
|
+
],
|
|
403
460
|
},
|
|
404
461
|
{ var: "state.quorum" },
|
|
405
462
|
],
|
|
@@ -409,7 +466,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
409
466
|
{ var: "state" },
|
|
410
467
|
{
|
|
411
468
|
status: "REFUNDED",
|
|
412
|
-
refundedAt: { var: "$
|
|
469
|
+
refundedAt: { var: "$ordinal" },
|
|
413
470
|
reason: "oracle_invalidation",
|
|
414
471
|
},
|
|
415
472
|
],
|
|
@@ -425,22 +482,24 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
425
482
|
{
|
|
426
483
|
">": [
|
|
427
484
|
{
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
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
|
+
],
|
|
444
503
|
},
|
|
445
504
|
0,
|
|
446
505
|
],
|
|
@@ -468,7 +527,7 @@ export const marketPredictionDef = defineFiberApp({
|
|
|
468
527
|
{
|
|
469
528
|
agent: { var: "event.agent" },
|
|
470
529
|
amount: { var: "event.amount" },
|
|
471
|
-
claimedAt: { var: "$
|
|
530
|
+
claimedAt: { var: "$ordinal" },
|
|
472
531
|
},
|
|
473
532
|
],
|
|
474
533
|
],
|
|
@@ -32,11 +32,51 @@ export const marketUniversalDef = defineFiberApp({
|
|
|
32
32
|
settle: { description: "Settle the market" },
|
|
33
33
|
},
|
|
34
34
|
states: {
|
|
35
|
-
PROPOSED: {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
PROPOSED: {
|
|
36
|
+
id: "PROPOSED",
|
|
37
|
+
isFinal: false,
|
|
38
|
+
metadata: {
|
|
39
|
+
label: "Proposed",
|
|
40
|
+
description: "Market created but not yet open",
|
|
41
|
+
category: "initial",
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
OPEN: {
|
|
45
|
+
id: "OPEN",
|
|
46
|
+
isFinal: false,
|
|
47
|
+
metadata: {
|
|
48
|
+
label: "Open",
|
|
49
|
+
description: "Market is open for participation",
|
|
50
|
+
category: "active",
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
CLOSED: {
|
|
54
|
+
id: "CLOSED",
|
|
55
|
+
isFinal: false,
|
|
56
|
+
metadata: {
|
|
57
|
+
label: "Closed",
|
|
58
|
+
description: "Participation closed; awaiting settlement",
|
|
59
|
+
category: "pending",
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
SETTLED: {
|
|
63
|
+
id: "SETTLED",
|
|
64
|
+
isFinal: true,
|
|
65
|
+
metadata: {
|
|
66
|
+
label: "Settled",
|
|
67
|
+
description: "Market settled and payouts available (terminal)",
|
|
68
|
+
category: "terminal",
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
CANCELLED: {
|
|
72
|
+
id: "CANCELLED",
|
|
73
|
+
isFinal: true,
|
|
74
|
+
metadata: {
|
|
75
|
+
label: "Cancelled",
|
|
76
|
+
description: "Market cancelled before settlement (terminal)",
|
|
77
|
+
category: "terminal",
|
|
78
|
+
},
|
|
79
|
+
},
|
|
40
80
|
},
|
|
41
81
|
initialState: "PROPOSED",
|
|
42
82
|
transitions: [
|
|
@@ -48,7 +88,7 @@ export const marketUniversalDef = defineFiberApp({
|
|
|
48
88
|
effect: {
|
|
49
89
|
merge: [
|
|
50
90
|
{ var: "state" },
|
|
51
|
-
{ status: "OPEN", openedAt: { var: "$
|
|
91
|
+
{ status: "OPEN", openedAt: { var: "$ordinal" } },
|
|
52
92
|
],
|
|
53
93
|
},
|
|
54
94
|
dependencies: [],
|
|
@@ -61,7 +101,7 @@ export const marketUniversalDef = defineFiberApp({
|
|
|
61
101
|
effect: {
|
|
62
102
|
merge: [
|
|
63
103
|
{ var: "state" },
|
|
64
|
-
{ status: "CANCELLED", cancelledAt: { var: "$
|
|
104
|
+
{ status: "CANCELLED", cancelledAt: { var: "$ordinal" } },
|
|
65
105
|
],
|
|
66
106
|
},
|
|
67
107
|
dependencies: [],
|
|
@@ -91,7 +131,7 @@ export const marketUniversalDef = defineFiberApp({
|
|
|
91
131
|
effect: {
|
|
92
132
|
merge: [
|
|
93
133
|
{ var: "state" },
|
|
94
|
-
{ status: "CLOSED", closedAt: { var: "$
|
|
134
|
+
{ status: "CLOSED", closedAt: { var: "$ordinal" } },
|
|
95
135
|
],
|
|
96
136
|
},
|
|
97
137
|
dependencies: [],
|
|
@@ -104,7 +144,7 @@ export const marketUniversalDef = defineFiberApp({
|
|
|
104
144
|
effect: {
|
|
105
145
|
merge: [
|
|
106
146
|
{ var: "state" },
|
|
107
|
-
{ status: "SETTLED", settledAt: { var: "$
|
|
147
|
+
{ status: "SETTLED", settledAt: { var: "$ordinal" } },
|
|
108
148
|
],
|
|
109
149
|
},
|
|
110
150
|
dependencies: [],
|
|
@@ -117,7 +157,7 @@ export const marketUniversalDef = defineFiberApp({
|
|
|
117
157
|
effect: {
|
|
118
158
|
merge: [
|
|
119
159
|
{ var: "state" },
|
|
120
|
-
{ status: "CANCELLED", cancelledAt: { var: "$
|
|
160
|
+
{ status: "CANCELLED", cancelledAt: { var: "$ordinal" } },
|
|
121
161
|
],
|
|
122
162
|
},
|
|
123
163
|
dependencies: [],
|
|
@@ -22,15 +22,19 @@ export { FiberStatus, AccessControlPolicy, PublicAccess, WhitelistAccess, FiberO
|
|
|
22
22
|
export { CreateStateMachine, TransitionStateMachine, ArchiveStateMachine, CreateScript, InvokeScript, OttochainMessage, } from './ottochain/v1/messages.js';
|
|
23
23
|
export { StateMachineFiberRecord, ScriptFiberRecord, FiberCommit, OnChainState, CalculatedState, } from './ottochain/v1/records.js';
|
|
24
24
|
// App: Identity (unified in v2.1)
|
|
25
|
-
|
|
25
|
+
// The nested lifecycle/kind enums dropped their app prefix in the proto
|
|
26
|
+
// (now Type/State, disambiguated by package ottochain.apps.identity.v1).
|
|
27
|
+
// This flat barrel re-aliases them back to app-qualified names so the global
|
|
28
|
+
// export namespace stays collision-free across apps.
|
|
29
|
+
export { Type as IdentityType, State as IdentityState, Platform, PlatformLink, Reputation, PenaltyEvent, Identity, RegisterIdentityRequest, ActivateIdentityRequest, LinkPlatformRequest, ChallengeIdentityRequest, AddStakeRequest, WithdrawIdentityRequest, IdentityDefinition, } from './ottochain/apps/identity/v1/identity.js';
|
|
26
30
|
// Legacy aliases for backward compatibility
|
|
27
|
-
export {
|
|
28
|
-
export {
|
|
31
|
+
export { State as AgentState } from './ottochain/apps/identity/v1/identity.js';
|
|
32
|
+
export { State as OracleState } from './ottochain/apps/identity/v1/identity.js';
|
|
29
33
|
export { AttestationType, ReputationDelta, Attestation, VouchRequest, ChallengeRequest, ReputationConfig, } from './ottochain/apps/identity/v1/attestation.js';
|
|
30
34
|
// App: Contracts
|
|
31
|
-
export { ContractState, Contract, ProposeContractRequest, AcceptContractRequest, CompleteContractRequest, RejectContractRequest, DisputeContractRequest, ContractDefinition, } from './ottochain/apps/contracts/v1/contract.js';
|
|
35
|
+
export { State as ContractState, Contract, ProposeContractRequest, AcceptContractRequest, CompleteContractRequest, RejectContractRequest, DisputeContractRequest, ContractDefinition, } from './ottochain/apps/contracts/v1/contract.js';
|
|
32
36
|
// App: Markets
|
|
33
|
-
export { MarketType, MarketState, Commitment, Resolution, Market, CreateMarketRequest, CommitToMarketRequest, SubmitResolutionRequest, CancelMarketRequest, MarketDefinition, } from './ottochain/apps/markets/v1/market.js';
|
|
37
|
+
export { Type as MarketType, State as MarketState, Commitment, Resolution, Market, CreateMarketRequest, CommitToMarketRequest, SubmitResolutionRequest, CancelMarketRequest, MarketDefinition, } from './ottochain/apps/markets/v1/market.js';
|
|
34
38
|
// App: Oracles - REMOVED in v2.1 (absorbed into identity)
|
|
35
39
|
// OracleState is now an alias for IdentityState (see above)
|
|
36
40
|
// Oracle-specific messages moved to identity.proto
|