@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.
Files changed (209) hide show
  1. package/dist/cjs/apps/contracts/index.js +15 -8
  2. package/dist/cjs/apps/contracts/state-machines/contract-agreement.js +35 -40
  3. package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +80 -37
  4. package/dist/cjs/apps/contracts/state-machines/contract-universal.js +4 -4
  5. package/dist/cjs/apps/corporate/index.js +2 -2
  6. package/dist/cjs/apps/corporate/state-machines/corp-board.js +169 -59
  7. package/dist/cjs/apps/corporate/state-machines/corp-entity.js +245 -47
  8. package/dist/cjs/apps/corporate/state-machines/corp-securities.js +407 -99
  9. package/dist/cjs/apps/corporate/state-machines/corp-shareholders.js +151 -37
  10. package/dist/cjs/apps/governance/index.js +14 -14
  11. package/dist/cjs/apps/governance/state-machines/dao-multisig.js +58 -40
  12. package/dist/cjs/apps/governance/state-machines/dao-reputation.js +46 -40
  13. package/dist/cjs/apps/governance/state-machines/dao-single.js +28 -11
  14. package/dist/cjs/apps/governance/state-machines/dao-token.js +67 -41
  15. package/dist/cjs/apps/governance/state-machines/governance-simple.js +93 -61
  16. package/dist/cjs/apps/governance/state-machines/governance-universal.js +2 -2
  17. package/dist/cjs/apps/identity/constants.js +55 -14
  18. package/dist/cjs/apps/identity/index.js +27 -11
  19. package/dist/cjs/apps/identity/state-machines/identity-agent.js +3 -3
  20. package/dist/cjs/apps/identity/state-machines/identity-oracle.js +25 -22
  21. package/dist/cjs/apps/identity/state-machines/identity-registry.js +288 -0
  22. package/dist/cjs/apps/identity/state-machines/identity-universal.js +3 -3
  23. package/dist/cjs/apps/identity/state-machines/index.js +3 -1
  24. package/dist/cjs/apps/index.js +19 -8
  25. package/dist/cjs/apps/lending/assets.js +223 -0
  26. package/dist/cjs/apps/lending/credit-scoring.js +87 -0
  27. package/dist/cjs/apps/lending/eligibility.js +121 -0
  28. package/dist/cjs/apps/lending/index.js +91 -0
  29. package/dist/cjs/apps/lending/state-machines/index.js +9 -0
  30. package/dist/cjs/apps/lending/state-machines/lending-zk-loan.js +412 -0
  31. package/dist/cjs/apps/markets/index.js +21 -11
  32. package/dist/cjs/apps/markets/state-machines/market-auction.js +14 -13
  33. package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +29 -24
  34. package/dist/cjs/apps/markets/state-machines/market-group-buy.js +24 -26
  35. package/dist/cjs/apps/markets/state-machines/market-prediction.js +80 -53
  36. package/dist/cjs/apps/markets/state-machines/market-universal.js +5 -5
  37. package/dist/cjs/apps/oracles/index.js +2 -2
  38. package/dist/cjs/errors.js +3 -3
  39. package/dist/cjs/generated/google/protobuf/struct.js +4 -4
  40. package/dist/cjs/generated/index.js +11 -7
  41. package/dist/cjs/generated/openapi.js +6 -0
  42. package/dist/cjs/generated/ottochain/apps/contracts/v1/contract.js +50 -50
  43. package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate.js +19 -20
  44. package/dist/cjs/generated/ottochain/apps/governance/v1/governance.js +13 -13
  45. package/dist/cjs/generated/ottochain/apps/identity/v1/attestation.js +4 -4
  46. package/dist/cjs/generated/ottochain/apps/identity/v1/identity.js +124 -130
  47. package/dist/cjs/generated/ottochain/apps/markets/v1/market.js +107 -107
  48. package/dist/cjs/generated/ottochain/v1/common.js +4 -4
  49. package/dist/cjs/generated/ottochain/v1/fiber.js +4 -4
  50. package/dist/cjs/index.js +41 -7
  51. package/dist/cjs/openapi.js +2 -0
  52. package/dist/cjs/ottochain/drop-nulls.js +1 -2
  53. package/dist/cjs/ottochain/genesis-manifest.js +11 -11
  54. package/dist/cjs/ottochain/index.js +23 -13
  55. package/dist/cjs/ottochain/metagraph-client.js +65 -8
  56. package/dist/cjs/ottochain/snapshot.js +11 -12
  57. package/dist/cjs/ottochain/transaction.js +57 -14
  58. package/dist/cjs/ottochain/types.js +16 -2
  59. package/dist/cjs/privacy/index.js +14 -0
  60. package/dist/cjs/privacy/sealed-bid.js +210 -0
  61. package/dist/cjs/privacy/shield-app.js +131 -0
  62. package/dist/cjs/schema/effects.js +40 -0
  63. package/dist/cjs/schema/fiber-app.js +19 -13
  64. package/dist/cjs/schema/guard-lint.js +352 -0
  65. package/dist/cjs/schema/guards.js +246 -0
  66. package/dist/cjs/signing.js +80 -0
  67. package/dist/cjs/types.js +2 -3
  68. package/dist/cjs/validation.js +8 -8
  69. package/dist/cjs/verify.js +9 -4
  70. package/dist/cjs/zk/commit.js +53 -0
  71. package/dist/cjs/zk/guard.js +107 -0
  72. package/dist/cjs/zk/index.js +48 -0
  73. package/dist/cjs/zk/preimage.js +37 -0
  74. package/dist/cjs/zk/prover.js +87 -0
  75. package/dist/cjs/zk/registry.js +62 -0
  76. package/dist/cjs/zk/types.js +28 -0
  77. package/dist/cjs/zk/witness.js +19 -0
  78. package/dist/esm/apps/contracts/index.js +7 -3
  79. package/dist/esm/apps/contracts/state-machines/contract-agreement.js +35 -40
  80. package/dist/esm/apps/contracts/state-machines/contract-escrow.js +80 -37
  81. package/dist/esm/apps/contracts/state-machines/contract-universal.js +4 -4
  82. package/dist/esm/apps/corporate/state-machines/corp-board.js +169 -59
  83. package/dist/esm/apps/corporate/state-machines/corp-entity.js +245 -47
  84. package/dist/esm/apps/corporate/state-machines/corp-securities.js +407 -99
  85. package/dist/esm/apps/corporate/state-machines/corp-shareholders.js +151 -37
  86. package/dist/esm/apps/governance/state-machines/dao-multisig.js +58 -40
  87. package/dist/esm/apps/governance/state-machines/dao-reputation.js +46 -40
  88. package/dist/esm/apps/governance/state-machines/dao-single.js +28 -11
  89. package/dist/esm/apps/governance/state-machines/dao-token.js +67 -41
  90. package/dist/esm/apps/governance/state-machines/governance-simple.js +93 -61
  91. package/dist/esm/apps/governance/state-machines/governance-universal.js +2 -2
  92. package/dist/esm/apps/identity/constants.js +51 -12
  93. package/dist/esm/apps/identity/index.js +12 -7
  94. package/dist/esm/apps/identity/state-machines/identity-agent.js +3 -3
  95. package/dist/esm/apps/identity/state-machines/identity-oracle.js +25 -22
  96. package/dist/esm/apps/identity/state-machines/identity-registry.js +285 -0
  97. package/dist/esm/apps/identity/state-machines/identity-universal.js +3 -3
  98. package/dist/esm/apps/identity/state-machines/index.js +1 -0
  99. package/dist/esm/apps/index.js +1 -0
  100. package/dist/esm/apps/lending/assets.js +207 -0
  101. package/dist/esm/apps/lending/credit-scoring.js +81 -0
  102. package/dist/esm/apps/lending/eligibility.js +115 -0
  103. package/dist/esm/apps/lending/index.js +69 -0
  104. package/dist/esm/apps/lending/state-machines/index.js +5 -0
  105. package/dist/esm/apps/lending/state-machines/lending-zk-loan.js +409 -0
  106. package/dist/esm/apps/markets/index.js +8 -4
  107. package/dist/esm/apps/markets/state-machines/market-auction.js +14 -13
  108. package/dist/esm/apps/markets/state-machines/market-crowdfund.js +29 -24
  109. package/dist/esm/apps/markets/state-machines/market-group-buy.js +24 -26
  110. package/dist/esm/apps/markets/state-machines/market-prediction.js +80 -53
  111. package/dist/esm/apps/markets/state-machines/market-universal.js +5 -5
  112. package/dist/esm/generated/index.js +9 -5
  113. package/dist/esm/generated/openapi.js +5 -0
  114. package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +46 -46
  115. package/dist/esm/generated/ottochain/apps/identity/v1/identity.js +114 -120
  116. package/dist/esm/generated/ottochain/apps/markets/v1/market.js +100 -100
  117. package/dist/esm/index.js +21 -2
  118. package/dist/esm/openapi.js +1 -0
  119. package/dist/esm/ottochain/genesis-manifest.js +9 -9
  120. package/dist/esm/ottochain/index.js +2 -3
  121. package/dist/esm/ottochain/metagraph-client.js +65 -8
  122. package/dist/esm/ottochain/snapshot.js +4 -4
  123. package/dist/esm/ottochain/transaction.js +43 -3
  124. package/dist/esm/ottochain/types.js +15 -1
  125. package/dist/esm/privacy/index.js +6 -0
  126. package/dist/esm/privacy/sealed-bid.js +206 -0
  127. package/dist/esm/privacy/shield-app.js +127 -0
  128. package/dist/esm/schema/effects.js +35 -0
  129. package/dist/esm/schema/fiber-app.js +13 -6
  130. package/dist/esm/schema/guard-lint.js +346 -0
  131. package/dist/esm/schema/guards.js +229 -0
  132. package/dist/esm/signing.js +74 -0
  133. package/dist/esm/verify.js +8 -2
  134. package/dist/esm/zk/commit.js +44 -0
  135. package/dist/esm/zk/guard.js +99 -0
  136. package/dist/esm/zk/index.js +19 -0
  137. package/dist/esm/zk/preimage.js +30 -0
  138. package/dist/esm/zk/prover.js +82 -0
  139. package/dist/esm/zk/registry.js +55 -0
  140. package/dist/esm/zk/types.js +25 -0
  141. package/dist/esm/zk/witness.js +15 -0
  142. package/dist/types/apps/contracts/index.d.ts +69 -209
  143. package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +20 -95
  144. package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +46 -112
  145. package/dist/types/apps/corporate/index.d.ts +1040 -304
  146. package/dist/types/apps/corporate/state-machines/corp-board.d.ts +188 -52
  147. package/dist/types/apps/corporate/state-machines/corp-entity.d.ts +267 -62
  148. package/dist/types/apps/corporate/state-machines/corp-securities.d.ts +355 -131
  149. package/dist/types/apps/corporate/state-machines/corp-shareholders.d.ts +225 -53
  150. package/dist/types/apps/governance/index.d.ts +296 -398
  151. package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +77 -92
  152. package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +42 -66
  153. package/dist/types/apps/governance/state-machines/dao-single.d.ts +25 -47
  154. package/dist/types/apps/governance/state-machines/dao-token.d.ts +60 -49
  155. package/dist/types/apps/governance/state-machines/governance-simple.d.ts +87 -117
  156. package/dist/types/apps/governance/state-machines/governance-universal.d.ts +2 -2
  157. package/dist/types/apps/identity/constants.d.ts +32 -4
  158. package/dist/types/apps/identity/index.d.ts +378 -94
  159. package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +16 -87
  160. package/dist/types/apps/identity/state-machines/identity-registry.d.ts +379 -0
  161. package/dist/types/apps/identity/state-machines/index.d.ts +1 -0
  162. package/dist/types/apps/index.d.ts +1 -0
  163. package/dist/types/apps/lending/assets.d.ts +258 -0
  164. package/dist/types/apps/lending/credit-scoring.d.ts +80 -0
  165. package/dist/types/apps/lending/eligibility.d.ts +83 -0
  166. package/dist/types/apps/lending/index.d.ts +548 -0
  167. package/dist/types/apps/lending/state-machines/index.d.ts +5 -0
  168. package/dist/types/apps/lending/state-machines/lending-zk-loan.d.ts +528 -0
  169. package/dist/types/apps/markets/index.d.ts +108 -203
  170. package/dist/types/apps/markets/state-machines/market-auction.d.ts +13 -37
  171. package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +16 -34
  172. package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +17 -43
  173. package/dist/types/apps/markets/state-machines/market-prediction.d.ts +51 -72
  174. package/dist/types/apps/markets/state-machines/market-universal.d.ts +5 -5
  175. package/dist/types/generated/index.d.ts +5 -5
  176. package/dist/types/generated/openapi.d.ts +1257 -0
  177. package/dist/types/generated/ottochain/apps/contracts/v1/contract.d.ts +5 -5
  178. package/dist/types/generated/ottochain/apps/identity/v1/identity.d.ts +12 -12
  179. package/dist/types/generated/ottochain/apps/markets/v1/market.d.ts +11 -11
  180. package/dist/types/index.d.ts +6 -2
  181. package/dist/types/openapi.d.ts +22 -0
  182. package/dist/types/ottochain/genesis-manifest.d.ts +5 -5
  183. package/dist/types/ottochain/index.d.ts +5 -6
  184. package/dist/types/ottochain/metagraph-client.d.ts +49 -7
  185. package/dist/types/ottochain/snapshot.d.ts +6 -6
  186. package/dist/types/ottochain/transaction.d.ts +33 -1
  187. package/dist/types/ottochain/types.d.ts +335 -30
  188. package/dist/types/privacy/index.d.ts +6 -0
  189. package/dist/types/privacy/sealed-bid.d.ts +348 -0
  190. package/dist/types/privacy/shield-app.d.ts +48 -0
  191. package/dist/types/schema/effects.d.ts +34 -0
  192. package/dist/types/schema/fiber-app.d.ts +1 -2
  193. package/dist/types/schema/guard-lint.d.ts +111 -0
  194. package/dist/types/schema/guards.d.ts +134 -0
  195. package/dist/types/signing.d.ts +45 -0
  196. package/dist/types/validation.d.ts +22 -217
  197. package/dist/types/verify.d.ts +4 -0
  198. package/dist/types/zk/commit.d.ts +28 -0
  199. package/dist/types/zk/guard.d.ts +46 -0
  200. package/dist/types/zk/index.d.ts +19 -0
  201. package/dist/types/zk/preimage.d.ts +10 -0
  202. package/dist/types/zk/prover.d.ts +34 -0
  203. package/dist/types/zk/registry.d.ts +34 -0
  204. package/dist/types/zk/types.d.ts +33 -0
  205. package/dist/types/zk/witness.d.ts +40 -0
  206. package/package.json +27 -13
  207. package/dist/cjs/ottochain/normalize.js +0 -186
  208. package/dist/esm/ottochain/normalize.js +0 -179
  209. package/dist/types/ottochain/normalize.d.ts +0 -79
