@ottochain/sdk 2.3.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 (287) 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 +16 -9
  5. package/dist/cjs/apps/contracts/state-machines/contract-agreement.js +134 -161
  6. package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +192 -170
  7. package/dist/cjs/apps/contracts/state-machines/contract-universal.js +46 -58
  8. package/dist/cjs/apps/corporate/index.js +2 -2
  9. package/dist/cjs/apps/corporate/state-machines/corp-board.js +500 -456
  10. package/dist/cjs/apps/corporate/state-machines/corp-entity.js +487 -361
  11. package/dist/cjs/apps/corporate/state-machines/corp-securities.js +769 -576
  12. package/dist/cjs/apps/corporate/state-machines/corp-shareholders.js +567 -557
  13. package/dist/cjs/apps/governance/index.js +21 -21
  14. package/dist/cjs/apps/governance/state-machines/dao-multisig.js +188 -209
  15. package/dist/cjs/apps/governance/state-machines/dao-reputation.js +181 -228
  16. package/dist/cjs/apps/governance/state-machines/dao-single.js +105 -88
  17. package/dist/cjs/apps/governance/state-machines/dao-token.js +199 -227
  18. package/dist/cjs/apps/governance/state-machines/governance-simple.js +231 -231
  19. package/dist/cjs/apps/governance/state-machines/governance-universal.js +64 -64
  20. package/dist/cjs/apps/identity/constants.js +55 -22
  21. package/dist/cjs/apps/identity/index.js +28 -12
  22. package/dist/cjs/apps/identity/state-machines/identity-agent.js +124 -158
  23. package/dist/cjs/apps/identity/state-machines/identity-oracle.js +158 -173
  24. package/dist/cjs/apps/identity/state-machines/identity-registry.js +262 -0
  25. package/dist/cjs/apps/identity/state-machines/identity-universal.js +51 -57
  26. package/dist/cjs/apps/identity/state-machines/index.js +3 -1
  27. package/dist/cjs/apps/index.js +22 -8
  28. package/dist/cjs/apps/lending/assets.js +247 -0
  29. package/dist/cjs/apps/lending/credit-scoring.js +87 -0
  30. package/dist/cjs/apps/lending/eligibility.js +105 -0
  31. package/dist/cjs/apps/lending/index.js +91 -0
  32. package/dist/cjs/apps/lending/state-machines/index.js +9 -0
  33. package/dist/cjs/apps/lending/state-machines/lending-zk-loan.js +433 -0
  34. package/dist/cjs/apps/markets/index.js +22 -12
  35. package/dist/cjs/apps/markets/state-machines/market-auction.js +116 -134
  36. package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +131 -141
  37. package/dist/cjs/apps/markets/state-machines/market-group-buy.js +163 -184
  38. package/dist/cjs/apps/markets/state-machines/market-prediction.js +226 -233
  39. package/dist/cjs/apps/markets/state-machines/market-universal.js +65 -80
  40. package/dist/cjs/apps/oracles/index.js +3 -3
  41. package/dist/cjs/apps/privacy/index.js +67 -0
  42. package/dist/cjs/apps/privacy/state-machines/index.js +17 -0
  43. package/dist/cjs/apps/privacy/state-machines/mixer-ddhRing.js +286 -0
  44. package/dist/cjs/apps/privacy/state-machines/note-pool.js +476 -0
  45. package/dist/cjs/apps/staked-pool/assets.js +103 -0
  46. package/dist/cjs/apps/staked-pool/base.js +498 -0
  47. package/dist/cjs/apps/staked-pool/consumer.js +55 -0
  48. package/dist/cjs/apps/staked-pool/index.js +83 -0
  49. package/dist/cjs/apps/staked-pool/state-machines/index.js +12 -0
  50. package/dist/cjs/apps/staked-pool/state-machines/staked-pool-base.js +49 -0
  51. package/dist/cjs/apps/staked-pool/state-machines/staked-pool-oracle.js +131 -0
  52. package/dist/cjs/errors.js +3 -3
  53. package/dist/cjs/generated/google/protobuf/struct.js +5 -5
  54. package/dist/cjs/generated/google/protobuf/timestamp.js +1 -1
  55. package/dist/cjs/generated/index.js +11 -7
  56. package/dist/cjs/generated/openapi.js +6 -0
  57. package/dist/cjs/generated/ottochain/apps/contracts/v1/contract.js +51 -51
  58. package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate.js +20 -21
  59. package/dist/cjs/generated/ottochain/apps/governance/v1/governance.js +14 -14
  60. package/dist/cjs/generated/ottochain/apps/identity/v1/attestation.js +5 -5
  61. package/dist/cjs/generated/ottochain/apps/identity/v1/identity.js +125 -131
  62. package/dist/cjs/generated/ottochain/apps/markets/v1/market.js +108 -108
  63. package/dist/cjs/generated/ottochain/v1/common.js +5 -5
  64. package/dist/cjs/generated/ottochain/v1/fiber.js +44 -6
  65. package/dist/cjs/generated/ottochain/v1/messages.js +1 -1
  66. package/dist/cjs/generated/ottochain/v1/records.js +1 -1
  67. package/dist/cjs/index.js +58 -7
  68. package/dist/cjs/openapi.js +2 -0
  69. package/dist/cjs/ottochain/drop-nulls.js +1 -2
  70. package/dist/cjs/ottochain/genesis-manifest.js +17 -11
  71. package/dist/cjs/ottochain/index.js +23 -13
  72. package/dist/cjs/ottochain/metagraph-client.js +81 -16
  73. package/dist/cjs/ottochain/snapshot.js +13 -16
  74. package/dist/cjs/ottochain/transaction.js +67 -14
  75. package/dist/cjs/ottochain/types.js +16 -2
  76. package/dist/cjs/privacy/index.js +14 -0
  77. package/dist/cjs/privacy/sealed-bid.js +213 -0
  78. package/dist/cjs/privacy/shield-app.js +131 -0
  79. package/dist/cjs/schema/effects.js +156 -0
  80. package/dist/cjs/schema/fiber-app.js +150 -15
  81. package/dist/cjs/schema/guard-lint.js +343 -0
  82. package/dist/cjs/schema/guards.js +246 -0
  83. package/dist/cjs/signing.js +80 -0
  84. package/dist/cjs/templates/asset-policy.js +190 -0
  85. package/dist/cjs/templates/index.js +86 -0
  86. package/dist/cjs/templates/machine.js +130 -0
  87. package/dist/cjs/templates/migration.js +39 -0
  88. package/dist/cjs/templates/state-shape.js +38 -0
  89. package/dist/cjs/types.js +2 -3
  90. package/dist/cjs/validation.js +9 -11
  91. package/dist/cjs/verify.js +9 -4
  92. package/dist/cjs/zk/commit.js +53 -0
  93. package/dist/cjs/zk/guard.js +107 -0
  94. package/dist/cjs/zk/index.js +48 -0
  95. package/dist/cjs/zk/preimage.js +37 -0
  96. package/dist/cjs/zk/prover.js +87 -0
  97. package/dist/cjs/zk/registry.js +62 -0
  98. package/dist/cjs/zk/types.js +28 -0
  99. package/dist/cjs/zk/witness.js +19 -0
  100. package/dist/esm/apps/compute/index.js +29 -0
  101. package/dist/esm/apps/compute/state-machines/compute-rule110.js +161 -0
  102. package/dist/esm/apps/compute/state-machines/index.js +5 -0
  103. package/dist/esm/apps/contracts/index.js +9 -5
  104. package/dist/esm/apps/contracts/state-machines/contract-agreement.js +135 -162
  105. package/dist/esm/apps/contracts/state-machines/contract-escrow.js +193 -171
  106. package/dist/esm/apps/contracts/state-machines/contract-universal.js +47 -59
  107. package/dist/esm/apps/corporate/index.js +2 -2
  108. package/dist/esm/apps/corporate/state-machines/corp-board.js +501 -457
  109. package/dist/esm/apps/corporate/state-machines/corp-entity.js +488 -362
  110. package/dist/esm/apps/corporate/state-machines/corp-securities.js +770 -577
  111. package/dist/esm/apps/corporate/state-machines/corp-shareholders.js +568 -558
  112. package/dist/esm/apps/governance/index.js +10 -10
  113. package/dist/esm/apps/governance/state-machines/dao-multisig.js +189 -210
  114. package/dist/esm/apps/governance/state-machines/dao-reputation.js +182 -229
  115. package/dist/esm/apps/governance/state-machines/dao-single.js +106 -89
  116. package/dist/esm/apps/governance/state-machines/dao-token.js +200 -228
  117. package/dist/esm/apps/governance/state-machines/governance-simple.js +232 -232
  118. package/dist/esm/apps/governance/state-machines/governance-universal.js +65 -65
  119. package/dist/esm/apps/identity/constants.js +52 -21
  120. package/dist/esm/apps/identity/index.js +14 -9
  121. package/dist/esm/apps/identity/state-machines/identity-agent.js +125 -159
  122. package/dist/esm/apps/identity/state-machines/identity-oracle.js +159 -174
  123. package/dist/esm/apps/identity/state-machines/identity-registry.js +259 -0
  124. package/dist/esm/apps/identity/state-machines/identity-universal.js +52 -58
  125. package/dist/esm/apps/identity/state-machines/index.js +1 -0
  126. package/dist/esm/apps/index.js +9 -5
  127. package/dist/esm/apps/lending/assets.js +231 -0
  128. package/dist/esm/apps/lending/credit-scoring.js +81 -0
  129. package/dist/esm/apps/lending/eligibility.js +99 -0
  130. package/dist/esm/apps/lending/index.js +69 -0
  131. package/dist/esm/apps/lending/state-machines/index.js +5 -0
  132. package/dist/esm/apps/lending/state-machines/lending-zk-loan.js +430 -0
  133. package/dist/esm/apps/markets/index.js +11 -7
  134. package/dist/esm/apps/markets/state-machines/market-auction.js +117 -135
  135. package/dist/esm/apps/markets/state-machines/market-crowdfund.js +132 -142
  136. package/dist/esm/apps/markets/state-machines/market-group-buy.js +164 -185
  137. package/dist/esm/apps/markets/state-machines/market-prediction.js +227 -234
  138. package/dist/esm/apps/markets/state-machines/market-universal.js +66 -81
  139. package/dist/esm/apps/oracles/index.js +3 -3
  140. package/dist/esm/apps/privacy/index.js +56 -0
  141. package/dist/esm/apps/privacy/state-machines/index.js +6 -0
  142. package/dist/esm/apps/privacy/state-machines/mixer-ddhRing.js +282 -0
  143. package/dist/esm/apps/privacy/state-machines/note-pool.js +470 -0
  144. package/dist/esm/apps/staked-pool/assets.js +91 -0
  145. package/dist/esm/apps/staked-pool/base.js +493 -0
  146. package/dist/esm/apps/staked-pool/consumer.js +49 -0
  147. package/dist/esm/apps/staked-pool/index.js +60 -0
  148. package/dist/esm/apps/staked-pool/state-machines/index.js +6 -0
  149. package/dist/esm/apps/staked-pool/state-machines/staked-pool-base.js +46 -0
  150. package/dist/esm/apps/staked-pool/state-machines/staked-pool-oracle.js +127 -0
  151. package/dist/esm/generated/google/protobuf/struct.js +1 -1
  152. package/dist/esm/generated/google/protobuf/timestamp.js +1 -1
  153. package/dist/esm/generated/index.js +9 -5
  154. package/dist/esm/generated/openapi.js +5 -0
  155. package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +47 -47
  156. package/dist/esm/generated/ottochain/apps/corporate/v1/corporate.js +1 -1
  157. package/dist/esm/generated/ottochain/apps/governance/v1/governance.js +1 -1
  158. package/dist/esm/generated/ottochain/apps/identity/v1/attestation.js +1 -1
  159. package/dist/esm/generated/ottochain/apps/identity/v1/identity.js +115 -121
  160. package/dist/esm/generated/ottochain/apps/markets/v1/market.js +101 -101
  161. package/dist/esm/generated/ottochain/v1/common.js +1 -1
  162. package/dist/esm/generated/ottochain/v1/fiber.js +40 -2
  163. package/dist/esm/generated/ottochain/v1/messages.js +1 -1
  164. package/dist/esm/generated/ottochain/v1/records.js +1 -1
  165. package/dist/esm/index.js +28 -3
  166. package/dist/esm/openapi.js +1 -0
  167. package/dist/esm/ottochain/genesis-manifest.js +15 -9
  168. package/dist/esm/ottochain/index.js +2 -3
  169. package/dist/esm/ottochain/metagraph-client.js +81 -16
  170. package/dist/esm/ottochain/snapshot.js +6 -8
  171. package/dist/esm/ottochain/transaction.js +51 -3
  172. package/dist/esm/ottochain/types.js +15 -1
  173. package/dist/esm/privacy/index.js +6 -0
  174. package/dist/esm/privacy/sealed-bid.js +209 -0
  175. package/dist/esm/privacy/shield-app.js +127 -0
  176. package/dist/esm/schema/effects.js +145 -0
  177. package/dist/esm/schema/fiber-app.js +139 -8
  178. package/dist/esm/schema/guard-lint.js +337 -0
  179. package/dist/esm/schema/guards.js +228 -0
  180. package/dist/esm/signing.js +74 -0
  181. package/dist/esm/templates/asset-policy.js +182 -0
  182. package/dist/esm/templates/index.js +41 -0
  183. package/dist/esm/templates/machine.js +125 -0
  184. package/dist/esm/templates/migration.js +34 -0
  185. package/dist/esm/templates/state-shape.js +34 -0
  186. package/dist/esm/validation.js +1 -3
  187. package/dist/esm/verify.js +8 -2
  188. package/dist/esm/zk/commit.js +44 -0
  189. package/dist/esm/zk/guard.js +99 -0
  190. package/dist/esm/zk/index.js +19 -0
  191. package/dist/esm/zk/preimage.js +30 -0
  192. package/dist/esm/zk/prover.js +82 -0
  193. package/dist/esm/zk/registry.js +55 -0
  194. package/dist/esm/zk/types.js +25 -0
  195. package/dist/esm/zk/witness.js +15 -0
  196. package/dist/types/apps/compute/index.d.ts +176 -0
  197. package/dist/types/apps/compute/state-machines/compute-rule110.d.ts +157 -0
  198. package/dist/types/apps/compute/state-machines/index.d.ts +5 -0
  199. package/dist/types/apps/contracts/index.d.ts +81 -221
  200. package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +23 -98
  201. package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +49 -115
  202. package/dist/types/apps/contracts/state-machines/contract-universal.d.ts +4 -4
  203. package/dist/types/apps/corporate/index.d.ts +1176 -440
  204. package/dist/types/apps/corporate/state-machines/corp-board.d.ts +271 -135
  205. package/dist/types/apps/corporate/state-machines/corp-entity.d.ts +279 -74
  206. package/dist/types/apps/corporate/state-machines/corp-securities.d.ts +373 -149
  207. package/dist/types/apps/corporate/state-machines/corp-shareholders.d.ts +252 -80
  208. package/dist/types/apps/governance/index.d.ts +368 -470
  209. package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +92 -107
  210. package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +61 -85
  211. package/dist/types/apps/governance/state-machines/dao-single.d.ts +25 -47
  212. package/dist/types/apps/governance/state-machines/dao-token.d.ts +79 -68
  213. package/dist/types/apps/governance/state-machines/governance-simple.d.ts +95 -125
  214. package/dist/types/apps/governance/state-machines/governance-universal.d.ts +6 -6
  215. package/dist/types/apps/identity/constants.d.ts +33 -5
  216. package/dist/types/apps/identity/index.d.ts +415 -131
  217. package/dist/types/apps/identity/state-machines/identity-agent.d.ts +23 -23
  218. package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +27 -98
  219. package/dist/types/apps/identity/state-machines/identity-registry.d.ts +379 -0
  220. package/dist/types/apps/identity/state-machines/identity-universal.d.ts +4 -4
  221. package/dist/types/apps/identity/state-machines/index.d.ts +1 -0
  222. package/dist/types/apps/index.d.ts +9 -5
  223. package/dist/types/apps/lending/assets.d.ts +258 -0
  224. package/dist/types/apps/lending/credit-scoring.d.ts +80 -0
  225. package/dist/types/apps/lending/eligibility.d.ts +83 -0
  226. package/dist/types/apps/lending/index.d.ts +556 -0
  227. package/dist/types/apps/lending/state-machines/index.d.ts +5 -0
  228. package/dist/types/apps/lending/state-machines/lending-zk-loan.d.ts +536 -0
  229. package/dist/types/apps/markets/index.d.ts +181 -276
  230. package/dist/types/apps/markets/state-machines/market-auction.d.ts +25 -49
  231. package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +35 -53
  232. package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +35 -61
  233. package/dist/types/apps/markets/state-machines/market-prediction.d.ts +65 -86
  234. package/dist/types/apps/markets/state-machines/market-universal.d.ts +12 -12
  235. package/dist/types/apps/oracles/index.d.ts +1 -1
  236. package/dist/types/apps/privacy/index.d.ts +328 -0
  237. package/dist/types/apps/privacy/state-machines/index.d.ts +6 -0
  238. package/dist/types/apps/privacy/state-machines/mixer-ddhRing.d.ts +337 -0
  239. package/dist/types/apps/privacy/state-machines/note-pool.d.ts +196 -0
  240. package/dist/types/apps/staked-pool/assets.d.ts +53 -0
  241. package/dist/types/apps/staked-pool/base.d.ts +80 -0
  242. package/dist/types/apps/staked-pool/consumer.d.ts +29 -0
  243. package/dist/types/apps/staked-pool/index.d.ts +51 -0
  244. package/dist/types/apps/staked-pool/state-machines/index.d.ts +6 -0
  245. package/dist/types/apps/staked-pool/state-machines/staked-pool-base.d.ts +8 -0
  246. package/dist/types/apps/staked-pool/state-machines/staked-pool-oracle.d.ts +34 -0
  247. package/dist/types/generated/index.d.ts +5 -5
  248. package/dist/types/generated/openapi.d.ts +1270 -0
  249. package/dist/types/generated/ottochain/apps/contracts/v1/contract.d.ts +5 -5
  250. package/dist/types/generated/ottochain/apps/identity/v1/identity.d.ts +12 -12
  251. package/dist/types/generated/ottochain/apps/markets/v1/market.d.ts +11 -11
  252. package/dist/types/generated/ottochain/v1/fiber.d.ts +7 -0
  253. package/dist/types/index.d.ts +7 -3
  254. package/dist/types/openapi.d.ts +24 -0
  255. package/dist/types/ottochain/genesis-manifest.d.ts +11 -5
  256. package/dist/types/ottochain/index.d.ts +5 -6
  257. package/dist/types/ottochain/metagraph-client.d.ts +49 -7
  258. package/dist/types/ottochain/snapshot.d.ts +6 -6
  259. package/dist/types/ottochain/transaction.d.ts +41 -1
  260. package/dist/types/ottochain/types.d.ts +336 -31
  261. package/dist/types/privacy/index.d.ts +6 -0
  262. package/dist/types/privacy/sealed-bid.d.ts +348 -0
  263. package/dist/types/privacy/shield-app.d.ts +48 -0
  264. package/dist/types/schema/effects.d.ts +141 -0
  265. package/dist/types/schema/fiber-app.d.ts +282 -2
  266. package/dist/types/schema/guard-lint.d.ts +111 -0
  267. package/dist/types/schema/guards.d.ts +146 -0
  268. package/dist/types/signing.d.ts +45 -0
  269. package/dist/types/templates/asset-policy.d.ts +119 -0
  270. package/dist/types/templates/index.d.ts +26 -0
  271. package/dist/types/templates/machine.d.ts +139 -0
  272. package/dist/types/templates/migration.d.ts +34 -0
  273. package/dist/types/templates/state-shape.d.ts +30 -0
  274. package/dist/types/validation.d.ts +22 -217
  275. package/dist/types/verify.d.ts +4 -0
  276. package/dist/types/zk/commit.d.ts +28 -0
  277. package/dist/types/zk/guard.d.ts +46 -0
  278. package/dist/types/zk/index.d.ts +19 -0
  279. package/dist/types/zk/preimage.d.ts +10 -0
  280. package/dist/types/zk/prover.d.ts +34 -0
  281. package/dist/types/zk/registry.d.ts +34 -0
  282. package/dist/types/zk/types.d.ts +33 -0
  283. package/dist/types/zk/witness.d.ts +40 -0
  284. package/package.json +47 -15
  285. package/dist/cjs/ottochain/normalize.js +0 -186
  286. package/dist/esm/ottochain/normalize.js +0 -179
  287. package/dist/types/ottochain/normalize.d.ts +0 -79
