@ottochain/sdk 2.4.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) 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 +21 -3
  62. package/dist/cjs/ottochain/genesis-manifest.js +6 -0
  63. package/dist/cjs/ottochain/metagraph-client.js +63 -11
  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 +145 -1
  69. package/dist/cjs/schema/fiber-app.js +139 -5
  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 +63 -11
  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 +137 -0
  148. package/dist/esm/schema/fiber-app.js +134 -5
  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/index.d.ts +1 -1
  212. package/dist/types/ottochain/metagraph-client.d.ts +69 -15
  213. package/dist/types/ottochain/transaction.d.ts +9 -1
  214. package/dist/types/ottochain/types.d.ts +1 -1
  215. package/dist/types/privacy/index.d.ts +2 -2
  216. package/dist/types/privacy/sealed-bid.d.ts +9 -9
  217. package/dist/types/privacy/shield-app.d.ts +1 -1
  218. package/dist/types/schema/effects.d.ts +132 -0
  219. package/dist/types/schema/fiber-app.d.ts +281 -0
  220. package/dist/types/schema/guards.d.ts +12 -0
  221. package/dist/types/templates/asset-policy.d.ts +119 -0
  222. package/dist/types/templates/index.d.ts +26 -0
  223. package/dist/types/templates/machine.d.ts +139 -0
  224. package/dist/types/templates/migration.d.ts +34 -0
  225. package/dist/types/templates/state-shape.d.ts +30 -0
  226. package/dist/types/zk/index.d.ts +4 -4
  227. package/package.json +31 -13
@@ -8,169 +8,169 @@ const guards_js_1 = require("../../../schema/guards.js");
8
8
  */
