@ottochain/sdk 2.4.0 → 2.5.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 (225) hide show
  1. package/dist/cjs/apps/compute/index.js +33 -0
  2. package/dist/cjs/apps/compute/state-machines/compute-rule110.js +164 -0
  3. package/dist/cjs/apps/compute/state-machines/index.js +9 -0
  4. package/dist/cjs/apps/contracts/index.js +1 -1
  5. package/dist/cjs/apps/contracts/state-machines/contract-agreement.js +126 -148
  6. package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +153 -174
  7. package/dist/cjs/apps/contracts/state-machines/contract-universal.js +46 -58
  8. package/dist/cjs/apps/corporate/state-machines/corp-board.js +415 -481
  9. package/dist/cjs/apps/corporate/state-machines/corp-entity.js +368 -440
  10. package/dist/cjs/apps/corporate/state-machines/corp-securities.js +532 -647
  11. package/dist/cjs/apps/corporate/state-machines/corp-shareholders.js +499 -603
  12. package/dist/cjs/apps/governance/index.js +7 -7
  13. package/dist/cjs/apps/governance/state-machines/dao-multisig.js +170 -209
  14. package/dist/cjs/apps/governance/state-machines/dao-reputation.js +161 -214
  15. package/dist/cjs/apps/governance/state-machines/dao-single.js +92 -92
  16. package/dist/cjs/apps/governance/state-machines/dao-token.js +169 -223
  17. package/dist/cjs/apps/governance/state-machines/governance-simple.js +185 -217
  18. package/dist/cjs/apps/governance/state-machines/governance-universal.js +64 -64
  19. package/dist/cjs/apps/identity/constants.js +16 -24
  20. package/dist/cjs/apps/identity/index.js +1 -1
  21. package/dist/cjs/apps/identity/state-machines/identity-agent.js +124 -158
  22. package/dist/cjs/apps/identity/state-machines/identity-oracle.js +151 -169
  23. package/dist/cjs/apps/identity/state-machines/identity-registry.js +89 -115
  24. package/dist/cjs/apps/identity/state-machines/identity-universal.js +51 -57
  25. package/dist/cjs/apps/index.js +4 -1
  26. package/dist/cjs/apps/lending/assets.js +41 -17
  27. package/dist/cjs/apps/lending/credit-scoring.js +4 -4
  28. package/dist/cjs/apps/lending/eligibility.js +9 -25
  29. package/dist/cjs/apps/lending/index.js +1 -1
  30. package/dist/cjs/apps/lending/state-machines/lending-zk-loan.js +177 -156
  31. package/dist/cjs/apps/markets/index.js +1 -1
  32. package/dist/cjs/apps/markets/state-machines/market-auction.js +115 -134
  33. package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +122 -137
  34. package/dist/cjs/apps/markets/state-machines/market-group-buy.js +158 -177
  35. package/dist/cjs/apps/markets/state-machines/market-prediction.js +193 -227
  36. package/dist/cjs/apps/markets/state-machines/market-universal.js +65 -80
  37. package/dist/cjs/apps/oracles/index.js +1 -1
  38. package/dist/cjs/apps/privacy/index.js +67 -0
  39. package/dist/cjs/apps/privacy/state-machines/index.js +17 -0
  40. package/dist/cjs/apps/privacy/state-machines/mixer-ddhRing.js +286 -0
  41. package/dist/cjs/apps/privacy/state-machines/note-pool.js +476 -0
  42. package/dist/cjs/apps/staked-pool/assets.js +103 -0
  43. package/dist/cjs/apps/staked-pool/base.js +498 -0
  44. package/dist/cjs/apps/staked-pool/consumer.js +55 -0
  45. package/dist/cjs/apps/staked-pool/index.js +83 -0
  46. package/dist/cjs/apps/staked-pool/state-machines/index.js +12 -0
  47. package/dist/cjs/apps/staked-pool/state-machines/staked-pool-base.js +49 -0
  48. package/dist/cjs/apps/staked-pool/state-machines/staked-pool-oracle.js +131 -0
  49. package/dist/cjs/generated/google/protobuf/struct.js +1 -1
  50. package/dist/cjs/generated/google/protobuf/timestamp.js +1 -1
  51. package/dist/cjs/generated/ottochain/apps/contracts/v1/contract.js +1 -1
  52. package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate.js +1 -1
  53. package/dist/cjs/generated/ottochain/apps/governance/v1/governance.js +1 -1
  54. package/dist/cjs/generated/ottochain/apps/identity/v1/attestation.js +1 -1
  55. package/dist/cjs/generated/ottochain/apps/identity/v1/identity.js +1 -1
  56. package/dist/cjs/generated/ottochain/apps/markets/v1/market.js +1 -1
  57. package/dist/cjs/generated/ottochain/v1/common.js +1 -1
  58. package/dist/cjs/generated/ottochain/v1/fiber.js +40 -2
  59. package/dist/cjs/generated/ottochain/v1/messages.js +1 -1
  60. package/dist/cjs/generated/ottochain/v1/records.js +1 -1
  61. package/dist/cjs/index.js +20 -3
  62. package/dist/cjs/ottochain/genesis-manifest.js +6 -0
  63. package/dist/cjs/ottochain/metagraph-client.js +16 -8
  64. package/dist/cjs/ottochain/snapshot.js +2 -4
  65. package/dist/cjs/ottochain/transaction.js +10 -0
  66. package/dist/cjs/privacy/sealed-bid.js +85 -82
  67. package/dist/cjs/privacy/shield-app.js +32 -32
  68. package/dist/cjs/schema/effects.js +117 -1
  69. package/dist/cjs/schema/fiber-app.js +132 -3
  70. package/dist/cjs/schema/guard-lint.js +3 -12
  71. package/dist/cjs/schema/guards.js +38 -38
  72. package/dist/cjs/templates/asset-policy.js +190 -0
  73. package/dist/cjs/templates/index.js +86 -0
  74. package/dist/cjs/templates/machine.js +130 -0
  75. package/dist/cjs/templates/migration.js +39 -0
  76. package/dist/cjs/templates/state-shape.js +38 -0
  77. package/dist/cjs/validation.js +1 -3
  78. package/dist/esm/apps/compute/index.js +29 -0
  79. package/dist/esm/apps/compute/state-machines/compute-rule110.js +161 -0
  80. package/dist/esm/apps/compute/state-machines/index.js +5 -0
  81. package/dist/esm/apps/contracts/index.js +4 -4
  82. package/dist/esm/apps/contracts/state-machines/contract-agreement.js +128 -150
  83. package/dist/esm/apps/contracts/state-machines/contract-escrow.js +155 -176
  84. package/dist/esm/apps/contracts/state-machines/contract-universal.js +47 -59
  85. package/dist/esm/apps/corporate/index.js +2 -2
  86. package/dist/esm/apps/corporate/state-machines/corp-board.js +418 -484
  87. package/dist/esm/apps/corporate/state-machines/corp-entity.js +371 -443
  88. package/dist/esm/apps/corporate/state-machines/corp-securities.js +535 -650
  89. package/dist/esm/apps/corporate/state-machines/corp-shareholders.js +502 -606
  90. package/dist/esm/apps/governance/index.js +10 -10
  91. package/dist/esm/apps/governance/state-machines/dao-multisig.js +172 -211
  92. package/dist/esm/apps/governance/state-machines/dao-reputation.js +163 -216
  93. package/dist/esm/apps/governance/state-machines/dao-single.js +94 -94
  94. package/dist/esm/apps/governance/state-machines/dao-token.js +171 -225
  95. package/dist/esm/apps/governance/state-machines/governance-simple.js +187 -219
  96. package/dist/esm/apps/governance/state-machines/governance-universal.js +65 -65
  97. package/dist/esm/apps/identity/constants.js +18 -26
  98. package/dist/esm/apps/identity/index.js +8 -8
  99. package/dist/esm/apps/identity/state-machines/identity-agent.js +125 -159
  100. package/dist/esm/apps/identity/state-machines/identity-oracle.js +153 -171
  101. package/dist/esm/apps/identity/state-machines/identity-registry.js +91 -117
  102. package/dist/esm/apps/identity/state-machines/identity-universal.js +52 -58
  103. package/dist/esm/apps/index.js +9 -6
  104. package/dist/esm/apps/lending/assets.js +41 -17
  105. package/dist/esm/apps/lending/credit-scoring.js +6 -6
  106. package/dist/esm/apps/lending/eligibility.js +10 -26
  107. package/dist/esm/apps/lending/index.js +5 -5
  108. package/dist/esm/apps/lending/state-machines/lending-zk-loan.js +178 -157
  109. package/dist/esm/apps/markets/index.js +5 -5
  110. package/dist/esm/apps/markets/state-machines/market-auction.js +117 -136
  111. package/dist/esm/apps/markets/state-machines/market-crowdfund.js +124 -139
  112. package/dist/esm/apps/markets/state-machines/market-group-buy.js +160 -179
  113. package/dist/esm/apps/markets/state-machines/market-prediction.js +195 -229
  114. package/dist/esm/apps/markets/state-machines/market-universal.js +66 -81
  115. package/dist/esm/apps/oracles/index.js +3 -3
  116. package/dist/esm/apps/privacy/index.js +56 -0
  117. package/dist/esm/apps/privacy/state-machines/index.js +6 -0
  118. package/dist/esm/apps/privacy/state-machines/mixer-ddhRing.js +282 -0
  119. package/dist/esm/apps/privacy/state-machines/note-pool.js +470 -0
  120. package/dist/esm/apps/staked-pool/assets.js +91 -0
  121. package/dist/esm/apps/staked-pool/base.js +493 -0
  122. package/dist/esm/apps/staked-pool/consumer.js +49 -0
  123. package/dist/esm/apps/staked-pool/index.js +60 -0
  124. package/dist/esm/apps/staked-pool/state-machines/index.js +6 -0
  125. package/dist/esm/apps/staked-pool/state-machines/staked-pool-base.js +46 -0
  126. package/dist/esm/apps/staked-pool/state-machines/staked-pool-oracle.js +127 -0
  127. package/dist/esm/generated/google/protobuf/struct.js +1 -1
  128. package/dist/esm/generated/google/protobuf/timestamp.js +1 -1
  129. package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +1 -1
  130. package/dist/esm/generated/ottochain/apps/corporate/v1/corporate.js +1 -1
  131. package/dist/esm/generated/ottochain/apps/governance/v1/governance.js +1 -1
  132. package/dist/esm/generated/ottochain/apps/identity/v1/attestation.js +1 -1
  133. package/dist/esm/generated/ottochain/apps/identity/v1/identity.js +1 -1
  134. package/dist/esm/generated/ottochain/apps/markets/v1/market.js +1 -1
  135. package/dist/esm/generated/ottochain/v1/common.js +1 -1
  136. package/dist/esm/generated/ottochain/v1/fiber.js +40 -2
  137. package/dist/esm/generated/ottochain/v1/messages.js +1 -1
  138. package/dist/esm/generated/ottochain/v1/records.js +1 -1
  139. package/dist/esm/index.js +10 -4
  140. package/dist/esm/ottochain/genesis-manifest.js +6 -0
  141. package/dist/esm/ottochain/metagraph-client.js +16 -8
  142. package/dist/esm/ottochain/snapshot.js +2 -4
  143. package/dist/esm/ottochain/transaction.js +8 -0
  144. package/dist/esm/privacy/index.js +2 -2
  145. package/dist/esm/privacy/sealed-bid.js +87 -84
  146. package/dist/esm/privacy/shield-app.js +33 -33
  147. package/dist/esm/schema/effects.js +110 -0
  148. package/dist/esm/schema/fiber-app.js +127 -3
  149. package/dist/esm/schema/guard-lint.js +3 -12
  150. package/dist/esm/schema/guards.js +36 -37
  151. package/dist/esm/templates/asset-policy.js +182 -0
  152. package/dist/esm/templates/index.js +41 -0
  153. package/dist/esm/templates/machine.js +125 -0
  154. package/dist/esm/templates/migration.js +34 -0
  155. package/dist/esm/templates/state-shape.js +34 -0
  156. package/dist/esm/validation.js +1 -3
  157. package/dist/esm/zk/index.js +4 -4
  158. package/dist/types/apps/compute/index.d.ts +176 -0
  159. package/dist/types/apps/compute/state-machines/compute-rule110.d.ts +157 -0
  160. package/dist/types/apps/compute/state-machines/index.d.ts +5 -0
  161. package/dist/types/apps/contracts/index.d.ts +14 -14
  162. package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +3 -3
  163. package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +3 -3
  164. package/dist/types/apps/contracts/state-machines/contract-universal.d.ts +4 -4
  165. package/dist/types/apps/corporate/index.d.ts +162 -162
  166. package/dist/types/apps/corporate/state-machines/corp-board.d.ts +88 -88
  167. package/dist/types/apps/corporate/state-machines/corp-entity.d.ts +14 -14
  168. package/dist/types/apps/corporate/state-machines/corp-securities.d.ts +18 -18
  169. package/dist/types/apps/corporate/state-machines/corp-shareholders.d.ts +43 -43
  170. package/dist/types/apps/governance/index.d.ts +81 -81
  171. package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +16 -16
  172. package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +22 -22
  173. package/dist/types/apps/governance/state-machines/dao-token.d.ts +21 -21
  174. package/dist/types/apps/governance/state-machines/governance-simple.d.ts +11 -11
  175. package/dist/types/apps/governance/state-machines/governance-universal.d.ts +4 -4
  176. package/dist/types/apps/identity/constants.d.ts +2 -2
  177. package/dist/types/apps/identity/index.d.ts +70 -70
  178. package/dist/types/apps/identity/state-machines/identity-agent.d.ts +23 -23
  179. package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +11 -11
  180. package/dist/types/apps/identity/state-machines/identity-registry.d.ts +27 -27
  181. package/dist/types/apps/identity/state-machines/identity-universal.d.ts +4 -4
  182. package/dist/types/apps/index.d.ts +9 -6
  183. package/dist/types/apps/lending/assets.d.ts +2 -2
  184. package/dist/types/apps/lending/credit-scoring.d.ts +5 -5
  185. package/dist/types/apps/lending/eligibility.d.ts +2 -2
  186. package/dist/types/apps/lending/index.d.ts +20 -12
  187. package/dist/types/apps/lending/state-machines/lending-zk-loan.d.ts +15 -7
  188. package/dist/types/apps/markets/index.d.ts +76 -76
  189. package/dist/types/apps/markets/state-machines/market-auction.d.ts +12 -12
  190. package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +19 -19
  191. package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +18 -18
  192. package/dist/types/apps/markets/state-machines/market-prediction.d.ts +15 -15
  193. package/dist/types/apps/markets/state-machines/market-universal.d.ts +7 -7
  194. package/dist/types/apps/oracles/index.d.ts +1 -1
  195. package/dist/types/apps/privacy/index.d.ts +328 -0
  196. package/dist/types/apps/privacy/state-machines/index.d.ts +6 -0
  197. package/dist/types/apps/privacy/state-machines/mixer-ddhRing.d.ts +337 -0
  198. package/dist/types/apps/privacy/state-machines/note-pool.d.ts +196 -0
  199. package/dist/types/apps/staked-pool/assets.d.ts +53 -0
  200. package/dist/types/apps/staked-pool/base.d.ts +80 -0
  201. package/dist/types/apps/staked-pool/consumer.d.ts +29 -0
  202. package/dist/types/apps/staked-pool/index.d.ts +51 -0
  203. package/dist/types/apps/staked-pool/state-machines/index.d.ts +6 -0
  204. package/dist/types/apps/staked-pool/state-machines/staked-pool-base.d.ts +8 -0
  205. package/dist/types/apps/staked-pool/state-machines/staked-pool-oracle.d.ts +34 -0
  206. package/dist/types/generated/openapi.d.ts +13 -0
  207. package/dist/types/generated/ottochain/v1/fiber.d.ts +7 -0
  208. package/dist/types/index.d.ts +3 -3
  209. package/dist/types/openapi.d.ts +4 -2
  210. package/dist/types/ottochain/genesis-manifest.d.ts +6 -0
  211. package/dist/types/ottochain/transaction.d.ts +9 -1
  212. package/dist/types/ottochain/types.d.ts +1 -1
  213. package/dist/types/privacy/index.d.ts +2 -2
  214. package/dist/types/privacy/sealed-bid.d.ts +9 -9
  215. package/dist/types/privacy/shield-app.d.ts +1 -1
  216. package/dist/types/schema/effects.d.ts +107 -0
  217. package/dist/types/schema/fiber-app.d.ts +281 -0
  218. package/dist/types/schema/guards.d.ts +12 -0
  219. package/dist/types/templates/asset-policy.d.ts +119 -0
  220. package/dist/types/templates/index.d.ts +26 -0
  221. package/dist/types/templates/machine.d.ts +139 -0
  222. package/dist/types/templates/migration.d.ts +34 -0
  223. package/dist/types/templates/state-shape.d.ts +30 -0
  224. package/dist/types/zk/index.d.ts +4 -4
  225. package/package.json +31 -13
