@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
@@ -31,13 +31,37 @@ export function behaviorBits(b) {
31
31
  /** Common behavior presets (asset-model.md §2). */
32
32
  export const TokenBehaviors = {
33
33
  /** Non-transferable, non-divisible (bits 0). */
34
- Soulbound: { transferable: false, splittable: false, combinable: false, expirable: false, governable: false },
34
+ Soulbound: {
35
+ transferable: false,
36
+ splittable: false,
37
+ combinable: false,
38
+ expirable: false,
39
+ governable: false,
40
+ },
35
41
  /** Transferable only (bits 16). */
36
- NFT: { transferable: true, splittable: false, combinable: false, expirable: false, governable: false },
42
+ NFT: {
43
+ transferable: true,
44
+ splittable: false,
45
+ combinable: false,
46
+ expirable: false,
47
+ governable: false,
48
+ },
37
49
  /** Transferable + splittable + combinable (bits 28 = TSC). */
38
- Fungible: { transferable: true, splittable: true, combinable: true, expirable: false, governable: false },
50
+ Fungible: {
51
+ transferable: true,
52
+ splittable: true,
53
+ combinable: true,
54
+ expirable: false,
55
+ governable: false,
56
+ },
39
57
  /** Fungible + governable (bits 29 = TSCG) — the default for a gated debt token. */
40
- GovernedFungible: { transferable: true, splittable: true, combinable: true, expirable: false, governable: true },
58
+ GovernedFungible: {
59
+ transferable: true,
60
+ splittable: true,
61
+ combinable: true,
62
+ expirable: false,
63
+ governable: true,
64
+ },
41
65
  };
42
66
  /** Publish an asset policy package version. asset-model.md §7. */
43
67
  export function createAssetPolicyPayload(params) {
@@ -109,19 +133,19 @@ export function createAuthorizeComposePayload(params) {
109
133
  * a custody Transfer into `AssetHolder.Fiber(escrow)`; release/liquidation is a Transfer out
110
134
  * driven by the loan fiber's REPAID / LIQUIDATED transition (`_transferAsset`).
111
135
  */
112
- export function collateralPolicy(name = "collateral-vault-v1.asset", version = "1.0.0") {
136
+ export function collateralPolicy(name = 'collateral-vault-v1.asset', version = '1.0.0') {
113
137
  return {
114
138
  name,
115
139
  version,
116
140
  behavior: { transferable: true, splittable: false, combinable: false, expirable: false, governable: true },
117
141
  supply: { maxSupply: null, mintPolicy: null, burnPolicy: null, decimals: 0 },
118
142
  morphisms: {
119
- Transfer: { visibility: "Governed" },
120
- Burn: { visibility: "Disabled" },
121
- Compose: { visibility: "Disabled" },
143
+ Transfer: { visibility: 'Governed' },
144
+ Burn: { visibility: 'Disabled' },
145
+ Compose: { visibility: 'Disabled' },
122
146
  },
123
147
  stateShape: {},
124
- metadata: { family: "lending", role: "collateral" },
148
+ metadata: { family: 'lending', role: 'collateral' },
125
149
  };
126
150
  }
127
151
  /**
@@ -132,7 +156,7 @@ export function collateralPolicy(name = "collateral-vault-v1.asset", version = "
132
156
  * @param mintGuard the origination guard (see `buildOriginationGuard`) — a `groth16_verify`
133
157
  * expression bound to the pinned public lending rule.
134
158
  */
135
- export function debtPolicy(mintGuard, name = "loan-debt-v1.asset", version = "1.0.0") {
159
+ export function debtPolicy(mintGuard, name = 'loan-debt-v1.asset', version = '1.0.0') {
136
160
  return {
137
161
  name,
138
162
  version,
@@ -143,15 +167,15 @@ export function debtPolicy(mintGuard, name = "loan-debt-v1.asset", version = "1.
143
167
  mintPolicy: mintGuard,
144
168
  // Repayment burns the debt; only the holder (borrower) may burn theirs. The asset context has
145
169
  // no `event` key — bind to the verified `signers` (chain-derived from the op's proofs).
146
- burnPolicy: { in: [{ var: "holder.Wallet.address" }, { var: "signers" }] },
170
+ burnPolicy: { in: [{ var: 'holder.Wallet.address' }, { var: 'signers' }] },
147
171
  decimals: 2,
148
172
  },
149
173
  morphisms: {
150
- Transfer: { visibility: "Public" },
151
- Burn: { visibility: "Public" },
174
+ Transfer: { visibility: 'Public' },
175
+ Burn: { visibility: 'Public' },
152
176
  },
153
177
  stateShape: {},
154
- metadata: { family: "lending", role: "debt" },
178
+ metadata: { family: 'lending', role: 'debt' },
155
179
  };
156
180
  }
157
181
  // ---------------------------------------------------------------------------
@@ -165,7 +189,7 @@ export function debtPolicy(mintGuard, name = "loan-debt-v1.asset", version = "1.
165
189
  export function lockCollateralOp(args) {
166
190
  return createApplyMorphismPayload({
167
191
  assetId: args.collateralAssetId,
168
- kind: "Transfer",
192
+ kind: 'Transfer',
169
193
  recipient: fiberHolder(args.escrowFiberId),
170
194
  targetSequenceNumber: args.targetSequenceNumber,
171
195
  });
@@ -187,7 +211,7 @@ export function mintPrincipalOp(args) {
187
211
  export function repayBurnOp(args) {
188
212
  return createApplyMorphismPayload({
189
213
  assetId: args.debtAssetId,
190
- kind: "Burn",
214
+ kind: 'Burn',
191
215
  targetSequenceNumber: args.targetSequenceNumber,
192
216
  });
193
217
  }
@@ -200,7 +224,7 @@ export function repayBurnOp(args) {
200
224
  export function settleCollateralOp(args) {
201
225
  return createApplyMorphismPayload({
202
226
  assetId: args.collateralAssetId,
203
- kind: "Transfer",
227
+ kind: 'Transfer',
204
228
  recipient: walletHolder(args.recipient),
205
229
  targetSequenceNumber: args.targetSequenceNumber,
206
230
  });
@@ -20,8 +20,8 @@
20
20
  * (the strongest form), have the SP1 rule additionally `schnorr_verify` the reputation issuer's
21
21
  * signature over `(subject, score)` — see {@link reputationAuthorityClause}.
22
22
  */
23
- import { DEFAULT_REPUTATION_CONFIG, } from "../identity/index.js";
24
- import { lendingRule } from "./eligibility.js";
23
+ import { DEFAULT_REPUTATION_CONFIG } from '../identity/index.js';
24
+ import { lendingRule } from './eligibility.js';
25
25
  /**
26
26
  * Derive an agent's credit score from their identity reputation attestations:
27
27
  * `baseReputation + Σ attestation.delta`, floored at `minReputation`. This IS the integration point —
@@ -39,8 +39,8 @@ export function reputationScore(attestations, config = DEFAULT_REPUTATION_CONFIG
39
39
  */
40
40
  export function reputationCreditRule(params) {
41
41
  const base = lendingRule(params); // coverage, or {and:[coverage, creditScore floor]}
42
- const subjectBound = { "===": [{ var: "subject" }, params.borrowerId] };
43
- const clauses = "and" in base ? base.and : [base];
42
+ const subjectBound = { '===': [{ var: 'subject' }, params.borrowerId] };
43
+ const clauses = 'and' in base ? base.and : [base];
44
44
  return { and: [...clauses, subjectBound] };
45
45
  }
46
46
  /**
@@ -74,8 +74,8 @@ export function reputationAuthorityClause(authorityPubKey) {
74
74
  return {
75
75
  schnorr_verify: [
76
76
  authorityPubKey, // the reputation authority's public key — PINNED literal, not witness-supplied
77
- { var: "scoreCommit" }, // the signed message: a commitment over (subject, creditScore)
78
- { var: "repSig" }, // the authority's signature over scoreCommit
77
+ { var: 'scoreCommit' }, // the signed message: a commitment over (subject, creditScore)
78
+ { var: 'repSig' }, // the authority's signature over scoreCommit
79
79
  ],
80
80
  };
81
81
  }
@@ -8,7 +8,7 @@
8
8
  * `exprHash == logicHash` pins exactly WHICH rule was proven. See `src/zk` and
9
9
  * `/home/euler/repos/ottochain/docs/proposals/asset-model.md` §8 (ZkVerify-gated morphisms).
10
10
  */
11
- import { exprHash, KECCAK_TRUE } from "../../zk/index.js";
11
+ import { exprHash, KECCAK_TRUE } from '../../zk/index.js';
12
12
  /**
13
13
  * The PUBLIC lending rule, as a JSON-Logic predicate over the borrower's PRIVATE data context
14
14
  * `{ collateralValue, creditScore }`. Evaluates to `true` iff the borrower is eligible:
@@ -23,19 +23,13 @@ import { exprHash, KECCAK_TRUE } from "../../zk/index.js";
23
23
  */
24
24
  export function lendingRule(params) {
25
25
  const coverage = {
26
- ">=": [
27
- { "*": [{ var: "collateralValue" }, 100] },
28
- params.loanAmount * params.collateralRatioPct,
29
- ],
26
+ '>=': [{ '*': [{ var: 'collateralValue' }, 100] }, params.loanAmount * params.collateralRatioPct],
30
27
  };
31
28
  if (params.minCreditScore === undefined) {
32
29
  return coverage;
33
30
  }
34
31
  return {
35
- and: [
36
- coverage,
37
- { ">=": [{ var: "creditScore" }, params.minCreditScore] },
38
- ],
32
+ and: [coverage, { '>=': [{ var: 'creditScore' }, params.minCreditScore] }],
39
33
  };
40
34
  }
41
35
  /**
@@ -70,32 +64,22 @@ export function pinLendingRule(params, vkey) {
70
64
  * policy uses it directly as the proof-gated `mintPolicy`.
71
65
  */
72
66
  export function buildOriginationGuard(refs = {}) {
73
- const vkeyVar = refs.vkeyVar ?? "state.lendingRuleVKey";
74
- const logicHashVar = refs.logicHashVar ?? "state.lendingRuleLogicHash";
75
- const keccakTrueVar = refs.keccakTrueVar ?? "state.keccakTrue";
67
+ const vkeyVar = refs.vkeyVar ?? 'state.lendingRuleVKey';
68
+ const logicHashVar = refs.logicHashVar ?? 'state.lendingRuleLogicHash';
69
+ const keccakTrueVar = refs.keccakTrueVar ?? 'state.keccakTrue';
76
70
  return {
77
71
  and: [
78
72
  {
79
- groth16_verify: [
80
- { var: vkeyVar },
81
- { var: "witness.publicValues" },
82
- { var: "witness.proof" },
83
- ],
73
+ groth16_verify: [{ var: vkeyVar }, { var: 'witness.publicValues' }, { var: 'witness.proof' }],
84
74
  },
85
75
  {
86
- "===": [
87
- { cat: ["0x", { substr: [{ var: "witness.publicValues" }, 2, 64] }] },
88
- { var: logicHashVar },
89
- ],
76
+ '===': [{ cat: ['0x', { substr: [{ var: 'witness.publicValues' }, 2, 64] }] }, { var: logicHashVar }],
90
77
  },
91
78
  {
92
- "===": [
93
- { cat: ["0x", { substr: [{ var: "witness.publicValues" }, 130, 64] }] },
94
- { var: keccakTrueVar },
95
- ],
79
+ '===': [{ cat: ['0x', { substr: [{ var: 'witness.publicValues' }, 130, 64] }] }, { var: keccakTrueVar }],
96
80
  },
97
81
  {
98
- "===": [{ substr: [{ var: "witness.publicValues" }, 256, 2] }, "01"],
82
+ '===': [{ substr: [{ var: 'witness.publicValues' }, 256, 2] }, '01'],
99
83
  },
100
84
  ],
101
85
  };
@@ -34,7 +34,7 @@
34
34
  *
35
35
  * @packageDocumentation
36
36
  */
37
- import { lendingZkLoanDef } from "./state-machines/index.js";
37
+ import { lendingZkLoanDef } from './state-machines/index.js';
38
38
  export { lendingZkLoanDef };
39
39
  /** All lending state machine definitions. */
40
40
  export const LENDING_DEFINITIONS = {
@@ -44,17 +44,17 @@ export const LENDING_DEFINITIONS = {
44
44
  * Get a lending state machine definition by type.
45
45
  * @param type - 'zkLoan' (default: 'zkLoan')
46
46
  */
47
- export function getLendingDefinition(type = "zkLoan") {
47
+ export function getLendingDefinition(type = 'zkLoan') {
48
48
  return LENDING_DEFINITIONS[type];
49
49
  }
50
50
  // ---------------------------------------------------------------------------
51
51
  // Eligibility-proof model (the semi-private gate)
52
52
  // ---------------------------------------------------------------------------
53
- export { lendingRule, pinLendingRule, buildOriginationGuard, buildEligibilityWitness, } from "./eligibility.js";
53
+ export { lendingRule, pinLendingRule, buildOriginationGuard, buildEligibilityWitness, } from './eligibility.js';
54
54
  // ---------------------------------------------------------------------------
55
55
  // Credit scoring via the identity + reputation app (the creditScore IS reputation)
56
56
  // ---------------------------------------------------------------------------
57
- export { reputationScore, reputationCreditRule, buildCreditDataContext, reputationAuthorityClause, } from "./credit-scoring.js";
57
+ export { reputationScore, reputationCreditRule, buildCreditDataContext, reputationAuthorityClause, } from './credit-scoring.js';
58
58
  // ---------------------------------------------------------------------------
59
59
  // Asset-subsystem integration (collateral, debt/principal, repayment morphisms)
60
60
  // ---------------------------------------------------------------------------
@@ -66,4 +66,4 @@ createAssetPolicyPayload, createMintAssetPayload, createApplyMorphismPayload, cr
66
66
  // loan policy builders
67
67
  collateralPolicy, debtPolicy,
68
68
  // lifecycle → morphism drivers
69
- lockCollateralOp, mintPrincipalOp, repayBurnOp, settleCollateralOp, } from "./assets.js";
69
+ lockCollateralOp, mintPrincipalOp, repayBurnOp, settleCollateralOp, } from './assets.js';