@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
@@ -1,122 +1,122 @@
1
- import { defineFiberApp } from "../../../schema/fiber-app.js";
2
- import { signerIsParty } from "../../../schema/guards.js";
1
+ import { defineFiberApp } from '../../../schema/fiber-app.js';
2
+ import { signerIsParty } from '../../../schema/guards.js';
3
3
  /**
4
4
  * Asset custody with conditional release, dispute resolution, and split payments.
5
5
  */
6
6
  export const contractEscrowDef = defineFiberApp({
7
7
  metadata: {
8
- name: "ContractEscrow",
9
- app: "contracts",
10
- type: "escrow",
11
- version: "1.0.0",
12
- description: "Asset custody with conditional release, dispute resolution, and split payments",
8
+ name: 'ContractEscrow',
9
+ app: 'contracts',
10
+ type: 'escrow',
11
+ version: '1.0.0',
12
+ description: 'Asset custody with conditional release, dispute resolution, and split payments',
13
13
  crossReferences: {
14
14
  contractId: {
15
- machine: "contract-agreement",
16
- field: "contractId",
17
- description: "Links to Contract SM that created this escrow",
15
+ machine: 'contract-agreement',
16
+ field: 'contractId',
17
+ description: 'Links to Contract SM that created this escrow',
18
18
  },
19
19
  marketId: {
20
- machine: "market-universal",
21
- field: "marketId",
22
- description: "Links to Market SM for market-based escrow",
20
+ machine: 'market-universal',
21
+ field: 'marketId',
22
+ description: 'Links to Market SM for market-based escrow',
23
23
  },
24
24
  insuranceId: {
25
- machine: "insurance",
26
- field: "insuranceId",
27
- description: "Links to Insurance SM for protected escrow",
25
+ machine: 'insurance',
26
+ field: 'insuranceId',
27
+ description: 'Links to Insurance SM for protected escrow',
28
28
  },
29
29
  arbitrationPoolId: {
30
- machine: "arbitration-pool",
31
- field: "arbitrationPoolId",
32
- description: "Links to ArbitrationPool for dispute resolution",
30
+ machine: 'arbitration-pool',
31
+ field: 'arbitrationPoolId',
32
+ description: 'Links to ArbitrationPool for dispute resolution',
33
33
  },
34
34
  treasuryId: {
35
- machine: "treasury",
36
- field: "treasuryId",
37
- description: "Links to Treasury for fee collection",
35
+ machine: 'treasury',
36
+ field: 'treasuryId',
37
+ description: 'Links to Treasury for fee collection',
38
38
  },
39
39
  },
40
40
  },
41
41
  createSchema: {
42
- required: ["depositor", "beneficiary", "requiredAmount", "arbiter"],
42
+ required: ['depositor', 'beneficiary', 'requiredAmount', 'arbiter'],
43
43
  properties: {
44
44
  depositor: {
45
- type: "address",
46
- description: "DAG address of the depositor",
45
+ type: 'address',
46
+ description: 'DAG address of the depositor',
47
47
  },
48
48
  beneficiary: {
49
- type: "address",
50
- description: "DAG address of the beneficiary",
49
+ type: 'address',
50
+ description: 'DAG address of the beneficiary',
51
51
  },
52
52
  arbiter: {
53
- type: "address",
54
- description: "DAG address of the arbiter authorized to rule on a dispute",
53
+ type: 'address',
54
+ description: 'DAG address of the arbiter authorized to rule on a dispute',
55
55
  immutable: true,
56
56
  },
57
57
  requiredAmount: {
58
- type: "number",
58
+ type: 'number',
59
59
  minimum: 0,
60
- description: "Required escrow amount",
60
+ description: 'Required escrow amount',
61
61
  },
62
62
  releaseWindowMs: {
63
- type: "integer",
64
- description: "Time window for dispute before auto-release",
63
+ type: 'integer',
64
+ description: 'Time window for dispute before auto-release',
65
65
  nullable: true,
66
66
  },
67
67
  expiresAt: {
68
- type: "integer",
69
- description: "Timestamp when escrow expires",
68
+ type: 'integer',
69
+ description: 'Timestamp when escrow expires',
70
70
  nullable: true,
71
71
  },
72
72
  autoActivate: {
73
- type: "boolean",
74
- description: "Whether to auto-activate on funding",
73
+ type: 'boolean',
74
+ description: 'Whether to auto-activate on funding',
75
75
  nullable: true,
76
76
  },
77
77
  },
78
78
  },
79
79
  stateSchema: {
80
80
  properties: {
81
- depositor: { type: "address" },
82
- beneficiary: { type: "address" },
83
- arbiter: { type: "address", immutable: true },
84
- requiredAmount: { type: "number" },
85
- balance: { type: "number" },
86
- fundedAt: { type: "integer", nullable: true },
87
- activatedAt: { type: "integer", nullable: true },
88
- releaseRequest: { type: "object", nullable: true },
89
- releaseDeadline: { type: "integer", nullable: true },
90
- releasedAt: { type: "integer", nullable: true },
91
- releasedTo: { type: "address", nullable: true },
92
- disputedAt: { type: "integer", nullable: true },
93
- refundedAt: { type: "integer", nullable: true },
94
- splits: { type: "array", nullable: true },
95
- rulingId: { type: "string", nullable: true },
96
- releaseWindowMs: { type: "integer", nullable: true },
97
- expiresAt: { type: "integer", nullable: true },
98
- autoActivate: { type: "boolean", nullable: true },
81
+ depositor: { type: 'address' },
82
+ beneficiary: { type: 'address' },
83
+ arbiter: { type: 'address', immutable: true },
84
+ requiredAmount: { type: 'number' },
85
+ balance: { type: 'number' },
86
+ fundedAt: { type: 'integer', nullable: true },
87
+ activatedAt: { type: 'integer', nullable: true },
88
+ releaseRequest: { type: 'object', nullable: true },
89
+ releaseDeadline: { type: 'integer', nullable: true },
90
+ releasedAt: { type: 'integer', nullable: true },
91
+ releasedTo: { type: 'address', nullable: true },
92
+ disputedAt: { type: 'integer', nullable: true },
93
+ refundedAt: { type: 'integer', nullable: true },
94
+ splits: { type: 'array', nullable: true },
95
+ rulingId: { type: 'string', nullable: true },
96
+ releaseWindowMs: { type: 'integer', nullable: true },
97
+ expiresAt: { type: 'integer', nullable: true },
98
+ autoActivate: { type: 'boolean', nullable: true },
99
99
  },
100
100
  },
101
101
  eventSchemas: {
102
102
  deposit: {
103
103
  properties: {
104
- amount: { type: "number" },
104
+ amount: { type: 'number' },
105
105
  },
106
106
  },
107
107
  activate: {},
108
108
  request_release: {
109
109
  properties: {
110
- amount: { type: "number" },
111
- reason: { type: "string", nullable: true },
110
+ amount: { type: 'number' },
111
+ reason: { type: 'string', nullable: true },
112
112
  },
113
113
  },
114
114
  approve_release: {},
115
115
  dispute: {},
116
116
  ruling: {
117
117
  properties: {
118
- splits: { type: "array" },
119
- rulingId: { type: "string" },
118
+ splits: { type: 'array' },
119
+ rulingId: { type: 'string' },
120
120
  },
121
121
  },
122
122
  refund: {},
@@ -124,130 +124,121 @@ export const contractEscrowDef = defineFiberApp({
124
124
  },
125
125
  states: {
126
126
  CREATED: {
127
- id: "CREATED",
127
+ id: 'CREATED',
128
128
  isFinal: false,
129
129
  metadata: {
130
- label: "Created",
131
- description: "Escrow created; awaiting funding",
132
- category: "initial",
130
+ label: 'Created',
131
+ description: 'Escrow created; awaiting funding',
132
+ category: 'initial',
133
133
  },
134
134
  },
135
135
  FUNDED: {
136
- id: "FUNDED",
136
+ id: 'FUNDED',
137
137
  isFinal: false,
138
138
  metadata: {
139
- label: "Funded",
140
- description: "Funds deposited into escrow",
141
- category: "active",
139
+ label: 'Funded',
140
+ description: 'Funds deposited into escrow',
141
+ category: 'active',
142
142
  },
143
143
  },
144
144
  ACTIVE: {
145
- id: "ACTIVE",
145
+ id: 'ACTIVE',
146
146
  isFinal: false,
147
147
  metadata: {
148
- label: "Active",
149
- description: "Escrow in effect while work is performed",
150
- category: "active",
148
+ label: 'Active',
149
+ description: 'Escrow in effect while work is performed',
150
+ category: 'active',
151
151
  },
152
152
  },
153
153
  RELEASING: {
154
- id: "RELEASING",
154
+ id: 'RELEASING',
155
155
  isFinal: false,
156
156
  metadata: {
157
- label: "Releasing",
158
- description: "Release approved; payout in progress",
159
- category: "pending",
157
+ label: 'Releasing',
158
+ description: 'Release approved; payout in progress',
159
+ category: 'pending',
160
160
  },
161
161
  },
162
162
  DISPUTED: {
163
- id: "DISPUTED",
163
+ id: 'DISPUTED',
164
164
  isFinal: false,
165
165
  metadata: {
166
- label: "Disputed",
167
- description: "A party disputed the escrow; awaiting arbitration",
168
- category: "pending",
166
+ label: 'Disputed',
167
+ description: 'A party disputed the escrow; awaiting arbitration',
168
+ category: 'pending',
169
169
  },
170
170
  },
171
171
  RELEASED: {
172
- id: "RELEASED",
172
+ id: 'RELEASED',
173
173
  isFinal: true,
174
174
  metadata: {
175
- label: "Released",
176
- description: "Funds released to the beneficiary (terminal)",
177
- category: "terminal",
175
+ label: 'Released',
176
+ description: 'Funds released to the beneficiary (terminal)',
177
+ category: 'terminal',
178
178
  },
179
179
  },
180
180
  REFUNDED: {
181
- id: "REFUNDED",
181
+ id: 'REFUNDED',
182
182
  isFinal: true,
183
183
  metadata: {
184
- label: "Refunded",
185
- description: "Funds refunded to the depositor (terminal)",
186
- category: "terminal",
184
+ label: 'Refunded',
185
+ description: 'Funds refunded to the depositor (terminal)',
186
+ category: 'terminal',
187
187
  },
188
188
  },
189
189
  SPLIT: {
190
- id: "SPLIT",
190
+ id: 'SPLIT',
191
191
  isFinal: true,
192
192
  metadata: {
193
- label: "Split",
194
- description: "Funds split between parties per arbitration (terminal)",
195
- category: "terminal",
193
+ label: 'Split',
194
+ description: 'Funds split between parties per arbitration (terminal)',
195
+ category: 'terminal',
196
196
  },
197
197
  },
198
198
  },
199
- initialState: "CREATED",
199
+ initialState: 'CREATED',
200
200
  transitions: [
201
201
  {
202
- from: "CREATED",
203
- to: "FUNDED",
204
- eventName: "deposit",
202
+ from: 'CREATED',
203
+ to: 'FUNDED',
204
+ eventName: 'deposit',
205
205
  guard: {
206
- and: [
207
- signerIsParty("state.depositor"),
208
- { ">=": [{ var: "event.amount" }, { var: "state.requiredAmount" }] },
209
- ],
206
+ and: [signerIsParty('state.depositor'), { '>=': [{ var: 'event.amount' }, { var: 'state.requiredAmount' }] }],
210
207
  },
211
208
  effect: {
212
- merge: [
213
- { var: "state" },
214
- { balance: { var: "event.amount" }, fundedAt: { var: "$ordinal" } },
215
- ],
209
+ merge: [{ var: 'state' }, { balance: { var: 'event.amount' }, fundedAt: { var: '$ordinal' } }],
216
210
  },
217
211
  dependencies: [],
218
212
  },
219
213
  {
220
- from: "FUNDED",
221
- to: "ACTIVE",
222
- eventName: "activate",
214
+ from: 'FUNDED',
215
+ to: 'ACTIVE',
216
+ eventName: 'activate',
223
217
  guard: {
224
- or: [
225
- signerIsParty("state.beneficiary"),
226
- { var: "state.autoActivate" },
227
- ],
218
+ or: [signerIsParty('state.beneficiary'), { var: 'state.autoActivate' }],
228
219
  },
229
220
  effect: {
230
- merge: [{ var: "state" }, { activatedAt: { var: "$ordinal" } }],
221
+ merge: [{ var: 'state' }, { activatedAt: { var: '$ordinal' } }],
231
222
  },
232
223
  dependencies: [],
233
224
  },
234
225
  {
235
- from: "ACTIVE",
236
- to: "RELEASING",
237
- eventName: "request_release",
238
- guard: signerIsParty("state.beneficiary"),
226
+ from: 'ACTIVE',
227
+ to: 'RELEASING',
228
+ eventName: 'request_release',
229
+ guard: signerIsParty('state.beneficiary'),
239
230
  effect: {
240
231
  merge: [
241
- { var: "state" },
232
+ { var: 'state' },
242
233
  {
243
234
  releaseRequest: {
244
- requestedBy: { var: "event.agent" },
245
- amount: { var: "event.amount" },
246
- reason: { var: "event.reason" },
247
- requestedAt: { var: "$ordinal" },
235
+ requestedBy: { var: 'event.agent' },
236
+ amount: { var: 'event.amount' },
237
+ reason: { var: 'event.reason' },
238
+ requestedAt: { var: '$ordinal' },
248
239
  },
249
240
  releaseDeadline: {
250
- "+": [{ var: "$ordinal" }, { var: "state.releaseWindowMs" }],
241
+ '+': [{ var: '$ordinal' }, { var: 'state.releaseWindowMs' }],
251
242
  },
252
243
  },
253
244
  ],
@@ -255,40 +246,34 @@ export const contractEscrowDef = defineFiberApp({
255
246
  dependencies: [],
256
247
  },
257
248
  {
258
- from: "RELEASING",
259
- to: "RELEASED",
260
- eventName: "approve_release",
249
+ from: 'RELEASING',
250
+ to: 'RELEASED',
251
+ eventName: 'approve_release',
261
252
  guard: {
262
- or: [
263
- signerIsParty("state.depositor"),
264
- { ">=": [{ var: "$ordinal" }, { var: "state.releaseDeadline" }] },
265
- ],
253
+ or: [signerIsParty('state.depositor'), { '>=': [{ var: '$ordinal' }, { var: 'state.releaseDeadline' }] }],
266
254
  },
267
255
  effect: {
268
256
  merge: [
269
- { var: "state" },
257
+ { var: 'state' },
270
258
  {
271
- releasedAt: { var: "$ordinal" },
272
- releasedTo: { var: "state.beneficiary" },
259
+ releasedAt: { var: '$ordinal' },
260
+ releasedTo: { var: 'state.beneficiary' },
273
261
  },
274
262
  ],
275
263
  },
276
264
  dependencies: [],
277
265
  },
278
266
  {
279
- from: "RELEASING",
280
- to: "DISPUTED",
281
- eventName: "dispute",
267
+ from: 'RELEASING',
268
+ to: 'DISPUTED',
269
+ eventName: 'dispute',
282
270
  guard: {
283
- and: [
284
- signerIsParty("state.depositor"),
285
- { "<": [{ var: "$ordinal" }, { var: "state.releaseDeadline" }] },
286
- ],
271
+ and: [signerIsParty('state.depositor'), { '<': [{ var: '$ordinal' }, { var: 'state.releaseDeadline' }] }],
287
272
  },
288
273
  effect: {
289
274
  merge: [
290
- { var: "state" },
291
- { disputedAt: { var: "$ordinal" } },
275
+ { var: 'state' },
276
+ { disputedAt: { var: '$ordinal' } },
292
277
  {
293
278
  // A3 fix: transition-level `spawns` is dropped by the chain. No Judiciary state machine is
294
279
  // defined to inline under `_spawn`, and escrow already resolves disputes via its own pinned
@@ -297,17 +282,17 @@ export const contractEscrowDef = defineFiberApp({
297
282
  // notification instead of a child fiber.
298
283
  _emit: [
299
284
  {
300
- name: "dispute_opened",
285
+ name: 'dispute_opened',
301
286
  data: {
302
- caseType: "escrow_dispute",
303
- plaintiff: { var: "state.depositor" },
304
- defendant: { var: "state.beneficiary" },
287
+ caseType: 'escrow_dispute',
288
+ plaintiff: { var: 'state.depositor' },
289
+ defendant: { var: 'state.beneficiary' },
305
290
  claim: {
306
- escrowId: { var: "machineId" },
307
- amount: { var: "state.balance" },
291
+ escrowId: { var: 'machineId' },
292
+ amount: { var: 'state.balance' },
308
293
  },
309
294
  },
310
- destination: "Judiciary",
295
+ destination: 'Judiciary',
311
296
  },
312
297
  ],
313
298
  },
@@ -316,71 +301,65 @@ export const contractEscrowDef = defineFiberApp({
316
301
  dependencies: [],
317
302
  },
318
303
  {
319
- from: "DISPUTED",
320
- to: "SPLIT",
321
- eventName: "ruling",
304
+ from: 'DISPUTED',
305
+ to: 'SPLIT',
306
+ eventName: 'ruling',
322
307
  // authority gate — an ARBITER/SLASHER attestation check layers on additively when the identity registry lands (see docs/design/app-hardening-identity-integration.md §4.2)
323
308
  guard: {
324
309
  and: [
325
- signerIsParty("state.arbiter"),
310
+ signerIsParty('state.arbiter'),
326
311
  {
327
- "===": [
312
+ '===': [
328
313
  {
329
314
  reduce: [
330
- { var: "event.splits" },
315
+ { var: 'event.splits' },
331
316
  {
332
- "+": [
333
- { var: "accumulator" },
334
- { var: "current.amount" },
335
- ],
317
+ '+': [{ var: 'accumulator' }, { var: 'current.amount' }],
336
318
  },
337
319
  0,
338
320
  ],
339
321
  },
340
- { var: "state.balance" },
322
+ { var: 'state.balance' },
341
323
  ],
342
324
  },
343
325
  ],
344
326
  },
345
327
  effect: {
346
328
  merge: [
347
- { var: "state" },
329
+ { var: 'state' },
348
330
  {
349
- splits: { var: "event.splits" },
350
- rulingId: { var: "event.rulingId" },
331
+ splits: { var: 'event.splits' },
332
+ rulingId: { var: 'event.rulingId' },
351
333
  },
352
334
  ],
353
335
  },
354
336
  dependencies: [],
355
337
  },
356
338
  {
357
- from: "ACTIVE",
358
- to: "REFUNDED",
359
- eventName: "refund",
339
+ from: 'ACTIVE',
340
+ to: 'REFUNDED',
341
+ eventName: 'refund',
360
342
  // authority gate — an ARBITER/SLASHER attestation check layers on additively when the identity registry lands (see docs/design/app-hardening-identity-integration.md §4.2)
361
343
  guard: {
362
344
  or: [
363
345
  {
364
- and: [
365
- signerIsParty("state.depositor"),
366
- signerIsParty("state.beneficiary"),
367
- ],
346
+ and: [signerIsParty('state.depositor'), signerIsParty('state.beneficiary')],
368
347
  },
369
- { ">=": [{ var: "$ordinal" }, { var: "state.expiresAt" }] },
348
+ { '>=': [{ var: '$ordinal' }, { var: 'state.expiresAt' }] },
370
349
  ],
371
350
  },
372
351
  effect: {
373
- merge: [{ var: "state" }, { refundedAt: { var: "$ordinal" } }],
352
+ merge: [{ var: 'state' }, { refundedAt: { var: '$ordinal' } }],
374
353
  },
375
354
  dependencies: [],
376
355
  },
377
356
  {
378
- from: "CREATED",
379
- to: "REFUNDED",
380
- eventName: "cancel",
381
- guard: signerIsParty("state.depositor"),
357
+ from: 'CREATED',
358
+ to: 'REFUNDED',
359
+ eventName: 'cancel',
360
+ guard: signerIsParty('state.depositor'),
382
361
  effect: {
383
- merge: [{ var: "state" }, { refundedAt: { var: "$ordinal" } }],
362
+ merge: [{ var: 'state' }, { refundedAt: { var: '$ordinal' } }],
384
363
  },
385
364
  dependencies: [],
386
365
  },