@@ -8,181 +8,165 @@ const guards_js_1 = require("../../../schema/guards.js");
8
8
  */
9
9
  exports.daoReputationDef = (0, fiber_app_js_1.defineFiberApp)({
10
10
  metadata: {
11
- name: "DAOReputation",
12
- app: "governance",
13
- type: "daoReputation",
14
- version: "1.0.0",
15
- description: "Reputation-based governance. Minimum reputation required for participation.",
16
- category: "governance/dao",
11
+ name: 'DAOReputation',
12
+ app: 'governance',
13
+ type: 'daoReputation',
14
+ version: '1.0.0',
15
+ description: 'Reputation-based governance. Minimum reputation required for participation.',
16
+ category: 'governance/dao',
17
17
  crossReferences: {
18
- Identity: "member verification",
19
- Reputation: "threshold checks",
20
- Contract: "action execution",
18
+ Identity: 'member verification',
19
+ Reputation: 'threshold checks',
20
+ Contract: 'action execution',
21
21
  },
22
22
  },
23
23
  createSchema: {
24
- required: [
25
- "memberThreshold",
26
- "voteThreshold",
27
- "proposeThreshold",
28
- "quorum",
29
- "votingPeriodMs",
30
- ],
24
+ required: ['memberThreshold', 'voteThreshold', 'proposeThreshold', 'quorum', 'votingPeriodMs'],
31
25
  properties: {
32
26
  memberThreshold: {
33
- type: "number",
34
- description: "Min reputation to join as a member",
27
+ type: 'number',
28
+ description: 'Min reputation to join as a member',
35
29
  },
36
- voteThreshold: { type: "number", description: "Min reputation to vote" },
30
+ voteThreshold: { type: 'number', description: 'Min reputation to vote' },
37
31
  proposeThreshold: {
38
- type: "number",
39
- description: "Min reputation to submit a proposal",
32
+ type: 'number',
33
+ description: 'Min reputation to submit a proposal',
40
34
  },
41
35
  quorum: {
42
- type: "number",
43
- description: "Min total votes (count) to execute",
36
+ type: 'number',
37
+ description: 'Min total votes (count) to execute',
44
38
  },
45
39
  votingPeriodMs: {
46
- type: "number",
47
- description: "Voting window in milliseconds",
40
+ type: 'number',
41
+ description: 'Voting window in milliseconds',
48
42
  },
49
43
  },
50
44
  },
51
45
  stateSchema: {
52
46
  properties: {
53
- members: { type: "array", computed: true },
54
- memberJoinedAt: { type: "object", computed: true },
55
- memberThreshold: { type: "number" },
56
- voteThreshold: { type: "number" },
57
- proposeThreshold: { type: "number" },
58
- quorum: { type: "number" },
59
- votingPeriodMs: { type: "number" },
60
- proposal: { type: "object" },
61
- votes: { type: "object", computed: true },
62
- history: { type: "array", computed: true },
47
+ members: { type: 'array', computed: true },
48
+ memberJoinedAt: { type: 'object', computed: true },
49
+ memberThreshold: { type: 'number' },
50
+ voteThreshold: { type: 'number' },
51
+ proposeThreshold: { type: 'number' },
52
+ quorum: { type: 'number' },
53
+ votingPeriodMs: { type: 'number' },
54
+ proposal: { type: 'object' },
55
+ votes: { type: 'object', computed: true },
56
+ history: { type: 'array', computed: true },
63
57
  },
64
58
  },
65
59
  eventSchemas: {
66
60
  propose: {
67
- description: "Submit a proposal (requires >= proposeThreshold reputation)",
68
- required: [
69
- "proposalId",
70
- "title",
71
- "description",
72
- "actionType",
73
- "payload",
74
- "agentReputation",
75
- ],
61
+ description: 'Submit a proposal (requires >= proposeThreshold reputation)',
62
+ required: ['proposalId', 'title', 'description', 'actionType', 'payload', 'agentReputation'],
76
63
  properties: {
77
- agent: { type: "address" },
78
- agentReputation: { type: "number" },
79
- proposalId: { type: "string" },
80
- title: { type: "string" },
81
- description: { type: "string" },
82
- actionType: { type: "string" },
83
- payload: { type: "object" },
64
+ agent: { type: 'address' },
65
+ agentReputation: { type: 'number' },
66
+ proposalId: { type: 'string' },
67
+ title: { type: 'string' },
68
+ description: { type: 'string' },
69
+ actionType: { type: 'string' },
70
+ payload: { type: 'object' },
84
71
  },
85
72
  },
86
73
  vote: {
87
- description: "Cast a vote (requires >= voteThreshold, no double-vote, within window)",
88
- required: ["vote", "agentReputation"],
74
+ description: 'Cast a vote (requires >= voteThreshold, no double-vote, within window)',
75
+ required: ['vote', 'agentReputation'],
89
76
  properties: {
90
- agent: { type: "address" },
91
- agentReputation: { type: "number" },
92
- vote: { type: "string", description: '"for" | "against" | "abstain"' },
77
+ agent: { type: 'address' },
78
+ agentReputation: { type: 'number' },
79
+ vote: { type: 'string', description: '"for" | "against" | "abstain"' },
93
80
  },
94
81
  },
95
82
  execute: {
96
- description: "Execute a passing proposal after voting ends",
83
+ description: 'Execute a passing proposal after voting ends',
97
84
  properties: {},
98
85
  },
99
86
  reject: {
100
- description: "Formally reject a failed proposal",
87
+ description: 'Formally reject a failed proposal',
101
88
  properties: {},
102
89
  },
103
90
  join: {
104
- description: "Join the DAO (requires >= memberThreshold reputation)",
105
- required: ["agentReputation"],
91
+ description: 'Join the DAO (requires >= memberThreshold reputation)',
92
+ required: ['agentReputation'],
106
93
  properties: {
107
- agent: { type: "address" },
108
- agentReputation: { type: "number" },
94
+ agent: { type: 'address' },
95
+ agentReputation: { type: 'number' },
109
96
  },
110
97
  },
111
98
  leave: {
112
- description: "Leave the DAO voluntarily",
99
+ description: 'Leave the DAO voluntarily',
113
100
  properties: {
114
- agent: { type: "address" },
101
+ agent: { type: 'address' },
115
102
  },
116
103
  },
117
104
  propose_threshold_change: {
118
- description: "Propose changing reputation thresholds",
119
- required: ["proposalId", "agentReputation"],
105
+ description: 'Propose changing reputation thresholds',
106
+ required: ['proposalId', 'agentReputation'],
120
107
  properties: {
121
- agent: { type: "address" },
122
- agentReputation: { type: "number" },
123
- proposalId: { type: "string" },
124
- memberThreshold: { type: "number" },
125
- voteThreshold: { type: "number" },
126
- proposeThreshold: { type: "number" },
108
+ agent: { type: 'address' },
109
+ agentReputation: { type: 'number' },
110
+ proposalId: { type: 'string' },
111
+ memberThreshold: { type: 'number' },
112
+ voteThreshold: { type: 'number' },
113
+ proposeThreshold: { type: 'number' },
127
114
  },
128
115
  },
129
116
  },
130
117
  states: {
131
118
  ACTIVE: {
132
- id: "ACTIVE",
119
+ id: 'ACTIVE',
133
120
  isFinal: false,
134
121
  metadata: {
135
- label: "Active",
136
- description: "DAO is idle and ready to accept a proposal",
137
- category: "initial",
122
+ label: 'Active',
123
+ description: 'DAO is idle and ready to accept a proposal',
124
+ category: 'initial',
138
125
  },
139
126
  },
140
127
  VOTING: {
141
- id: "VOTING",
128
+ id: 'VOTING',
142
129
  isFinal: false,
143
130
  metadata: {
144
- label: "Voting",
145
- description: "Members vote with reputation-weighted power",
146
- category: "pending",
131
+ label: 'Voting',
132
+ description: 'Members vote with reputation-weighted power',
133
+ category: 'pending',
147
134
  },
148
135
  },
149
136
  DISSOLVED: {
150
- id: "DISSOLVED",
137
+ id: 'DISSOLVED',
151
138
  isFinal: true,
152
139
  metadata: {
153
- label: "Dissolved",
154
- description: "Reputation DAO dissolved (terminal)",
155
- category: "terminal",
140
+ label: 'Dissolved',
141
+ description: 'Reputation DAO dissolved (terminal)',
142
+ category: 'terminal',
156
143
  },
157
144
  },
158
145
  },
159
- initialState: "ACTIVE",
146
+ initialState: 'ACTIVE',
160
147
  transitions: [
161
148
  // ACTIVE → VOTING: propose (reputation check)
162
149
  {
163
- from: "ACTIVE",
164
- to: "VOTING",
165
- eventName: "propose",
150
+ from: 'ACTIVE',
151
+ to: 'VOTING',
152
+ eventName: 'propose',
166
153
  guard: {
167
- ">=": [
168
- { var: "event.agentReputation" },
169
- { var: "state.proposeThreshold" },
170
- ],
154
+ '>=': [{ var: 'event.agentReputation' }, { var: 'state.proposeThreshold' }],
171
155
  },
172
156
  effect: {
173
157
  merge: [
174
- { var: "state" },
158
+ { var: 'state' },
175
159
  {
176
160
  proposal: {
177
- id: { var: "event.proposalId" },
178
- title: { var: "event.title" },
179
- description: { var: "event.description" },
180
- actionType: { var: "event.actionType" },
181
- payload: { var: "event.payload" },
182
- proposer: { var: "event.agent" },
183
- proposedAt: { var: "$ordinal" },
161
+ id: { var: 'event.proposalId' },
162
+ title: { var: 'event.title' },
163
+ description: { var: 'event.description' },
164
+ actionType: { var: 'event.actionType' },
165
+ payload: { var: 'event.payload' },
166
+ proposer: { var: 'event.agent' },
167
+ proposedAt: { var: '$ordinal' },
184
168
  deadline: {
185
- "+": [{ var: "$ordinal" }, { var: "state.votingPeriodMs" }],
169
+ '+': [{ var: '$ordinal' }, { var: 'state.votingPeriodMs' }],
186
170
  },
187
171
  },
188
172
  votes: { for: [], against: [], abstain: [] },
@@ -193,66 +177,54 @@ exports.daoReputationDef = (0, fiber_app_js_1.defineFiberApp)({
193
177
  },
194
178
  // VOTING → VOTING: vote (reputation check, no double-vote, within window)
195
179
  {
196
- from: "VOTING",
197
- to: "VOTING",
198
- eventName: "vote",
180
+ from: 'VOTING',
181
+ to: 'VOTING',
182
+ eventName: 'vote',
199
183
  guard: {
200
184
  and: [
201
185
  {
202
- ">=": [
203
- { var: "event.agentReputation" },
204
- { var: "state.voteThreshold" },
205
- ],
186
+ '>=': [{ var: 'event.agentReputation' }, { var: 'state.voteThreshold' }],
206
187
  },
207
- { "!": [(0, guards_js_1.signerInSet)("state.votes.for")] },
208
- { "!": [(0, guards_js_1.signerInSet)("state.votes.against")] },
209
- { "!": [(0, guards_js_1.signerInSet)("state.votes.abstain")] },
210
- { "<=": [{ var: "$ordinal" }, { var: "state.proposal.deadline" }] },
188
+ { '!': [(0, guards_js_1.signerInSet)('state.votes.for')] },
189
+ { '!': [(0, guards_js_1.signerInSet)('state.votes.against')] },
190
+ { '!': [(0, guards_js_1.signerInSet)('state.votes.abstain')] },
191
+ { '<=': [{ var: '$ordinal' }, { var: 'state.proposal.deadline' }] },
211
192
  ],
212
193
  },
213
194
  effect: {
214
195
  merge: [
215
- { var: "state" },
196
+ { var: 'state' },
216
197
  {
217
198
  votes: {
218
199
  if: [
219
- { "===": [{ var: "event.vote" }, "for"] },
200
+ { '===': [{ var: 'event.vote' }, 'for'] },
220
201
  {
221
202
  merge: [
222
- { var: "state.votes" },
203
+ { var: 'state.votes' },
223
204
  {
224
205
  for: {
225
- cat: [
226
- { var: "state.votes.for" },
227
- [{ var: "event.agent" }],
228
- ],
206
+ cat: [{ var: 'state.votes.for' }, [{ var: 'event.agent' }]],
229
207
  },
230
208
  },
231
209
  ],
232
210
  },
233
- { "===": [{ var: "event.vote" }, "against"] },
211
+ { '===': [{ var: 'event.vote' }, 'against'] },
234
212
  {
235
213
  merge: [
236
- { var: "state.votes" },
214
+ { var: 'state.votes' },
237
215
  {
238
216
  against: {
239
- cat: [
240
- { var: "state.votes.against" },
241
- [{ var: "event.agent" }],
242
- ],
217
+ cat: [{ var: 'state.votes.against' }, [{ var: 'event.agent' }]],
243
218
  },
244
219
  },
245
220
  ],
246
221
  },
247
222
  {
248
223
  merge: [
249
- { var: "state.votes" },
224
+ { var: 'state.votes' },
250
225
  {
251
226
  abstain: {
252
- cat: [
253
- { var: "state.votes.abstain" },
254
- [{ var: "event.agent" }],
255
- ],
227
+ cat: [{ var: 'state.votes.abstain' }, [{ var: 'event.agent' }]],
256
228
  },
257
229
  },
258
230
  ],
@@ -266,46 +238,40 @@ exports.daoReputationDef = (0, fiber_app_js_1.defineFiberApp)({
266
238
  },
267
239
  // VOTING → ACTIVE: execute (voting ended, for > against, quorum met)
268
240
  {
269
- from: "VOTING",
270
- to: "ACTIVE",
271
- eventName: "execute",
241
+ from: 'VOTING',
242
+ to: 'ACTIVE',
243
+ eventName: 'execute',
272
244
  // A2 fix: votes.for/against/abstain are arrays of voter addresses; count with
273
245
  // `length` (size is not a JLVM opcode).
274
246
  guard: {
275
247
  and: [
276
- { ">": [{ var: "$ordinal" }, { var: "state.proposal.deadline" }] },
248
+ { '>': [{ var: '$ordinal' }, { var: 'state.proposal.deadline' }] },
277
249
  {
278
- ">": [
279
- { length: [{ var: "state.votes.for" }] },
280
- { length: [{ var: "state.votes.against" }] },
281
- ],
250
+ '>': [{ length: [{ var: 'state.votes.for' }] }, { length: [{ var: 'state.votes.against' }] }],
282
251
  },
283
252
  {
284
- ">=": [
253
+ '>=': [
285
254
  {
286
- "+": [
287
- { length: [{ var: "state.votes.for" }] },
288
- { length: [{ var: "state.votes.against" }] },
289
- ],
255
+ '+': [{ length: [{ var: 'state.votes.for' }] }, { length: [{ var: 'state.votes.against' }] }],
290
256
  },
291
- { var: "state.quorum" },
257
+ { var: 'state.quorum' },
292
258
  ],
293
259
  },
294
260
  ],
295
261
  },
296
262
  effect: {
297
263
  merge: [
298
- { var: "state" },
264
+ { var: 'state' },
299
265
  {
300
266
  history: {
301
267
  cat: [
302
- { var: "state.history" },
268
+ { var: 'state.history' },
303
269
  [
304
270
  {
305
- type: "executed",
306
- proposal: { var: "state.proposal" },
307
- votes: { var: "state.votes" },
308
- at: { var: "$ordinal" },
271
+ type: 'executed',
272
+ proposal: { var: 'state.proposal' },
273
+ votes: { var: 'state.votes' },
274
+ at: { var: '$ordinal' },
309
275
  },
310
276
  ],
311
277
  ],
@@ -316,9 +282,9 @@ exports.daoReputationDef = (0, fiber_app_js_1.defineFiberApp)({
316
282
  // under the reserved `_emit` key (extracted as an EmittedEvent, stripped from state).
317
283
  _emit: [
318
284
  {
319
- name: "proposal_executed",
320
- data: { action: "increase", agents: { var: "state.votes.for" } },
321
- destination: "Reputation",
285
+ name: 'proposal_executed',
286
+ data: { action: 'increase', agents: { var: 'state.votes.for' } },
287
+ destination: 'Reputation',
322
288
  },
323
289
  ],
324
290
  },
@@ -328,31 +294,25 @@ exports.daoReputationDef = (0, fiber_app_js_1.defineFiberApp)({
328
294
  },
329
295
  // VOTING → ACTIVE: reject (voting ended, for <= against or quorum not met)
330
296
  {
331
- from: "VOTING",
332
- to: "ACTIVE",
333
- eventName: "reject",
297
+ from: 'VOTING',
298
+ to: 'ACTIVE',
299
+ eventName: 'reject',
334
300
  // A2 fix: count the array-shaped vote tallies with `length` (size is not a JLVM
335
301
  // opcode).
336
302
  guard: {
337
303
  and: [
338
- { ">": [{ var: "$ordinal" }, { var: "state.proposal.deadline" }] },
304
+ { '>': [{ var: '$ordinal' }, { var: 'state.proposal.deadline' }] },
339
305
  {
340
306
  or: [
341
307
  {
342
- "<=": [
343
- { length: [{ var: "state.votes.for" }] },
344
- { length: [{ var: "state.votes.against" }] },
345
- ],
308
+ '<=': [{ length: [{ var: 'state.votes.for' }] }, { length: [{ var: 'state.votes.against' }] }],
346
309
  },
347
310
  {
348
- "<": [
311
+ '<': [
349
312
  {
350
- "+": [
351
- { length: [{ var: "state.votes.for" }] },
352
- { length: [{ var: "state.votes.against" }] },
353
- ],
313
+ '+': [{ length: [{ var: 'state.votes.for' }] }, { length: [{ var: 'state.votes.against' }] }],
354
314
  },
355
- { var: "state.quorum" },
315
+ { var: 'state.quorum' },
356
316
  ],
357
317
  },
358
318
  ],
@@ -361,17 +321,17 @@ exports.daoReputationDef = (0, fiber_app_js_1.defineFiberApp)({
361
321
  },
362
322
  effect: {
363
323
  merge: [
364
- { var: "state" },
324
+ { var: 'state' },
365
325
  {
366
326
  history: {
367
327
  cat: [
368
- { var: "state.history" },
328
+ { var: 'state.history' },
369
329
  [
370
330
  {
371
- type: "rejected",
372
- proposal: { var: "state.proposal" },
373
- votes: { var: "state.votes" },
374
- at: { var: "$ordinal" },
331
+ type: 'rejected',
332
+ proposal: { var: 'state.proposal' },
333
+ votes: { var: 'state.votes' },
334
+ at: { var: '$ordinal' },
375
335
  },
376
336
  ],
377
337
  ],
@@ -385,9 +345,9 @@ exports.daoReputationDef = (0, fiber_app_js_1.defineFiberApp)({
385
345
  },
386
346
  // ACTIVE → ACTIVE: join (reputation check, not already member)
387
347
  {
388
- from: "ACTIVE",
389
- to: "ACTIVE",
390
- eventName: "join",
348
+ from: 'ACTIVE',
349
+ to: 'ACTIVE',
350
+ eventName: 'join',
391
351
  // S1/A2: bind event.agent to a verified signer (actorIsSigner) so the member is appended to the
392
352
  // array and keyed into memberJoinedAt under a CHAIN-VERIFIED address (set is the rc.5 map-write
393
353
  // opcode), and dedup on that bound actor.
@@ -400,27 +360,20 @@ exports.daoReputationDef = (0, fiber_app_js_1.defineFiberApp)({
400
360
  and: [
401
361
  (0, guards_js_1.actorIsSigner)(),
402
362
  {
403
- ">=": [
404
- { var: "event.agentReputation" },
405
- { var: "state.memberThreshold" },
406
- ],
363
+ '>=': [{ var: 'event.agentReputation' }, { var: 'state.memberThreshold' }],
407
364
  },
408
- { "!": [{ in: [{ var: "event.agent" }, { var: "state.members" }] }] },
365
+ { '!': [{ in: [{ var: 'event.agent' }, { var: 'state.members' }] }] },
409
366
  ],
410
367
  },
411
368
  effect: {
412
369
  merge: [
413
- { var: "state" },
370
+ { var: 'state' },
414
371
  {
415
372
  members: {
416
- cat: [{ var: "state.members" }, [{ var: "event.agent" }]],
373
+ cat: [{ var: 'state.members' }, [{ var: 'event.agent' }]],
417
374
  },
418
375
  memberJoinedAt: {
419
- set: [
420
- { var: "state.memberJoinedAt" },
421
- { var: "event.agent" },
422
- { var: "$ordinal" },
423
- ],
376
+ set: [{ var: 'state.memberJoinedAt' }, { var: 'event.agent' }, { var: '$ordinal' }],
424
377
  },
425
378
  },
426
379
  ],
@@ -429,19 +382,16 @@ exports.daoReputationDef = (0, fiber_app_js_1.defineFiberApp)({
429
382
  },
430
383
  // ACTIVE → ACTIVE: leave (member only)
431
384
  {
432
- from: "ACTIVE",
433
- to: "ACTIVE",
434
- eventName: "leave",
435
- guard: (0, guards_js_1.signerInSet)("state.members"),
385
+ from: 'ACTIVE',
386
+ to: 'ACTIVE',
387
+ eventName: 'leave',
388
+ guard: (0, guards_js_1.signerInSet)('state.members'),
436
389
  effect: {
437
390
  merge: [
438
- { var: "state" },
391
+ { var: 'state' },
439
392
  {
440
393
  members: {
441
- filter: [
442
- { var: "state.members" },
443
- { "!==": [{ var: "" }, { var: "event.agent" }] },
444
- ],
394
+ filter: [{ var: 'state.members' }, { '!==': [{ var: '' }, { var: 'event.agent' }] }],
445
395
  },
446
396
  },
447
397
  ],
@@ -450,32 +400,29 @@ exports.daoReputationDef = (0, fiber_app_js_1.defineFiberApp)({
450
400
  },
451
401
  // ACTIVE → VOTING: propose_threshold_change
452
402
  {
453
- from: "ACTIVE",
454
- to: "VOTING",
455
- eventName: "propose_threshold_change",
403
+ from: 'ACTIVE',
404
+ to: 'VOTING',
405
+ eventName: 'propose_threshold_change',
456
406
  guard: {
457
- ">=": [
458
- { var: "event.agentReputation" },
459
- { var: "state.proposeThreshold" },
460
- ],
407
+ '>=': [{ var: 'event.agentReputation' }, { var: 'state.proposeThreshold' }],
461
408
  },
462
409
  effect: {
463
410
  merge: [
464
- { var: "state" },
411
+ { var: 'state' },
465
412
  {
466
413
  proposal: {
467
- id: { var: "event.proposalId" },
468
- title: "Threshold Change",
469
- actionType: "threshold_change",
414
+ id: { var: 'event.proposalId' },
415
+ title: 'Threshold Change',
416
+ actionType: 'threshold_change',
470
417
  payload: {
471
- memberThreshold: { var: "event.memberThreshold" },
472
- voteThreshold: { var: "event.voteThreshold" },
473
- proposeThreshold: { var: "event.proposeThreshold" },
418
+ memberThreshold: { var: 'event.memberThreshold' },
419
+ voteThreshold: { var: 'event.voteThreshold' },
420
+ proposeThreshold: { var: 'event.proposeThreshold' },
474
421
  },
475
- proposer: { var: "event.agent" },
476
- proposedAt: { var: "$ordinal" },
422
+ proposer: { var: 'event.agent' },
423
+ proposedAt: { var: '$ordinal' },
477
424
  deadline: {
478
- "+": [{ var: "$ordinal" }, { var: "state.votingPeriodMs" }],
425
+ '+': [{ var: '$ordinal' }, { var: 'state.votingPeriodMs' }],
479
426
  },
480
427
  },
481
428
  votes: { for: [], against: [], abstain: [] },