@@ -7,7 +7,11 @@
7
7
  * @packageDocumentation
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getReputationDelta = exports.canTransition = exports.ATTESTATION_DELTAS = exports.AGENT_TRANSITIONS = exports.IDENTITY_TRANSITIONS = void 0;
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.IdentityState.IDENTITY_STATE_UNSPECIFIED]: [],
23
- [identity_js_1.IdentityState.IDENTITY_STATE_UNREGISTERED]: ["register"],
24
- [identity_js_1.IdentityState.IDENTITY_STATE_REGISTERED]: ["activate", "withdraw"],
25
- [identity_js_1.IdentityState.IDENTITY_STATE_ACTIVE]: [
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.IdentityState.IDENTITY_STATE_CHALLENGED]: [
35
+ [identity_js_1.State.IDENTITY_STATE_CHALLENGED]: [
32
36
  "uphold_challenge",
33
37
  "dismiss_challenge",
34
38
  ],
35
- [identity_js_1.IdentityState.IDENTITY_STATE_SUSPENDED]: ["begin_probation"],
36
- [identity_js_1.IdentityState.IDENTITY_STATE_PROBATION]: ["complete_probation"],
37
- [identity_js_1.IdentityState.IDENTITY_STATE_SLASHED]: ["reactivate", "withdraw"],
38
- [identity_js_1.IdentityState.IDENTITY_STATE_INACTIVE]: ["activate", "withdraw"],
39
- [identity_js_1.IdentityState.IDENTITY_STATE_WITHDRAWN]: [], // Terminal state
40
- [identity_js_1.IdentityState.UNRECOGNIZED]: [],
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.getIdentityDefinition = exports.IDENTITY_DEFINITIONS = exports.identityOracleDef = exports.identityAgentDef = exports.identityUniversalDef = exports.DEFAULT_REPUTATION_CONFIG = exports.getReputationDelta = exports.canTransition = 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.AgentState = exports.platformToJSON = exports.platformFromJSON = exports.identityStateToJSON = exports.identityStateFromJSON = exports.identityTypeToJSON = exports.identityTypeFromJSON = 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.IdentityState = exports.IdentityType = void 0;
22
- // Re-export generated protobuf types (source of truth)
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, "IdentityType", { enumerable: true, get: function () { return identity_js_1.IdentityType; } });
25
- Object.defineProperty(exports, "IdentityState", { enumerable: true, get: function () { return identity_js_1.IdentityState; } });
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, "identityTypeFromJSON", { enumerable: true, get: function () { return identity_js_1.identityTypeFromJSON; } });
39
- Object.defineProperty(exports, "identityTypeToJSON", { enumerable: true, get: function () { return identity_js_1.identityTypeToJSON; } });
40
- Object.defineProperty(exports, "identityStateFromJSON", { enumerable: true, get: function () { return identity_js_1.identityStateFromJSON; } });
41
- Object.defineProperty(exports, "identityStateToJSON", { enumerable: true, get: function () { return identity_js_1.identityStateToJSON; } });
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.IdentityState; } });
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;
@@ -197,7 +197,7 @@ exports.identityAgentDef = (0, fiber_app_js_1.defineFiberApp)({
197
197
  effect: {
198
198
  merge: [
199
199
  { var: "state" },
200
- { status: "ACTIVE", activatedAt: { var: "$timestamp" } },
200
+ { status: "ACTIVE", activatedAt: { var: "$ordinal" } },
201
201
  ],
202
202
  },
203
203
  },
@@ -254,7 +254,7 @@ exports.identityAgentDef = (0, fiber_app_js_1.defineFiberApp)({
254
254
  effect: {
255
255
  merge: [
256
256
  { var: "state" },
257
- { status: "SUSPENDED", suspendedAt: { var: "$timestamp" } },
257
+ { status: "SUSPENDED", suspendedAt: { var: "$ordinal" } },
258
258
  ],
259
259
  },
260
260
  },
@@ -266,7 +266,7 @@ exports.identityAgentDef = (0, fiber_app_js_1.defineFiberApp)({
266
266
  effect: {
267
267
  merge: [
268
268
  { var: "state" },
269
- { status: "PROBATION", probationStartedAt: { var: "$timestamp" } },
269
+ { status: "PROBATION", probationStartedAt: { var: "$ordinal" } },
270
270
  ],
271
271
  },
272
272
  },
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.identityOracleDef = 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
  * Oracle identity with staking, attestations, reputation, and slashing mechanics.
7
8
  */
@@ -14,13 +15,18 @@ exports.identityOracleDef = (0, fiber_app_js_1.defineFiberApp)({
14
15
  description: "Oracle identity with staking, attestations, reputation, and slashing mechanics",
15
16
  },
16
17
  createSchema: {
17
- required: ["owner", "stake", "domains"],
18
+ required: ["owner", "stake", "domains", "slasher"],
18
19
  properties: {
19
20
  owner: {
20
21
  type: "address",
21
22
  description: "Oracle owner DAG address",
22
23
  immutable: true,
23
24
  },
25
+ slasher: {
26
+ type: "address",
27
+ description: "DAG address of the slasher authorized to penalize this oracle's stake",
28
+ immutable: true,
29
+ },
24
30
  stake: {
25
31
  type: "integer",
26
32
  minimum: 0,
@@ -41,6 +47,7 @@ exports.identityOracleDef = (0, fiber_app_js_1.defineFiberApp)({
41
47
  stateSchema: {
42
48
  properties: {
43
49
  owner: { type: "address", immutable: true },
50
+ slasher: { type: "address", immutable: true },
44
51
  address: { type: "address", computed: true },
45
52
  stake: { type: "integer", computed: true },
46
53
  minStake: { type: "integer" },
@@ -88,7 +95,6 @@ exports.identityOracleDef = (0, fiber_app_js_1.defineFiberApp)({
88
95
  required: ["agent"],
89
96
  properties: {
90
97
  agent: { type: "address" },
91
- adminOverride: { type: "boolean", default: false },
92
98
  },
93
99
  },
94
100
  add_stake: {
@@ -192,7 +198,7 @@ exports.identityOracleDef = (0, fiber_app_js_1.defineFiberApp)({
192
198
  status: "REGISTERED",
193
199
  address: { var: "event.agent" },
194
200
  stake: { var: "event.stake" },
195
- registeredAt: { var: "$timestamp" },
201
+ registeredAt: { var: "$ordinal" },
196
202
  reputation: {
197
203
  accuracy: 100,
198
204
  totalResolutions: 0,
@@ -209,16 +215,12 @@ exports.identityOracleDef = (0, fiber_app_js_1.defineFiberApp)({
209
215
  from: "REGISTERED",
210
216
  to: "ACTIVE",
211
217
  eventName: "activate",
212
- guard: {
213
- or: [
214
- { "===": [{ var: "event.agent" }, { var: "state.address" }] },
215
- { var: "event.adminOverride" },
216
- ],
217
- },
218
+ // authority gate — an ARBITER/SLASHER attestation check layers on additively when the identity registry lands (see docs/design/app-hardening-identity-integration.md §4.2)
219
+ guard: (0, guards_js_1.signerIsParty)("state.address"),
218
220
  effect: {
219
221
  merge: [
220
222
  { var: "state" },
221
- { status: "ACTIVE", activatedAt: { var: "$timestamp" } },
223
+ { status: "ACTIVE", activatedAt: { var: "$ordinal" } },
222
224
  ],
223
225
  },
224
226
  },
@@ -228,7 +230,7 @@ exports.identityOracleDef = (0, fiber_app_js_1.defineFiberApp)({
228
230
  eventName: "add_stake",
229
231
  guard: {
230
232
  and: [
231
- { "===": [{ var: "event.agent" }, { var: "state.address" }] },
233
+ (0, guards_js_1.signerIsParty)("state.address"),
232
234
  { ">": [{ var: "event.amount" }, 0] },
233
235
  ],
234
236
  },
@@ -237,7 +239,7 @@ exports.identityOracleDef = (0, fiber_app_js_1.defineFiberApp)({
237
239
  { var: "state" },
238
240
  {
239
241
  stake: { "+": [{ var: "state.stake" }, { var: "event.amount" }] },
240
- lastStakeAt: { var: "$timestamp" },
242
+ lastStakeAt: { var: "$ordinal" },
241
243
  },
242
244
  ],
243
245
  },
@@ -268,7 +270,7 @@ exports.identityOracleDef = (0, fiber_app_js_1.defineFiberApp)({
268
270
  },
269
271
  ],
270
272
  },
271
- lastResolutionAt: { var: "$timestamp" },
273
+ lastResolutionAt: { var: "$ordinal" },
272
274
  },
273
275
  ],
274
276
  },
@@ -277,9 +279,10 @@ exports.identityOracleDef = (0, fiber_app_js_1.defineFiberApp)({
277
279
  from: "ACTIVE",
278
280
  to: "SLASHED",
279
281
  eventName: "slash",
282
+ // authority gate — an ARBITER/SLASHER attestation check layers on additively when the identity registry lands (see docs/design/app-hardening-identity-integration.md §4.2)
280
283
  guard: {
281
284
  and: [
282
- { var: "event.reason" },
285
+ (0, guards_js_1.signerIsParty)("state.slasher"),
283
286
  { ">": [{ var: "event.amount" }, 0] },
284
287
  { "<=": [{ var: "event.amount" }, { var: "state.stake" }] },
285
288
  ],
@@ -298,12 +301,12 @@ exports.identityOracleDef = (0, fiber_app_js_1.defineFiberApp)({
298
301
  reason: { var: "event.reason" },
299
302
  amount: { var: "event.amount" },
300
303
  marketId: { var: "event.marketId" },
301
- slashedAt: { var: "$timestamp" },
304
+ slashedAt: { var: "$ordinal" },
302
305
  },
303
306
  ],
304
307
  ],
305
308
  },
306
- slashedAt: { var: "$timestamp" },
309
+ slashedAt: { var: "$ordinal" },
307
310
  },
308
311
  ],
309
312
  },
@@ -314,14 +317,14 @@ exports.identityOracleDef = (0, fiber_app_js_1.defineFiberApp)({
314
317
  eventName: "reactivate",
315
318
  guard: {
316
319
  and: [
317
- { "===": [{ var: "event.agent" }, { var: "state.address" }] },
320
+ (0, guards_js_1.signerIsParty)("state.address"),
318
321
  { ">=": [{ var: "state.stake" }, { var: "state.minStake" }] },
319
322
  ],
320
323
  },
321
324
  effect: {
322
325
  merge: [
323
326
  { var: "state" },
324
- { status: "ACTIVE", reactivatedAt: { var: "$timestamp" } },
327
+ { status: "ACTIVE", reactivatedAt: { var: "$ordinal" } },
325
328
  ],
326
329
  },
327
330
  },
@@ -329,13 +332,13 @@ exports.identityOracleDef = (0, fiber_app_js_1.defineFiberApp)({
329
332
  from: "ACTIVE",
330
333
  to: "WITHDRAWN",
331
334
  eventName: "withdraw",
332
- guard: { "===": [{ var: "event.agent" }, { var: "state.address" }] },
335
+ guard: (0, guards_js_1.signerIsParty)("state.address"),
333
336
  effect: {
334
337
  merge: [
335
338
  { var: "state" },
336
339
  {
337
340
  status: "WITHDRAWN",
338
- withdrawnAt: { var: "$timestamp" },
341
+ withdrawnAt: { var: "$ordinal" },
339
342
  finalStake: { var: "state.stake" },
340
343
  },
341
344
  ],
@@ -345,13 +348,13 @@ exports.identityOracleDef = (0, fiber_app_js_1.defineFiberApp)({
345
348
  from: "SLASHED",
346
349
  to: "WITHDRAWN",
347
350
  eventName: "withdraw",
348
- guard: { "===": [{ var: "event.agent" }, { var: "state.address" }] },
351
+ guard: (0, guards_js_1.signerIsParty)("state.address"),
349
352
  effect: {
350
353
  merge: [
351
354
  { var: "state" },
352
355
  {
353
356
  status: "WITHDRAWN",
354
- withdrawnAt: { var: "$timestamp" },
357
+ withdrawnAt: { var: "$ordinal" },
355
358
  finalStake: { var: "state.stake" },
356
359
  },
357
360
  ],