@ottochain/sdk 1.4.2 → 1.6.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.
Files changed (80) hide show
  1. package/dist/cjs/apps/contracts/index.js +6 -10
  2. package/dist/cjs/apps/{governance/state-machines/governance-legislature.json → contracts/state-machines/index.js} +381 -330
  3. package/dist/cjs/apps/corporate/index.js +12 -24
  4. package/dist/cjs/apps/corporate/state-machines/index.js +10246 -0
  5. package/dist/cjs/apps/governance/index.js +11 -22
  6. package/dist/cjs/apps/governance/state-machines/index.js +4755 -0
  7. package/dist/cjs/apps/identity/index.js +3 -6
  8. package/dist/{esm/apps/identity/state-machines/agent-identity.json → cjs/apps/identity/state-machines/index.js} +9 -2
  9. package/dist/cjs/apps/markets/index.js +2 -5
  10. package/dist/{esm/apps/markets/state-machines/market-universal.json → cjs/apps/markets/state-machines/index.js} +9 -2
  11. package/dist/cjs/apps/oracles/index.js +2 -5
  12. package/dist/{esm/apps/oracles/state-machines/oracle.json → cjs/apps/oracles/state-machines/index.js} +9 -2
  13. package/dist/cjs/ottochain/index.js +4 -1
  14. package/dist/cjs/ottochain/normalize.js +40 -15
  15. package/dist/cjs/ottochain/types.js +12 -0
  16. package/dist/esm/apps/contracts/index.js +2 -3
  17. package/dist/esm/apps/{governance/state-machines/governance-legislature.json → contracts/state-machines/index.js} +378 -330
  18. package/dist/esm/apps/corporate/index.js +2 -11
  19. package/dist/esm/apps/corporate/state-machines/index.js +10243 -0
  20. package/dist/esm/apps/governance/index.js +2 -10
  21. package/dist/esm/apps/governance/state-machines/index.js +4752 -0
  22. package/dist/esm/apps/identity/index.js +2 -2
  23. package/dist/{cjs/apps/identity/state-machines/agent-identity.json → esm/apps/identity/state-machines/index.js} +6 -2
  24. package/dist/esm/apps/markets/index.js +1 -1
  25. package/dist/{cjs/apps/markets/state-machines/market-universal.json → esm/apps/markets/state-machines/index.js} +6 -2
  26. package/dist/esm/apps/oracles/index.js +1 -1
  27. package/dist/{cjs/apps/oracles/state-machines/oracle.json → esm/apps/oracles/state-machines/index.js} +6 -2
  28. package/dist/esm/ottochain/index.js +2 -0
  29. package/dist/esm/ottochain/normalize.js +40 -15
  30. package/dist/esm/ottochain/types.js +11 -1
  31. package/dist/types/apps/contracts/state-machines/index.d.ts +549 -0
  32. package/dist/types/apps/corporate/state-machines/index.d.ts +9121 -0
  33. package/dist/types/apps/governance/state-machines/index.d.ts +3551 -0
  34. package/dist/types/apps/identity/state-machines/index.d.ts +206 -0
  35. package/dist/types/apps/markets/state-machines/index.d.ts +448 -0
  36. package/dist/types/apps/oracles/state-machines/index.d.ts +312 -0
  37. package/dist/types/ottochain/index.d.ts +2 -1
  38. package/dist/types/ottochain/normalize.d.ts +21 -8
  39. package/dist/types/ottochain/types.d.ts +12 -1
  40. package/package.json +10 -9
  41. package/dist/cjs/apps/contracts/state-machines/contract.json +0 -352
  42. package/dist/cjs/apps/contracts/state-machines/escrow.json +0 -354
  43. package/dist/cjs/apps/corporate/state-machines/corporate-board.json +0 -1064
  44. package/dist/cjs/apps/corporate/state-machines/corporate-bylaws.json +0 -751
  45. package/dist/cjs/apps/corporate/state-machines/corporate-committee.json +0 -957
  46. package/dist/cjs/apps/corporate/state-machines/corporate-compliance.json +0 -1293
  47. package/dist/cjs/apps/corporate/state-machines/corporate-entity.json +0 -861
  48. package/dist/cjs/apps/corporate/state-machines/corporate-officers.json +0 -843
  49. package/dist/cjs/apps/corporate/state-machines/corporate-proxy.json +0 -783
  50. package/dist/cjs/apps/corporate/state-machines/corporate-resolution.json +0 -1174
  51. package/dist/cjs/apps/corporate/state-machines/corporate-securities.json +0 -1215
  52. package/dist/cjs/apps/corporate/state-machines/corporate-shareholders.json +0 -1298
  53. package/dist/cjs/apps/governance/state-machines/dao-multisig.json +0 -667
  54. package/dist/cjs/apps/governance/state-machines/dao-single.json +0 -230
  55. package/dist/cjs/apps/governance/state-machines/dao-threshold.json +0 -624
  56. package/dist/cjs/apps/governance/state-machines/dao-token.json +0 -638
  57. package/dist/cjs/apps/governance/state-machines/governance-constitution.json +0 -357
  58. package/dist/cjs/apps/governance/state-machines/governance-executive.json +0 -387
  59. package/dist/cjs/apps/governance/state-machines/governance-judiciary.json +0 -558
  60. package/dist/cjs/apps/governance/state-machines/governance-simple.json +0 -625
  61. package/dist/esm/apps/contracts/state-machines/contract.json +0 -352
  62. package/dist/esm/apps/contracts/state-machines/escrow.json +0 -354
  63. package/dist/esm/apps/corporate/state-machines/corporate-board.json +0 -1064
  64. package/dist/esm/apps/corporate/state-machines/corporate-bylaws.json +0 -751
  65. package/dist/esm/apps/corporate/state-machines/corporate-committee.json +0 -957
  66. package/dist/esm/apps/corporate/state-machines/corporate-compliance.json +0 -1293
  67. package/dist/esm/apps/corporate/state-machines/corporate-entity.json +0 -861
  68. package/dist/esm/apps/corporate/state-machines/corporate-officers.json +0 -843
  69. package/dist/esm/apps/corporate/state-machines/corporate-proxy.json +0 -783
  70. package/dist/esm/apps/corporate/state-machines/corporate-resolution.json +0 -1174
  71. package/dist/esm/apps/corporate/state-machines/corporate-securities.json +0 -1215
  72. package/dist/esm/apps/corporate/state-machines/corporate-shareholders.json +0 -1298
  73. package/dist/esm/apps/governance/state-machines/dao-multisig.json +0 -667
  74. package/dist/esm/apps/governance/state-machines/dao-single.json +0 -230
  75. package/dist/esm/apps/governance/state-machines/dao-threshold.json +0 -624
  76. package/dist/esm/apps/governance/state-machines/dao-token.json +0 -638
  77. package/dist/esm/apps/governance/state-machines/governance-constitution.json +0 -357
  78. package/dist/esm/apps/governance/state-machines/governance-executive.json +0 -387
  79. package/dist/esm/apps/governance/state-machines/governance-judiciary.json +0 -558
  80. package/dist/esm/apps/governance/state-machines/governance-simple.json +0 -625
