@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,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.corpEntityDef = void 0;
|
|
4
4
|
const fiber_app_js_1 = require("../../../schema/fiber-app.js");
|
|
5
|
+
const guards_js_1 = require("../../../schema/guards.js");
|
|
6
|
+
const effects_js_1 = require("../../../schema/effects.js");
|
|
5
7
|
/**
|
|
6
8
|
* Master corporate record tracking the lifecycle of a business entity from incorporation through dissolution.
|
|
7
9
|
* Manages legal identity, share structure, and corporate status.
|
|
@@ -47,13 +49,42 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
47
49
|
},
|
|
48
50
|
},
|
|
49
51
|
createSchema: {
|
|
50
|
-
required: [
|
|
52
|
+
required: [
|
|
53
|
+
"entityId",
|
|
54
|
+
"legalName",
|
|
55
|
+
"entityType",
|
|
56
|
+
"jurisdiction",
|
|
57
|
+
"charterAuthority",
|
|
58
|
+
"boardAuthority",
|
|
59
|
+
"shareholderAuthority",
|
|
60
|
+
"stateAuthority",
|
|
61
|
+
],
|
|
51
62
|
properties: {
|
|
52
63
|
entityId: {
|
|
53
64
|
type: "string",
|
|
54
65
|
description: "Unique identifier for this corporate entity",
|
|
55
66
|
immutable: true,
|
|
56
67
|
},
|
|
68
|
+
charterAuthority: {
|
|
69
|
+
type: "address",
|
|
70
|
+
description: "State-pinned DAG address authorized to amend the charter (legal identity). Verified against proofs[].address.",
|
|
71
|
+
immutable: true,
|
|
72
|
+
},
|
|
73
|
+
boardAuthority: {
|
|
74
|
+
type: "address",
|
|
75
|
+
description: "State-pinned DAG address of the board authority (governs registered-agent changes, suspension/reinstatement, and the board half of voluntary dissolution). Verified against proofs[].address.",
|
|
76
|
+
immutable: true,
|
|
77
|
+
},
|
|
78
|
+
shareholderAuthority: {
|
|
79
|
+
type: "address",
|
|
80
|
+
description: "State-pinned DAG address of the shareholder authority (the shareholder half of voluntary dissolution). Verified against proofs[].address.",
|
|
81
|
+
immutable: true,
|
|
82
|
+
},
|
|
83
|
+
stateAuthority: {
|
|
84
|
+
type: "address",
|
|
85
|
+
description: "State-pinned DAG address of the chartering jurisdiction/registrar that may administratively dissolve a suspended entity. Verified against proofs[].address.",
|
|
86
|
+
immutable: true,
|
|
87
|
+
},
|
|
57
88
|
legalName: {
|
|
58
89
|
type: "string",
|
|
59
90
|
description: "Full legal name of the corporation",
|
|
@@ -141,6 +172,10 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
141
172
|
stateSchema: {
|
|
142
173
|
properties: {
|
|
143
174
|
entityId: { type: "string", immutable: true },
|
|
175
|
+
charterAuthority: { type: "address", immutable: true },
|
|
176
|
+
boardAuthority: { type: "address", immutable: true },
|
|
177
|
+
shareholderAuthority: { type: "address", immutable: true },
|
|
178
|
+
stateAuthority: { type: "address", immutable: true },
|
|
144
179
|
legalName: { type: "string" },
|
|
145
180
|
tradeName: { type: "string", nullable: true },
|
|
146
181
|
entityType: { type: "string" },
|
|
@@ -179,6 +214,13 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
179
214
|
},
|
|
180
215
|
createdAt: { type: "timestamp", computed: true },
|
|
181
216
|
updatedAt: { type: "timestamp", computed: true },
|
|
217
|
+
// Two-phase amendment (#24): propose_amend_charter binds the resolution fiber + records the
|
|
218
|
+
// pending amendment here; amend_charter asserts the bound resolution is EXECUTED, then clears this.
|
|
219
|
+
pendingAmendCharter: { type: "object", nullable: true, computed: true },
|
|
220
|
+
// Two-phase voluntary dissolution (#24): propose_dissolve_voluntary binds the board + shareholder
|
|
221
|
+
// resolution fibers + records the pending dissolution here; dissolve_voluntary asserts both bound
|
|
222
|
+
// resolutions are EXECUTED, then clears this.
|
|
223
|
+
pendingDissolveVoluntary: { type: "object", nullable: true, computed: true },
|
|
182
224
|
},
|
|
183
225
|
},
|
|
184
226
|
eventSchemas: {
|
|
@@ -194,8 +236,8 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
194
236
|
},
|
|
195
237
|
},
|
|
196
238
|
},
|
|
197
|
-
|
|
198
|
-
description: "
|
|
239
|
+
propose_amend_charter: {
|
|
240
|
+
description: "Phase 1 of a charter amendment: bind the approving resolution fiber (#24 _addDependency) and record the pending amendment",
|
|
199
241
|
required: [
|
|
200
242
|
"amendmentId",
|
|
201
243
|
"description",
|
|
@@ -230,6 +272,37 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
230
272
|
newLegalName: { type: "string", nullable: true },
|
|
231
273
|
},
|
|
232
274
|
},
|
|
275
|
+
amend_charter: {
|
|
276
|
+
description: "Phase 2 of a charter amendment: apply once the bound approving resolution is EXECUTED",
|
|
277
|
+
required: [
|
|
278
|
+
"amendmentId",
|
|
279
|
+
"description",
|
|
280
|
+
"amendmentType",
|
|
281
|
+
"effectiveDate",
|
|
282
|
+
"filedDate",
|
|
283
|
+
],
|
|
284
|
+
properties: {
|
|
285
|
+
amendmentId: { type: "string" },
|
|
286
|
+
description: { type: "string" },
|
|
287
|
+
amendmentType: {
|
|
288
|
+
type: "string",
|
|
289
|
+
enum: [
|
|
290
|
+
"NAME_CHANGE",
|
|
291
|
+
"SHARE_AUTHORIZATION",
|
|
292
|
+
"PURPOSE_CHANGE",
|
|
293
|
+
"OTHER",
|
|
294
|
+
],
|
|
295
|
+
},
|
|
296
|
+
effectiveDate: { type: "string", format: "date" },
|
|
297
|
+
filedDate: { type: "string", format: "date" },
|
|
298
|
+
newShareAuthorization: {
|
|
299
|
+
type: "object",
|
|
300
|
+
nullable: true,
|
|
301
|
+
description: "If increasing/changing authorized shares",
|
|
302
|
+
},
|
|
303
|
+
newLegalName: { type: "string", nullable: true },
|
|
304
|
+
},
|
|
305
|
+
},
|
|
233
306
|
update_share_class: {
|
|
234
307
|
description: "Update authorized shares for an existing class or add new class (requires charter amendment)",
|
|
235
308
|
required: [
|
|
@@ -308,8 +381,8 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
308
381
|
penaltiesPaid: { type: "number", nullable: true },
|
|
309
382
|
},
|
|
310
383
|
},
|
|
311
|
-
|
|
312
|
-
description: "
|
|
384
|
+
propose_dissolve_voluntary: {
|
|
385
|
+
description: "Phase 1 of voluntary dissolution: bind the executing board + shareholder resolution fibers (#24 _addDependency) and record the pending dissolution",
|
|
313
386
|
required: [
|
|
314
387
|
"dissolutionDate",
|
|
315
388
|
"boardResolutionRef",
|
|
@@ -326,6 +399,18 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
326
399
|
certificateOfDissolution: { type: "string" },
|
|
327
400
|
},
|
|
328
401
|
},
|
|
402
|
+
dissolve_voluntary: {
|
|
403
|
+
description: "Phase 2 of voluntary dissolution: execute once both bound resolutions are EXECUTED",
|
|
404
|
+
required: ["dissolutionDate"],
|
|
405
|
+
properties: {
|
|
406
|
+
dissolutionDate: { type: "string", format: "date" },
|
|
407
|
+
windingUpPlan: {
|
|
408
|
+
type: "string",
|
|
409
|
+
description: "Reference to winding up plan",
|
|
410
|
+
},
|
|
411
|
+
certificateOfDissolution: { type: "string" },
|
|
412
|
+
},
|
|
413
|
+
},
|
|
329
414
|
dissolve_administrative: {
|
|
330
415
|
description: "Administrative dissolution by state after prolonged suspension",
|
|
331
416
|
required: ["dissolutionDate", "stateOrder", "reason"],
|
|
@@ -435,8 +520,8 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
435
520
|
{ "!=": [{ var: "state.legalName" }, null] },
|
|
436
521
|
{ "!=": [{ var: "state.jurisdiction.state" }, null] },
|
|
437
522
|
{ "!=": [{ var: "state.registeredAgent" }, null] },
|
|
438
|
-
{ ">": [{ var: "state.incorporators
|
|
439
|
-
{ ">": [{ var: "state.shareStructure.classes
|
|
523
|
+
{ ">": [{ length: [{ var: "state.incorporators" }] }, 0] },
|
|
524
|
+
{ ">": [{ length: [{ var: "state.shareStructure.classes" }] }, 0] },
|
|
440
525
|
{ ">": [{ var: "state.shareStructure.totalAuthorized" }, 0] },
|
|
441
526
|
],
|
|
442
527
|
},
|
|
@@ -446,38 +531,77 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
446
531
|
{
|
|
447
532
|
status: "ACTIVE",
|
|
448
533
|
formationDate: { var: "event.approvalDate" },
|
|
449
|
-
updatedAt: { var: "$
|
|
534
|
+
updatedAt: { var: "$ordinal" },
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
_emit: [
|
|
538
|
+
{ name: "CORPORATION_FORMED", data: { var: "event" }, destination: "external" },
|
|
539
|
+
],
|
|
450
540
|
},
|
|
451
541
|
],
|
|
452
542
|
},
|
|
453
|
-
emits: ["CORPORATION_FORMED"],
|
|
454
543
|
},
|
|
455
|
-
// ACTIVE -> ACTIVE (
|
|
544
|
+
// ACTIVE -> ACTIVE (propose_amend_charter) — phase 1 (#24): bind the approving resolution fiber and
|
|
545
|
+
// record the pending amendment, so amend_charter can read the resolution's state next transition.
|
|
546
|
+
{
|
|
547
|
+
from: "ACTIVE",
|
|
548
|
+
to: "ACTIVE",
|
|
549
|
+
eventName: "propose_amend_charter",
|
|
550
|
+
// authority gate — an identity role attestation (ISSUER/BOARD_MEMBER/...) layers on additively when the identity registry lands (docs/design/app-hardening-identity-integration.md §4.2)
|
|
551
|
+
guard: (0, guards_js_1.signerIsParty)("state.charterAuthority"),
|
|
552
|
+
effect: {
|
|
553
|
+
merge: [
|
|
554
|
+
{ var: "state" },
|
|
555
|
+
{
|
|
556
|
+
pendingAmendCharter: {
|
|
557
|
+
amendmentId: { var: "event.amendmentId" },
|
|
558
|
+
description: { var: "event.description" },
|
|
559
|
+
effectiveDate: { var: "event.effectiveDate" },
|
|
560
|
+
filedDate: { var: "event.filedDate" },
|
|
561
|
+
newLegalName: { var: "event.newLegalName" },
|
|
562
|
+
ref: { var: "event.resolutionRef" },
|
|
563
|
+
proposedAt: { var: "$ordinal" },
|
|
564
|
+
},
|
|
565
|
+
},
|
|
566
|
+
// bind the resolution fiber so amend_charter can assert its state next transition
|
|
567
|
+
(0, effects_js_1.addDependency)({ var: "event.resolutionRef" }),
|
|
568
|
+
],
|
|
569
|
+
},
|
|
570
|
+
dependencies: [],
|
|
571
|
+
},
|
|
572
|
+
// ACTIVE -> ACTIVE (amend_charter) — phase 2 (#24): apply once the bound approving resolution is
|
|
573
|
+
// EXECUTED. depInState replaces the dropped object-form dependency (which silently never gated).
|
|
456
574
|
{
|
|
457
575
|
from: "ACTIVE",
|
|
458
576
|
to: "ACTIVE",
|
|
459
577
|
eventName: "amend_charter",
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
578
|
+
// authority gate — an identity role attestation (ISSUER/BOARD_MEMBER/...) layers on additively when the identity registry lands (docs/design/app-hardening-identity-integration.md §4.2)
|
|
579
|
+
guard: {
|
|
580
|
+
and: [
|
|
581
|
+
(0, guards_js_1.signerIsParty)("state.charterAuthority"),
|
|
582
|
+
// the proposal must target this amendment, and its bound resolution must be EXECUTED
|
|
583
|
+
{
|
|
584
|
+
"==": [
|
|
585
|
+
{ var: "state.pendingAmendCharter.amendmentId" },
|
|
586
|
+
{ var: "event.amendmentId" },
|
|
587
|
+
],
|
|
588
|
+
},
|
|
589
|
+
(0, guards_js_1.depInState)("state.pendingAmendCharter.ref", "EXECUTED"),
|
|
590
|
+
],
|
|
591
|
+
},
|
|
468
592
|
effect: {
|
|
469
593
|
merge: [
|
|
470
594
|
{ var: "state" },
|
|
471
595
|
{
|
|
472
596
|
charterAmendments: {
|
|
473
|
-
|
|
597
|
+
merge: [
|
|
474
598
|
{ var: "state.charterAmendments" },
|
|
475
599
|
[
|
|
476
600
|
{
|
|
477
601
|
amendmentId: { var: "event.amendmentId" },
|
|
478
602
|
description: { var: "event.description" },
|
|
479
603
|
effectiveDate: { var: "event.effectiveDate" },
|
|
480
|
-
resolutionRef: { var: "
|
|
604
|
+
resolutionRef: { var: "state.pendingAmendCharter.ref" },
|
|
481
605
|
filedDate: { var: "event.filedDate" },
|
|
482
606
|
},
|
|
483
607
|
],
|
|
@@ -490,11 +614,18 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
490
614
|
{ var: "state.legalName" },
|
|
491
615
|
],
|
|
492
616
|
},
|
|
493
|
-
updatedAt: { var: "$
|
|
617
|
+
updatedAt: { var: "$ordinal" },
|
|
618
|
+
// clear the consumed proposal
|
|
619
|
+
pendingAmendCharter: null,
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
_emit: [
|
|
623
|
+
{ name: "CHARTER_AMENDED", data: { var: "event" }, destination: "external" },
|
|
624
|
+
],
|
|
494
625
|
},
|
|
495
626
|
],
|
|
496
627
|
},
|
|
497
|
-
|
|
628
|
+
dependencies: [],
|
|
498
629
|
},
|
|
499
630
|
// ACTIVE -> ACTIVE (update_share_class)
|
|
500
631
|
{
|
|
@@ -506,7 +637,7 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
506
637
|
{ var: "state.charterAmendments" },
|
|
507
638
|
{
|
|
508
639
|
"==": [
|
|
509
|
-
{ var: "
|
|
640
|
+
{ var: "amendmentId" },
|
|
510
641
|
{ var: "event.charterAmendmentRef" },
|
|
511
642
|
],
|
|
512
643
|
},
|
|
@@ -527,7 +658,7 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
527
658
|
if: [
|
|
528
659
|
{
|
|
529
660
|
"==": [
|
|
530
|
-
{ var: "
|
|
661
|
+
{ var: "classId" },
|
|
531
662
|
{ var: "event.classId" },
|
|
532
663
|
],
|
|
533
664
|
},
|
|
@@ -564,7 +695,8 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
564
695
|
from: "ACTIVE",
|
|
565
696
|
to: "ACTIVE",
|
|
566
697
|
eventName: "update_registered_agent",
|
|
567
|
-
|
|
698
|
+
// authority gate — an identity role attestation (ISSUER/BOARD_MEMBER/...) layers on additively when the identity registry lands (docs/design/app-hardening-identity-integration.md §4.2)
|
|
699
|
+
guard: (0, guards_js_1.signerIsParty)("state.boardAuthority"),
|
|
568
700
|
effect: {
|
|
569
701
|
merge: [
|
|
570
702
|
{ var: "state" },
|
|
@@ -577,16 +709,21 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
577
709
|
effectiveDate: { var: "event.effectiveDate" },
|
|
578
710
|
},
|
|
579
711
|
},
|
|
712
|
+
{
|
|
713
|
+
_emit: [
|
|
714
|
+
{ name: "REGISTERED_AGENT_CHANGED", data: { var: "event" }, destination: "external" },
|
|
715
|
+
],
|
|
716
|
+
},
|
|
580
717
|
],
|
|
581
718
|
},
|
|
582
|
-
emits: ["REGISTERED_AGENT_CHANGED"],
|
|
583
719
|
},
|
|
584
720
|
// ACTIVE -> SUSPENDED
|
|
585
721
|
{
|
|
586
722
|
from: "ACTIVE",
|
|
587
723
|
to: "SUSPENDED",
|
|
588
724
|
eventName: "suspend",
|
|
589
|
-
|
|
725
|
+
// authority gate — state-initiated enforcement; an identity role attestation (ISSUER/BOARD_MEMBER/...) layers on additively when the identity registry lands (docs/design/app-hardening-identity-integration.md §4.2)
|
|
726
|
+
guard: (0, guards_js_1.signerIsParty)("state.stateAuthority"),
|
|
590
727
|
effect: {
|
|
591
728
|
merge: [
|
|
592
729
|
{ var: "state" },
|
|
@@ -595,16 +732,21 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
595
732
|
suspensionReason: { var: "event.reason" },
|
|
596
733
|
suspensionDate: { var: "event.suspensionDate" },
|
|
597
734
|
},
|
|
735
|
+
{
|
|
736
|
+
_emit: [
|
|
737
|
+
{ name: "CORPORATION_SUSPENDED", data: { var: "event" }, destination: "external" },
|
|
738
|
+
],
|
|
739
|
+
},
|
|
598
740
|
],
|
|
599
741
|
},
|
|
600
|
-
emits: ["CORPORATION_SUSPENDED"],
|
|
601
742
|
},
|
|
602
743
|
// SUSPENDED -> ACTIVE
|
|
603
744
|
{
|
|
604
745
|
from: "SUSPENDED",
|
|
605
746
|
to: "ACTIVE",
|
|
606
747
|
eventName: "reinstate",
|
|
607
|
-
|
|
748
|
+
// authority gate — an identity role attestation (ISSUER/BOARD_MEMBER/...) layers on additively when the identity registry lands (docs/design/app-hardening-identity-integration.md §4.2)
|
|
749
|
+
guard: (0, guards_js_1.signerIsParty)("state.boardAuthority"),
|
|
608
750
|
effect: {
|
|
609
751
|
merge: [
|
|
610
752
|
{ var: "state" },
|
|
@@ -613,28 +755,72 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
613
755
|
suspensionReason: null,
|
|
614
756
|
suspensionDate: null,
|
|
615
757
|
},
|
|
758
|
+
{
|
|
759
|
+
_emit: [
|
|
760
|
+
{ name: "CORPORATION_REINSTATED", data: { var: "event" }, destination: "external" },
|
|
761
|
+
],
|
|
762
|
+
},
|
|
763
|
+
],
|
|
764
|
+
},
|
|
765
|
+
},
|
|
766
|
+
// ACTIVE -> ACTIVE (propose_dissolve_voluntary) — phase 1 (#24): bind BOTH executing resolution
|
|
767
|
+
// fibers (board + shareholder) and record the pending dissolution, so dissolve_voluntary can read
|
|
768
|
+
// both resolutions' states next transition.
|
|
769
|
+
{
|
|
770
|
+
from: "ACTIVE",
|
|
771
|
+
to: "ACTIVE",
|
|
772
|
+
eventName: "propose_dissolve_voluntary",
|
|
773
|
+
// authority gate — both the board and shareholder authorities must sign; identity role attestations (BOARD_MEMBER/...) layer on additively when the identity registry lands (docs/design/app-hardening-identity-integration.md §4.2)
|
|
774
|
+
guard: {
|
|
775
|
+
and: [
|
|
776
|
+
(0, guards_js_1.signerIsParty)("state.boardAuthority"),
|
|
777
|
+
(0, guards_js_1.signerIsParty)("state.shareholderAuthority"),
|
|
778
|
+
],
|
|
779
|
+
},
|
|
780
|
+
effect: {
|
|
781
|
+
merge: [
|
|
782
|
+
{ var: "state" },
|
|
783
|
+
{
|
|
784
|
+
pendingDissolveVoluntary: {
|
|
785
|
+
dissolutionDate: { var: "event.dissolutionDate" },
|
|
786
|
+
boardRef: { var: "event.boardResolutionRef" },
|
|
787
|
+
shareholderRef: { var: "event.shareholderResolutionRef" },
|
|
788
|
+
proposedAt: { var: "$ordinal" },
|
|
789
|
+
},
|
|
790
|
+
},
|
|
791
|
+
// bind both resolution fibers so dissolve_voluntary can assert their states next transition
|
|
792
|
+
{
|
|
793
|
+
_addDependency: [
|
|
794
|
+
{ fiberId: { var: "event.boardResolutionRef" } },
|
|
795
|
+
{ fiberId: { var: "event.shareholderResolutionRef" } },
|
|
796
|
+
],
|
|
797
|
+
},
|
|
616
798
|
],
|
|
617
799
|
},
|
|
618
|
-
|
|
800
|
+
dependencies: [],
|
|
619
801
|
},
|
|
620
|
-
// ACTIVE -> DISSOLVED (
|
|
802
|
+
// ACTIVE -> DISSOLVED (dissolve_voluntary) — phase 2 (#24): execute once BOTH bound resolutions are
|
|
803
|
+
// EXECUTED. depInState replaces the dropped object-form dependencies (which silently never gated).
|
|
621
804
|
{
|
|
622
805
|
from: "ACTIVE",
|
|
623
806
|
to: "DISSOLVED",
|
|
624
807
|
eventName: "dissolve_voluntary",
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
808
|
+
// authority gate — both the board and shareholder authorities must sign; identity role attestations (BOARD_MEMBER/...) layer on additively when the identity registry lands (docs/design/app-hardening-identity-integration.md §4.2)
|
|
809
|
+
guard: {
|
|
810
|
+
and: [
|
|
811
|
+
(0, guards_js_1.signerIsParty)("state.boardAuthority"),
|
|
812
|
+
(0, guards_js_1.signerIsParty)("state.shareholderAuthority"),
|
|
813
|
+
// the proposal must target this dissolution, and its bound resolutions must both be EXECUTED
|
|
814
|
+
{
|
|
815
|
+
"==": [
|
|
816
|
+
{ var: "state.pendingDissolveVoluntary.dissolutionDate" },
|
|
817
|
+
{ var: "event.dissolutionDate" },
|
|
818
|
+
],
|
|
819
|
+
},
|
|
820
|
+
(0, guards_js_1.depInState)("state.pendingDissolveVoluntary.boardRef", "EXECUTED"),
|
|
821
|
+
(0, guards_js_1.depInState)("state.pendingDissolveVoluntary.shareholderRef", "EXECUTED"),
|
|
822
|
+
],
|
|
823
|
+
},
|
|
638
824
|
effect: {
|
|
639
825
|
merge: [
|
|
640
826
|
{ var: "state" },
|
|
@@ -642,17 +828,25 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
642
828
|
status: "DISSOLVED",
|
|
643
829
|
dissolutionDate: { var: "event.dissolutionDate" },
|
|
644
830
|
dissolutionReason: "VOLUNTARY",
|
|
831
|
+
// clear the consumed proposal
|
|
832
|
+
pendingDissolveVoluntary: null,
|
|
833
|
+
},
|
|
834
|
+
{
|
|
835
|
+
_emit: [
|
|
836
|
+
{ name: "CORPORATION_DISSOLVED", data: { var: "event" }, destination: "external" },
|
|
837
|
+
],
|
|
645
838
|
},
|
|
646
839
|
],
|
|
647
840
|
},
|
|
648
|
-
|
|
841
|
+
dependencies: [],
|
|
649
842
|
},
|
|
650
843
|
// SUSPENDED -> DISSOLVED (administrative)
|
|
651
844
|
{
|
|
652
845
|
from: "SUSPENDED",
|
|
653
846
|
to: "DISSOLVED",
|
|
654
847
|
eventName: "dissolve_administrative",
|
|
655
|
-
|
|
848
|
+
// authority gate — state-initiated dissolution; an identity role attestation (ISSUER/BOARD_MEMBER/...) layers on additively when the identity registry lands (docs/design/app-hardening-identity-integration.md §4.2)
|
|
849
|
+
guard: (0, guards_js_1.signerIsParty)("state.stateAuthority"),
|
|
656
850
|
effect: {
|
|
657
851
|
merge: [
|
|
658
852
|
{ var: "state" },
|
|
@@ -663,9 +857,13 @@ exports.corpEntityDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
663
857
|
cat: ["ADMINISTRATIVE: ", { var: "event.reason" }],
|
|
664
858
|
},
|
|
665
859
|
},
|
|
860
|
+
{
|
|
861
|
+
_emit: [
|
|
862
|
+
{ name: "CORPORATION_DISSOLVED", data: { var: "event" }, destination: "external" },
|
|
863
|
+
],
|
|
864
|
+
},
|
|
666
865
|
],
|
|
667
866
|
},
|
|
668
|
-
emits: ["CORPORATION_DISSOLVED"],
|
|
669
867
|
},
|
|
670
868
|
],
|
|
671
869
|
});
|