@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
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.govSimpleDef = void 0;
|
|
4
4
|
const fiber_app_js_1 = require("../../../schema/fiber-app.js");
|
|
5
|
+
const guards_js_1 = require("../../../schema/guards.js");
|
|
5
6
|
/**
|
|
6
7
|
* Simple org governance: manage members, update rules, resolve disputes.
|
|
7
8
|
*/
|
|
@@ -92,11 +93,8 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
92
93
|
},
|
|
93
94
|
},
|
|
94
95
|
finalize: {
|
|
95
|
-
description: "Finalize the voting period",
|
|
96
|
-
|
|
97
|
-
properties: {
|
|
98
|
-
forCount: { type: "number" },
|
|
99
|
-
},
|
|
96
|
+
description: "Finalize the voting period (for-count derived from recorded ballots)",
|
|
97
|
+
properties: {},
|
|
100
98
|
},
|
|
101
99
|
file_dispute: {
|
|
102
100
|
description: "File a dispute against a member",
|
|
@@ -125,18 +123,47 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
125
123
|
},
|
|
126
124
|
},
|
|
127
125
|
dissolve: {
|
|
128
|
-
description: "Dissolve the organization (requires
|
|
129
|
-
|
|
130
|
-
properties: {
|
|
131
|
-
approvalCount: { type: "number" },
|
|
132
|
-
},
|
|
126
|
+
description: "Dissolve the organization (requires every member to sign this op — verified unanimity)",
|
|
127
|
+
properties: {},
|
|
133
128
|
},
|
|
134
129
|
},
|
|
135
130
|
states: {
|
|
136
|
-
ACTIVE: {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
131
|
+
ACTIVE: {
|
|
132
|
+
id: "ACTIVE",
|
|
133
|
+
isFinal: false,
|
|
134
|
+
metadata: {
|
|
135
|
+
label: "Active",
|
|
136
|
+
description: "Governance is idle and ready to accept a proposal",
|
|
137
|
+
category: "initial",
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
VOTING: {
|
|
141
|
+
id: "VOTING",
|
|
142
|
+
isFinal: false,
|
|
143
|
+
metadata: {
|
|
144
|
+
label: "Voting",
|
|
145
|
+
description: "A proposal is open for voting",
|
|
146
|
+
category: "pending",
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
DISPUTE: {
|
|
150
|
+
id: "DISPUTE",
|
|
151
|
+
isFinal: false,
|
|
152
|
+
metadata: {
|
|
153
|
+
label: "Dispute",
|
|
154
|
+
description: "A proposal outcome is being disputed",
|
|
155
|
+
category: "pending",
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
DISSOLVED: {
|
|
159
|
+
id: "DISSOLVED",
|
|
160
|
+
isFinal: true,
|
|
161
|
+
metadata: {
|
|
162
|
+
label: "Dissolved",
|
|
163
|
+
description: "Governance entity dissolved (terminal)",
|
|
164
|
+
category: "terminal",
|
|
165
|
+
},
|
|
166
|
+
},
|
|
140
167
|
},
|
|
141
168
|
initialState: "ACTIVE",
|
|
142
169
|
transitions: [
|
|
@@ -145,16 +172,16 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
145
172
|
from: "ACTIVE",
|
|
146
173
|
to: "ACTIVE",
|
|
147
174
|
eventName: "add_member",
|
|
148
|
-
guard:
|
|
175
|
+
guard: (0, guards_js_1.signerInSet)("state.admins"),
|
|
149
176
|
effect: {
|
|
150
177
|
merge: [
|
|
151
178
|
{ var: "state" },
|
|
152
179
|
{
|
|
153
180
|
members: {
|
|
154
|
-
|
|
181
|
+
set: [
|
|
155
182
|
{ var: "state.members" },
|
|
156
183
|
{ var: "event.member" },
|
|
157
|
-
{ role: { var: "event.role" }, addedAt: { var: "$
|
|
184
|
+
{ role: { var: "event.role" }, addedAt: { var: "$ordinal" } },
|
|
158
185
|
],
|
|
159
186
|
},
|
|
160
187
|
},
|
|
@@ -167,13 +194,13 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
167
194
|
from: "ACTIVE",
|
|
168
195
|
to: "ACTIVE",
|
|
169
196
|
eventName: "remove_member",
|
|
170
|
-
guard:
|
|
197
|
+
guard: (0, guards_js_1.signerInSet)("state.admins"),
|
|
171
198
|
effect: {
|
|
172
199
|
merge: [
|
|
173
200
|
{ var: "state" },
|
|
174
201
|
{
|
|
175
202
|
members: {
|
|
176
|
-
|
|
203
|
+
unset: [{ var: "state.members" }, { var: "event.member" }],
|
|
177
204
|
},
|
|
178
205
|
},
|
|
179
206
|
],
|
|
@@ -185,7 +212,9 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
185
212
|
from: "ACTIVE",
|
|
186
213
|
to: "VOTING",
|
|
187
214
|
eventName: "propose",
|
|
188
|
-
|
|
215
|
+
// S1/A2 coupled fix: a CHAIN-VERIFIED signer must be a member (getKey is not a
|
|
216
|
+
// JLVM opcode; signerHasEntry checks signer ∈ keys(state.members) via `has`).
|
|
217
|
+
guard: (0, guards_js_1.signerHasEntry)("state.members"),
|
|
189
218
|
effect: {
|
|
190
219
|
merge: [
|
|
191
220
|
{ var: "state" },
|
|
@@ -195,9 +224,9 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
195
224
|
type: { var: "event.type" },
|
|
196
225
|
changes: { var: "event.changes" },
|
|
197
226
|
proposer: { var: "event.agent" },
|
|
198
|
-
proposedAt: { var: "$
|
|
227
|
+
proposedAt: { var: "$ordinal" },
|
|
199
228
|
deadline: {
|
|
200
|
-
"+": [{ var: "$
|
|
229
|
+
"+": [{ var: "$ordinal" }, { var: "state.votingPeriodMs" }],
|
|
201
230
|
},
|
|
202
231
|
},
|
|
203
232
|
votes: {},
|
|
@@ -211,12 +240,14 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
211
240
|
from: "VOTING",
|
|
212
241
|
to: "VOTING",
|
|
213
242
|
eventName: "vote",
|
|
243
|
+
// S1/A2 coupled fix: bind event.agent to a verified signer who is a member (actorHasEntry),
|
|
244
|
+
// and block a re-vote by that SAME bound actor — so the ballot is recorded under, and deduped
|
|
245
|
+
// on, the chain-verified voter. Without the binding, signerHasEntry only proves SOME signer is a
|
|
246
|
+
// member, letting one member stuff votes under arbitrary keys (set is the rc.5 map-write opcode).
|
|
214
247
|
guard: {
|
|
215
248
|
and: [
|
|
216
|
-
|
|
217
|
-
{
|
|
218
|
-
"!": [{ getKey: [{ var: "state.votes" }, { var: "event.agent" }] }],
|
|
219
|
-
},
|
|
249
|
+
(0, guards_js_1.actorHasEntry)("state.members"),
|
|
250
|
+
{ "!": [{ has: [{ var: "state.votes" }, { var: "event.agent" }] }] },
|
|
220
251
|
],
|
|
221
252
|
},
|
|
222
253
|
effect: {
|
|
@@ -224,10 +255,10 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
224
255
|
{ var: "state" },
|
|
225
256
|
{
|
|
226
257
|
votes: {
|
|
227
|
-
|
|
258
|
+
set: [
|
|
228
259
|
{ var: "state.votes" },
|
|
229
260
|
{ var: "event.agent" },
|
|
230
|
-
{ vote: { var: "event.vote" }, votedAt: { var: "$
|
|
261
|
+
{ vote: { var: "event.vote" }, votedAt: { var: "$ordinal" } },
|
|
231
262
|
],
|
|
232
263
|
},
|
|
233
264
|
},
|
|
@@ -240,12 +271,24 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
240
271
|
from: "VOTING",
|
|
241
272
|
to: "ACTIVE",
|
|
242
273
|
eventName: "finalize",
|
|
274
|
+
// S2/A2 coupled fix: the for-count is DERIVED from recorded ballots in
|
|
275
|
+
// state.votes (length of the "for" entries), never read from the attacker's
|
|
276
|
+
// event.forCount. members is a Map so its count is length(keys(members)).
|
|
243
277
|
guard: {
|
|
244
278
|
">=": [
|
|
245
|
-
{
|
|
279
|
+
{
|
|
280
|
+
length: [
|
|
281
|
+
{
|
|
282
|
+
filter: [
|
|
283
|
+
{ values: [{ var: "state.votes" }] },
|
|
284
|
+
{ "===": [{ var: "vote" }, "for"] },
|
|
285
|
+
],
|
|
286
|
+
},
|
|
287
|
+
],
|
|
288
|
+
},
|
|
246
289
|
{
|
|
247
290
|
"*": [
|
|
248
|
-
{
|
|
291
|
+
{ length: [{ keys: [{ var: "state.members" }] }] },
|
|
249
292
|
{ var: "state.passingThreshold" },
|
|
250
293
|
],
|
|
251
294
|
},
|
|
@@ -269,7 +312,7 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
269
312
|
type: "rule_change",
|
|
270
313
|
proposal: { var: "state.proposal" },
|
|
271
314
|
outcome: "passed",
|
|
272
|
-
finalizedAt: { var: "$
|
|
315
|
+
finalizedAt: { var: "$ordinal" },
|
|
273
316
|
},
|
|
274
317
|
],
|
|
275
318
|
],
|
|
@@ -286,12 +329,23 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
286
329
|
from: "VOTING",
|
|
287
330
|
to: "ACTIVE",
|
|
288
331
|
eventName: "finalize",
|
|
332
|
+
// S2/A2 coupled fix (failed arm): derive the for-count from recorded ballots in
|
|
333
|
+
// state.votes; never from event.forCount. members count = length(keys(members)).
|
|
289
334
|
guard: {
|
|
290
335
|
"<": [
|
|
291
|
-
{
|
|
336
|
+
{
|
|
337
|
+
length: [
|
|
338
|
+
{
|
|
339
|
+
filter: [
|
|
340
|
+
{ values: [{ var: "state.votes" }] },
|
|
341
|
+
{ "===": [{ var: "vote" }, "for"] },
|
|
342
|
+
],
|
|
343
|
+
},
|
|
344
|
+
],
|
|
345
|
+
},
|
|
292
346
|
{
|
|
293
347
|
"*": [
|
|
294
|
-
{
|
|
348
|
+
{ length: [{ keys: [{ var: "state.members" }] }] },
|
|
295
349
|
{ var: "state.passingThreshold" },
|
|
296
350
|
],
|
|
297
351
|
},
|
|
@@ -309,7 +363,7 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
309
363
|
type: "rule_change",
|
|
310
364
|
proposal: { var: "state.proposal" },
|
|
311
365
|
outcome: "failed",
|
|
312
|
-
finalizedAt: { var: "$
|
|
366
|
+
finalizedAt: { var: "$ordinal" },
|
|
313
367
|
},
|
|
314
368
|
],
|
|
315
369
|
],
|
|
@@ -326,7 +380,9 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
326
380
|
from: "ACTIVE",
|
|
327
381
|
to: "DISPUTE",
|
|
328
382
|
eventName: "file_dispute",
|
|
329
|
-
|
|
383
|
+
// S1/A2 coupled fix: only a CHAIN-VERIFIED member may file (getKey is not a JLVM
|
|
384
|
+
// opcode; signerHasEntry checks signer ∈ keys(state.members) via `has`).
|
|
385
|
+
guard: (0, guards_js_1.signerHasEntry)("state.members"),
|
|
330
386
|
effect: {
|
|
331
387
|
merge: [
|
|
332
388
|
{ var: "state" },
|
|
@@ -336,7 +392,7 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
336
392
|
plaintiff: { var: "event.agent" },
|
|
337
393
|
defendant: { var: "event.defendant" },
|
|
338
394
|
claim: { var: "event.claim" },
|
|
339
|
-
filedAt: { var: "$
|
|
395
|
+
filedAt: { var: "$ordinal" },
|
|
340
396
|
evidence: [],
|
|
341
397
|
},
|
|
342
398
|
votes: {},
|
|
@@ -350,16 +406,10 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
350
406
|
from: "DISPUTE",
|
|
351
407
|
to: "DISPUTE",
|
|
352
408
|
eventName: "submit_evidence",
|
|
353
|
-
guard:
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
},
|
|
358
|
-
{
|
|
359
|
-
"===": [{ var: "event.agent" }, { var: "state.dispute.defendant" }],
|
|
360
|
-
},
|
|
361
|
-
],
|
|
362
|
-
},
|
|
409
|
+
guard: (0, guards_js_1.signerIsAnyParty)([
|
|
410
|
+
"state.dispute.plaintiff",
|
|
411
|
+
"state.dispute.defendant",
|
|
412
|
+
]),
|
|
363
413
|
effect: {
|
|
364
414
|
merge: [
|
|
365
415
|
{ var: "state" },
|
|
@@ -375,7 +425,7 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
375
425
|
{
|
|
376
426
|
from: { var: "event.agent" },
|
|
377
427
|
content: { var: "event.content" },
|
|
378
|
-
at: { var: "$
|
|
428
|
+
at: { var: "$ordinal" },
|
|
379
429
|
},
|
|
380
430
|
],
|
|
381
431
|
],
|
|
@@ -393,18 +443,16 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
393
443
|
from: "DISPUTE",
|
|
394
444
|
to: "DISPUTE",
|
|
395
445
|
eventName: "vote",
|
|
446
|
+
// S1/A2 coupled fix: bind event.agent to a verified member (actorHasEntry), exclude the parties,
|
|
447
|
+
// and block a re-vote by that SAME bound actor — so the dispute ballot is recorded under, and
|
|
448
|
+
// deduped on, the chain-verified voter (set is the rc.5 map-write opcode; signerIsNotParty still
|
|
449
|
+
// excludes any signer who is a party, which covers the bound actor).
|
|
396
450
|
guard: {
|
|
397
451
|
and: [
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
},
|
|
402
|
-
{
|
|
403
|
-
"!==": [{ var: "event.agent" }, { var: "state.dispute.defendant" }],
|
|
404
|
-
},
|
|
405
|
-
{
|
|
406
|
-
"!": [{ getKey: [{ var: "state.votes" }, { var: "event.agent" }] }],
|
|
407
|
-
},
|
|
452
|
+
(0, guards_js_1.actorHasEntry)("state.members"),
|
|
453
|
+
(0, guards_js_1.signerIsNotParty)("state.dispute.plaintiff"),
|
|
454
|
+
(0, guards_js_1.signerIsNotParty)("state.dispute.defendant"),
|
|
455
|
+
{ "!": [{ has: [{ var: "state.votes" }, { var: "event.agent" }] }] },
|
|
408
456
|
],
|
|
409
457
|
},
|
|
410
458
|
effect: {
|
|
@@ -412,12 +460,12 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
412
460
|
{ var: "state" },
|
|
413
461
|
{
|
|
414
462
|
votes: {
|
|
415
|
-
|
|
463
|
+
set: [
|
|
416
464
|
{ var: "state.votes" },
|
|
417
465
|
{ var: "event.agent" },
|
|
418
466
|
{
|
|
419
467
|
ruling: { var: "event.ruling" },
|
|
420
|
-
votedAt: { var: "$
|
|
468
|
+
votedAt: { var: "$ordinal" },
|
|
421
469
|
},
|
|
422
470
|
],
|
|
423
471
|
},
|
|
@@ -431,9 +479,11 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
431
479
|
from: "DISPUTE",
|
|
432
480
|
to: "ACTIVE",
|
|
433
481
|
eventName: "resolve",
|
|
482
|
+
// A2 fix: count recorded ballots. votes is a Map, and `length` rejects Maps, so
|
|
483
|
+
// count its keys: length(keys(state.votes)). (size is not a JLVM opcode.)
|
|
434
484
|
guard: {
|
|
435
485
|
">=": [
|
|
436
|
-
{
|
|
486
|
+
{ length: [{ keys: [{ var: "state.votes" }] }] },
|
|
437
487
|
{ var: "state.disputeQuorum" },
|
|
438
488
|
],
|
|
439
489
|
},
|
|
@@ -450,7 +500,7 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
450
500
|
dispute: { var: "state.dispute" },
|
|
451
501
|
ruling: { var: "event.ruling" },
|
|
452
502
|
remedy: { var: "event.remedy" },
|
|
453
|
-
resolvedAt: { var: "$
|
|
503
|
+
resolvedAt: { var: "$ordinal" },
|
|
454
504
|
},
|
|
455
505
|
],
|
|
456
506
|
],
|
|
@@ -467,14 +517,28 @@ exports.govSimpleDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
467
517
|
from: "ACTIVE",
|
|
468
518
|
to: "DISSOLVED",
|
|
469
519
|
eventName: "dissolve",
|
|
520
|
+
// S2/A2 coupled fix: dissolution must not trust an attacker-supplied
|
|
521
|
+
// approvalCount. Derive consent from the CHAIN-VERIFIED signers — every member
|
|
522
|
+
// (a key in state.members) must be among proofs[].address, with a non-empty
|
|
523
|
+
// belt. members is a Map, so iterate keys(members); size is not a JLVM opcode.
|
|
470
524
|
guard: {
|
|
471
|
-
|
|
472
|
-
{ var: "
|
|
473
|
-
{
|
|
525
|
+
and: [
|
|
526
|
+
{ ">": [{ length: [{ keys: [{ var: "state.members" }] }] }, 0] },
|
|
527
|
+
{
|
|
528
|
+
all: [
|
|
529
|
+
{ keys: [{ var: "state.members" }] },
|
|
530
|
+
{
|
|
531
|
+
in: [
|
|
532
|
+
{ var: "" },
|
|
533
|
+
{ map: [{ var: "proofs" }, { var: "address" }] },
|
|
534
|
+
],
|
|
535
|
+
},
|
|
536
|
+
],
|
|
537
|
+
},
|
|
474
538
|
],
|
|
475
539
|
},
|
|
476
540
|
effect: {
|
|
477
|
-
merge: [{ var: "state" }, { dissolvedAt: { var: "$
|
|
541
|
+
merge: [{ var: "state" }, { dissolvedAt: { var: "$ordinal" } }],
|
|
478
542
|
},
|
|
479
543
|
dependencies: [],
|
|
480
544
|
},
|
|
@@ -52,9 +52,33 @@ exports.govUniversalDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
52
52
|
},
|
|
53
53
|
},
|
|
54
54
|
states: {
|
|
55
|
-
ACTIVE: {
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
ACTIVE: {
|
|
56
|
+
id: "ACTIVE",
|
|
57
|
+
isFinal: false,
|
|
58
|
+
metadata: {
|
|
59
|
+
label: "Active",
|
|
60
|
+
description: "Governance is idle and ready to accept a proposal",
|
|
61
|
+
category: "initial",
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
VOTING: {
|
|
65
|
+
id: "VOTING",
|
|
66
|
+
isFinal: false,
|
|
67
|
+
metadata: {
|
|
68
|
+
label: "Voting",
|
|
69
|
+
description: "A proposal is open for voting",
|
|
70
|
+
category: "pending",
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
DISSOLVED: {
|
|
74
|
+
id: "DISSOLVED",
|
|
75
|
+
isFinal: true,
|
|
76
|
+
metadata: {
|
|
77
|
+
label: "Dissolved",
|
|
78
|
+
description: "Governance entity dissolved (terminal)",
|
|
79
|
+
category: "terminal",
|
|
80
|
+
},
|
|
81
|
+
},
|
|
58
82
|
},
|
|
59
83
|
initialState: "ACTIVE",
|
|
60
84
|
transitions: [
|
|
@@ -69,7 +93,7 @@ exports.govUniversalDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
69
93
|
{
|
|
70
94
|
status: "VOTING",
|
|
71
95
|
proposal: { var: "event.proposal" },
|
|
72
|
-
proposedAt: { var: "$
|
|
96
|
+
proposedAt: { var: "$ordinal" },
|
|
73
97
|
votes: {},
|
|
74
98
|
},
|
|
75
99
|
],
|
|
@@ -128,7 +152,7 @@ exports.govUniversalDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
128
152
|
{ var: "state" },
|
|
129
153
|
{
|
|
130
154
|
status: "DISSOLVED",
|
|
131
|
-
dissolvedAt: { var: "$
|
|
155
|
+
dissolvedAt: { var: "$ordinal" },
|
|
132
156
|
},
|
|
133
157
|
],
|
|
134
158
|
},
|
|
@@ -7,7 +7,11 @@
|
|
|
7
7
|
* @packageDocumentation
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.
|
|
10
|
+
exports.REGISTRY_ROLE_MAP = exports.REGISTRY_ROLES = exports.ATTESTATION_DELTAS = exports.AGENT_TRANSITIONS = exports.IDENTITY_TRANSITIONS = void 0;
|
|
11
|
+
exports.registryRolePath = registryRolePath;
|
|
12
|
+
exports.registryReputationPath = registryReputationPath;
|
|
13
|
+
exports.canTransition = canTransition;
|
|
14
|
+
exports.getReputationDelta = getReputationDelta;
|
|
11
15
|
const identity_js_1 = require("../../generated/ottochain/apps/identity/v1/identity.js");
|
|
12
16
|
const attestation_js_1 = require("../../generated/ottochain/apps/identity/v1/attestation.js");
|
|
13
17
|
// ---------------------------------------------------------------------------
|
|
@@ -19,25 +23,25 @@ const attestation_js_1 = require("../../generated/ottochain/apps/identity/v1/att
|
|
|
19
23
|
* Note: Some transitions are type-specific (agent vs oracle)
|
|
20
24
|
*/
|
|
21
25
|
exports.IDENTITY_TRANSITIONS = {
|
|
22
|
-
[identity_js_1.
|
|
23
|
-
[identity_js_1.
|
|
24
|
-
[identity_js_1.
|
|
25
|
-
[identity_js_1.
|
|
26
|
+
[identity_js_1.State.IDENTITY_STATE_UNSPECIFIED]: [],
|
|
27
|
+
[identity_js_1.State.IDENTITY_STATE_UNREGISTERED]: ["register"],
|
|
28
|
+
[identity_js_1.State.IDENTITY_STATE_REGISTERED]: ["activate", "withdraw"],
|
|
29
|
+
[identity_js_1.State.IDENTITY_STATE_ACTIVE]: [
|
|
26
30
|
"challenge",
|
|
27
31
|
"slash",
|
|
28
32
|
"deactivate",
|
|
29
33
|
"withdraw",
|
|
30
34
|
],
|
|
31
|
-
[identity_js_1.
|
|
35
|
+
[identity_js_1.State.IDENTITY_STATE_CHALLENGED]: [
|
|
32
36
|
"uphold_challenge",
|
|
33
37
|
"dismiss_challenge",
|
|
34
38
|
],
|
|
35
|
-
[identity_js_1.
|
|
36
|
-
[identity_js_1.
|
|
37
|
-
[identity_js_1.
|
|
38
|
-
[identity_js_1.
|
|
39
|
-
[identity_js_1.
|
|
40
|
-
[identity_js_1.
|
|
39
|
+
[identity_js_1.State.IDENTITY_STATE_SUSPENDED]: ["begin_probation"],
|
|
40
|
+
[identity_js_1.State.IDENTITY_STATE_PROBATION]: ["complete_probation"],
|
|
41
|
+
[identity_js_1.State.IDENTITY_STATE_SLASHED]: ["reactivate", "withdraw"],
|
|
42
|
+
[identity_js_1.State.IDENTITY_STATE_INACTIVE]: ["activate", "withdraw"],
|
|
43
|
+
[identity_js_1.State.IDENTITY_STATE_WITHDRAWN]: [], // Terminal state
|
|
44
|
+
[identity_js_1.State.UNRECOGNIZED]: [],
|
|
41
45
|
};
|
|
42
46
|
// Legacy alias
|
|
43
47
|
exports.AGENT_TRANSITIONS = exports.IDENTITY_TRANSITIONS;
|
|
@@ -56,17 +60,54 @@ exports.ATTESTATION_DELTAS = {
|
|
|
56
60
|
[attestation_js_1.AttestationType.ATTESTATION_TYPE_BEHAVIORAL]: 3,
|
|
57
61
|
[attestation_js_1.AttestationType.UNRECOGNIZED]: 0,
|
|
58
62
|
};
|
|
63
|
+
// ---------------------------------------------------------------------------
|
|
64
|
+
// Identity Registry — role attestations
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
/**
|
|
67
|
+
* Role-attestation types issued by the identity registry (identity-registry fiber).
|
|
68
|
+
* These are the ecosystem-wide authority roles consumer apps gate on via the registry
|
|
69
|
+
* dependency + `signerHasRole` (see docs/design/app-hardening-identity-integration.md §4.2).
|
|
70
|
+
*/
|
|
71
|
+
exports.REGISTRY_ROLES = {
|
|
72
|
+
ARBITER: "ARBITER",
|
|
73
|
+
SLASHER: "SLASHER",
|
|
74
|
+
ISSUER: "ISSUER",
|
|
75
|
+
BOARD_MEMBER: "BOARD_MEMBER",
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Maps each role to the registry's flat per-role state-map field. A consumer app reads
|
|
79
|
+
* `machines.<registryDep>.state.<field>` (a `{ <address>: true }` map) and binds membership to a
|
|
80
|
+
* verified signer with `signerHasRole`. Kept in lock-step with the identity-registry stateSchema.
|
|
81
|
+
*/
|
|
82
|
+
exports.REGISTRY_ROLE_MAP = {
|
|
83
|
+
ARBITER: "arbiters",
|
|
84
|
+
SLASHER: "slashers",
|
|
85
|
+
ISSUER: "issuers",
|
|
86
|
+
BOARD_MEMBER: "boardMembers",
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Build the `machines.<registryDep>.state.<roleMap>` var path a consumer guard reads to check a role,
|
|
90
|
+
* e.g. `registryRolePath("reg-uuid", "ARBITER")` → `"machines.reg-uuid.state.arbiters"`.
|
|
91
|
+
*/
|
|
92
|
+
function registryRolePath(registryDep, role) {
|
|
93
|
+
return `machines.${registryDep}.state.${exports.REGISTRY_ROLE_MAP[role]}`;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Build the `machines.<registryDep>.state.reputations` var path a consumer guard reads for a
|
|
97
|
+
* reputation gate (`signerHasReputation`).
|
|
98
|
+
*/
|
|
99
|
+
function registryReputationPath(registryDep) {
|
|
100
|
+
return `machines.${registryDep}.state.reputations`;
|
|
101
|
+
}
|
|
59
102
|
/**
|
|
60
103
|
* Check if a transition is valid for the given state.
|
|
61
104
|
*/
|
|
62
105
|
function canTransition(state, event) {
|
|
63
106
|
return exports.IDENTITY_TRANSITIONS[state]?.includes(event) ?? false;
|
|
64
107
|
}
|
|
65
|
-
exports.canTransition = canTransition;
|
|
66
108
|
/**
|
|
67
109
|
* Get reputation delta for an attestation type.
|
|
68
110
|
*/
|
|
69
111
|
function getReputationDelta(type) {
|
|
70
112
|
return exports.ATTESTATION_DELTAS[type] ?? 0;
|
|
71
113
|
}
|
|
72
|
-
exports.getReputationDelta = getReputationDelta;
|
|
@@ -18,11 +18,14 @@
|
|
|
18
18
|
* @packageDocumentation
|
|
19
19
|
*/
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.
|
|
22
|
-
|
|
21
|
+
exports.IDENTITY_DEFINITIONS = exports.identityRegistryDef = exports.identityOracleDef = exports.identityAgentDef = exports.identityUniversalDef = exports.DEFAULT_REPUTATION_CONFIG = exports.getReputationDelta = exports.canTransition = exports.registryReputationPath = exports.registryRolePath = exports.REGISTRY_ROLE_MAP = exports.REGISTRY_ROLES = exports.ATTESTATION_DELTAS = exports.AGENT_TRANSITIONS = exports.IDENTITY_TRANSITIONS = exports.attestationTypeToJSON = exports.attestationTypeFromJSON = exports.ReputationConfig = exports.ChallengeRequest = exports.VouchRequest = exports.Attestation = exports.ReputationDelta = exports.AttestationType = exports.identityStateToJSON = exports.identityStateFromJSON = exports.identityTypeToJSON = exports.identityTypeFromJSON = exports.IdentityState = exports.IdentityType = exports.AgentState = exports.platformToJSON = exports.platformFromJSON = exports.stateToJSON = exports.stateFromJSON = exports.typeToJSON = exports.typeFromJSON = exports.IdentityDefinition = exports.WithdrawIdentityRequest = exports.AddStakeRequest = exports.ChallengeIdentityRequest = exports.LinkPlatformRequest = exports.ActivateIdentityRequest = exports.RegisterIdentityRequest = exports.Identity = exports.PenaltyEvent = exports.Reputation = exports.PlatformLink = exports.Platform = exports.State = exports.Type = void 0;
|
|
22
|
+
exports.getIdentityDefinition = getIdentityDefinition;
|
|
23
|
+
// Re-export generated protobuf types (source of truth).
|
|
24
|
+
// The nested lifecycle/kind enums dropped their app prefix in the proto; under
|
|
25
|
+
// this app-scoped entrypoint they are unambiguously Type / State.
|
|
23
26
|
var identity_js_1 = require("../../generated/ottochain/apps/identity/v1/identity.js");
|
|
24
|
-
Object.defineProperty(exports, "
|
|
25
|
-
Object.defineProperty(exports, "
|
|
27
|
+
Object.defineProperty(exports, "Type", { enumerable: true, get: function () { return identity_js_1.Type; } });
|
|
28
|
+
Object.defineProperty(exports, "State", { enumerable: true, get: function () { return identity_js_1.State; } });
|
|
26
29
|
Object.defineProperty(exports, "Platform", { enumerable: true, get: function () { return identity_js_1.Platform; } });
|
|
27
30
|
Object.defineProperty(exports, "PlatformLink", { enumerable: true, get: function () { return identity_js_1.PlatformLink; } });
|
|
28
31
|
Object.defineProperty(exports, "Reputation", { enumerable: true, get: function () { return identity_js_1.Reputation; } });
|
|
@@ -35,15 +38,23 @@ Object.defineProperty(exports, "ChallengeIdentityRequest", { enumerable: true, g
|
|
|
35
38
|
Object.defineProperty(exports, "AddStakeRequest", { enumerable: true, get: function () { return identity_js_1.AddStakeRequest; } });
|
|
36
39
|
Object.defineProperty(exports, "WithdrawIdentityRequest", { enumerable: true, get: function () { return identity_js_1.WithdrawIdentityRequest; } });
|
|
37
40
|
Object.defineProperty(exports, "IdentityDefinition", { enumerable: true, get: function () { return identity_js_1.IdentityDefinition; } });
|
|
38
|
-
Object.defineProperty(exports, "
|
|
39
|
-
Object.defineProperty(exports, "
|
|
40
|
-
Object.defineProperty(exports, "
|
|
41
|
-
Object.defineProperty(exports, "
|
|
41
|
+
Object.defineProperty(exports, "typeFromJSON", { enumerable: true, get: function () { return identity_js_1.typeFromJSON; } });
|
|
42
|
+
Object.defineProperty(exports, "typeToJSON", { enumerable: true, get: function () { return identity_js_1.typeToJSON; } });
|
|
43
|
+
Object.defineProperty(exports, "stateFromJSON", { enumerable: true, get: function () { return identity_js_1.stateFromJSON; } });
|
|
44
|
+
Object.defineProperty(exports, "stateToJSON", { enumerable: true, get: function () { return identity_js_1.stateToJSON; } });
|
|
42
45
|
Object.defineProperty(exports, "platformFromJSON", { enumerable: true, get: function () { return identity_js_1.platformFromJSON; } });
|
|
43
46
|
Object.defineProperty(exports, "platformToJSON", { enumerable: true, get: function () { return identity_js_1.platformToJSON; } });
|
|
44
47
|
// Legacy aliases for backward compatibility
|
|
45
48
|
var identity_js_2 = require("../../generated/ottochain/apps/identity/v1/identity.js");
|
|
46
|
-
Object.defineProperty(exports, "AgentState", { enumerable: true, get: function () { return identity_js_2.
|
|
49
|
+
Object.defineProperty(exports, "AgentState", { enumerable: true, get: function () { return identity_js_2.State; } });
|
|
50
|
+
// Deprecated app-prefixed aliases (renamed to Type / State); kept for compat.
|
|
51
|
+
var identity_js_3 = require("../../generated/ottochain/apps/identity/v1/identity.js");
|
|
52
|
+
Object.defineProperty(exports, "IdentityType", { enumerable: true, get: function () { return identity_js_3.Type; } });
|
|
53
|
+
Object.defineProperty(exports, "IdentityState", { enumerable: true, get: function () { return identity_js_3.State; } });
|
|
54
|
+
Object.defineProperty(exports, "identityTypeFromJSON", { enumerable: true, get: function () { return identity_js_3.typeFromJSON; } });
|
|
55
|
+
Object.defineProperty(exports, "identityTypeToJSON", { enumerable: true, get: function () { return identity_js_3.typeToJSON; } });
|
|
56
|
+
Object.defineProperty(exports, "identityStateFromJSON", { enumerable: true, get: function () { return identity_js_3.stateFromJSON; } });
|
|
57
|
+
Object.defineProperty(exports, "identityStateToJSON", { enumerable: true, get: function () { return identity_js_3.stateToJSON; } });
|
|
47
58
|
var attestation_js_1 = require("../../generated/ottochain/apps/identity/v1/attestation.js");
|
|
48
59
|
Object.defineProperty(exports, "AttestationType", { enumerable: true, get: function () { return attestation_js_1.AttestationType; } });
|
|
49
60
|
Object.defineProperty(exports, "ReputationDelta", { enumerable: true, get: function () { return attestation_js_1.ReputationDelta; } });
|
|
@@ -58,6 +69,10 @@ var constants_js_1 = require("./constants.js");
|
|
|
58
69
|
Object.defineProperty(exports, "IDENTITY_TRANSITIONS", { enumerable: true, get: function () { return constants_js_1.IDENTITY_TRANSITIONS; } });
|
|
59
70
|
Object.defineProperty(exports, "AGENT_TRANSITIONS", { enumerable: true, get: function () { return constants_js_1.AGENT_TRANSITIONS; } });
|
|
60
71
|
Object.defineProperty(exports, "ATTESTATION_DELTAS", { enumerable: true, get: function () { return constants_js_1.ATTESTATION_DELTAS; } });
|
|
72
|
+
Object.defineProperty(exports, "REGISTRY_ROLES", { enumerable: true, get: function () { return constants_js_1.REGISTRY_ROLES; } });
|
|
73
|
+
Object.defineProperty(exports, "REGISTRY_ROLE_MAP", { enumerable: true, get: function () { return constants_js_1.REGISTRY_ROLE_MAP; } });
|
|
74
|
+
Object.defineProperty(exports, "registryRolePath", { enumerable: true, get: function () { return constants_js_1.registryRolePath; } });
|
|
75
|
+
Object.defineProperty(exports, "registryReputationPath", { enumerable: true, get: function () { return constants_js_1.registryReputationPath; } });
|
|
61
76
|
Object.defineProperty(exports, "canTransition", { enumerable: true, get: function () { return constants_js_1.canTransition; } });
|
|
62
77
|
Object.defineProperty(exports, "getReputationDelta", { enumerable: true, get: function () { return constants_js_1.getReputationDelta; } });
|
|
63
78
|
// ---------------------------------------------------------------------------
|
|
@@ -82,17 +97,18 @@ const index_js_1 = require("./state-machines/index.js");
|
|
|
82
97
|
Object.defineProperty(exports, "identityUniversalDef", { enumerable: true, get: function () { return index_js_1.identityUniversalDef; } });
|
|
83
98
|
Object.defineProperty(exports, "identityAgentDef", { enumerable: true, get: function () { return index_js_1.identityAgentDef; } });
|
|
84
99
|
Object.defineProperty(exports, "identityOracleDef", { enumerable: true, get: function () { return index_js_1.identityOracleDef; } });
|
|
100
|
+
Object.defineProperty(exports, "identityRegistryDef", { enumerable: true, get: function () { return index_js_1.identityRegistryDef; } });
|
|
85
101
|
/** All identity state machine definitions */
|
|
86
102
|
exports.IDENTITY_DEFINITIONS = {
|
|
87
103
|
universal: index_js_1.identityUniversalDef,
|
|
88
104
|
agent: index_js_1.identityAgentDef,
|
|
89
105
|
oracle: index_js_1.identityOracleDef,
|
|
106
|
+
registry: index_js_1.identityRegistryDef,
|
|
90
107
|
};
|
|
91
108
|
/**
|
|
92
109
|
* Get an identity state machine definition by type.
|
|
93
|
-
* @param type - 'universal' | 'agent' | 'oracle' (default: 'agent')
|
|
110
|
+
* @param type - 'universal' | 'agent' | 'oracle' | 'registry' (default: 'agent')
|
|
94
111
|
*/
|
|
95
112
|
function getIdentityDefinition(type = "agent") {
|
|
96
113
|
return exports.IDENTITY_DEFINITIONS[type];
|
|
97
114
|
}
|
|
98
|
-
exports.getIdentityDefinition = getIdentityDefinition;
|