9
9
  exports.daoMultisigDef = (0, fiber_app_js_1.defineFiberApp)({
10
10
  metadata: {
11
- name: "MultisigDAO",
12
- app: "governance",
13
- type: "daoMultisig",
14
- version: "1.0.0",
15
- description: "N-of-M multisig governance. Requires threshold signatures for actions.",
16
- category: "governance/dao",
11
+ name: 'MultisigDAO',
12
+ app: 'governance',
13
+ type: 'daoMultisig',
14
+ version: '1.0.0',
15
+ description: 'N-of-M multisig governance. Requires threshold signatures for actions.',
16
+ category: 'governance/dao',
17
17
  crossReferences: {
18
- Identity: "signer verification",
19
- Contract: "action execution targets",
20
- Treasury: "fund management",
21
- Escrow: "controlled release",
18
+ Identity: 'signer verification',
19
+ Contract: 'action execution targets',
20
+ Treasury: 'fund management',
21
+ Escrow: 'controlled release',
22
22
  },
23
23
  },
24
24
  createSchema: {
25
- required: ["signers", "threshold", "proposalTTLMs"],
25
+ required: ['signers', 'threshold', 'proposalTTLMs'],
26
26
  properties: {
27
27
  signers: {
28
- type: "array",
29
- description: "Authorized signer addresses",
28
+ type: 'array',
29
+ description: 'Authorized signer addresses',
30
30
  immutable: false,
31
31
  },
32
32
  threshold: {
33
- type: "number",
34
- description: "Number of signatures required to execute",
33
+ type: 'number',
34
+ description: 'Number of signatures required to execute',
35
35
  },
36
36
  proposalTTLMs: {
37
- type: "number",
38
- description: "Proposal expiry window in milliseconds",
37
+ type: 'number',
38
+ description: 'Proposal expiry window in milliseconds',
39
39
  },
40
40
  },
41
41
  },
42
42
  stateSchema: {
43
43
  properties: {
44
- signers: { type: "array" },
45
- threshold: { type: "number" },
46
- proposalTTLMs: { type: "number" },
47
- proposal: { type: "object" },
48
- signatures: { type: "object", computed: true },
49
- actions: { type: "array", computed: true },
50
- cancelledProposals: { type: "array", computed: true },
51
- status: { type: "string", computed: true },
44
+ signers: { type: 'array' },
45
+ threshold: { type: 'number' },
46
+ proposalTTLMs: { type: 'number' },
47
+ proposal: { type: 'object' },
48
+ signatures: { type: 'object', computed: true },
49
+ actions: { type: 'array', computed: true },
50
+ cancelledProposals: { type: 'array', computed: true },
51
+ status: { type: 'string', computed: true },
52
52
  },
53
53
  },
54
54
  eventSchemas: {
55
55
  propose: {
56
- description: "Propose an action (signer only)",
57
- required: ["proposalId", "actionType", "payload"],
56
+ description: 'Propose an action (signer only)',
57
+ required: ['proposalId', 'actionType', 'payload'],
58
58
  properties: {
59
- agent: { type: "address" },
60
- proposalId: { type: "string" },
61
- actionType: { type: "string" },
62
- payload: { type: "object" },
59
+ agent: { type: 'address' },
60
+ proposalId: { type: 'string' },
61
+ actionType: { type: 'string' },
62
+ payload: { type: 'object' },
63
63
  },
64
64
  },
65
65
  sign: {
66
- description: "Sign the current proposal (signer only, no double-signing)",
66
+ description: 'Sign the current proposal (signer only, no double-signing)',
67
67
  properties: {
68
- agent: { type: "address" },
68
+ agent: { type: 'address' },
69
69
  },
70
70
  },
71
71
  execute: {
72
- description: "Execute once threshold signatures collected",
72
+ description: 'Execute once threshold signatures collected',
73
73
  properties: {
74
- agent: { type: "address" },
74
+ agent: { type: 'address' },
75
75
  },
76
76
  },
77
77
  cancel: {
78
- description: "Cancel proposal (expired or proposer)",
78
+ description: 'Cancel proposal (expired or proposer)',
79
79
  properties: {
80
- agent: { type: "address" },
80
+ agent: { type: 'address' },
81
81
  },
82
82
  },
83
83
  propose_add_signer: {
84
- description: "Propose adding a new signer (signer only)",
85
- required: ["proposalId", "newSigner"],
84
+ description: 'Propose adding a new signer (signer only)',
85
+ required: ['proposalId', 'newSigner'],
86
86
  properties: {
87
- agent: { type: "address" },
88
- proposalId: { type: "string" },
89
- newSigner: { type: "address" },
87
+ agent: { type: 'address' },
88
+ proposalId: { type: 'string' },
89
+ newSigner: { type: 'address' },
90
90
  },
91
91
  },
92
92
  propose_remove_signer: {
93
- description: "Propose removing a signer (signer only, must keep > threshold signers)",
94
- required: ["proposalId", "removeSigner"],
93
+ description: 'Propose removing a signer (signer only, must keep > threshold signers)',
94
+ required: ['proposalId', 'removeSigner'],
95
95
  properties: {
96
- agent: { type: "address" },
97
- proposalId: { type: "string" },
98
- removeSigner: { type: "address" },
96
+ agent: { type: 'address' },
97
+ proposalId: { type: 'string' },
98
+ removeSigner: { type: 'address' },
99
99
  },
100
100
  },
101
101
  propose_change_threshold: {
102
- description: "Propose changing the signature threshold",
103
- required: ["proposalId", "newThreshold"],
102
+ description: 'Propose changing the signature threshold',
103
+ required: ['proposalId', 'newThreshold'],
104
104
  properties: {
105
- agent: { type: "address" },
106
- proposalId: { type: "string" },
107
- newThreshold: { type: "number", minimum: 1 },
105
+ agent: { type: 'address' },
106
+ proposalId: { type: 'string' },
107
+ newThreshold: { type: 'number', minimum: 1 },
108
108
  },
109
109
  },
110
110
  apply_signer_change: {
111
- description: "Apply approved signer-set or threshold change",
111
+ description: 'Apply approved signer-set or threshold change',
112
112
  properties: {
113
- agent: { type: "address" },
113
+ agent: { type: 'address' },
114
114
  },
115
115
  },
116
116
  dissolve: {
117
- description: "Dissolve the DAO (requires every signer to sign this op — verified unanimity)",
117
+ description: 'Dissolve the DAO (requires every signer to sign this op — verified unanimity)',
118
118
  properties: {},
119
119
  },
120
120
  },
121
121
  states: {
122
122
  ACTIVE: {
123
- id: "ACTIVE",
123
+ id: 'ACTIVE',
124
124
  isFinal: false,
125
125
  metadata: {
126
- label: "Active",
127
- description: "Multisig is idle and ready to propose an action",
128
- category: "initial",
126
+ label: 'Active',
127
+ description: 'Multisig is idle and ready to propose an action',
128
+ category: 'initial',
129
129
  },
130
130
  },
131
131
  PENDING: {
132
- id: "PENDING",
132
+ id: 'PENDING',
133
133
  isFinal: false,
134
134
  metadata: {
135
- label: "Pending",
136
- description: "An action is awaiting the required signature threshold",
137
- category: "pending",
135
+ label: 'Pending',
136
+ description: 'An action is awaiting the required signature threshold',
137
+ category: 'pending',
138
138
  },
139
139
  },
140
140
  DISSOLVED: {
141
- id: "DISSOLVED",
141
+ id: 'DISSOLVED',
142
142
  isFinal: true,
143
143
  metadata: {
144
- label: "Dissolved",
145
- description: "Multisig DAO dissolved (terminal)",
146
- category: "terminal",
144
+ label: 'Dissolved',
145
+ description: 'Multisig DAO dissolved (terminal)',
146
+ category: 'terminal',
147
147
  },
148
148
  },
149
149
  },
150
- initialState: "ACTIVE",
150
+ initialState: 'ACTIVE',
151
151
  transitions: [
152
152
  // ACTIVE → PENDING: propose (signer only)
153
153
  {
154
- from: "ACTIVE",
155
- to: "PENDING",
156
- eventName: "propose",
157
- guard: (0, guards_js_1.actorInSet)("state.signers"),
154
+ from: 'ACTIVE',
155
+ to: 'PENDING',
156
+ eventName: 'propose',
157
+ guard: (0, guards_js_1.actorInSet)('state.signers'),
158
158
  effect: {
159
159
  merge: [
160
- { var: "state" },
160
+ { var: 'state' },
161
161
  {
162
162
  proposal: {
163
- id: { var: "event.proposalId" },
164
- actionType: { var: "event.actionType" },
165
- payload: { var: "event.payload" },
166
- proposer: { var: "event.agent" },
167
- proposedAt: { var: "$ordinal" },
163
+ id: { var: 'event.proposalId' },
164
+ actionType: { var: 'event.actionType' },
165
+ payload: { var: 'event.payload' },
166
+ proposer: { var: 'event.agent' },
167
+ proposedAt: { var: '$ordinal' },
168
168
  expiresAt: {
169
- "+": [{ var: "$ordinal" }, { var: "state.proposalTTLMs" }],
169
+ '+': [{ var: '$ordinal' }, { var: 'state.proposalTTLMs' }],
170
170
  },
171
171
  },
172
172
  signatures: {
173
- set: [{}, { var: "event.agent" }, { var: "$ordinal" }],
173
+ set: [{}, { var: 'event.agent' }, { var: '$ordinal' }],
174
174
  },
175
175
  },
176
176
  ],
@@ -179,35 +179,26 @@ exports.daoMultisigDef = (0, fiber_app_js_1.defineFiberApp)({
179
179
  },
180
180
  // PENDING → PENDING: sign (signer, no double-sign, not yet at threshold)
181
181
  {
182
- from: "PENDING",
183
- to: "PENDING",
184
- eventName: "sign",
182
+ from: 'PENDING',
183
+ to: 'PENDING',
184
+ eventName: 'sign',
185
185
  guard: {
186
186
  and: [
187
- (0, guards_js_1.actorInSet)("state.signers"),
187
+ (0, guards_js_1.actorInSet)('state.signers'),
188
188
  {
189
- "!": [
190
- { has: [{ var: "state.signatures" }, { var: "event.agent" }] },
191
- ],
189
+ '!': [{ has: [{ var: 'state.signatures' }, { var: 'event.agent' }] }],
192
190
  },
193
191
  {
194
- "<": [
195
- { length: [{ keys: [{ var: "state.signatures" }] }] },
196
- { var: "state.threshold" },
197
- ],
192
+ '<': [{ length: [{ keys: [{ var: 'state.signatures' }] }] }, { var: 'state.threshold' }],
198
193
  },
199
194
  ],
200
195
  },
201
196
  effect: {
202
197
  merge: [
203
- { var: "state" },
198
+ { var: 'state' },
204
199
  {
205
200
  signatures: {
206
- set: [
207
- { var: "state.signatures" },
208
- { var: "event.agent" },
209
- { var: "$ordinal" },
210
- ],
201
+ set: [{ var: 'state.signatures' }, { var: 'event.agent' }, { var: '$ordinal' }],
211
202
  },
212
203
  },
213
204
  ],
@@ -216,29 +207,26 @@ exports.daoMultisigDef = (0, fiber_app_js_1.defineFiberApp)({
216
207
  },
217
208
  // PENDING → ACTIVE: execute (threshold met)
218
209
  {
219
- from: "PENDING",
220
- to: "ACTIVE",
221
- eventName: "execute",
210
+ from: 'PENDING',
211
+ to: 'ACTIVE',
212
+ eventName: 'execute',
222
213
  guard: {
223
- ">=": [
224
- { length: [{ keys: [{ var: "state.signatures" }] }] },
225
- { var: "state.threshold" },
226
- ],
214
+ '>=': [{ length: [{ keys: [{ var: 'state.signatures' }] }] }, { var: 'state.threshold' }],
227
215
  },
228
216
  effect: {
229
217
  merge: [
230
- { var: "state" },
218
+ { var: 'state' },
231
219
  {
232
220
  actions: {
233
221
  cat: [
234
- { var: "state.actions" },
222
+ { var: 'state.actions' },
235
223
  [
236
224
  {
237
- id: { var: "state.proposal.id" },
238
- type: { var: "state.proposal.actionType" },
239
- payload: { var: "state.proposal.payload" },
240
- signatures: { var: "state.signatures" },
241
- executedAt: { var: "$ordinal" },
225
+ id: { var: 'state.proposal.id' },
226
+ type: { var: 'state.proposal.actionType' },
227
+ payload: { var: 'state.proposal.payload' },
228
+ signatures: { var: 'state.signatures' },
229
+ executedAt: { var: '$ordinal' },
242
230
  },
243
231
  ],
244
232
  ],
@@ -249,9 +237,9 @@ exports.daoMultisigDef = (0, fiber_app_js_1.defineFiberApp)({
249
237
  // under the reserved `_emit` key (extracted as an EmittedEvent, stripped from state).
250
238
  _emit: [
251
239
  {
252
- name: "multisig_executed",
253
- data: { proposalId: { var: "state.proposal.id" } },
254
- destination: "external",
240
+ name: 'multisig_executed',
241
+ data: { proposalId: { var: 'state.proposal.id' } },
242
+ destination: 'external',
255
243
  },
256
244
  ],
257
245
  },
@@ -261,28 +249,25 @@ exports.daoMultisigDef = (0, fiber_app_js_1.defineFiberApp)({
261
249
  },
262
250
  // PENDING → ACTIVE: cancel (expired or proposer)
263
251
  {
264
- from: "PENDING",
265
- to: "ACTIVE",
266
- eventName: "cancel",
252
+ from: 'PENDING',
253
+ to: 'ACTIVE',
254
+ eventName: 'cancel',
267
255
  guard: {
268
256
  or: [
269
- { ">": [{ var: "$ordinal" }, { var: "state.proposal.expiresAt" }] },
270
- (0, guards_js_1.signerIsParty)("state.proposal.proposer"),
257
+ { '>': [{ var: '$ordinal' }, { var: 'state.proposal.expiresAt' }] },
258
+ (0, guards_js_1.signerIsParty)('state.proposal.proposer'),
271
259
  ],
272
260
  },
273
261
  effect: {
274
262
  merge: [
275
- { var: "state" },
263
+ { var: 'state' },
276
264
  {
277
265
  cancelledProposals: {
278
266
  cat: [
279
- { var: "state.cancelledProposals" },
267
+ { var: 'state.cancelledProposals' },
280
268
  [
281
269
  {
282
- merge: [
283
- { var: "state.proposal" },
284
- { cancelledAt: { var: "$ordinal" } },
285
- ],
270
+ merge: [{ var: 'state.proposal' }, { cancelledAt: { var: '$ordinal' } }],
286
271
  },
287
272
  ],
288
273
  ],
@@ -296,26 +281,26 @@ exports.daoMultisigDef = (0, fiber_app_js_1.defineFiberApp)({
296
281
  },
297
282
  // ACTIVE → PENDING: propose_add_signer
298
283
  {
299
- from: "ACTIVE",
300
- to: "PENDING",
301
- eventName: "propose_add_signer",
302
- guard: (0, guards_js_1.actorInSet)("state.signers"),
284
+ from: 'ACTIVE',
285
+ to: 'PENDING',
286
+ eventName: 'propose_add_signer',
287
+ guard: (0, guards_js_1.actorInSet)('state.signers'),
303
288
  effect: {
304
289
  merge: [
305
- { var: "state" },
290
+ { var: 'state' },
306
291
  {
307
292
  proposal: {
308
- id: { var: "event.proposalId" },
309
- actionType: "add_signer",
310
- payload: { newSigner: { var: "event.newSigner" } },
311
- proposer: { var: "event.agent" },
312
- proposedAt: { var: "$ordinal" },
293
+ id: { var: 'event.proposalId' },
294
+ actionType: 'add_signer',
295
+ payload: { newSigner: { var: 'event.newSigner' } },
296
+ proposer: { var: 'event.agent' },
297
+ proposedAt: { var: '$ordinal' },
313
298
  expiresAt: {
314
- "+": [{ var: "$ordinal" }, { var: "state.proposalTTLMs" }],
299
+ '+': [{ var: '$ordinal' }, { var: 'state.proposalTTLMs' }],
315
300
  },
316
301
  },
317
302
  signatures: {
318
- set: [{}, { var: "event.agent" }, { var: "$ordinal" }],
303
+ set: [{}, { var: 'event.agent' }, { var: '$ordinal' }],
319
304
  },
320
305
  },
321
306
  ],
@@ -324,36 +309,33 @@ exports.daoMultisigDef = (0, fiber_app_js_1.defineFiberApp)({
324
309
  },
325
310
  // ACTIVE → PENDING: propose_remove_signer (signers > threshold)
326
311
  {
327
- from: "ACTIVE",
328
- to: "PENDING",
329
- eventName: "propose_remove_signer",
312
+ from: 'ACTIVE',
313
+ to: 'PENDING',
314
+ eventName: 'propose_remove_signer',
330
315
  guard: {
331
316
  and: [
332
- (0, guards_js_1.actorInSet)("state.signers"),
317
+ (0, guards_js_1.actorInSet)('state.signers'),
333
318
  {
334
- ">": [
335
- { length: [{ var: "state.signers" }] },
336
- { var: "state.threshold" },
337
- ],
319
+ '>': [{ length: [{ var: 'state.signers' }] }, { var: 'state.threshold' }],
338
320
  },
339
321
  ],
340
322
  },
341
323
  effect: {
342
324
  merge: [
343
- { var: "state" },
325
+ { var: 'state' },
344
326
  {
345
327
  proposal: {
346
- id: { var: "event.proposalId" },
347
- actionType: "remove_signer",
348
- payload: { removeSigner: { var: "event.removeSigner" } },
349
- proposer: { var: "event.agent" },
350
- proposedAt: { var: "$ordinal" },
328
+ id: { var: 'event.proposalId' },
329
+ actionType: 'remove_signer',
330
+ payload: { removeSigner: { var: 'event.removeSigner' } },
331
+ proposer: { var: 'event.agent' },
332
+ proposedAt: { var: '$ordinal' },
351
333
  expiresAt: {
352
- "+": [{ var: "$ordinal" }, { var: "state.proposalTTLMs" }],
334
+ '+': [{ var: '$ordinal' }, { var: 'state.proposalTTLMs' }],
353
335
  },
354
336
  },
355
337
  signatures: {
356
- set: [{}, { var: "event.agent" }, { var: "$ordinal" }],
338
+ set: [{}, { var: 'event.agent' }, { var: '$ordinal' }],
357
339
  },
358
340
  },
359
341
  ],
@@ -362,37 +344,34 @@ exports.daoMultisigDef = (0, fiber_app_js_1.defineFiberApp)({
362
344
  },
363
345
  // ACTIVE → PENDING: propose_change_threshold (1 <= new <= signers count)
364
346
  {
365
- from: "ACTIVE",
366
- to: "PENDING",
367
- eventName: "propose_change_threshold",
347
+ from: 'ACTIVE',
348
+ to: 'PENDING',
349
+ eventName: 'propose_change_threshold',
368
350
  guard: {
369
351
  and: [
370
- (0, guards_js_1.actorInSet)("state.signers"),
371
- { ">=": [{ var: "event.newThreshold" }, 1] },
352
+ (0, guards_js_1.actorInSet)('state.signers'),
353
+ { '>=': [{ var: 'event.newThreshold' }, 1] },
372
354
  {
373
- "<=": [
374
- { var: "event.newThreshold" },
375
- { length: [{ var: "state.signers" }] },
376
- ],
355
+ '<=': [{ var: 'event.newThreshold' }, { length: [{ var: 'state.signers' }] }],
377
356
  },
378
357
  ],
379
358
  },
380
359
  effect: {
381
360
  merge: [
382
- { var: "state" },
361
+ { var: 'state' },
383
362
  {
384
363
  proposal: {
385
- id: { var: "event.proposalId" },
386
- actionType: "change_threshold",
387
- payload: { newThreshold: { var: "event.newThreshold" } },
388
- proposer: { var: "event.agent" },
389
- proposedAt: { var: "$ordinal" },
364
+ id: { var: 'event.proposalId' },
365
+ actionType: 'change_threshold',
366
+ payload: { newThreshold: { var: 'event.newThreshold' } },
367
+ proposer: { var: 'event.agent' },
368
+ proposedAt: { var: '$ordinal' },
390
369
  expiresAt: {
391
- "+": [{ var: "$ordinal" }, { var: "state.proposalTTLMs" }],
370
+ '+': [{ var: '$ordinal' }, { var: 'state.proposalTTLMs' }],
392
371
  },
393
372
  },
394
373
  signatures: {
395
- set: [{}, { var: "event.agent" }, { var: "$ordinal" }],
374
+ set: [{}, { var: 'event.agent' }, { var: '$ordinal' }],
396
375
  },
397
376
  },
398
377
  ],
@@ -401,56 +380,44 @@ exports.daoMultisigDef = (0, fiber_app_js_1.defineFiberApp)({
401
380
  },
402
381
  // PENDING → ACTIVE: apply_signer_change (threshold met, signer-type proposal)
403
382
  {
404
- from: "PENDING",
405
- to: "ACTIVE",
406
- eventName: "apply_signer_change",
383
+ from: 'PENDING',
384
+ to: 'ACTIVE',
385
+ eventName: 'apply_signer_change',
407
386
  guard: {
408
387
  and: [
409
388
  {
410
- ">=": [
411
- { length: [{ keys: [{ var: "state.signatures" }] }] },
412
- { var: "state.threshold" },
413
- ],
389
+ '>=': [{ length: [{ keys: [{ var: 'state.signatures' }] }] }, { var: 'state.threshold' }],
414
390
  },
415
391
  {
416
- in: [
417
- { var: "state.proposal.actionType" },
418
- ["add_signer", "remove_signer", "change_threshold"],
419
- ],
392
+ in: [{ var: 'state.proposal.actionType' }, ['add_signer', 'remove_signer', 'change_threshold']],
420
393
  },
421
394
  ],
422
395
  },
423
396
  effect: {
424
397
  if: [
425
- { "===": [{ var: "state.proposal.actionType" }, "add_signer"] },
398
+ { '===': [{ var: 'state.proposal.actionType' }, 'add_signer'] },
426
399
  {
427
400
  merge: [
428
- { var: "state" },
401
+ { var: 'state' },
429
402
  {
430
403
  signers: {
431
- cat: [
432
- { var: "state.signers" },
433
- [{ var: "state.proposal.payload.newSigner" }],
434
- ],
404
+ cat: [{ var: 'state.signers' }, [{ var: 'state.proposal.payload.newSigner' }]],
435
405
  },
436
406
  proposal: null,
437
407
  signatures: {},
438
408
  },
439
409
  ],
440
410
  },
441
- { "===": [{ var: "state.proposal.actionType" }, "remove_signer"] },
411
+ { '===': [{ var: 'state.proposal.actionType' }, 'remove_signer'] },
442
412
  {
443
413
  merge: [
444
- { var: "state" },
414
+ { var: 'state' },
445
415
  {
446
416
  signers: {
447
417
  filter: [
448
- { var: "state.signers" },
418
+ { var: 'state.signers' },
449
419
  {
450
- "!==": [
451
- { var: "" },
452
- { var: "state.proposal.payload.removeSigner" },
453
- ],
420
+ '!==': [{ var: '' }, { var: 'state.proposal.payload.removeSigner' }],
454
421
  },
455
422
  ],
456
423
  },
@@ -461,9 +428,9 @@ exports.daoMultisigDef = (0, fiber_app_js_1.defineFiberApp)({
461
428
  },
462
429
  {
463
430
  merge: [
464
- { var: "state" },
431
+ { var: 'state' },
465
432
  {
466
- threshold: { var: "state.proposal.payload.newThreshold" },
433
+ threshold: { var: 'state.proposal.payload.newThreshold' },
467
434
  proposal: null,
468
435
  signatures: {},
469
436
  },
@@ -475,33 +442,27 @@ exports.daoMultisigDef = (0, fiber_app_js_1.defineFiberApp)({
475
442
  },
476
443
  // ACTIVE → DISSOLVED: dissolve (unanimous)
477
444
  {
478
- from: "ACTIVE",
479
- to: "DISSOLVED",
480
- eventName: "dissolve",
445
+ from: 'ACTIVE',
446
+ to: 'DISSOLVED',
447
+ eventName: 'dissolve',
481
448
  // S2 fix: dissolution must not trust an attacker-supplied count. Derive
482
449
  // unanimity from the CHAIN-VERIFIED signers — every signer in state.signers
483
450
  // must be among proofs[].address (with a non-empty belt). signers is an array.
484
451
  guard: {
485
452
  and: [
486
- { ">": [{ length: [{ var: "state.signers" }] }, 0] },
453
+ { '>': [{ length: [{ var: 'state.signers' }] }, 0] },
487
454
  {
488
455
  all: [
489
- { var: "state.signers" },
456
+ { var: 'state.signers' },
490
457
  {
491
- in: [
492
- { var: "" },
493
- { map: [{ var: "proofs" }, { var: "address" }] },
494
- ],
458
+ in: [{ var: '' }, { map: [{ var: 'proofs' }, { var: 'address' }] }],
495
459
  },
496
460
  ],
497
461
  },
498
462
  ],
499
463
  },
500
464
  effect: {
501
- merge: [
502
- { var: "state" },
503
- { dissolvedAt: { var: "$ordinal" }, status: "DISSOLVED" },
504
- ],
465
+ merge: [{ var: 'state' }, { dissolvedAt: { var: '$ordinal' }, status: 'DISSOLVED' }],
505
466
  },
506
467
  dependencies: [],
507
468
  },