@ottochain/sdk 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/apps/contracts/index.js +15 -8
- package/dist/cjs/apps/contracts/state-machines/contract-agreement.js +35 -40
- package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +80 -37
- package/dist/cjs/apps/contracts/state-machines/contract-universal.js +4 -4
- package/dist/cjs/apps/corporate/index.js +2 -2
- package/dist/cjs/apps/corporate/state-machines/corp-board.js +169 -59
- package/dist/cjs/apps/corporate/state-machines/corp-entity.js +245 -47
- package/dist/cjs/apps/corporate/state-machines/corp-securities.js +407 -99
- package/dist/cjs/apps/corporate/state-machines/corp-shareholders.js +151 -37
- package/dist/cjs/apps/governance/index.js +14 -14
- package/dist/cjs/apps/governance/state-machines/dao-multisig.js +58 -40
- package/dist/cjs/apps/governance/state-machines/dao-reputation.js +46 -40
- package/dist/cjs/apps/governance/state-machines/dao-single.js +28 -11
- package/dist/cjs/apps/governance/state-machines/dao-token.js +67 -41
- package/dist/cjs/apps/governance/state-machines/governance-simple.js +93 -61
- package/dist/cjs/apps/governance/state-machines/governance-universal.js +2 -2
- package/dist/cjs/apps/identity/constants.js +55 -14
- package/dist/cjs/apps/identity/index.js +27 -11
- package/dist/cjs/apps/identity/state-machines/identity-agent.js +3 -3
- package/dist/cjs/apps/identity/state-machines/identity-oracle.js +25 -22
- package/dist/cjs/apps/identity/state-machines/identity-registry.js +288 -0
- package/dist/cjs/apps/identity/state-machines/identity-universal.js +3 -3
- package/dist/cjs/apps/identity/state-machines/index.js +3 -1
- package/dist/cjs/apps/index.js +19 -8
- package/dist/cjs/apps/lending/assets.js +223 -0
- package/dist/cjs/apps/lending/credit-scoring.js +87 -0
- package/dist/cjs/apps/lending/eligibility.js +121 -0
- package/dist/cjs/apps/lending/index.js +91 -0
- package/dist/cjs/apps/lending/state-machines/index.js +9 -0
- package/dist/cjs/apps/lending/state-machines/lending-zk-loan.js +412 -0
- package/dist/cjs/apps/markets/index.js +21 -11
- package/dist/cjs/apps/markets/state-machines/market-auction.js +14 -13
- package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +29 -24
- package/dist/cjs/apps/markets/state-machines/market-group-buy.js +24 -26
- package/dist/cjs/apps/markets/state-machines/market-prediction.js +80 -53
- package/dist/cjs/apps/markets/state-machines/market-universal.js +5 -5
- package/dist/cjs/apps/oracles/index.js +2 -2
- package/dist/cjs/errors.js +3 -3
- package/dist/cjs/generated/google/protobuf/struct.js +4 -4
- package/dist/cjs/generated/index.js +11 -7
- package/dist/cjs/generated/openapi.js +6 -0
- package/dist/cjs/generated/ottochain/apps/contracts/v1/contract.js +50 -50
- package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate.js +19 -20
- package/dist/cjs/generated/ottochain/apps/governance/v1/governance.js +13 -13
- package/dist/cjs/generated/ottochain/apps/identity/v1/attestation.js +4 -4
- package/dist/cjs/generated/ottochain/apps/identity/v1/identity.js +124 -130
- package/dist/cjs/generated/ottochain/apps/markets/v1/market.js +107 -107
- package/dist/cjs/generated/ottochain/v1/common.js +4 -4
- package/dist/cjs/generated/ottochain/v1/fiber.js +4 -4
- package/dist/cjs/index.js +41 -7
- package/dist/cjs/openapi.js +2 -0
- package/dist/cjs/ottochain/drop-nulls.js +1 -2
- package/dist/cjs/ottochain/genesis-manifest.js +11 -11
- package/dist/cjs/ottochain/index.js +23 -13
- package/dist/cjs/ottochain/metagraph-client.js +65 -8
- package/dist/cjs/ottochain/snapshot.js +11 -12
- package/dist/cjs/ottochain/transaction.js +57 -14
- package/dist/cjs/ottochain/types.js +16 -2
- package/dist/cjs/privacy/index.js +14 -0
- package/dist/cjs/privacy/sealed-bid.js +210 -0
- package/dist/cjs/privacy/shield-app.js +131 -0
- package/dist/cjs/schema/effects.js +40 -0
- package/dist/cjs/schema/fiber-app.js +19 -13
- package/dist/cjs/schema/guard-lint.js +352 -0
- package/dist/cjs/schema/guards.js +246 -0
- package/dist/cjs/signing.js +80 -0
- package/dist/cjs/types.js +2 -3
- package/dist/cjs/validation.js +8 -8
- package/dist/cjs/verify.js +9 -4
- package/dist/cjs/zk/commit.js +53 -0
- package/dist/cjs/zk/guard.js +107 -0
- package/dist/cjs/zk/index.js +48 -0
- package/dist/cjs/zk/preimage.js +37 -0
- package/dist/cjs/zk/prover.js +87 -0
- package/dist/cjs/zk/registry.js +62 -0
- package/dist/cjs/zk/types.js +28 -0
- package/dist/cjs/zk/witness.js +19 -0
- package/dist/esm/apps/contracts/index.js +7 -3
- package/dist/esm/apps/contracts/state-machines/contract-agreement.js +35 -40
- package/dist/esm/apps/contracts/state-machines/contract-escrow.js +80 -37
- package/dist/esm/apps/contracts/state-machines/contract-universal.js +4 -4
- package/dist/esm/apps/corporate/state-machines/corp-board.js +169 -59
- package/dist/esm/apps/corporate/state-machines/corp-entity.js +245 -47
- package/dist/esm/apps/corporate/state-machines/corp-securities.js +407 -99
- package/dist/esm/apps/corporate/state-machines/corp-shareholders.js +151 -37
- package/dist/esm/apps/governance/state-machines/dao-multisig.js +58 -40
- package/dist/esm/apps/governance/state-machines/dao-reputation.js +46 -40
- package/dist/esm/apps/governance/state-machines/dao-single.js +28 -11
- package/dist/esm/apps/governance/state-machines/dao-token.js +67 -41
- package/dist/esm/apps/governance/state-machines/governance-simple.js +93 -61
- package/dist/esm/apps/governance/state-machines/governance-universal.js +2 -2
- package/dist/esm/apps/identity/constants.js +51 -12
- package/dist/esm/apps/identity/index.js +12 -7
- package/dist/esm/apps/identity/state-machines/identity-agent.js +3 -3
- package/dist/esm/apps/identity/state-machines/identity-oracle.js +25 -22
- package/dist/esm/apps/identity/state-machines/identity-registry.js +285 -0
- package/dist/esm/apps/identity/state-machines/identity-universal.js +3 -3
- package/dist/esm/apps/identity/state-machines/index.js +1 -0
- package/dist/esm/apps/index.js +1 -0
- package/dist/esm/apps/lending/assets.js +207 -0
- package/dist/esm/apps/lending/credit-scoring.js +81 -0
- package/dist/esm/apps/lending/eligibility.js +115 -0
- package/dist/esm/apps/lending/index.js +69 -0
- package/dist/esm/apps/lending/state-machines/index.js +5 -0
- package/dist/esm/apps/lending/state-machines/lending-zk-loan.js +409 -0
- package/dist/esm/apps/markets/index.js +8 -4
- package/dist/esm/apps/markets/state-machines/market-auction.js +14 -13
- package/dist/esm/apps/markets/state-machines/market-crowdfund.js +29 -24
- package/dist/esm/apps/markets/state-machines/market-group-buy.js +24 -26
- package/dist/esm/apps/markets/state-machines/market-prediction.js +80 -53
- package/dist/esm/apps/markets/state-machines/market-universal.js +5 -5
- package/dist/esm/generated/index.js +9 -5
- package/dist/esm/generated/openapi.js +5 -0
- package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +46 -46
- package/dist/esm/generated/ottochain/apps/identity/v1/identity.js +114 -120
- package/dist/esm/generated/ottochain/apps/markets/v1/market.js +100 -100
- package/dist/esm/index.js +21 -2
- package/dist/esm/openapi.js +1 -0
- package/dist/esm/ottochain/genesis-manifest.js +9 -9
- package/dist/esm/ottochain/index.js +2 -3
- package/dist/esm/ottochain/metagraph-client.js +65 -8
- package/dist/esm/ottochain/snapshot.js +4 -4
- package/dist/esm/ottochain/transaction.js +43 -3
- package/dist/esm/ottochain/types.js +15 -1
- package/dist/esm/privacy/index.js +6 -0
- package/dist/esm/privacy/sealed-bid.js +206 -0
- package/dist/esm/privacy/shield-app.js +127 -0
- package/dist/esm/schema/effects.js +35 -0
- package/dist/esm/schema/fiber-app.js +13 -6
- package/dist/esm/schema/guard-lint.js +346 -0
- package/dist/esm/schema/guards.js +229 -0
- package/dist/esm/signing.js +74 -0
- package/dist/esm/verify.js +8 -2
- package/dist/esm/zk/commit.js +44 -0
- package/dist/esm/zk/guard.js +99 -0
- package/dist/esm/zk/index.js +19 -0
- package/dist/esm/zk/preimage.js +30 -0
- package/dist/esm/zk/prover.js +82 -0
- package/dist/esm/zk/registry.js +55 -0
- package/dist/esm/zk/types.js +25 -0
- package/dist/esm/zk/witness.js +15 -0
- package/dist/types/apps/contracts/index.d.ts +69 -209
- package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +20 -95
- package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +46 -112
- package/dist/types/apps/corporate/index.d.ts +1040 -304
- package/dist/types/apps/corporate/state-machines/corp-board.d.ts +188 -52
- package/dist/types/apps/corporate/state-machines/corp-entity.d.ts +267 -62
- package/dist/types/apps/corporate/state-machines/corp-securities.d.ts +355 -131
- package/dist/types/apps/corporate/state-machines/corp-shareholders.d.ts +225 -53
- package/dist/types/apps/governance/index.d.ts +296 -398
- package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +77 -92
- package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +42 -66
- package/dist/types/apps/governance/state-machines/dao-single.d.ts +25 -47
- package/dist/types/apps/governance/state-machines/dao-token.d.ts +60 -49
- package/dist/types/apps/governance/state-machines/governance-simple.d.ts +87 -117
- package/dist/types/apps/governance/state-machines/governance-universal.d.ts +2 -2
- package/dist/types/apps/identity/constants.d.ts +32 -4
- package/dist/types/apps/identity/index.d.ts +378 -94
- package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +16 -87
- package/dist/types/apps/identity/state-machines/identity-registry.d.ts +379 -0
- package/dist/types/apps/identity/state-machines/index.d.ts +1 -0
- package/dist/types/apps/index.d.ts +1 -0
- package/dist/types/apps/lending/assets.d.ts +258 -0
- package/dist/types/apps/lending/credit-scoring.d.ts +80 -0
- package/dist/types/apps/lending/eligibility.d.ts +83 -0
- package/dist/types/apps/lending/index.d.ts +548 -0
- package/dist/types/apps/lending/state-machines/index.d.ts +5 -0
- package/dist/types/apps/lending/state-machines/lending-zk-loan.d.ts +528 -0
- package/dist/types/apps/markets/index.d.ts +108 -203
- package/dist/types/apps/markets/state-machines/market-auction.d.ts +13 -37
- package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +16 -34
- package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +17 -43
- package/dist/types/apps/markets/state-machines/market-prediction.d.ts +51 -72
- package/dist/types/apps/markets/state-machines/market-universal.d.ts +5 -5
- package/dist/types/generated/index.d.ts +5 -5
- package/dist/types/generated/openapi.d.ts +1257 -0
- package/dist/types/generated/ottochain/apps/contracts/v1/contract.d.ts +5 -5
- package/dist/types/generated/ottochain/apps/identity/v1/identity.d.ts +12 -12
- package/dist/types/generated/ottochain/apps/markets/v1/market.d.ts +11 -11
- package/dist/types/index.d.ts +6 -2
- package/dist/types/openapi.d.ts +22 -0
- package/dist/types/ottochain/genesis-manifest.d.ts +5 -5
- package/dist/types/ottochain/index.d.ts +5 -6
- package/dist/types/ottochain/metagraph-client.d.ts +49 -7
- package/dist/types/ottochain/snapshot.d.ts +6 -6
- package/dist/types/ottochain/transaction.d.ts +33 -1
- package/dist/types/ottochain/types.d.ts +335 -30
- package/dist/types/privacy/index.d.ts +6 -0
- package/dist/types/privacy/sealed-bid.d.ts +348 -0
- package/dist/types/privacy/shield-app.d.ts +48 -0
- package/dist/types/schema/effects.d.ts +34 -0
- package/dist/types/schema/fiber-app.d.ts +1 -2
- package/dist/types/schema/guard-lint.d.ts +111 -0
- package/dist/types/schema/guards.d.ts +134 -0
- package/dist/types/signing.d.ts +45 -0
- package/dist/types/validation.d.ts +22 -217
- package/dist/types/verify.d.ts +4 -0
- package/dist/types/zk/commit.d.ts +28 -0
- package/dist/types/zk/guard.d.ts +46 -0
- package/dist/types/zk/index.d.ts +19 -0
- package/dist/types/zk/preimage.d.ts +10 -0
- package/dist/types/zk/prover.d.ts +34 -0
- package/dist/types/zk/registry.d.ts +34 -0
- package/dist/types/zk/types.d.ts +33 -0
- package/dist/types/zk/witness.d.ts +40 -0
- package/package.json +27 -13
- package/dist/cjs/ottochain/normalize.js +0 -186
- package/dist/esm/ottochain/normalize.js +0 -179
- package/dist/types/ottochain/normalize.d.ts +0 -79
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.corpBoardDef = 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
|
* Board of directors state machine managing director seats, meetings, quorum, and formal board actions.
|
|
7
9
|
* Supports staggered boards with classified directors.
|
|
@@ -37,7 +39,7 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
37
39
|
},
|
|
38
40
|
},
|
|
39
41
|
createSchema: {
|
|
40
|
-
required: ["boardId", "entityId", "seats"],
|
|
42
|
+
required: ["boardId", "entityId", "seats", "authorizedRemovers"],
|
|
41
43
|
properties: {
|
|
42
44
|
boardId: {
|
|
43
45
|
type: "string",
|
|
@@ -49,6 +51,12 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
49
51
|
description: "Reference to parent corporate-entity",
|
|
50
52
|
immutable: true,
|
|
51
53
|
},
|
|
54
|
+
authorizedRemovers: {
|
|
55
|
+
type: "array",
|
|
56
|
+
description: "State-pinned set of DAG addresses authorized to remove a director for cause (board/shareholder authority). A verified signer must be a member; checked against proofs[].address.",
|
|
57
|
+
immutable: false,
|
|
58
|
+
items: { type: "address" },
|
|
59
|
+
},
|
|
52
60
|
seats: {
|
|
53
61
|
type: "object",
|
|
54
62
|
properties: {
|
|
@@ -122,6 +130,7 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
122
130
|
properties: {
|
|
123
131
|
boardId: { type: "string", immutable: true },
|
|
124
132
|
entityId: { type: "string", immutable: true },
|
|
133
|
+
authorizedRemovers: { type: "array", items: { type: "address" } },
|
|
125
134
|
directors: {
|
|
126
135
|
type: "array",
|
|
127
136
|
items: { $ref: "#/definitions/Director" },
|
|
@@ -148,6 +157,9 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
148
157
|
},
|
|
149
158
|
createdAt: { type: "timestamp", computed: true },
|
|
150
159
|
updatedAt: { type: "timestamp", computed: true },
|
|
160
|
+
// Two-phase removal (#24): propose_removal binds the resolution fiber + records the pending
|
|
161
|
+
// removal here; remove_for_cause asserts the bound resolution is EXECUTED, then clears this.
|
|
162
|
+
pendingRemoval: { type: "object", nullable: true, computed: true },
|
|
151
163
|
},
|
|
152
164
|
},
|
|
153
165
|
eventSchemas: {
|
|
@@ -192,18 +204,20 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
192
204
|
},
|
|
193
205
|
},
|
|
194
206
|
},
|
|
195
|
-
|
|
196
|
-
description: "
|
|
197
|
-
required: [
|
|
198
|
-
"directorId",
|
|
199
|
-
"cause",
|
|
200
|
-
"removalResolutionRef",
|
|
201
|
-
"effectiveDate",
|
|
202
|
-
],
|
|
207
|
+
propose_removal: {
|
|
208
|
+
description: "Phase 1 of for-cause removal: bind the executing resolution fiber (#24 _addDependency) and record the pending removal",
|
|
209
|
+
required: ["directorId", "cause", "removalResolutionRef"],
|
|
203
210
|
properties: {
|
|
204
211
|
directorId: { type: "string" },
|
|
205
212
|
cause: { type: "string" },
|
|
206
213
|
removalResolutionRef: { type: "string" },
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
remove_for_cause: {
|
|
217
|
+
description: "Phase 2 of for-cause removal: execute once the bound removal resolution is EXECUTED",
|
|
218
|
+
required: ["directorId", "effectiveDate"],
|
|
219
|
+
properties: {
|
|
220
|
+
directorId: { type: "string" },
|
|
207
221
|
effectiveDate: { type: "string", format: "date" },
|
|
208
222
|
},
|
|
209
223
|
},
|
|
@@ -423,12 +437,8 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
423
437
|
eventName: "elect_director",
|
|
424
438
|
guard: {
|
|
425
439
|
and: [
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
{ ">": [{ var: "state.seats.vacant" }, 0] },
|
|
429
|
-
{ "==": [{ var: "event.isFillingVacancy" }, true] },
|
|
430
|
-
],
|
|
431
|
-
},
|
|
440
|
+
// vacancy gated solely on verified state — the forgeable event.isFillingVacancy disjunct was removed
|
|
441
|
+
{ ">": [{ var: "state.seats.vacant" }, 0] },
|
|
432
442
|
{ "!=": [{ var: "event.electionResolutionRef" }, null] },
|
|
433
443
|
{
|
|
434
444
|
"!": {
|
|
@@ -438,11 +448,11 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
438
448
|
and: [
|
|
439
449
|
{
|
|
440
450
|
"==": [
|
|
441
|
-
{ var: "
|
|
451
|
+
{ var: "directorId" },
|
|
442
452
|
{ var: "event.directorId" },
|
|
443
453
|
],
|
|
444
454
|
},
|
|
445
|
-
{ "==": [{ var: "
|
|
455
|
+
{ "==": [{ var: "status" }, "ACTIVE"] },
|
|
446
456
|
],
|
|
447
457
|
},
|
|
448
458
|
],
|
|
@@ -455,7 +465,7 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
455
465
|
{ var: "state" },
|
|
456
466
|
{
|
|
457
467
|
directors: {
|
|
458
|
-
|
|
468
|
+
merge: [
|
|
459
469
|
{ var: "state.directors" },
|
|
460
470
|
[
|
|
461
471
|
{
|
|
@@ -485,9 +495,13 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
485
495
|
],
|
|
486
496
|
},
|
|
487
497
|
},
|
|
498
|
+
{
|
|
499
|
+
_emit: [
|
|
500
|
+
{ name: "DIRECTOR_ELECTED", data: { var: "event" }, destination: "external" },
|
|
501
|
+
],
|
|
502
|
+
},
|
|
488
503
|
],
|
|
489
504
|
},
|
|
490
|
-
emits: ["DIRECTOR_ELECTED"],
|
|
491
505
|
},
|
|
492
506
|
// ACTIVE -> ACTIVE (resign_director) and IN_MEETING -> ACTIVE (resign_director)
|
|
493
507
|
{
|
|
@@ -499,8 +513,8 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
499
513
|
{ var: "state.directors" },
|
|
500
514
|
{
|
|
501
515
|
and: [
|
|
502
|
-
{ "==": [{ var: "
|
|
503
|
-
{ "==": [{ var: "
|
|
516
|
+
{ "==": [{ var: "directorId" }, { var: "event.directorId" }] },
|
|
517
|
+
{ "==": [{ var: "status" }, "ACTIVE"] },
|
|
504
518
|
],
|
|
505
519
|
},
|
|
506
520
|
],
|
|
@@ -516,7 +530,7 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
516
530
|
if: [
|
|
517
531
|
{
|
|
518
532
|
"==": [
|
|
519
|
-
{ var: "
|
|
533
|
+
{ var: "directorId" },
|
|
520
534
|
{ var: "event.directorId" },
|
|
521
535
|
],
|
|
522
536
|
},
|
|
@@ -544,9 +558,13 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
544
558
|
],
|
|
545
559
|
},
|
|
546
560
|
},
|
|
561
|
+
{
|
|
562
|
+
_emit: [
|
|
563
|
+
{ name: "DIRECTOR_RESIGNED", data: { var: "event" }, destination: "external" },
|
|
564
|
+
],
|
|
565
|
+
},
|
|
547
566
|
],
|
|
548
567
|
},
|
|
549
|
-
emits: ["DIRECTOR_RESIGNED"],
|
|
550
568
|
},
|
|
551
569
|
{
|
|
552
570
|
from: "IN_MEETING",
|
|
@@ -557,8 +575,8 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
557
575
|
{ var: "state.directors" },
|
|
558
576
|
{
|
|
559
577
|
and: [
|
|
560
|
-
{ "==": [{ var: "
|
|
561
|
-
{ "==": [{ var: "
|
|
578
|
+
{ "==": [{ var: "directorId" }, { var: "event.directorId" }] },
|
|
579
|
+
{ "==": [{ var: "status" }, "ACTIVE"] },
|
|
562
580
|
],
|
|
563
581
|
},
|
|
564
582
|
],
|
|
@@ -574,7 +592,7 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
574
592
|
if: [
|
|
575
593
|
{
|
|
576
594
|
"==": [
|
|
577
|
-
{ var: "
|
|
595
|
+
{ var: "directorId" },
|
|
578
596
|
{ var: "event.directorId" },
|
|
579
597
|
],
|
|
580
598
|
},
|
|
@@ -602,33 +620,88 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
602
620
|
],
|
|
603
621
|
},
|
|
604
622
|
},
|
|
623
|
+
{
|
|
624
|
+
_emit: [
|
|
625
|
+
{ name: "DIRECTOR_RESIGNED", data: { var: "event" }, destination: "external" },
|
|
626
|
+
],
|
|
627
|
+
},
|
|
605
628
|
],
|
|
606
629
|
},
|
|
607
|
-
emits: ["DIRECTOR_RESIGNED"],
|
|
608
630
|
},
|
|
609
|
-
// ACTIVE -> ACTIVE (
|
|
631
|
+
// ACTIVE -> ACTIVE (propose_removal) — phase 1 (#24): bind the executing resolution fiber and
|
|
632
|
+
// record the pending removal, so the next transition can read the resolution's state.
|
|
633
|
+
{
|
|
634
|
+
from: "ACTIVE",
|
|
635
|
+
to: "ACTIVE",
|
|
636
|
+
eventName: "propose_removal",
|
|
637
|
+
guard: {
|
|
638
|
+
and: [
|
|
639
|
+
(0, guards_js_1.signerInSet)("state.authorizedRemovers"),
|
|
640
|
+
{
|
|
641
|
+
some: [
|
|
642
|
+
{ var: "state.directors" },
|
|
643
|
+
{
|
|
644
|
+
and: [
|
|
645
|
+
{ "==": [{ var: "directorId" }, { var: "event.directorId" }] },
|
|
646
|
+
{ "==": [{ var: "status" }, "ACTIVE"] },
|
|
647
|
+
],
|
|
648
|
+
},
|
|
649
|
+
],
|
|
650
|
+
},
|
|
651
|
+
],
|
|
652
|
+
},
|
|
653
|
+
effect: {
|
|
654
|
+
merge: [
|
|
655
|
+
{ var: "state" },
|
|
656
|
+
{
|
|
657
|
+
pendingRemoval: {
|
|
658
|
+
directorId: { var: "event.directorId" },
|
|
659
|
+
cause: { var: "event.cause" },
|
|
660
|
+
resolutionRef: { var: "event.removalResolutionRef" },
|
|
661
|
+
proposedAt: { var: "$ordinal" },
|
|
662
|
+
},
|
|
663
|
+
},
|
|
664
|
+
// bind the resolution fiber so remove_for_cause can assert its state next transition
|
|
665
|
+
(0, effects_js_1.addDependency)({ var: "event.removalResolutionRef" }),
|
|
666
|
+
],
|
|
667
|
+
},
|
|
668
|
+
dependencies: [],
|
|
669
|
+
},
|
|
670
|
+
// ACTIVE -> ACTIVE (remove_for_cause) — phase 2 (#24): execute once the bound removal resolution is
|
|
671
|
+
// EXECUTED. depInState replaces the dropped object-form dependency (which silently never gated).
|
|
610
672
|
{
|
|
611
673
|
from: "ACTIVE",
|
|
612
674
|
to: "ACTIVE",
|
|
613
675
|
eventName: "remove_for_cause",
|
|
676
|
+
// authority gate — a member of the pinned authorizedRemovers set must sign; an identity role
|
|
677
|
+
// attestation (BOARD_MEMBER/...) layers on additively when the identity registry lands (§4.2).
|
|
614
678
|
guard: {
|
|
615
|
-
|
|
616
|
-
|
|
679
|
+
and: [
|
|
680
|
+
(0, guards_js_1.signerInSet)("state.authorizedRemovers"),
|
|
681
|
+
// the proposal must target this director, and its bound resolution must be EXECUTED
|
|
617
682
|
{
|
|
618
|
-
|
|
619
|
-
{
|
|
620
|
-
{
|
|
683
|
+
"==": [
|
|
684
|
+
{ var: "state.pendingRemoval.directorId" },
|
|
685
|
+
{ var: "event.directorId" },
|
|
686
|
+
],
|
|
687
|
+
},
|
|
688
|
+
(0, guards_js_1.depInState)("state.pendingRemoval.resolutionRef", "EXECUTED"),
|
|
689
|
+
// event.directorId is the lookup key only — the director must exist and be ACTIVE
|
|
690
|
+
{
|
|
691
|
+
some: [
|
|
692
|
+
{ var: "state.directors" },
|
|
693
|
+
{
|
|
694
|
+
and: [
|
|
695
|
+
{
|
|
696
|
+
"==": [{ var: "directorId" }, { var: "event.directorId" }],
|
|
697
|
+
},
|
|
698
|
+
{ "==": [{ var: "status" }, "ACTIVE"] },
|
|
699
|
+
],
|
|
700
|
+
},
|
|
621
701
|
],
|
|
622
702
|
},
|
|
623
703
|
],
|
|
624
704
|
},
|
|
625
|
-
dependencies: [
|
|
626
|
-
{
|
|
627
|
-
machine: "corporate-resolution",
|
|
628
|
-
instanceRef: { var: "event.removalResolutionRef" },
|
|
629
|
-
requiredState: "EXECUTED",
|
|
630
|
-
},
|
|
631
|
-
],
|
|
632
705
|
effect: {
|
|
633
706
|
merge: [
|
|
634
707
|
{ var: "state" },
|
|
@@ -640,7 +713,7 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
640
713
|
if: [
|
|
641
714
|
{
|
|
642
715
|
"==": [
|
|
643
|
-
{ var: "
|
|
716
|
+
{ var: "directorId" },
|
|
644
717
|
{ var: "event.directorId" },
|
|
645
718
|
],
|
|
646
719
|
},
|
|
@@ -667,10 +740,17 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
667
740
|
},
|
|
668
741
|
],
|
|
669
742
|
},
|
|
743
|
+
// clear the consumed proposal
|
|
744
|
+
pendingRemoval: null,
|
|
745
|
+
},
|
|
746
|
+
{
|
|
747
|
+
_emit: [
|
|
748
|
+
{ name: "DIRECTOR_REMOVED", data: { var: "event" }, destination: "external" },
|
|
749
|
+
],
|
|
670
750
|
},
|
|
671
751
|
],
|
|
672
752
|
},
|
|
673
|
-
|
|
753
|
+
dependencies: [],
|
|
674
754
|
},
|
|
675
755
|
// ACTIVE -> ACTIVE (designate_chair)
|
|
676
756
|
{
|
|
@@ -682,8 +762,8 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
682
762
|
{ var: "state.directors" },
|
|
683
763
|
{
|
|
684
764
|
and: [
|
|
685
|
-
{ "==": [{ var: "
|
|
686
|
-
{ "==": [{ var: "
|
|
765
|
+
{ "==": [{ var: "directorId" }, { var: "event.directorId" }] },
|
|
766
|
+
{ "==": [{ var: "status" }, "ACTIVE"] },
|
|
687
767
|
],
|
|
688
768
|
},
|
|
689
769
|
],
|
|
@@ -701,7 +781,7 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
701
781
|
{
|
|
702
782
|
isChair: {
|
|
703
783
|
"==": [
|
|
704
|
-
{ var: "
|
|
784
|
+
{ var: "directorId" },
|
|
705
785
|
{ var: "event.directorId" },
|
|
706
786
|
],
|
|
707
787
|
},
|
|
@@ -763,9 +843,13 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
763
843
|
quorumCount: 0,
|
|
764
844
|
},
|
|
765
845
|
},
|
|
846
|
+
{
|
|
847
|
+
_emit: [
|
|
848
|
+
{ name: "BOARD_MEETING_SCHEDULED", data: { var: "event" }, destination: "external" },
|
|
849
|
+
],
|
|
850
|
+
},
|
|
766
851
|
],
|
|
767
852
|
},
|
|
768
|
-
emits: ["BOARD_MEETING_SCHEDULED"],
|
|
769
853
|
},
|
|
770
854
|
// ACTIVE -> ACTIVE (record_attendance)
|
|
771
855
|
{
|
|
@@ -782,9 +866,9 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
782
866
|
{
|
|
783
867
|
and: [
|
|
784
868
|
{
|
|
785
|
-
"==": [{ var: "
|
|
869
|
+
"==": [{ var: "directorId" }, { var: "event.directorId" }],
|
|
786
870
|
},
|
|
787
|
-
{ "==": [{ var: "
|
|
871
|
+
{ "==": [{ var: "status" }, "ACTIVE"] },
|
|
788
872
|
],
|
|
789
873
|
},
|
|
790
874
|
],
|
|
@@ -800,7 +884,7 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
800
884
|
{ var: "state.currentMeeting" },
|
|
801
885
|
{
|
|
802
886
|
attendees: {
|
|
803
|
-
|
|
887
|
+
merge: [
|
|
804
888
|
{ var: "state.currentMeeting.attendees" },
|
|
805
889
|
[
|
|
806
890
|
{
|
|
@@ -843,9 +927,13 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
843
927
|
],
|
|
844
928
|
},
|
|
845
929
|
},
|
|
930
|
+
{
|
|
931
|
+
_emit: [
|
|
932
|
+
{ name: "BOARD_MEETING_OPENED", data: { var: "event" }, destination: "external" },
|
|
933
|
+
],
|
|
934
|
+
},
|
|
846
935
|
],
|
|
847
936
|
},
|
|
848
|
-
emits: ["BOARD_MEETING_OPENED"],
|
|
849
937
|
},
|
|
850
938
|
// IN_MEETING -> IN_MEETING (director_departs)
|
|
851
939
|
{
|
|
@@ -868,7 +956,7 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
868
956
|
if: [
|
|
869
957
|
{
|
|
870
958
|
"==": [
|
|
871
|
-
{ var: "
|
|
959
|
+
{ var: "directorId" },
|
|
872
960
|
{ var: "event.directorId" },
|
|
873
961
|
],
|
|
874
962
|
},
|
|
@@ -900,9 +988,16 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
900
988
|
eventName: "quorum_lost",
|
|
901
989
|
guard: { "==": [{ var: "state.currentMeeting.quorumPresent" }, false] },
|
|
902
990
|
effect: {
|
|
903
|
-
merge: [
|
|
991
|
+
merge: [
|
|
992
|
+
{ var: "state" },
|
|
993
|
+
{ status: "QUORUM_LOST" },
|
|
994
|
+
{
|
|
995
|
+
_emit: [
|
|
996
|
+
{ name: "BOARD_QUORUM_LOST", data: { var: "event" }, destination: "external" },
|
|
997
|
+
],
|
|
998
|
+
},
|
|
999
|
+
],
|
|
904
1000
|
},
|
|
905
|
-
emits: ["BOARD_QUORUM_LOST"],
|
|
906
1001
|
},
|
|
907
1002
|
// QUORUM_LOST -> IN_MEETING
|
|
908
1003
|
{
|
|
@@ -911,9 +1006,16 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
911
1006
|
eventName: "quorum_restored",
|
|
912
1007
|
guard: { "==": [{ var: "state.currentMeeting.quorumPresent" }, true] },
|
|
913
1008
|
effect: {
|
|
914
|
-
merge: [
|
|
1009
|
+
merge: [
|
|
1010
|
+
{ var: "state" },
|
|
1011
|
+
{ status: "IN_MEETING" },
|
|
1012
|
+
{
|
|
1013
|
+
_emit: [
|
|
1014
|
+
{ name: "BOARD_QUORUM_RESTORED", data: { var: "event" }, destination: "external" },
|
|
1015
|
+
],
|
|
1016
|
+
},
|
|
1017
|
+
],
|
|
915
1018
|
},
|
|
916
|
-
emits: ["BOARD_QUORUM_RESTORED"],
|
|
917
1019
|
},
|
|
918
1020
|
// IN_MEETING -> ACTIVE (adjourn)
|
|
919
1021
|
{
|
|
@@ -928,7 +1030,7 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
928
1030
|
status: "ACTIVE",
|
|
929
1031
|
currentMeeting: null,
|
|
930
1032
|
meetingHistory: {
|
|
931
|
-
|
|
1033
|
+
merge: [
|
|
932
1034
|
{ var: "state.meetingHistory" },
|
|
933
1035
|
[
|
|
934
1036
|
{
|
|
@@ -946,9 +1048,13 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
946
1048
|
],
|
|
947
1049
|
},
|
|
948
1050
|
},
|
|
1051
|
+
{
|
|
1052
|
+
_emit: [
|
|
1053
|
+
{ name: "BOARD_MEETING_ADJOURNED", data: { var: "event" }, destination: "external" },
|
|
1054
|
+
],
|
|
1055
|
+
},
|
|
949
1056
|
],
|
|
950
1057
|
},
|
|
951
|
-
emits: ["BOARD_MEETING_ADJOURNED"],
|
|
952
1058
|
},
|
|
953
1059
|
// QUORUM_LOST -> ACTIVE (adjourn)
|
|
954
1060
|
{
|
|
@@ -963,7 +1069,7 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
963
1069
|
status: "ACTIVE",
|
|
964
1070
|
currentMeeting: null,
|
|
965
1071
|
meetingHistory: {
|
|
966
|
-
|
|
1072
|
+
merge: [
|
|
967
1073
|
{ var: "state.meetingHistory" },
|
|
968
1074
|
[
|
|
969
1075
|
{
|
|
@@ -981,9 +1087,13 @@ exports.corpBoardDef = (0, fiber_app_js_1.defineFiberApp)({
|
|
|
981
1087
|
],
|
|
982
1088
|
},
|
|
983
1089
|
},
|
|
1090
|
+
{
|
|
1091
|
+
_emit: [
|
|
1092
|
+
{ name: "BOARD_MEETING_ADJOURNED", data: { var: "event" }, destination: "external" },
|
|
1093
|
+
],
|
|
1094
|
+
},
|
|
984
1095
|
],
|
|
985
1096
|
},
|
|
986
|
-
emits: ["BOARD_MEETING_ADJOURNED"],
|
|
987
1097
|
},
|
|
988
1098
|
// ACTIVE -> ACTIVE (update_seats)
|
|
989
1099
|
{
|