@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
@@ -2,212 +2,200 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.contractAgreementDef = void 0;
4
4
  const fiber_app_js_1 = require("../../../schema/fiber-app.js");
5
+ const guards_js_1 = require("../../../schema/guards.js");
5
6
  /**
6
7
  * Two-party agreement with mutual completion attestation and dispute resolution.
7
8
  */
8
9
  exports.contractAgreementDef = (0, fiber_app_js_1.defineFiberApp)({
9
10
  metadata: {
10
- name: "ContractAgreement",
11
- app: "contracts",
12
- type: "agreement",
13
- version: "1.0.0",
14
- description: "Two-party agreement with mutual completion attestation and dispute resolution",
11
+ name: 'ContractAgreement',
12
+ app: 'contracts',
13
+ type: 'agreement',
14
+ version: '1.0.0',
15
+ description: 'Two-party agreement with mutual completion attestation and dispute resolution',
15
16
  crossReferences: {
16
17
  proposerIdentityId: {
17
- machine: "identity-agent",
18
- field: "proposer",
18
+ machine: 'identity-agent',
19
+ field: 'proposer',
19
20
  description: "Links to proposer's AgentIdentity fiber",
20
21
  },
21
22
  counterpartyIdentityId: {
22
- machine: "identity-agent",
23
- field: "counterparty",
23
+ machine: 'identity-agent',
24
+ field: 'counterparty',
24
25
  description: "Links to counterparty's AgentIdentity fiber",
25
26
  },
26
27
  escrowId: {
27
- machine: "contract-escrow",
28
- field: "escrowId",
29
- description: "Links to Escrow if payment is escrowed",
28
+ machine: 'contract-escrow',
29
+ field: 'escrowId',
30
+ description: 'Links to Escrow if payment is escrowed',
30
31
  },
31
32
  arbitrationPoolId: {
32
- machine: "arbitration-pool",
33
- field: "arbitrationPoolId",
34
- description: "Links to ArbitrationPool for dispute resolution",
33
+ machine: 'arbitration-pool',
34
+ field: 'arbitrationPoolId',
35
+ description: 'Links to ArbitrationPool for dispute resolution',
35
36
  },
36
37
  },
37
38
  },
38
39
  createSchema: {
39
- required: ["proposer", "counterparty"],
40
+ required: ['proposer', 'counterparty', 'arbitrator'],
40
41
  properties: {
41
42
  proposer: {
42
- type: "address",
43
- description: "DAG address of the proposer",
43
+ type: 'address',
44
+ description: 'DAG address of the proposer',
44
45
  immutable: true,
45
46
  },
46
47
  counterparty: {
47
- type: "address",
48
- description: "DAG address of the counterparty",
48
+ type: 'address',
49
+ description: 'DAG address of the counterparty',
50
+ immutable: true,
51
+ },
52
+ arbitrator: {
53
+ type: 'address',
54
+ description: 'DAG address of the arbitrator authorized to resolve a dispute',
49
55
  immutable: true,
50
56
  },
51
57
  },
52
58
  },
53
59
  stateSchema: {
54
60
  properties: {
55
- status: { type: "string" },
56
- proposer: { type: "address" },
57
- counterparty: { type: "address" },
58
- completions: { type: "array" },
59
- acceptedAt: { type: "integer", nullable: true },
60
- rejectedAt: { type: "integer", nullable: true },
61
- rejectReason: { type: "string", nullable: true },
62
- cancelledAt: { type: "integer", nullable: true },
63
- completedAt: { type: "integer", nullable: true },
64
- disputedAt: { type: "integer", nullable: true },
65
- disputeReason: { type: "string", nullable: true },
66
- disputedBy: { type: "address", nullable: true },
67
- resolvedAt: { type: "integer", nullable: true },
68
- resolution: { type: "string", nullable: true },
69
- rulingId: { type: "string", nullable: true },
61
+ status: { type: 'string' },
62
+ proposer: { type: 'address' },
63
+ counterparty: { type: 'address' },
64
+ arbitrator: { type: 'address', immutable: true },
65
+ completions: { type: 'array' },
66
+ acceptedAt: { type: 'integer', nullable: true },
67
+ rejectedAt: { type: 'integer', nullable: true },
68
+ rejectReason: { type: 'string', nullable: true },
69
+ cancelledAt: { type: 'integer', nullable: true },
70
+ completedAt: { type: 'integer', nullable: true },
71
+ disputedAt: { type: 'integer', nullable: true },
72
+ disputeReason: { type: 'string', nullable: true },
73
+ disputedBy: { type: 'address', nullable: true },
74
+ resolvedAt: { type: 'integer', nullable: true },
75
+ resolution: { type: 'string', nullable: true },
76
+ rulingId: { type: 'string', nullable: true },
70
77
  },
71
78
  },
72
79
  eventSchemas: {
73
80
  accept: {},
74
- reject: { properties: { reason: { type: "string" } } },
81
+ reject: { properties: { reason: { type: 'string' } } },
75
82
  cancel: {},
76
- submit_completion: { properties: { proof: { type: "string" } } },
83
+ submit_completion: { properties: { proof: { type: 'string' } } },
77
84
  finalize: {},
78
- dispute: { properties: { reason: { type: "string" } } },
85
+ dispute: { properties: { reason: { type: 'string' } } },
79
86
  resolve: {
80
87
  properties: {
81
- judicialRuling: { type: "boolean", nullable: true },
82
- proposerApproves: { type: "boolean", nullable: true },
83
- counterpartyApproves: { type: "boolean", nullable: true },
84
- resolution: { type: "string" },
85
- rulingId: { type: "string", nullable: true },
88
+ resolution: { type: 'string' },
89
+ rulingId: { type: 'string', nullable: true },
86
90
  },
87
91
  },
88
92
  },
89
93
  states: {
90
94
  PROPOSED: {
91
- id: "PROPOSED",
95
+ id: 'PROPOSED',
92
96
  isFinal: false,
93
97
  metadata: {
94
- label: "Proposed",
95
- description: "Agreement proposed; awaiting the counterparty",
96
- category: "initial",
98
+ label: 'Proposed',
99
+ description: 'Agreement proposed; awaiting the counterparty',
100
+ category: 'initial',
97
101
  },
98
102
  },
99
103
  ACTIVE: {
100
- id: "ACTIVE",
104
+ id: 'ACTIVE',
101
105
  isFinal: false,
102
106
  metadata: {
103
- label: "Active",
104
- description: "Agreement accepted and in effect",
105
- category: "active",
107
+ label: 'Active',
108
+ description: 'Agreement accepted and in effect',
109
+ category: 'active',
106
110
  },
107
111
  },
108
112
  COMPLETED: {
109
- id: "COMPLETED",
113
+ id: 'COMPLETED',
110
114
  isFinal: true,
111
115
  metadata: {
112
- label: "Completed",
113
- description: "Agreement completed and attested (terminal)",
114
- category: "terminal",
116
+ label: 'Completed',
117
+ description: 'Agreement completed and attested (terminal)',
118
+ category: 'terminal',
115
119
  },
116
120
  },
117
121
  DISPUTED: {
118
- id: "DISPUTED",
122
+ id: 'DISPUTED',
119
123
  isFinal: false,
120
124
  metadata: {
121
- label: "Disputed",
122
- description: "A party has raised a dispute; awaiting resolution",
123
- category: "pending",
125
+ label: 'Disputed',
126
+ description: 'A party has raised a dispute; awaiting resolution',
127
+ category: 'pending',
124
128
  },
125
129
  },
126
130
  REJECTED: {
127
- id: "REJECTED",
131
+ id: 'REJECTED',
128
132
  isFinal: true,
129
133
  metadata: {
130
- label: "Rejected",
131
- description: "Proposal rejected by the counterparty (terminal)",
132
- category: "terminal",
134
+ label: 'Rejected',
135
+ description: 'Proposal rejected by the counterparty (terminal)',
136
+ category: 'terminal',
133
137
  },
134
138
  },
135
139
  CANCELLED: {
136
- id: "CANCELLED",
140
+ id: 'CANCELLED',
137
141
  isFinal: true,
138
142
  metadata: {
139
- label: "Cancelled",
140
- description: "Agreement cancelled before completion (terminal)",
141
- category: "terminal",
143
+ label: 'Cancelled',
144
+ description: 'Agreement cancelled before completion (terminal)',
145
+ category: 'terminal',
142
146
  },
143
147
  },
144
148
  },
145
- initialState: "PROPOSED",
149
+ initialState: 'PROPOSED',
146
150
  transitions: [
147
151
  {
148
- from: "PROPOSED",
149
- to: "ACTIVE",
150
- eventName: "accept",
151
- guard: { "===": [{ var: "event.agent" }, { var: "state.counterparty" }] },
152
+ from: 'PROPOSED',
153
+ to: 'ACTIVE',
154
+ eventName: 'accept',
155
+ guard: (0, guards_js_1.signerIsParty)('state.counterparty'),
152
156
  effect: {
153
- merge: [
154
- { var: "state" },
155
- { status: "ACTIVE", acceptedAt: { var: "$timestamp" } },
156
- ],
157
+ merge: [{ var: 'state' }, { status: 'ACTIVE', acceptedAt: { var: '$ordinal' } }],
157
158
  },
158
159
  dependencies: [],
159
160
  },
160
161
  {
161
- from: "PROPOSED",
162
- to: "REJECTED",
163
- eventName: "reject",
164
- guard: { "===": [{ var: "event.agent" }, { var: "state.counterparty" }] },
162
+ from: 'PROPOSED',
163
+ to: 'REJECTED',
164
+ eventName: 'reject',
165
+ guard: (0, guards_js_1.signerIsParty)('state.counterparty'),
165
166
  effect: {
166
167
  merge: [
167
- { var: "state" },
168
+ { var: 'state' },
168
169
  {
169
- status: "REJECTED",
170
- rejectedAt: { var: "$timestamp" },
171
- rejectReason: { var: "event.reason" },
170
+ status: 'REJECTED',
171
+ rejectedAt: { var: '$ordinal' },
172
+ rejectReason: { var: 'event.reason' },
172
173
  },
173
174
  ],
174
175
  },
175
176
  dependencies: [],
176
177
  },
177
178
  {
178
- from: "PROPOSED",
179
- to: "CANCELLED",
180
- eventName: "cancel",
181
- guard: { "===": [{ var: "event.agent" }, { var: "state.proposer" }] },
179
+ from: 'PROPOSED',
180
+ to: 'CANCELLED',
181
+ eventName: 'cancel',
182
+ guard: (0, guards_js_1.signerIsParty)('state.proposer'),
182
183
  effect: {
183
- merge: [
184
- { var: "state" },
185
- { status: "CANCELLED", cancelledAt: { var: "$timestamp" } },
186
- ],
184
+ merge: [{ var: 'state' }, { status: 'CANCELLED', cancelledAt: { var: '$ordinal' } }],
187
185
  },
188
186
  dependencies: [],
189
187
  },
190
188
  {
191
- from: "ACTIVE",
192
- to: "ACTIVE",
193
- eventName: "submit_completion",
189
+ from: 'ACTIVE',
190
+ to: 'ACTIVE',
191
+ eventName: 'submit_completion',
194
192
  guard: {
195
193
  and: [
194
+ (0, guards_js_1.signerIsAnyParty)(['state.proposer', 'state.counterparty']),
196
195
  {
197
- or: [
198
- { "===": [{ var: "event.agent" }, { var: "state.proposer" }] },
196
+ '!': [
199
197
  {
200
- "===": [{ var: "event.agent" }, { var: "state.counterparty" }],
201
- },
202
- ],
203
- },
204
- {
205
- "!": [
206
- {
207
- in: [
208
- { var: "event.agent" },
209
- { map: [{ var: "state.completions" }, { var: "agent" }] },
210
- ],
198
+ in: [{ var: 'event.agent' }, { map: [{ var: 'state.completions' }, { var: 'agent' }] }],
211
199
  },
212
200
  ],
213
201
  },
@@ -215,16 +203,16 @@ exports.contractAgreementDef = (0, fiber_app_js_1.defineFiberApp)({
215
203
  },
216
204
  effect: {
217
205
  merge: [
218
- { var: "state" },
206
+ { var: 'state' },
219
207
  {
220
208
  completions: {
221
209
  cat: [
222
- { var: "state.completions" },
210
+ { var: 'state.completions' },
223
211
  [
224
212
  {
225
- agent: { var: "event.agent" },
226
- proof: { var: "event.proof" },
227
- submittedAt: { var: "$timestamp" },
213
+ agent: { var: 'event.agent' },
214
+ proof: { var: 'event.proof' },
215
+ submittedAt: { var: '$ordinal' },
228
216
  },
229
217
  ],
230
218
  ],
@@ -235,84 +223,69 @@ exports.contractAgreementDef = (0, fiber_app_js_1.defineFiberApp)({
235
223
  dependencies: [],
236
224
  },
237
225
  {
238
- from: "ACTIVE",
239
- to: "COMPLETED",
240
- eventName: "finalize",
241
- guard: { ">=": [{ size: { var: "state.completions" } }, 2] },
226
+ from: 'ACTIVE',
227
+ to: 'COMPLETED',
228
+ eventName: 'finalize',
229
+ guard: { '>=': [{ length: [{ var: 'state.completions' }] }, 2] },
242
230
  effect: {
243
- merge: [
244
- { var: "state" },
245
- { status: "COMPLETED", completedAt: { var: "$timestamp" } },
246
- ],
231
+ merge: [{ var: 'state' }, { status: 'COMPLETED', completedAt: { var: '$ordinal' } }],
247
232
  },
248
233
  dependencies: [],
249
234
  },
250
235
  {
251
- from: "ACTIVE",
252
- to: "DISPUTED",
253
- eventName: "dispute",
254
- guard: {
255
- or: [
256
- { "===": [{ var: "event.agent" }, { var: "state.proposer" }] },
257
- { "===": [{ var: "event.agent" }, { var: "state.counterparty" }] },
258
- ],
259
- },
236
+ from: 'ACTIVE',
237
+ to: 'DISPUTED',
238
+ eventName: 'dispute',
239
+ guard: (0, guards_js_1.signerIsAnyParty)(['state.proposer', 'state.counterparty']),
260
240
  effect: {
261
241
  merge: [
262
- { var: "state" },
242
+ { var: 'state' },
263
243
  {
264
- status: "DISPUTED",
265
- disputedAt: { var: "$timestamp" },
266
- disputeReason: { var: "event.reason" },
267
- disputedBy: { var: "event.agent" },
244
+ status: 'DISPUTED',
245
+ disputedAt: { var: '$ordinal' },
246
+ disputeReason: { var: 'event.reason' },
247
+ disputedBy: { var: 'event.agent' },
268
248
  },
269
249
  ],
270
250
  },
271
251
  dependencies: [],
272
252
  },
273
253
  {
274
- from: "DISPUTED",
275
- to: "COMPLETED",
276
- eventName: "resolve",
254
+ from: 'DISPUTED',
255
+ to: 'COMPLETED',
256
+ eventName: 'resolve',
257
+ // 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)
277
258
  guard: {
278
259
  or: [
279
- { var: "event.judicialRuling" },
260
+ (0, guards_js_1.signerIsParty)('state.arbitrator'),
280
261
  {
281
- and: [
282
- { "===": [{ var: "event.proposerApproves" }, true] },
283
- { "===": [{ var: "event.counterpartyApproves" }, true] },
284
- ],
262
+ and: [(0, guards_js_1.signerIsParty)('state.proposer'), (0, guards_js_1.signerIsParty)('state.counterparty')],
285
263
  },
286
264
  ],
287
265
  },
288
266
  effect: {
289
267
  merge: [
290
- { var: "state" },
268
+ { var: 'state' },
291
269
  {
292
- status: "COMPLETED",
293
- resolvedAt: { var: "$timestamp" },
294
- resolution: { var: "event.resolution" },
295
- rulingId: { var: "event.rulingId" },
270
+ status: 'COMPLETED',
271
+ resolvedAt: { var: '$ordinal' },
272
+ resolution: { var: 'event.resolution' },
273
+ // rulingId is recorded only on the arbitrator-resolved path
274
+ rulingId: {
275
+ if: [(0, guards_js_1.signerIsParty)('state.arbitrator'), { var: 'event.rulingId' }, null],
276
+ },
296
277
  },
297
278
  ],
298
279
  },
299
280
  dependencies: [],
300
281
  },
301
282
  {
302
- from: "ACTIVE",
303
- to: "CANCELLED",
304
- eventName: "cancel",
305
- guard: {
306
- or: [
307
- { "===": [{ var: "event.agent" }, { var: "state.proposer" }] },
308
- { "===": [{ var: "event.agent" }, { var: "state.counterparty" }] },
309
- ],
310
- },
283
+ from: 'ACTIVE',
284
+ to: 'CANCELLED',
285
+ eventName: 'cancel',
286
+ guard: (0, guards_js_1.signerIsAnyParty)(['state.proposer', 'state.counterparty']),
311
287
  effect: {
312
- merge: [
313
- { var: "state" },
314
- { status: "CANCELLED", cancelledAt: { var: "$timestamp" } },
315
- ],
288
+ merge: [{ var: 'state' }, { status: 'CANCELLED', cancelledAt: { var: '$ordinal' } }],
316
289
  },
317
290
  dependencies: [],
318
291
  },