@@ -17,9 +17,6 @@
17
17
  *
18
18
  * @packageDocumentation
19
19
  */
20
- var __importDefault = (this && this.__importDefault) || function (mod) {
21
- return (mod && mod.__esModule) ? mod : { "default": mod };
22
- };
23
20
  Object.defineProperty(exports, "__esModule", { value: true });
24
21
  exports.getIdentityDefinition = exports.DEFAULT_REPUTATION_CONFIG = exports.getReputationDelta = exports.canTransition = exports.ATTESTATION_DELTAS = exports.AGENT_TRANSITIONS = exports.attestationTypeToJSON = exports.attestationTypeFromJSON = exports.ReputationConfig = exports.ChallengeRequest = exports.VouchRequest = exports.Attestation = exports.ReputationDelta = exports.AttestationType = exports.platformToJSON = exports.platformFromJSON = exports.agentStateToJSON = exports.agentStateFromJSON = exports.AgentIdentityDefinition = exports.AgentIdentity = exports.PlatformLink = exports.Platform = exports.AgentState = void 0;
25
22
  // Re-export generated protobuf types (source of truth)
@@ -64,15 +61,15 @@ exports.DEFAULT_REPUTATION_CONFIG = {
64
61
  challengeThreshold: 5,
65
62
  };
66
63
  // ---------------------------------------------------------------------------
67
- // State Machine JSON Definition
64
+ // State Machine Definition (generated from JSON at build time)
68
65
  // ---------------------------------------------------------------------------
69
- const agent_identity_json_1 = __importDefault(require("./state-machines/agent-identity.json"));
66
+ const index_js_1 = require("./state-machines/index.js");
70
67
  /**
71
68
  * Get the agent identity state machine definition.
72
69
  *
73
70
  * @returns The state machine definition JSON for AgentIdentity
74
71
  */
