@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.
- package/dist/cjs/apps/compute/index.js +33 -0
- package/dist/cjs/apps/compute/state-machines/compute-rule110.js +164 -0
- package/dist/cjs/apps/compute/state-machines/index.js +9 -0
- package/dist/cjs/apps/contracts/index.js +1 -1
- package/dist/cjs/apps/contracts/state-machines/contract-agreement.js +126 -148
- package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +153 -174
- package/dist/cjs/apps/contracts/state-machines/contract-universal.js +46 -58
- package/dist/cjs/apps/corporate/state-machines/corp-board.js +415 -481
- package/dist/cjs/apps/corporate/state-machines/corp-entity.js +368 -440
- package/dist/cjs/apps/corporate/state-machines/corp-securities.js +532 -647
- package/dist/cjs/apps/corporate/state-machines/corp-shareholders.js +499 -603
- package/dist/cjs/apps/governance/index.js +7 -7
- package/dist/cjs/apps/governance/state-machines/dao-multisig.js +170 -209
- package/dist/cjs/apps/governance/state-machines/dao-reputation.js +161 -214
- package/dist/cjs/apps/governance/state-machines/dao-single.js +92 -92
- package/dist/cjs/apps/governance/state-machines/dao-token.js +169 -223
- package/dist/cjs/apps/governance/state-machines/governance-simple.js +185 -217
- package/dist/cjs/apps/governance/state-machines/governance-universal.js +64 -64
- package/dist/cjs/apps/identity/constants.js +16 -24
- package/dist/cjs/apps/identity/index.js +1 -1
- package/dist/cjs/apps/identity/state-machines/identity-agent.js +124 -158
- package/dist/cjs/apps/identity/state-machines/identity-oracle.js +151 -169
- package/dist/cjs/apps/identity/state-machines/identity-registry.js +89 -115
- package/dist/cjs/apps/identity/state-machines/identity-universal.js +51 -57
- package/dist/cjs/apps/index.js +4 -1
- package/dist/cjs/apps/lending/assets.js +41 -17
- package/dist/cjs/apps/lending/credit-scoring.js +4 -4
- package/dist/cjs/apps/lending/eligibility.js +9 -25
- package/dist/cjs/apps/lending/index.js +1 -1
- package/dist/cjs/apps/lending/state-machines/lending-zk-loan.js +177 -156
- package/dist/cjs/apps/markets/index.js +1 -1
- package/dist/cjs/apps/markets/state-machines/market-auction.js +115 -134
- package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +122 -137
- package/dist/cjs/apps/markets/state-machines/market-group-buy.js +158 -177
- package/dist/cjs/apps/markets/state-machines/market-prediction.js +193 -227
- package/dist/cjs/apps/markets/state-machines/market-universal.js +65 -80
- package/dist/cjs/apps/oracles/index.js +1 -1
- package/dist/cjs/apps/privacy/index.js +67 -0
- package/dist/cjs/apps/privacy/state-machines/index.js +17 -0
- package/dist/cjs/apps/privacy/state-machines/mixer-ddhRing.js +286 -0
- package/dist/cjs/apps/privacy/state-machines/note-pool.js +476 -0
- package/dist/cjs/apps/staked-pool/assets.js +103 -0
- package/dist/cjs/apps/staked-pool/base.js +498 -0
- package/dist/cjs/apps/staked-pool/consumer.js +55 -0
- package/dist/cjs/apps/staked-pool/index.js +83 -0
- package/dist/cjs/apps/staked-pool/state-machines/index.js +12 -0
- package/dist/cjs/apps/staked-pool/state-machines/staked-pool-base.js +49 -0
- package/dist/cjs/apps/staked-pool/state-machines/staked-pool-oracle.js +131 -0
- package/dist/cjs/generated/google/protobuf/struct.js +1 -1
- package/dist/cjs/generated/google/protobuf/timestamp.js +1 -1
- package/dist/cjs/generated/ottochain/apps/contracts/v1/contract.js +1 -1
- package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate.js +1 -1
- package/dist/cjs/generated/ottochain/apps/governance/v1/governance.js +1 -1
- package/dist/cjs/generated/ottochain/apps/identity/v1/attestation.js +1 -1
- package/dist/cjs/generated/ottochain/apps/identity/v1/identity.js +1 -1
- package/dist/cjs/generated/ottochain/apps/markets/v1/market.js +1 -1
- package/dist/cjs/generated/ottochain/v1/common.js +1 -1
- package/dist/cjs/generated/ottochain/v1/fiber.js +40 -2
- package/dist/cjs/generated/ottochain/v1/messages.js +1 -1
- package/dist/cjs/generated/ottochain/v1/records.js +1 -1
- package/dist/cjs/index.js +21 -3
- package/dist/cjs/ottochain/genesis-manifest.js +6 -0
- package/dist/cjs/ottochain/metagraph-client.js +63 -11
- package/dist/cjs/ottochain/snapshot.js +2 -4
- package/dist/cjs/ottochain/transaction.js +10 -0
- package/dist/cjs/privacy/sealed-bid.js +85 -82
- package/dist/cjs/privacy/shield-app.js +32 -32
- package/dist/cjs/schema/effects.js +145 -1
- package/dist/cjs/schema/fiber-app.js +139 -5
- package/dist/cjs/schema/guard-lint.js +3 -12
- package/dist/cjs/schema/guards.js +38 -38
- package/dist/cjs/templates/asset-policy.js +190 -0
- package/dist/cjs/templates/index.js +86 -0
- package/dist/cjs/templates/machine.js +130 -0
- package/dist/cjs/templates/migration.js +39 -0
- package/dist/cjs/templates/state-shape.js +38 -0
- package/dist/cjs/validation.js +1 -3
- package/dist/esm/apps/compute/index.js +29 -0
- package/dist/esm/apps/compute/state-machines/compute-rule110.js +161 -0
- package/dist/esm/apps/compute/state-machines/index.js +5 -0
- package/dist/esm/apps/contracts/index.js +4 -4
- package/dist/esm/apps/contracts/state-machines/contract-agreement.js +128 -150
- package/dist/esm/apps/contracts/state-machines/contract-escrow.js +155 -176
- package/dist/esm/apps/contracts/state-machines/contract-universal.js +47 -59
- package/dist/esm/apps/corporate/index.js +2 -2
- package/dist/esm/apps/corporate/state-machines/corp-board.js +418 -484
- package/dist/esm/apps/corporate/state-machines/corp-entity.js +371 -443
- package/dist/esm/apps/corporate/state-machines/corp-securities.js +535 -650
- package/dist/esm/apps/corporate/state-machines/corp-shareholders.js +502 -606
- package/dist/esm/apps/governance/index.js +10 -10
- package/dist/esm/apps/governance/state-machines/dao-multisig.js +172 -211
- package/dist/esm/apps/governance/state-machines/dao-reputation.js +163 -216
- package/dist/esm/apps/governance/state-machines/dao-single.js +94 -94
- package/dist/esm/apps/governance/state-machines/dao-token.js +171 -225
- package/dist/esm/apps/governance/state-machines/governance-simple.js +187 -219
- package/dist/esm/apps/governance/state-machines/governance-universal.js +65 -65
- package/dist/esm/apps/identity/constants.js +18 -26
- package/dist/esm/apps/identity/index.js +8 -8
- package/dist/esm/apps/identity/state-machines/identity-agent.js +125 -159
- package/dist/esm/apps/identity/state-machines/identity-oracle.js +153 -171
- package/dist/esm/apps/identity/state-machines/identity-registry.js +91 -117
- package/dist/esm/apps/identity/state-machines/identity-universal.js +52 -58
- package/dist/esm/apps/index.js +9 -6
- package/dist/esm/apps/lending/assets.js +41 -17
- package/dist/esm/apps/lending/credit-scoring.js +6 -6
- package/dist/esm/apps/lending/eligibility.js +10 -26
- package/dist/esm/apps/lending/index.js +5 -5
- package/dist/esm/apps/lending/state-machines/lending-zk-loan.js +178 -157
- package/dist/esm/apps/markets/index.js +5 -5
- package/dist/esm/apps/markets/state-machines/market-auction.js +117 -136
- package/dist/esm/apps/markets/state-machines/market-crowdfund.js +124 -139
- package/dist/esm/apps/markets/state-machines/market-group-buy.js +160 -179
- package/dist/esm/apps/markets/state-machines/market-prediction.js +195 -229
- package/dist/esm/apps/markets/state-machines/market-universal.js +66 -81
- package/dist/esm/apps/oracles/index.js +3 -3
- package/dist/esm/apps/privacy/index.js +56 -0
- package/dist/esm/apps/privacy/state-machines/index.js +6 -0
- package/dist/esm/apps/privacy/state-machines/mixer-ddhRing.js +282 -0
- package/dist/esm/apps/privacy/state-machines/note-pool.js +470 -0
- package/dist/esm/apps/staked-pool/assets.js +91 -0
- package/dist/esm/apps/staked-pool/base.js +493 -0
- package/dist/esm/apps/staked-pool/consumer.js +49 -0
- package/dist/esm/apps/staked-pool/index.js +60 -0
- package/dist/esm/apps/staked-pool/state-machines/index.js +6 -0
- package/dist/esm/apps/staked-pool/state-machines/staked-pool-base.js +46 -0
- package/dist/esm/apps/staked-pool/state-machines/staked-pool-oracle.js +127 -0
- package/dist/esm/generated/google/protobuf/struct.js +1 -1
- package/dist/esm/generated/google/protobuf/timestamp.js +1 -1
- package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +1 -1
- package/dist/esm/generated/ottochain/apps/corporate/v1/corporate.js +1 -1
- package/dist/esm/generated/ottochain/apps/governance/v1/governance.js +1 -1
- package/dist/esm/generated/ottochain/apps/identity/v1/attestation.js +1 -1
- package/dist/esm/generated/ottochain/apps/identity/v1/identity.js +1 -1
- package/dist/esm/generated/ottochain/apps/markets/v1/market.js +1 -1
- package/dist/esm/generated/ottochain/v1/common.js +1 -1
- package/dist/esm/generated/ottochain/v1/fiber.js +40 -2
- package/dist/esm/generated/ottochain/v1/messages.js +1 -1
- package/dist/esm/generated/ottochain/v1/records.js +1 -1
- package/dist/esm/index.js +10 -4
- package/dist/esm/ottochain/genesis-manifest.js +6 -0
- package/dist/esm/ottochain/metagraph-client.js +63 -11
- package/dist/esm/ottochain/snapshot.js +2 -4
- package/dist/esm/ottochain/transaction.js +8 -0
- package/dist/esm/privacy/index.js +2 -2
- package/dist/esm/privacy/sealed-bid.js +87 -84
- package/dist/esm/privacy/shield-app.js +33 -33
- package/dist/esm/schema/effects.js +137 -0
- package/dist/esm/schema/fiber-app.js +134 -5
- package/dist/esm/schema/guard-lint.js +3 -12
- package/dist/esm/schema/guards.js +36 -37
- package/dist/esm/templates/asset-policy.js +182 -0
- package/dist/esm/templates/index.js +41 -0
- package/dist/esm/templates/machine.js +125 -0
- package/dist/esm/templates/migration.js +34 -0
- package/dist/esm/templates/state-shape.js +34 -0
- package/dist/esm/validation.js +1 -3
- package/dist/esm/zk/index.js +4 -4
- package/dist/types/apps/compute/index.d.ts +176 -0
- package/dist/types/apps/compute/state-machines/compute-rule110.d.ts +157 -0
- package/dist/types/apps/compute/state-machines/index.d.ts +5 -0
- package/dist/types/apps/contracts/index.d.ts +14 -14
- package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +3 -3
- package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +3 -3
- package/dist/types/apps/contracts/state-machines/contract-universal.d.ts +4 -4
- package/dist/types/apps/corporate/index.d.ts +162 -162
- package/dist/types/apps/corporate/state-machines/corp-board.d.ts +88 -88
- package/dist/types/apps/corporate/state-machines/corp-entity.d.ts +14 -14
- package/dist/types/apps/corporate/state-machines/corp-securities.d.ts +18 -18
- package/dist/types/apps/corporate/state-machines/corp-shareholders.d.ts +43 -43
- package/dist/types/apps/governance/index.d.ts +81 -81
- package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +16 -16
- package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +22 -22
- package/dist/types/apps/governance/state-machines/dao-token.d.ts +21 -21
- package/dist/types/apps/governance/state-machines/governance-simple.d.ts +11 -11
- package/dist/types/apps/governance/state-machines/governance-universal.d.ts +4 -4
- package/dist/types/apps/identity/constants.d.ts +2 -2
- package/dist/types/apps/identity/index.d.ts +70 -70
- package/dist/types/apps/identity/state-machines/identity-agent.d.ts +23 -23
- package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +11 -11
- package/dist/types/apps/identity/state-machines/identity-registry.d.ts +27 -27
- package/dist/types/apps/identity/state-machines/identity-universal.d.ts +4 -4
- package/dist/types/apps/index.d.ts +9 -6
- package/dist/types/apps/lending/assets.d.ts +2 -2
- package/dist/types/apps/lending/credit-scoring.d.ts +5 -5
- package/dist/types/apps/lending/eligibility.d.ts +2 -2
- package/dist/types/apps/lending/index.d.ts +20 -12
- package/dist/types/apps/lending/state-machines/lending-zk-loan.d.ts +15 -7
- package/dist/types/apps/markets/index.d.ts +76 -76
- package/dist/types/apps/markets/state-machines/market-auction.d.ts +12 -12
- package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +19 -19
- package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +18 -18
- package/dist/types/apps/markets/state-machines/market-prediction.d.ts +15 -15
- package/dist/types/apps/markets/state-machines/market-universal.d.ts +7 -7
- package/dist/types/apps/oracles/index.d.ts +1 -1
- package/dist/types/apps/privacy/index.d.ts +328 -0
- package/dist/types/apps/privacy/state-machines/index.d.ts +6 -0
- package/dist/types/apps/privacy/state-machines/mixer-ddhRing.d.ts +337 -0
- package/dist/types/apps/privacy/state-machines/note-pool.d.ts +196 -0
- package/dist/types/apps/staked-pool/assets.d.ts +53 -0
- package/dist/types/apps/staked-pool/base.d.ts +80 -0
- package/dist/types/apps/staked-pool/consumer.d.ts +29 -0
- package/dist/types/apps/staked-pool/index.d.ts +51 -0
- package/dist/types/apps/staked-pool/state-machines/index.d.ts +6 -0
- package/dist/types/apps/staked-pool/state-machines/staked-pool-base.d.ts +8 -0
- package/dist/types/apps/staked-pool/state-machines/staked-pool-oracle.d.ts +34 -0
- package/dist/types/generated/openapi.d.ts +13 -0
- package/dist/types/generated/ottochain/v1/fiber.d.ts +7 -0
- package/dist/types/index.d.ts +3 -3
- package/dist/types/openapi.d.ts +4 -2
- package/dist/types/ottochain/genesis-manifest.d.ts +6 -0
- package/dist/types/ottochain/index.d.ts +1 -1
- package/dist/types/ottochain/metagraph-client.d.ts +69 -15
- package/dist/types/ottochain/transaction.d.ts +9 -1
- package/dist/types/ottochain/types.d.ts +1 -1
- package/dist/types/privacy/index.d.ts +2 -2
- package/dist/types/privacy/sealed-bid.d.ts +9 -9
- package/dist/types/privacy/shield-app.d.ts +1 -1
- package/dist/types/schema/effects.d.ts +132 -0
- package/dist/types/schema/fiber-app.d.ts +281 -0
- package/dist/types/schema/guards.d.ts +12 -0
- package/dist/types/templates/asset-policy.d.ts +119 -0
- package/dist/types/templates/index.d.ts +26 -0
- package/dist/types/templates/machine.d.ts +139 -0
- package/dist/types/templates/migration.d.ts +34 -0
- package/dist/types/templates/state-shape.d.ts +30 -0
- package/dist/types/zk/index.d.ts +4 -4
- package/package.json +31 -13
|
@@ -47,13 +47,37 @@ function behaviorBits(b) {
|
|
|
47
47
|
/** Common behavior presets (asset-model.md §2). */
|
|
48
48
|
exports.TokenBehaviors = {
|
|
49
49
|
/** Non-transferable, non-divisible (bits 0). */
|
|
50
|
-
Soulbound: {
|
|
50
|
+
Soulbound: {
|
|
51
|
+
transferable: false,
|
|
52
|
+
splittable: false,
|
|
53
|
+
combinable: false,
|
|
54
|
+
expirable: false,
|
|
55
|
+
governable: false,
|
|
56
|
+
},
|
|
51
57
|
/** Transferable only (bits 16). */
|
|
52
|
-
NFT: {
|
|
58
|
+
NFT: {
|
|
59
|
+
transferable: true,
|
|
60
|
+
splittable: false,
|
|
61
|
+
combinable: false,
|
|
62
|
+
expirable: false,
|
|
63
|
+
governable: false,
|
|
64
|
+
},
|
|
53
65
|
/** Transferable + splittable + combinable (bits 28 = TSC). */
|
|
54
|
-
Fungible: {
|
|
66
|
+
Fungible: {
|
|
67
|
+
transferable: true,
|
|
68
|
+
splittable: true,
|
|
69
|
+
combinable: true,
|
|
70
|
+
expirable: false,
|
|
71
|
+
governable: false,
|
|
72
|
+
},
|
|
55
73
|
/** Fungible + governable (bits 29 = TSCG) — the default for a gated debt token. */
|
|
56
|
-
GovernedFungible: {
|
|
74
|
+
GovernedFungible: {
|
|
75
|
+
transferable: true,
|
|
76
|
+
splittable: true,
|
|
77
|
+
combinable: true,
|
|
78
|
+
expirable: false,
|
|
79
|
+
governable: true,
|
|
80
|
+
},
|
|
57
81
|
};
|
|
58
82
|
/** Publish an asset policy package version. asset-model.md §7. */
|
|
59
83
|
function createAssetPolicyPayload(params) {
|
|
@@ -125,19 +149,19 @@ function createAuthorizeComposePayload(params) {
|
|
|
125
149
|
* a custody Transfer into `AssetHolder.Fiber(escrow)`; release/liquidation is a Transfer out
|
|
126
150
|
* driven by the loan fiber's REPAID / LIQUIDATED transition (`_transferAsset`).
|
|
127
151
|
*/
|
|
128
|
-
function collateralPolicy(name =
|
|
152
|
+
function collateralPolicy(name = 'collateral-vault-v1.asset', version = '1.0.0') {
|
|
129
153
|
return {
|
|
130
154
|
name,
|
|
131
155
|
version,
|
|
132
156
|
behavior: { transferable: true, splittable: false, combinable: false, expirable: false, governable: true },
|
|
133
157
|
supply: { maxSupply: null, mintPolicy: null, burnPolicy: null, decimals: 0 },
|
|
134
158
|
morphisms: {
|
|
135
|
-
Transfer: { visibility:
|
|
136
|
-
Burn: { visibility:
|
|
137
|
-
Compose: { visibility:
|
|
159
|
+
Transfer: { visibility: 'Governed' },
|
|
160
|
+
Burn: { visibility: 'Disabled' },
|
|
161
|
+
Compose: { visibility: 'Disabled' },
|
|
138
162
|
},
|
|
139
163
|
stateShape: {},
|
|
140
|
-
metadata: { family:
|
|
164
|
+
metadata: { family: 'lending', role: 'collateral' },
|
|
141
165
|
};
|
|
142
166
|
}
|
|
143
167
|
/**
|
|
@@ -148,7 +172,7 @@ function collateralPolicy(name = "collateral-vault-v1.asset", version = "1.0.0")
|
|
|
148
172
|
* @param mintGuard the origination guard (see `buildOriginationGuard`) — a `groth16_verify`
|
|
149
173
|
* expression bound to the pinned public lending rule.
|
|
150
174
|
*/
|
|
151
|
-
function debtPolicy(mintGuard, name =
|
|
175
|
+
function debtPolicy(mintGuard, name = 'loan-debt-v1.asset', version = '1.0.0') {
|
|
152
176
|
return {
|
|
153
177
|
name,
|
|
154
178
|
version,
|
|
@@ -159,15 +183,15 @@ function debtPolicy(mintGuard, name = "loan-debt-v1.asset", version = "1.0.0") {
|
|
|
159
183
|
mintPolicy: mintGuard,
|
|
160
184
|
// Repayment burns the debt; only the holder (borrower) may burn theirs. The asset context has
|
|
161
185
|
// no `event` key — bind to the verified `signers` (chain-derived from the op's proofs).
|
|
162
|
-
burnPolicy: { in: [{ var:
|
|
186
|
+
burnPolicy: { in: [{ var: 'holder.Wallet.address' }, { var: 'signers' }] },
|
|
163
187
|
decimals: 2,
|
|
164
188
|
},
|
|
165
189
|
morphisms: {
|
|
166
|
-
Transfer: { visibility:
|
|
167
|
-
Burn: { visibility:
|
|
190
|
+
Transfer: { visibility: 'Public' },
|
|
191
|
+
Burn: { visibility: 'Public' },
|
|
168
192
|
},
|
|
169
193
|
stateShape: {},
|
|
170
|
-
metadata: { family:
|
|
194
|
+
metadata: { family: 'lending', role: 'debt' },
|
|
171
195
|
};
|
|
172
196
|
}
|
|
173
197
|
// ---------------------------------------------------------------------------
|
|
@@ -181,7 +205,7 @@ function debtPolicy(mintGuard, name = "loan-debt-v1.asset", version = "1.0.0") {
|
|
|
181
205
|
function lockCollateralOp(args) {
|
|
182
206
|
return createApplyMorphismPayload({
|
|
183
207
|
assetId: args.collateralAssetId,
|
|
184
|
-
kind:
|
|
208
|
+
kind: 'Transfer',
|
|
185
209
|
recipient: (0, exports.fiberHolder)(args.escrowFiberId),
|
|
186
210
|
targetSequenceNumber: args.targetSequenceNumber,
|
|
187
211
|
});
|
|
@@ -203,7 +227,7 @@ function mintPrincipalOp(args) {
|
|
|
203
227
|
function repayBurnOp(args) {
|
|
204
228
|
return createApplyMorphismPayload({
|
|
205
229
|
assetId: args.debtAssetId,
|
|
206
|
-
kind:
|
|
230
|
+
kind: 'Burn',
|
|
207
231
|
targetSequenceNumber: args.targetSequenceNumber,
|
|
208
232
|
});
|
|
209
233
|
}
|
|
@@ -216,7 +240,7 @@ function repayBurnOp(args) {
|
|
|
216
240
|
function settleCollateralOp(args) {
|
|
217
241
|
return createApplyMorphismPayload({
|
|
218
242
|
assetId: args.collateralAssetId,
|
|
219
|
-
kind:
|
|
243
|
+
kind: 'Transfer',
|
|
220
244
|
recipient: (0, exports.walletHolder)(args.recipient),
|
|
221
245
|
targetSequenceNumber: args.targetSequenceNumber,
|
|
222
246
|
});
|
|
@@ -45,8 +45,8 @@ function reputationScore(attestations, config = index_js_1.DEFAULT_REPUTATION_CO
|
|
|
45
45
|
*/
|
|
46
46
|
function reputationCreditRule(params) {
|
|
47
47
|
const base = (0, eligibility_js_1.lendingRule)(params); // coverage, or {and:[coverage, creditScore floor]}
|
|
48
|
-
const subjectBound = {
|
|
49
|
-
const clauses =
|
|
48
|
+
const subjectBound = { '===': [{ var: 'subject' }, params.borrowerId] };
|
|
49
|
+
const clauses = 'and' in base ? base.and : [base];
|
|
50
50
|
return { and: [...clauses, subjectBound] };
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
@@ -80,8 +80,8 @@ function reputationAuthorityClause(authorityPubKey) {
|
|
|
80
80
|
return {
|
|
81
81
|
schnorr_verify: [
|
|
82
82
|
authorityPubKey, // the reputation authority's public key — PINNED literal, not witness-supplied
|
|
83
|
-
{ var:
|
|
84
|
-
{ var:
|
|
83
|
+
{ var: 'scoreCommit' }, // the signed message: a commitment over (subject, creditScore)
|
|
84
|
+
{ var: 'repSig' }, // the authority's signature over scoreCommit
|
|
85
85
|
],
|
|
86
86
|
};
|
|
87
87
|
}
|
|
@@ -29,19 +29,13 @@ const index_js_1 = require("../../zk/index.js");
|
|
|
29
29
|
*/
|
|
30
30
|
function lendingRule(params) {
|
|
31
31
|
const coverage = {
|
|
32
|
-
|
|
33
|
-
{ "*": [{ var: "collateralValue" }, 100] },
|
|
34
|
-
params.loanAmount * params.collateralRatioPct,
|
|
35
|
-
],
|
|
32
|
+
'>=': [{ '*': [{ var: 'collateralValue' }, 100] }, params.loanAmount * params.collateralRatioPct],
|
|
36
33
|
};
|
|
37
34
|
if (params.minCreditScore === undefined) {
|
|
38
35
|
return coverage;
|
|
39
36
|
}
|
|
40
37
|
return {
|
|
41
|
-
and: [
|
|
42
|
-
coverage,
|
|
43
|
-
{ ">=": [{ var: "creditScore" }, params.minCreditScore] },
|
|
44
|
-
],
|
|
38
|
+
and: [coverage, { '>=': [{ var: 'creditScore' }, params.minCreditScore] }],
|
|
45
39
|
};
|
|
46
40
|
}
|
|
47
41
|
/**
|
|
@@ -76,32 +70,22 @@ function pinLendingRule(params, vkey) {
|
|
|
76
70
|
* policy uses it directly as the proof-gated `mintPolicy`.
|
|
77
71
|
*/
|
|
78
72
|
function buildOriginationGuard(refs = {}) {
|
|
79
|
-
const vkeyVar = refs.vkeyVar ??
|
|
80
|
-
const logicHashVar = refs.logicHashVar ??
|
|
81
|
-
const keccakTrueVar = refs.keccakTrueVar ??
|
|
73
|
+
const vkeyVar = refs.vkeyVar ?? 'state.lendingRuleVKey';
|
|
74
|
+
const logicHashVar = refs.logicHashVar ?? 'state.lendingRuleLogicHash';
|
|
75
|
+
const keccakTrueVar = refs.keccakTrueVar ?? 'state.keccakTrue';
|
|
82
76
|
return {
|
|
83
77
|
and: [
|
|
84
78
|
{
|
|
85
|
-
groth16_verify: [
|
|
86
|
-
{ var: vkeyVar },
|
|
87
|
-
{ var: "witness.publicValues" },
|
|
88
|
-
{ var: "witness.proof" },
|
|
89
|
-
],
|
|
79
|
+
groth16_verify: [{ var: vkeyVar }, { var: 'witness.publicValues' }, { var: 'witness.proof' }],
|
|
90
80
|
},
|
|
91
81
|
{
|
|
92
|
-
|
|
93
|
-
{ cat: ["0x", { substr: [{ var: "witness.publicValues" }, 2, 64] }] },
|
|
94
|
-
{ var: logicHashVar },
|
|
95
|
-
],
|
|
82
|
+
'===': [{ cat: ['0x', { substr: [{ var: 'witness.publicValues' }, 2, 64] }] }, { var: logicHashVar }],
|
|
96
83
|
},
|
|
97
84
|
{
|
|
98
|
-
|
|
99
|
-
{ cat: ["0x", { substr: [{ var: "witness.publicValues" }, 130, 64] }] },
|
|
100
|
-
{ var: keccakTrueVar },
|
|
101
|
-
],
|
|
85
|
+
'===': [{ cat: ['0x', { substr: [{ var: 'witness.publicValues' }, 130, 64] }] }, { var: keccakTrueVar }],
|
|
102
86
|
},
|
|
103
87
|
{
|
|
104
|
-
|
|
88
|
+
'===': [{ substr: [{ var: 'witness.publicValues' }, 256, 2] }, '01'],
|
|
105
89
|
},
|
|
106
90
|
],
|
|
107
91
|
};
|
|
@@ -48,7 +48,7 @@ exports.LENDING_DEFINITIONS = {
|
|
|
48
48
|
* Get a lending state machine definition by type.
|
|
49
49
|
* @param type - 'zkLoan' (default: 'zkLoan')
|
|
50
50
|
*/
|
|
51
|
-
function getLendingDefinition(type =
|
|
51
|
+
function getLendingDefinition(type = 'zkLoan') {
|
|
52
52
|
return exports.LENDING_DEFINITIONS[type];
|
|
53
53
|
}
|
|
54
54
|
// ---------------------------------------------------------------------------
|