@@ -1,151 +1,160 @@
1
- import { defineFiberApp } from "../../../schema/fiber-app.js";
1
+ import { defineFiberApp } from '../../../schema/fiber-app.js';
2
+ import { signerIsParty } from '../../../schema/guards.js';
2
3
  /**
3
4
  * Single owner controls all actions. Simplest governance model.
4
5
  */
5
6
  export const daoSingleDef = defineFiberApp({
6
7
  metadata: {
7
- name: "SingleOwnerDAO",
8
- app: "governance",
9
- type: "daoSingle",
10
- version: "1.0.0",
11
- description: "Single owner controls all actions. Simplest governance model.",
12
- category: "governance/dao",
8
+ name: 'SingleOwnerDAO',
9
+ app: 'governance',
10
+ type: 'daoSingle',
11
+ version: '1.0.0',
12
+ description: 'Single owner controls all actions. Simplest governance model.',
13
+ category: 'governance/dao',
13
14
  crossReferences: {
14
- Identity: "owner registration",
15
- Contract: "action execution targets",
16
- Treasury: "fund management",
15
+ Identity: 'owner registration',
16
+ Contract: 'action execution targets',
17
+ Treasury: 'fund management',
17
18
  },
18
19
  },
19
20
  createSchema: {
20
- required: ["owner"],
21
+ required: ['owner'],
21
22
  properties: {
22
23
  owner: {
23
- type: "address",
24
- description: "DAG address of the initial owner",
24
+ type: 'address',
25
+ description: 'DAG address of the initial owner',
25
26
  immutable: false,
26
27
  },
27
28
  },
28
29
  },
29
30
  stateSchema: {
30
31
  properties: {
31
- owner: { type: "address" },
32
- pendingOwner: { type: "address" },
33
- transferInitiatedAt: { type: "timestamp" },
34
- ownershipHistory: { type: "array", computed: true },
35
- actions: { type: "array", computed: true },
36
- status: { type: "string", computed: true },
32
+ owner: { type: 'address' },
33
+ pendingOwner: { type: 'address' },
34
+ transferInitiatedAt: { type: 'timestamp' },
35
+ ownershipHistory: { type: 'array', computed: true },
36
+ actions: { type: 'array', computed: true },
37
+ status: { type: 'string', computed: true },
37
38
  },
38
39
  },
39
40
  eventSchemas: {
40
41
  execute: {
41
- description: "Execute an action (owner only)",
42
- required: ["actionId", "actionType", "payload"],
42
+ description: 'Execute an action (owner only)',
43
+ required: ['actionId', 'actionType', 'payload'],
43
44
  properties: {
44
- agent: { type: "address" },
45
- actionId: { type: "string" },
46
- actionType: { type: "string" },
47
- payload: { type: "object" },
45
+ agent: { type: 'address' },
46
+ actionId: { type: 'string' },
47
+ actionType: { type: 'string' },
48
+ payload: { type: 'object' },
48
49
  },
49
50
  },
50
51
  transfer_ownership: {
51
- description: "Initiate ownership transfer (owner only)",
52
- required: ["newOwner"],
52
+ description: 'Initiate ownership transfer (owner only)',
53
+ required: ['newOwner'],
53
54
  properties: {
54
- agent: { type: "address" },
55
- newOwner: { type: "address" },
55
+ agent: { type: 'address' },
56
+ newOwner: { type: 'address' },
56
57
  },
57
58
  },
58
59
  accept_ownership: {
59
- description: "Accept ownership (pending owner only)",
60
+ description: 'Accept ownership (pending owner only)',
60
61
  properties: {
61
- agent: { type: "address" },
62
+ agent: { type: 'address' },
62
63
  },
63
64
  },
64
65
  cancel_transfer: {
65
- description: "Cancel pending ownership transfer (owner only)",
66
+ description: 'Cancel pending ownership transfer (owner only)',
66
67
  properties: {
67
- agent: { type: "address" },
68
+ agent: { type: 'address' },
68
69
  },
69
70
  },
70
71
  dissolve: {
71
- description: "Dissolve the DAO (owner only)",
72
+ description: 'Dissolve the DAO (owner only)',
72
73
  properties: {
73
- agent: { type: "address" },
74
+ agent: { type: 'address' },
74
75
  },
75
76
  },
76
77
  },
77
78
  states: {
78
79
  ACTIVE: {
79
- id: "ACTIVE",
80
+ id: 'ACTIVE',
80
81
  isFinal: false,
81
82
  metadata: {
82
- label: "Active",
83
- description: "Single owner controls the DAO and may act or transfer ownership",
84
- category: "initial",
83
+ label: 'Active',
84
+ description: 'Single owner controls the DAO and may act or transfer ownership',
85
+ category: 'initial',
85
86
  },
86
87
  },
87
88
  TRANSFERRING: {
88
- id: "TRANSFERRING",
89
+ id: 'TRANSFERRING',
89
90
  isFinal: false,
90
91
  metadata: {
91
- label: "Transferring",
92
- description: "Ownership transfer proposed; awaiting acceptance",
93
- category: "pending",
92
+ label: 'Transferring',
93
+ description: 'Ownership transfer proposed; awaiting acceptance',
94
+ category: 'pending',
94
95
  },
95
96
  },
96
97
  DISSOLVED: {
97
- id: "DISSOLVED",
98
+ id: 'DISSOLVED',
98
99
  isFinal: true,
99
100
  metadata: {
100
- label: "Dissolved",
101
- description: "DAO dissolved by its owner (terminal)",
102
- category: "terminal",
101
+ label: 'Dissolved',
102
+ description: 'DAO dissolved by its owner (terminal)',
103
+ category: 'terminal',
103
104
  },
104
105
  },
105
106
  },
106
- initialState: "ACTIVE",
107
+ initialState: 'ACTIVE',
107
108
  transitions: [
108
109
  // ACTIVE → ACTIVE: execute (owner only)
109
110
  {
110
- from: "ACTIVE",
111
- to: "ACTIVE",
112
- eventName: "execute",
113
- guard: { "===": [{ var: "event.agent" }, { var: "state.owner" }] },
111
+ from: 'ACTIVE',
112
+ to: 'ACTIVE',
113
+ eventName: 'execute',
114
+ guard: signerIsParty('state.owner'),
114
115
  effect: {
115
116
  merge: [
116
- { var: "state" },
117
+ { var: 'state' },
117
118
  {
118
119
  actions: {
119
120
  cat: [
120
- { var: "state.actions" },
121
+ { var: 'state.actions' },
121
122
  [
122
123
  {
123
- id: { var: "event.actionId" },
124
- type: { var: "event.actionType" },
125
- payload: { var: "event.payload" },
126
- executedAt: { var: "$timestamp" },
124
+ id: { var: 'event.actionId' },
125
+ type: { var: 'event.actionType' },
126
+ payload: { var: 'event.payload' },
127
+ executedAt: { var: '$ordinal' },
127
128
  },
128
129
  ],
129
130
  ],
130
131
  },
132
+ // A3 fix: transition-level `emits` is dropped by the chain; emit from INSIDE the effect
133
+ // under the reserved `_emit` key (extracted as an EmittedEvent, stripped from state).
134
+ _emit: [
135
+ {
136
+ name: 'action_executed',
137
+ data: { actionId: { var: 'event.actionId' } },
138
+ destination: 'external',
139
+ },
140
+ ],
131
141
  },
132
142
  ],
133
143
  },
134
- emits: [{ event: "action_executed", to: "external" }],
135
144
  dependencies: [],
136
145
  },
137
146
  // ACTIVE → TRANSFERRING: transfer_ownership (owner only)
138
147
  {
139
- from: "ACTIVE",
140
- to: "TRANSFERRING",
141
- eventName: "transfer_ownership",
142
- guard: { "===": [{ var: "event.agent" }, { var: "state.owner" }] },
148
+ from: 'ACTIVE',
149
+ to: 'TRANSFERRING',
150
+ eventName: 'transfer_ownership',
151
+ guard: signerIsParty('state.owner'),
143
152
  effect: {
144
153
  merge: [
145
- { var: "state" },
154
+ { var: 'state' },
146
155
  {
147
- pendingOwner: { var: "event.newOwner" },
148
- transferInitiatedAt: { var: "$timestamp" },
156
+ pendingOwner: { var: 'event.newOwner' },
157
+ transferInitiatedAt: { var: '$ordinal' },
149
158
  },
150
159
  ],
151
160
  },
@@ -153,44 +162,52 @@ export const daoSingleDef = defineFiberApp({
153
162
  },
154
163
  // TRANSFERRING → ACTIVE: accept_ownership (pending owner only)
155
164
  {
156
- from: "TRANSFERRING",
157
- to: "ACTIVE",
158
- eventName: "accept_ownership",
159
- guard: { "===": [{ var: "event.agent" }, { var: "state.pendingOwner" }] },
165
+ from: 'TRANSFERRING',
166
+ to: 'ACTIVE',
167
+ eventName: 'accept_ownership',
168
+ guard: signerIsParty('state.pendingOwner'),
160
169
  effect: {
161
170
  merge: [
162
- { var: "state" },
171
+ { var: 'state' },
163
172
  {
164
- owner: { var: "state.pendingOwner" },
173
+ owner: { var: 'state.pendingOwner' },
165
174
  pendingOwner: null,
166
175
  transferInitiatedAt: null,
167
176
  ownershipHistory: {
168
177
  cat: [
169
- { var: "state.ownershipHistory" },
178
+ { var: 'state.ownershipHistory' },
170
179
  [
171
180
  {
172
- from: { var: "state.owner" },
173
- to: { var: "state.pendingOwner" },
174
- at: { var: "$timestamp" },
181
+ from: { var: 'state.owner' },
182
+ to: { var: 'state.pendingOwner' },
183
+ at: { var: '$ordinal' },
175
184
  },
176
185
  ],
177
186
  ],
178
187
  },
188
+ // A3 fix: transition-level `emits` is dropped by the chain; emit from INSIDE the effect
189
+ // under the reserved `_emit` key (extracted as an EmittedEvent, stripped from state).
190
+ _emit: [
191
+ {
192
+ name: 'ownership_transferred',
193
+ data: { var: 'event' },
194
+ destination: 'Identity',
195
+ },
196
+ ],
179
197
  },
180
198
  ],
181
199
  },
182
- emits: [{ event: "ownership_transferred", to: "Identity" }],
183
200
  dependencies: [],
184
201
  },
185
202
  // TRANSFERRING → ACTIVE: cancel_transfer (owner only)
186
203
  {
187
- from: "TRANSFERRING",
188
- to: "ACTIVE",
189
- eventName: "cancel_transfer",
190
- guard: { "===": [{ var: "event.agent" }, { var: "state.owner" }] },
204
+ from: 'TRANSFERRING',
205
+ to: 'ACTIVE',
206
+ eventName: 'cancel_transfer',
207
+ guard: signerIsParty('state.owner'),
191
208
  effect: {
192
209
  merge: [
193
- { var: "state" },
210
+ { var: 'state' },
194
211
  {
195
212
  pendingOwner: null,
196
213
  transferInitiatedAt: null,
@@ -201,16 +218,16 @@ export const daoSingleDef = defineFiberApp({
201
218
  },
202
219
  // ACTIVE → DISSOLVED: dissolve (owner only)
203
220
  {
204
- from: "ACTIVE",
205
- to: "DISSOLVED",
206
- eventName: "dissolve",
207
- guard: { "===": [{ var: "event.agent" }, { var: "state.owner" }] },
221
+ from: 'ACTIVE',
222
+ to: 'DISSOLVED',
223
+ eventName: 'dissolve',
224
+ guard: signerIsParty('state.owner'),
208
225
  effect: {
209
226
  merge: [
210
- { var: "state" },
227
+ { var: 'state' },
211
228
  {
212
- dissolvedAt: { var: "$timestamp" },
213
- status: "DISSOLVED",
229
+ dissolvedAt: { var: '$ordinal' },
230
+ status: 'DISSOLVED',
214
231
  },
215
232
  ],
216
233
  },