75
72
  function getIdentityDefinition() {
76
- return agent_identity_json_1.default;
73
+ return index_js_1.agentIdentityDef;
77
74
  }
78
75
  exports.getIdentityDefinition = getIdentityDefinition;
@@ -1,4 +1,11 @@
1
- {
1
+ "use strict";
2
+ /**
3
+ * Auto-generated from JSON state machine definitions.
4
+ * DO NOT EDIT - regenerate with: npm run prebuild
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.agentIdentityDef = void 0;
8
+ exports.agentIdentityDef = {
2
9
  "metadata": {
3
10
  "name": "AgentIdentity",
4
11
  "description": "Decentralized agent identity with reputation tracking and lifecycle management",
@@ -267,4 +274,4 @@
267
274
  "dependencies": []
268
275
  }
269
276
  ]
270
- }
277
+ };
@@ -18,9 +18,6 @@
18
18
  *
19
19
  * @packageDocumentation
20
20
  */
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
21
  Object.defineProperty(exports, "__esModule", { value: true });
25
22
  exports.getMarketDefinition = exports.MARKET_DEFINITIONS = exports.marketStateToJSON = exports.marketStateFromJSON = exports.marketTypeToJSON = exports.marketTypeFromJSON = exports.MarketDefinition = exports.CancelMarketRequest = exports.SubmitResolutionRequest = exports.CommitToMarketRequest = exports.CreateMarketRequest = exports.Market = exports.Resolution = exports.Commitment = exports.MarketState = exports.MarketType = void 0;
26
23
  // Re-export generated protobuf types (source of truth)
@@ -42,9 +39,9 @@ Object.defineProperty(exports, "marketStateToJSON", { enumerable: true, get: fun
42
39
  // ---------------------------------------------------------------------------
43
40
  // State Machine JSON Definitions
44
41
  // ---------------------------------------------------------------------------
45
- const market_universal_json_1 = __importDefault(require("./state-machines/market-universal.json"));
42
+ const index_js_1 = require("./state-machines/index.js");
46
43
  exports.MARKET_DEFINITIONS = {
47
- Universal: market_universal_json_1.default,
44
+ Universal: index_js_1.marketUniversalDef,
48
45
  };
49
46
  /**
50
47
  * Get the market state machine definition.
@@ -1,4 +1,11 @@
1
- {
1
+ "use strict";
2
+ /**
3
+ * Auto-generated from JSON state machine definitions.
4
+ * DO NOT EDIT - regenerate with: npm run prebuild
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.marketUniversalDef = void 0;
8
+ exports.marketUniversalDef = {
2
9
  "metadata": {
3
10
  "name": "Market",
4
11
  "description": "Universal market state machine: predictions, auctions, crowdfunding, group buys",
@@ -618,4 +625,4 @@
618
625
  "dependencies": []
619
626
  }
620
627
  ]
621
- }
628
+ };
@@ -18,9 +18,6 @@
18
18
  *
19
19
  * @packageDocumentation
20
20
  */
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
21
  Object.defineProperty(exports, "__esModule", { value: true });
25
22
  exports.DEFAULT_ORACLE_CONFIG = exports.getOracleDefinition = exports.ORACLE_DEFINITIONS = exports.oracleStateToJSON = exports.oracleStateFromJSON = exports.OracleDefinition = exports.WithdrawOracleRequest = exports.SlashOracleRequest = exports.WithdrawStakeRequest = exports.AddStakeRequest = exports.ActivateOracleRequest = exports.RegisterOracleRequest = exports.Oracle = exports.SlashingEvent = exports.OracleReputation = exports.OracleState = void 0;
26
23
  // Re-export generated protobuf types (source of truth)
@@ -41,9 +38,9 @@ Object.defineProperty(exports, "oracleStateToJSON", { enumerable: true, get: fun
41
38
  // ---------------------------------------------------------------------------
42
39
  // State Machine JSON Definitions
43
40
  // ---------------------------------------------------------------------------
44
- const oracle_json_1 = __importDefault(require("./state-machines/oracle.json"));
41
+ const index_js_1 = require("./state-machines/index.js");
45
42
  exports.ORACLE_DEFINITIONS = {
46
- Oracle: oracle_json_1.default,
43
+ Oracle: index_js_1.oracleDef,
47
44
  };
48
45
  /**
49
46
  * Get the oracle state machine definition.
@@ -1,4 +1,11 @@
1
- {
1
+ "use strict";
2
+ /**
3
+ * Auto-generated from JSON state machine definitions.
4
+ * DO NOT EDIT - regenerate with: npm run prebuild
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.oracleDef = void 0;
8
+ exports.oracleDef = {
2
9
  "metadata": {
3
10
  "name": "Oracle",
4
11
  "description": "Oracle registration, reputation, and slashing state machine",
@@ -405,4 +412,4 @@
405
412
  "dependencies": []
406
413
  }
407
414
  ]
408
- }
415
+ };
@@ -30,9 +30,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
30
30
  return result;
31
31
  };
32
32
  Object.defineProperty(exports, "__esModule", { value: true });
33
- exports.dropNulls = exports.normalizeMessage = exports.normalizeArchiveStateMachine = exports.normalizeTransitionStateMachine = exports.normalizeCreateStateMachine = exports.createDataTransactionRequest = exports.createScriptPayload = exports.createStateMachinePayload = exports.getPublicKeyForRegistration = exports.addTransactionSignature = exports.signTransaction = exports.createInvokeScriptPayload = exports.createArchivePayload = exports.createTransitionPayload = exports.MetagraphClient = exports.extractOnChainState = exports.getScriptInvocations = exports.getEventReceipts = exports.getLogsForFiber = exports.getLatestOnChainState = exports.getSnapshotOnChainState = exports.decodeOnChainState = exports.proto = void 0;
33
+ exports.dropNulls = exports.normalizeMessage = exports.normalizeArchiveStateMachine = exports.normalizeTransitionStateMachine = exports.normalizeCreateStateMachine = exports.createDataTransactionRequest = exports.createScriptPayload = exports.createStateMachinePayload = exports.getPublicKeyForRegistration = exports.addTransactionSignature = exports.signTransaction = exports.createInvokeScriptPayload = exports.createArchivePayload = exports.createTransitionPayload = exports.MetagraphClient = exports.extractOnChainState = exports.getScriptInvocations = exports.getEventReceipts = exports.getLogsForFiber = exports.getLatestOnChainState = exports.getSnapshotOnChainState = exports.decodeOnChainState = exports.OTTOCHAIN_MESSAGE_TYPES = exports.proto = void 0;
34
34
  // Re-export generated protobuf types (for binary encoding)
35
35
  exports.proto = __importStar(require("../generated/index.js"));
36
+ // Runtime message type validation
37
+ var types_js_1 = require("./types.js");
38
+ Object.defineProperty(exports, "OTTOCHAIN_MESSAGE_TYPES", { enumerable: true, get: function () { return types_js_1.OTTOCHAIN_MESSAGE_TYPES; } });
36
39
  var snapshot_js_1 = require("./snapshot.js");
37
40
  Object.defineProperty(exports, "decodeOnChainState", { enumerable: true, get: function () { return snapshot_js_1.decodeOnChainState; } });
38
41
  Object.defineProperty(exports, "getSnapshotOnChainState", { enumerable: true, get: function () { return snapshot_js_1.getSnapshotOnChainState; } });
@@ -32,15 +32,26 @@ function normalizeState(state) {
32
32
  }
33
33
  /**
34
34
  * Normalize a Transition object for wire format
35
+ *
36
+ * Scala Transition schema:
37
+ * from: StateId (required)
38
+ * to: StateId (required)
39
+ * eventName: String (required)
40
+ * guard: JsonLogicExpression (required)
41
+ * effect: JsonLogicExpression (required)
42
+ * dependencies: Set[UUID] = Set.empty
43
+ *
44
+ * `dependencies` serializes as `[]` when empty (default). Both `guard`
45
+ * and `effect` are required non-optional fields.
35
46
  */
36
47
  function normalizeTransition(t) {
37
48
  return {
38
49
  from: t.from,
39
- eventName: t.eventName,
40
50
  to: t.to,
41
- guard: t.guard ?? null,
42
- actions: t.actions ?? null,
43
- metadata: t.metadata ?? null,
51
+ eventName: t.eventName,
52
+ guard: t.guard,
53
+ effect: t.effect,
54
+ dependencies: t.dependencies ?? [],
44
55
  };
45
56
  }
46
57
  /**
@@ -65,13 +76,12 @@ function normalizeDefinition(def) {
65
76
  /**
66
77
  * Normalize a CreateStateMachine message for wire format
67
78
  *
68
- * Ensures all Option fields are explicit null:
69
- * - definition.metadata
70
- * - definition.states[*].metadata
71
- * - definition.transitions[*].guard
72
- * - definition.transitions[*].actions
73
- * - definition.transitions[*].metadata
74
- * - parentFiberId
79
+ * Ensures all Option/default fields are explicit in wire format:
80
+ * - definition.metadata → null when absent
81
+ * - definition.states[*].metadata → null when absent
82
+ * - definition.transitions[*].dependencies → [] when absent
83
+ * - parentFiberId → null when absent
84
+ * - participants → null when absent (Optional Set[Address] for multi-party signing)
75
85
  *
76
86
  * @example
77
87
  * ```typescript
@@ -80,7 +90,7 @@ function normalizeDefinition(def) {
80
90
  * definition: { states: { INIT: { id: { value: 'INIT' }, isFinal: false } }, ... },
81
91
  * initialData: {}
82
92
  * });
83
- * // message now has parentFiberId: null, definition.metadata: null, etc.
93
+ * // message now has parentFiberId: null, participants: null, definition.metadata: null, etc.
84
94
  * ```
85
95
  */
86
96
  function normalizeCreateStateMachine(msg) {
@@ -89,28 +99,43 @@ function normalizeCreateStateMachine(msg) {
89
99
  definition: normalizeDefinition(msg.definition),
90
100
  initialData: msg.initialData ?? {},
91
101
  parentFiberId: msg.parentFiberId ?? null,
102
+ participants: msg.participants ?? null,
92
103
  };
93
104
  }
94
105
  exports.normalizeCreateStateMachine = normalizeCreateStateMachine;
95
106
  /**
96
107
  * Normalize a TransitionStateMachine message for wire format
108
+ *
109
+ * Scala TransitionStateMachine schema:
110
+ * fiberId: UUID (required)
111
+ * eventName: String (required)
112
+ * payload: JsonLogicValue (required)
113
+ * targetSequenceNumber: FiberOrdinal (required)
114
+ *
115
+ * All fields are required — no Option types, so no null normalization needed.
97
116
  */
98
117
  function normalizeTransitionStateMachine(msg) {
99
118
  return {
100
119
  fiberId: msg.fiberId,
101
120
  eventName: msg.eventName,
102
- eventData: msg.eventData ?? null,
103
- fiberOrdinal: msg.fiberOrdinal,
121
+ payload: msg.payload,
122
+ targetSequenceNumber: msg.targetSequenceNumber,
104
123
  };
105
124
  }
106
125
  exports.normalizeTransitionStateMachine = normalizeTransitionStateMachine;
107
126
  /**
108
127
  * Normalize an ArchiveStateMachine message for wire format
128
+ *
129
+ * Scala ArchiveStateMachine schema:
130
+ * fiberId: UUID (required)
131
+ * targetSequenceNumber: FiberOrdinal (required)
132
+ *
133
+ * All fields are required — no Option types, so no null normalization needed.
109
134
  */
110
135
  function normalizeArchiveStateMachine(msg) {
111
136
  return {
112
137
  fiberId: msg.fiberId,
113
- reason: msg.reason ?? null,
138
+ targetSequenceNumber: msg.targetSequenceNumber,
114
139
  };
115
140
  }
116
141
  exports.normalizeArchiveStateMachine = normalizeArchiveStateMachine;
@@ -9,3 +9,15 @@
9
9
  * @packageDocumentation
10
10
  */
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.OTTOCHAIN_MESSAGE_TYPES = void 0;
13
+ /**
14
+ * Names of all valid OttochainMessage types.
15
+ * Use this for runtime validation (e.g., in API routes).
16
+ */
17
+ exports.OTTOCHAIN_MESSAGE_TYPES = [
18
+ 'CreateStateMachine',
19
+ 'TransitionStateMachine',
20
+ 'ArchiveStateMachine',
21
+ 'CreateScript',
22
+ 'InvokeScript',
23
+ ];
@@ -20,10 +20,9 @@
20
20
  // Re-export generated protobuf types (source of truth)
21
21
  export { ContractState, Contract, ProposeContractRequest, AcceptContractRequest, CompleteContractRequest, RejectContractRequest, DisputeContractRequest, ContractDefinition, contractStateFromJSON, contractStateToJSON, } from '../../generated/ottochain/apps/contracts/v1/contract.js';
22
22
  // ---------------------------------------------------------------------------
23
- // State Machine JSON Definitions
23
+ // State Machine Definitions (generated from JSON at build time)
24
24
  // ---------------------------------------------------------------------------
25
- import contractDef from './state-machines/contract.json';
26
- import escrowDef from './state-machines/escrow.json';
25
+ import { contractDef, escrowDef } from './state-machines/index.js';
27
26
  export const CONTRACT_DEFINITIONS = {
28
27
  Contract: contractDef,
29
28
  Escrow: escrowDef,