@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.
- 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 +16 -9
- package/dist/cjs/apps/contracts/state-machines/contract-agreement.js +134 -161
- package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +192 -170
- package/dist/cjs/apps/contracts/state-machines/contract-universal.js +46 -58
- package/dist/cjs/apps/corporate/index.js +2 -2
- package/dist/cjs/apps/corporate/state-machines/corp-board.js +500 -456
- package/dist/cjs/apps/corporate/state-machines/corp-entity.js +487 -361
- package/dist/cjs/apps/corporate/state-machines/corp-securities.js +769 -576
- package/dist/cjs/apps/corporate/state-machines/corp-shareholders.js +567 -557
- package/dist/cjs/apps/governance/index.js +21 -21
- package/dist/cjs/apps/governance/state-machines/dao-multisig.js +188 -209
- package/dist/cjs/apps/governance/state-machines/dao-reputation.js +181 -228
- package/dist/cjs/apps/governance/state-machines/dao-single.js +105 -88
- package/dist/cjs/apps/governance/state-machines/dao-token.js +199 -227
- package/dist/cjs/apps/governance/state-machines/governance-simple.js +231 -231
- package/dist/cjs/apps/governance/state-machines/governance-universal.js +64 -64
- package/dist/cjs/apps/identity/constants.js +55 -22
- package/dist/cjs/apps/identity/index.js +28 -12
- package/dist/cjs/apps/identity/state-machines/identity-agent.js +124 -158
- package/dist/cjs/apps/identity/state-machines/identity-oracle.js +158 -173
- package/dist/cjs/apps/identity/state-machines/identity-registry.js +262 -0
- package/dist/cjs/apps/identity/state-machines/identity-universal.js +51 -57
- package/dist/cjs/apps/identity/state-machines/index.js +3 -1
- package/dist/cjs/apps/index.js +22 -8
- package/dist/cjs/apps/lending/assets.js +247 -0
- package/dist/cjs/apps/lending/credit-scoring.js +87 -0
- package/dist/cjs/apps/lending/eligibility.js +105 -0
- package/dist/cjs/apps/lending/index.js +91 -0
- package/dist/cjs/apps/lending/state-machines/index.js +9 -0
- package/dist/cjs/apps/lending/state-machines/lending-zk-loan.js +433 -0
- package/dist/cjs/apps/markets/index.js +22 -12
- package/dist/cjs/apps/markets/state-machines/market-auction.js +116 -134
- package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +131 -141
- package/dist/cjs/apps/markets/state-machines/market-group-buy.js +163 -184
- package/dist/cjs/apps/markets/state-machines/market-prediction.js +226 -233
- package/dist/cjs/apps/markets/state-machines/market-universal.js +65 -80
- package/dist/cjs/apps/oracles/index.js +3 -3
- 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/errors.js +3 -3
- package/dist/cjs/generated/google/protobuf/struct.js +5 -5
- package/dist/cjs/generated/google/protobuf/timestamp.js +1 -1
- package/dist/cjs/generated/index.js +11 -7
- package/dist/cjs/generated/openapi.js +6 -0
- package/dist/cjs/generated/ottochain/apps/contracts/v1/contract.js +51 -51
- package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate.js +20 -21
- package/dist/cjs/generated/ottochain/apps/governance/v1/governance.js +14 -14
- package/dist/cjs/generated/ottochain/apps/identity/v1/attestation.js +5 -5
- package/dist/cjs/generated/ottochain/apps/identity/v1/identity.js +125 -131
- package/dist/cjs/generated/ottochain/apps/markets/v1/market.js +108 -108
- package/dist/cjs/generated/ottochain/v1/common.js +5 -5
- package/dist/cjs/generated/ottochain/v1/fiber.js +44 -6
- 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 +58 -7
- package/dist/cjs/openapi.js +2 -0
- package/dist/cjs/ottochain/drop-nulls.js +1 -2
- package/dist/cjs/ottochain/genesis-manifest.js +17 -11
- package/dist/cjs/ottochain/index.js +23 -13
- package/dist/cjs/ottochain/metagraph-client.js +81 -16
- package/dist/cjs/ottochain/snapshot.js +13 -16
- package/dist/cjs/ottochain/transaction.js +67 -14
- package/dist/cjs/ottochain/types.js +16 -2
- package/dist/cjs/privacy/index.js +14 -0
- package/dist/cjs/privacy/sealed-bid.js +213 -0
- package/dist/cjs/privacy/shield-app.js +131 -0
- package/dist/cjs/schema/effects.js +156 -0
- package/dist/cjs/schema/fiber-app.js +150 -15
- package/dist/cjs/schema/guard-lint.js +343 -0
- package/dist/cjs/schema/guards.js +246 -0
- package/dist/cjs/signing.js +80 -0
- 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/types.js +2 -3
- package/dist/cjs/validation.js +9 -11
- package/dist/cjs/verify.js +9 -4
- package/dist/cjs/zk/commit.js +53 -0
- package/dist/cjs/zk/guard.js +107 -0
- package/dist/cjs/zk/index.js +48 -0
- package/dist/cjs/zk/preimage.js +37 -0
- package/dist/cjs/zk/prover.js +87 -0
- package/dist/cjs/zk/registry.js +62 -0
- package/dist/cjs/zk/types.js +28 -0
- package/dist/cjs/zk/witness.js +19 -0
- 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 +9 -5
- package/dist/esm/apps/contracts/state-machines/contract-agreement.js +135 -162
- package/dist/esm/apps/contracts/state-machines/contract-escrow.js +193 -171
- 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 +501 -457
- package/dist/esm/apps/corporate/state-machines/corp-entity.js +488 -362
- package/dist/esm/apps/corporate/state-machines/corp-securities.js +770 -577
- package/dist/esm/apps/corporate/state-machines/corp-shareholders.js +568 -558
- package/dist/esm/apps/governance/index.js +10 -10
- package/dist/esm/apps/governance/state-machines/dao-multisig.js +189 -210
- package/dist/esm/apps/governance/state-machines/dao-reputation.js +182 -229
- package/dist/esm/apps/governance/state-machines/dao-single.js +106 -89
- package/dist/esm/apps/governance/state-machines/dao-token.js +200 -228
- package/dist/esm/apps/governance/state-machines/governance-simple.js +232 -232
- package/dist/esm/apps/governance/state-machines/governance-universal.js +65 -65
- package/dist/esm/apps/identity/constants.js +52 -21
- package/dist/esm/apps/identity/index.js +14 -9
- package/dist/esm/apps/identity/state-machines/identity-agent.js +125 -159
- package/dist/esm/apps/identity/state-machines/identity-oracle.js +159 -174
- package/dist/esm/apps/identity/state-machines/identity-registry.js +259 -0
- package/dist/esm/apps/identity/state-machines/identity-universal.js +52 -58
- package/dist/esm/apps/identity/state-machines/index.js +1 -0
- package/dist/esm/apps/index.js +9 -5
- package/dist/esm/apps/lending/assets.js +231 -0
- package/dist/esm/apps/lending/credit-scoring.js +81 -0
- package/dist/esm/apps/lending/eligibility.js +99 -0
- package/dist/esm/apps/lending/index.js +69 -0
- package/dist/esm/apps/lending/state-machines/index.js +5 -0
- package/dist/esm/apps/lending/state-machines/lending-zk-loan.js +430 -0
- package/dist/esm/apps/markets/index.js +11 -7
- package/dist/esm/apps/markets/state-machines/market-auction.js +117 -135
- package/dist/esm/apps/markets/state-machines/market-crowdfund.js +132 -142
- package/dist/esm/apps/markets/state-machines/market-group-buy.js +164 -185
- package/dist/esm/apps/markets/state-machines/market-prediction.js +227 -234
- 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/index.js +9 -5
- package/dist/esm/generated/openapi.js +5 -0
- package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +47 -47
- 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 +115 -121
- package/dist/esm/generated/ottochain/apps/markets/v1/market.js +101 -101
- 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 +28 -3
- package/dist/esm/openapi.js +1 -0
- package/dist/esm/ottochain/genesis-manifest.js +15 -9
- package/dist/esm/ottochain/index.js +2 -3
- package/dist/esm/ottochain/metagraph-client.js +81 -16
- package/dist/esm/ottochain/snapshot.js +6 -8
- package/dist/esm/ottochain/transaction.js +51 -3
- package/dist/esm/ottochain/types.js +15 -1
- package/dist/esm/privacy/index.js +6 -0
- package/dist/esm/privacy/sealed-bid.js +209 -0
- package/dist/esm/privacy/shield-app.js +127 -0
- package/dist/esm/schema/effects.js +145 -0
- package/dist/esm/schema/fiber-app.js +139 -8
- package/dist/esm/schema/guard-lint.js +337 -0
- package/dist/esm/schema/guards.js +228 -0
- package/dist/esm/signing.js +74 -0
- 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/verify.js +8 -2
- package/dist/esm/zk/commit.js +44 -0
- package/dist/esm/zk/guard.js +99 -0
- package/dist/esm/zk/index.js +19 -0
- package/dist/esm/zk/preimage.js +30 -0
- package/dist/esm/zk/prover.js +82 -0
- package/dist/esm/zk/registry.js +55 -0
- package/dist/esm/zk/types.js +25 -0
- package/dist/esm/zk/witness.js +15 -0
- 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 +81 -221
- package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +23 -98
- package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +49 -115
- package/dist/types/apps/contracts/state-machines/contract-universal.d.ts +4 -4
- package/dist/types/apps/corporate/index.d.ts +1176 -440
- package/dist/types/apps/corporate/state-machines/corp-board.d.ts +271 -135
- package/dist/types/apps/corporate/state-machines/corp-entity.d.ts +279 -74
- package/dist/types/apps/corporate/state-machines/corp-securities.d.ts +373 -149
- package/dist/types/apps/corporate/state-machines/corp-shareholders.d.ts +252 -80
- package/dist/types/apps/governance/index.d.ts +368 -470
- package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +92 -107
- package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +61 -85
- package/dist/types/apps/governance/state-machines/dao-single.d.ts +25 -47
- package/dist/types/apps/governance/state-machines/dao-token.d.ts +79 -68
- package/dist/types/apps/governance/state-machines/governance-simple.d.ts +95 -125
- package/dist/types/apps/governance/state-machines/governance-universal.d.ts +6 -6
- package/dist/types/apps/identity/constants.d.ts +33 -5
- package/dist/types/apps/identity/index.d.ts +415 -131
- package/dist/types/apps/identity/state-machines/identity-agent.d.ts +23 -23
- package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +27 -98
- package/dist/types/apps/identity/state-machines/identity-registry.d.ts +379 -0
- package/dist/types/apps/identity/state-machines/identity-universal.d.ts +4 -4
- package/dist/types/apps/identity/state-machines/index.d.ts +1 -0
- package/dist/types/apps/index.d.ts +9 -5
- package/dist/types/apps/lending/assets.d.ts +258 -0
- package/dist/types/apps/lending/credit-scoring.d.ts +80 -0
- package/dist/types/apps/lending/eligibility.d.ts +83 -0
- package/dist/types/apps/lending/index.d.ts +556 -0
- package/dist/types/apps/lending/state-machines/index.d.ts +5 -0
- package/dist/types/apps/lending/state-machines/lending-zk-loan.d.ts +536 -0
- package/dist/types/apps/markets/index.d.ts +181 -276
- package/dist/types/apps/markets/state-machines/market-auction.d.ts +25 -49
- package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +35 -53
- package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +35 -61
- package/dist/types/apps/markets/state-machines/market-prediction.d.ts +65 -86
- package/dist/types/apps/markets/state-machines/market-universal.d.ts +12 -12
- 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/index.d.ts +5 -5
- package/dist/types/generated/openapi.d.ts +1270 -0
- package/dist/types/generated/ottochain/apps/contracts/v1/contract.d.ts +5 -5
- package/dist/types/generated/ottochain/apps/identity/v1/identity.d.ts +12 -12
- package/dist/types/generated/ottochain/apps/markets/v1/market.d.ts +11 -11
- package/dist/types/generated/ottochain/v1/fiber.d.ts +7 -0
- package/dist/types/index.d.ts +7 -3
- package/dist/types/openapi.d.ts +24 -0
- package/dist/types/ottochain/genesis-manifest.d.ts +11 -5
- package/dist/types/ottochain/index.d.ts +5 -6
- package/dist/types/ottochain/metagraph-client.d.ts +49 -7
- package/dist/types/ottochain/snapshot.d.ts +6 -6
- package/dist/types/ottochain/transaction.d.ts +41 -1
- package/dist/types/ottochain/types.d.ts +336 -31
- package/dist/types/privacy/index.d.ts +6 -0
- package/dist/types/privacy/sealed-bid.d.ts +348 -0
- package/dist/types/privacy/shield-app.d.ts +48 -0
- package/dist/types/schema/effects.d.ts +141 -0
- package/dist/types/schema/fiber-app.d.ts +282 -2
- package/dist/types/schema/guard-lint.d.ts +111 -0
- package/dist/types/schema/guards.d.ts +146 -0
- package/dist/types/signing.d.ts +45 -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/validation.d.ts +22 -217
- package/dist/types/verify.d.ts +4 -0
- package/dist/types/zk/commit.d.ts +28 -0
- package/dist/types/zk/guard.d.ts +46 -0
- package/dist/types/zk/index.d.ts +19 -0
- package/dist/types/zk/preimage.d.ts +10 -0
- package/dist/types/zk/prover.d.ts +34 -0
- package/dist/types/zk/registry.d.ts +34 -0
- package/dist/types/zk/types.d.ts +33 -0
- package/dist/types/zk/witness.d.ts +40 -0
- package/package.json +47 -15
- package/dist/cjs/ottochain/normalize.js +0 -186
- package/dist/esm/ottochain/normalize.js +0 -179
- package/dist/types/ottochain/normalize.d.ts +0 -79
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity Registry — the ecosystem authority & reputation source.
|
|
3
|
+
*
|
|
4
|
+
* Aggregates, under a single authority-governed fiber:
|
|
5
|
+
* - `reputations: { <address>: int }` — the public reputation read by reputation-gated apps
|
|
6
|
+
* (dao-reputation, credit-scoring) via a declared dependency + the `signerHasReputation` helper.
|
|
7
|
+
* - role attestations (ARBITER / SLASHER / ISSUER / BOARD_MEMBER) as FLAT per-role maps
|
|
8
|
+
* `{ <address>: true }`, read via the `signerHasRole` helper for judicial / issuance / governance
|
|
9
|
+
* authority gates.
|
|
10
|
+
*
|
|
11
|
+
* Writes are gated to the registry's pinned `authority` (immutable, set at create) and bound to the
|
|
12
|
+
* CHAIN-VERIFIED signer via `signerIsParty("state.authority")` — never `event.agent`. Reads happen
|
|
13
|
+
* cross-fiber: a consumer app declares this registry as a dependency and reads
|
|
14
|
+
* `machines.<registryDep>.state.reputations` / `.arbiters` / … bound to `proofs[].address`.
|
|
15
|
+
*
|
|
16
|
+
* Roles are flat per-role maps rather than a nested `roles[addr][ROLE]` map on purpose: metakit
|
|
17
|
+
* `get`/`has` on a NULL inner map throw (they are not null-total), so a nested read would error for
|
|
18
|
+
* any signer with no roles entry — the common case. Flat maps keep both the write (`set`/`unset`) and
|
|
19
|
+
* the read (`has`) total and fail-closed. New role types are added as new state maps + a cascade arm.
|
|
20
|
+
*
|
|
21
|
+
* See docs/design/app-hardening-identity-integration.md §3–§4 and src/schema/guards.ts
|
|
22
|
+
* (signerHasReputation / signerHasRole).
|
|
23
|
+
*/
|
|
24
|
+
export declare const identityRegistryDef: {
|
|
25
|
+
metadata: {
|
|
26
|
+
name: string;
|
|
27
|
+
app: string;
|
|
28
|
+
type: string;
|
|
29
|
+
version: string;
|
|
30
|
+
description: string;
|
|
31
|
+
crossReferences: {
|
|
32
|
+
IdentityAgent: string;
|
|
33
|
+
Governance: string;
|
|
34
|
+
Contracts: string;
|
|
35
|
+
Corporate: string;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
createSchema: {
|
|
39
|
+
required: readonly ["authority"];
|
|
40
|
+
properties: {
|
|
41
|
+
authority: {
|
|
42
|
+
type: "address";
|
|
43
|
+
description: string;
|
|
44
|
+
immutable: true;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
stateSchema: {
|
|
49
|
+
properties: {
|
|
50
|
+
authority: {
|
|
51
|
+
type: "address";
|
|
52
|
+
immutable: true;
|
|
53
|
+
};
|
|
54
|
+
reputations: {
|
|
55
|
+
type: "object";
|
|
56
|
+
computed: true;
|
|
57
|
+
};
|
|
58
|
+
arbiters: {
|
|
59
|
+
type: "object";
|
|
60
|
+
computed: true;
|
|
61
|
+
};
|
|
62
|
+
slashers: {
|
|
63
|
+
type: "object";
|
|
64
|
+
computed: true;
|
|
65
|
+
};
|
|
66
|
+
issuers: {
|
|
67
|
+
type: "object";
|
|
68
|
+
computed: true;
|
|
69
|
+
};
|
|
70
|
+
boardMembers: {
|
|
71
|
+
type: "object";
|
|
72
|
+
computed: true;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
eventSchemas: {
|
|
77
|
+
set_reputation: {
|
|
78
|
+
description: string;
|
|
79
|
+
required: readonly ["subject", "score"];
|
|
80
|
+
properties: {
|
|
81
|
+
subject: {
|
|
82
|
+
type: "address";
|
|
83
|
+
};
|
|
84
|
+
score: {
|
|
85
|
+
type: "integer";
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
adjust_reputation: {
|
|
90
|
+
description: string;
|
|
91
|
+
required: readonly ["subject", "delta"];
|
|
92
|
+
properties: {
|
|
93
|
+
subject: {
|
|
94
|
+
type: "address";
|
|
95
|
+
};
|
|
96
|
+
delta: {
|
|
97
|
+
type: "integer";
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
grant_role: {
|
|
102
|
+
description: string;
|
|
103
|
+
required: readonly ["subject", "role"];
|
|
104
|
+
properties: {
|
|
105
|
+
subject: {
|
|
106
|
+
type: "address";
|
|
107
|
+
};
|
|
108
|
+
role: {
|
|
109
|
+
type: "string";
|
|
110
|
+
enum: readonly ["ARBITER", "SLASHER", "ISSUER", "BOARD_MEMBER"];
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
revoke_role: {
|
|
115
|
+
description: string;
|
|
116
|
+
required: readonly ["subject", "role"];
|
|
117
|
+
properties: {
|
|
118
|
+
subject: {
|
|
119
|
+
type: "address";
|
|
120
|
+
};
|
|
121
|
+
role: {
|
|
122
|
+
type: "string";
|
|
123
|
+
enum: readonly ["ARBITER", "SLASHER", "ISSUER", "BOARD_MEMBER"];
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
states: {
|
|
129
|
+
ACTIVE: {
|
|
130
|
+
id: string;
|
|
131
|
+
isFinal: false;
|
|
132
|
+
metadata: {
|
|
133
|
+
label: string;
|
|
134
|
+
description: string;
|
|
135
|
+
category: "active";
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
initialState: "ACTIVE";
|
|
140
|
+
transitions: ({
|
|
141
|
+
from: "ACTIVE";
|
|
142
|
+
to: "ACTIVE";
|
|
143
|
+
eventName: "set_reputation";
|
|
144
|
+
guard: import("../../../schema/guards.js").GuardRule;
|
|
145
|
+
effect: {
|
|
146
|
+
merge: ({
|
|
147
|
+
var: string;
|
|
148
|
+
reputations?: undefined;
|
|
149
|
+
} | {
|
|
150
|
+
reputations: {
|
|
151
|
+
set: {
|
|
152
|
+
var: string;
|
|
153
|
+
}[];
|
|
154
|
+
};
|
|
155
|
+
var?: undefined;
|
|
156
|
+
})[];
|
|
157
|
+
};
|
|
158
|
+
dependencies: never[];
|
|
159
|
+
} | {
|
|
160
|
+
from: "ACTIVE";
|
|
161
|
+
to: "ACTIVE";
|
|
162
|
+
eventName: "adjust_reputation";
|
|
163
|
+
guard: import("../../../schema/guards.js").GuardRule;
|
|
164
|
+
effect: {
|
|
165
|
+
merge: ({
|
|
166
|
+
var: string;
|
|
167
|
+
reputations?: undefined;
|
|
168
|
+
} | {
|
|
169
|
+
reputations: {
|
|
170
|
+
set: ({
|
|
171
|
+
var: string;
|
|
172
|
+
'+'?: undefined;
|
|
173
|
+
} | {
|
|
174
|
+
'+': ({
|
|
175
|
+
get: {
|
|
176
|
+
var: string;
|
|
177
|
+
}[];
|
|
178
|
+
var?: undefined;
|
|
179
|
+
} | {
|
|
180
|
+
var: string;
|
|
181
|
+
get?: undefined;
|
|
182
|
+
})[];
|
|
183
|
+
var?: undefined;
|
|
184
|
+
})[];
|
|
185
|
+
};
|
|
186
|
+
var?: undefined;
|
|
187
|
+
})[];
|
|
188
|
+
};
|
|
189
|
+
dependencies: never[];
|
|
190
|
+
} | {
|
|
191
|
+
from: "ACTIVE";
|
|
192
|
+
to: "ACTIVE";
|
|
193
|
+
eventName: "grant_role";
|
|
194
|
+
guard: import("../../../schema/guards.js").GuardRule;
|
|
195
|
+
effect: {
|
|
196
|
+
merge: ({
|
|
197
|
+
var: string;
|
|
198
|
+
arbiters?: undefined;
|
|
199
|
+
slashers?: undefined;
|
|
200
|
+
issuers?: undefined;
|
|
201
|
+
boardMembers?: undefined;
|
|
202
|
+
} | {
|
|
203
|
+
arbiters: {
|
|
204
|
+
if: ({
|
|
205
|
+
'==': (string | {
|
|
206
|
+
var: string;
|
|
207
|
+
})[];
|
|
208
|
+
set?: undefined;
|
|
209
|
+
var?: undefined;
|
|
210
|
+
} | {
|
|
211
|
+
set: (boolean | {
|
|
212
|
+
var: string;
|
|
213
|
+
})[];
|
|
214
|
+
'=='?: undefined;
|
|
215
|
+
var?: undefined;
|
|
216
|
+
} | {
|
|
217
|
+
var: string;
|
|
218
|
+
'=='?: undefined;
|
|
219
|
+
set?: undefined;
|
|
220
|
+
})[];
|
|
221
|
+
};
|
|
222
|
+
slashers: {
|
|
223
|
+
if: ({
|
|
224
|
+
'==': (string | {
|
|
225
|
+
var: string;
|
|
226
|
+
})[];
|
|
227
|
+
set?: undefined;
|
|
228
|
+
var?: undefined;
|
|
229
|
+
} | {
|
|
230
|
+
set: (boolean | {
|
|
231
|
+
var: string;
|
|
232
|
+
})[];
|
|
233
|
+
'=='?: undefined;
|
|
234
|
+
var?: undefined;
|
|
235
|
+
} | {
|
|
236
|
+
var: string;
|
|
237
|
+
'=='?: undefined;
|
|
238
|
+
set?: undefined;
|
|
239
|
+
})[];
|
|
240
|
+
};
|
|
241
|
+
issuers: {
|
|
242
|
+
if: ({
|
|
243
|
+
'==': (string | {
|
|
244
|
+
var: string;
|
|
245
|
+
})[];
|
|
246
|
+
set?: undefined;
|
|
247
|
+
var?: undefined;
|
|
248
|
+
} | {
|
|
249
|
+
set: (boolean | {
|
|
250
|
+
var: string;
|
|
251
|
+
})[];
|
|
252
|
+
'=='?: undefined;
|
|
253
|
+
var?: undefined;
|
|
254
|
+
} | {
|
|
255
|
+
var: string;
|
|
256
|
+
'=='?: undefined;
|
|
257
|
+
set?: undefined;
|
|
258
|
+
})[];
|
|
259
|
+
};
|
|
260
|
+
boardMembers: {
|
|
261
|
+
if: ({
|
|
262
|
+
'==': (string | {
|
|
263
|
+
var: string;
|
|
264
|
+
})[];
|
|
265
|
+
set?: undefined;
|
|
266
|
+
var?: undefined;
|
|
267
|
+
} | {
|
|
268
|
+
set: (boolean | {
|
|
269
|
+
var: string;
|
|
270
|
+
})[];
|
|
271
|
+
'=='?: undefined;
|
|
272
|
+
var?: undefined;
|
|
273
|
+
} | {
|
|
274
|
+
var: string;
|
|
275
|
+
'=='?: undefined;
|
|
276
|
+
set?: undefined;
|
|
277
|
+
})[];
|
|
278
|
+
};
|
|
279
|
+
var?: undefined;
|
|
280
|
+
})[];
|
|
281
|
+
};
|
|
282
|
+
dependencies: never[];
|
|
283
|
+
} | {
|
|
284
|
+
from: "ACTIVE";
|
|
285
|
+
to: "ACTIVE";
|
|
286
|
+
eventName: "revoke_role";
|
|
287
|
+
guard: import("../../../schema/guards.js").GuardRule;
|
|
288
|
+
effect: {
|
|
289
|
+
merge: ({
|
|
290
|
+
var: string;
|
|
291
|
+
arbiters?: undefined;
|
|
292
|
+
slashers?: undefined;
|
|
293
|
+
issuers?: undefined;
|
|
294
|
+
boardMembers?: undefined;
|
|
295
|
+
} | {
|
|
296
|
+
arbiters: {
|
|
297
|
+
if: ({
|
|
298
|
+
'==': (string | {
|
|
299
|
+
var: string;
|
|
300
|
+
})[];
|
|
301
|
+
unset?: undefined;
|
|
302
|
+
var?: undefined;
|
|
303
|
+
} | {
|
|
304
|
+
unset: {
|
|
305
|
+
var: string;
|
|
306
|
+
}[];
|
|
307
|
+
'=='?: undefined;
|
|
308
|
+
var?: undefined;
|
|
309
|
+
} | {
|
|
310
|
+
var: string;
|
|
311
|
+
'=='?: undefined;
|
|
312
|
+
unset?: undefined;
|
|
313
|
+
})[];
|
|
314
|
+
};
|
|
315
|
+
slashers: {
|
|
316
|
+
if: ({
|
|
317
|
+
'==': (string | {
|
|
318
|
+
var: string;
|
|
319
|
+
})[];
|
|
320
|
+
unset?: undefined;
|
|
321
|
+
var?: undefined;
|
|
322
|
+
} | {
|
|
323
|
+
unset: {
|
|
324
|
+
var: string;
|
|
325
|
+
}[];
|
|
326
|
+
'=='?: undefined;
|
|
327
|
+
var?: undefined;
|
|
328
|
+
} | {
|
|
329
|
+
var: string;
|
|
330
|
+
'=='?: undefined;
|
|
331
|
+
unset?: undefined;
|
|
332
|
+
})[];
|
|
333
|
+
};
|
|
334
|
+
issuers: {
|
|
335
|
+
if: ({
|
|
336
|
+
'==': (string | {
|
|
337
|
+
var: string;
|
|
338
|
+
})[];
|
|
339
|
+
unset?: undefined;
|
|
340
|
+
var?: undefined;
|
|
341
|
+
} | {
|
|
342
|
+
unset: {
|
|
343
|
+
var: string;
|
|
344
|
+
}[];
|
|
345
|
+
'=='?: undefined;
|
|
346
|
+
var?: undefined;
|
|
347
|
+
} | {
|
|
348
|
+
var: string;
|
|
349
|
+
'=='?: undefined;
|
|
350
|
+
unset?: undefined;
|
|
351
|
+
})[];
|
|
352
|
+
};
|
|
353
|
+
boardMembers: {
|
|
354
|
+
if: ({
|
|
355
|
+
'==': (string | {
|
|
356
|
+
var: string;
|
|
357
|
+
})[];
|
|
358
|
+
unset?: undefined;
|
|
359
|
+
var?: undefined;
|
|
360
|
+
} | {
|
|
361
|
+
unset: {
|
|
362
|
+
var: string;
|
|
363
|
+
}[];
|
|
364
|
+
'=='?: undefined;
|
|
365
|
+
var?: undefined;
|
|
366
|
+
} | {
|
|
367
|
+
var: string;
|
|
368
|
+
'=='?: undefined;
|
|
369
|
+
unset?: undefined;
|
|
370
|
+
})[];
|
|
371
|
+
};
|
|
372
|
+
var?: undefined;
|
|
373
|
+
})[];
|
|
374
|
+
};
|
|
375
|
+
dependencies: never[];
|
|
376
|
+
})[];
|
|
377
|
+
};
|
|
378
|
+
export type RegistryState = keyof typeof identityRegistryDef.states;
|
|
379
|
+
export type RegistryEvent = (typeof identityRegistryDef.transitions)[number]['eventName'];
|
|
@@ -103,7 +103,7 @@ export declare const identityUniversalDef: {
|
|
|
103
103
|
to: "ACTIVE";
|
|
104
104
|
eventName: "activate";
|
|
105
105
|
guard: {
|
|
106
|
-
|
|
106
|
+
'==': number[];
|
|
107
107
|
};
|
|
108
108
|
effect: {
|
|
109
109
|
merge: ({
|
|
@@ -123,7 +123,7 @@ export declare const identityUniversalDef: {
|
|
|
123
123
|
to: "ACTIVE";
|
|
124
124
|
eventName: "update";
|
|
125
125
|
guard: {
|
|
126
|
-
|
|
126
|
+
'==': number[];
|
|
127
127
|
};
|
|
128
128
|
effect: {
|
|
129
129
|
merge: ({
|
|
@@ -145,7 +145,7 @@ export declare const identityUniversalDef: {
|
|
|
145
145
|
to: "INACTIVE";
|
|
146
146
|
eventName: "deactivate";
|
|
147
147
|
guard: {
|
|
148
|
-
|
|
148
|
+
'==': number[];
|
|
149
149
|
};
|
|
150
150
|
effect: {
|
|
151
151
|
merge: ({
|
|
@@ -163,4 +163,4 @@ export declare const identityUniversalDef: {
|
|
|
163
163
|
})[];
|
|
164
164
|
};
|
|
165
165
|
export type UniversalIdentityState = keyof typeof identityUniversalDef.states;
|
|
166
|
-
export type UniversalIdentityEvent = (typeof identityUniversalDef.transitions)[number][
|
|
166
|
+
export type UniversalIdentityEvent = (typeof identityUniversalDef.transitions)[number]['eventName'];
|
|
@@ -26,8 +26,12 @@
|
|
|
26
26
|
*
|
|
27
27
|
* @packageDocumentation
|
|
28
28
|
*/
|
|
29
|
-
export * as identity from
|
|
30
|
-
export * as contracts from
|
|
31
|
-
export * as markets from
|
|
32
|
-
export * as governance from
|
|
33
|
-
export * as corporate from
|
|
29
|
+
export * as identity from './identity/index.js';
|
|
30
|
+
export * as contracts from './contracts/index.js';
|
|
31
|
+
export * as markets from './markets/index.js';
|
|
32
|
+
export * as governance from './governance/index.js';
|
|
33
|
+
export * as corporate from './corporate/index.js';
|
|
34
|
+
export * as lending from './lending/index.js';
|
|
35
|
+
export * as compute from './compute/index.js';
|
|
36
|
+
export * as stakedPool from './staked-pool/index.js';
|
|
37
|
+
export * as privacy from './privacy/index.js';
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asset-subsystem integration for the lending family.
|
|
3
|
+
*
|
|
4
|
+
* The loan's collateral, principal/debt, and repayment are ASSETS. This module provides
|
|
5
|
+
* typed payload builders for the OttoChain asset operations and loan-specific helpers that
|
|
6
|
+
* map the zk-loan lifecycle onto typed asset morphisms.
|
|
7
|
+
*
|
|
8
|
+
* Wire shapes mirror the asset-model proposal
|
|
9
|
+
* (`/home/euler/repos/ottochain/docs/proposals/asset-model.md` §7 — `CreateAssetPolicy`,
|
|
10
|
+
* `MintAsset`, `ApplyMorphism`, `AuthorizeCompose`; §8 — Governed/ZkVerify-gated morphisms)
|
|
11
|
+
* and follow the SDK's existing single-key-wrapper convention (the discriminator is the outer
|
|
12
|
+
* key, e.g. `{ MintAsset: {...} }`), matching `src/ottochain/transaction.ts`
|
|
13
|
+
* (`createTransitionPayload`, `createScriptPayload`, ...). The asset op-codes are not yet a
|
|
14
|
+
* merged TypeScript SDK surface; these builders let the lending app construct the proposed
|
|
15
|
+
* wire format today and sign it with the existing `signTransaction` path.
|
|
16
|
+
*
|
|
17
|
+
* Amounts are `Long` on-chain; modeled here as `number` for SDK ergonomics (callers may pass a
|
|
18
|
+
* string for values beyond 2^53 — the field is serialized verbatim).
|
|
19
|
+
*/
|
|
20
|
+
/** A holder of an asset: a wallet address, or a custody fiber (the escrow). */
|
|
21
|
+
export type AssetHolder = {
|
|
22
|
+
Wallet: {
|
|
23
|
+
address: string;
|
|
24
|
+
};
|
|
25
|
+
} | {
|
|
26
|
+
Fiber: {
|
|
27
|
+
fiberId: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
/** Helpers for the two-variant holder. */
|
|
31
|
+
export declare const walletHolder: (address: string) => AssetHolder;
|
|
32
|
+
export declare const fiberHolder: (fiberId: string) => AssetHolder;
|
|
33
|
+
/** 5-bit token behavior lattice (T/S/C ascending, E/G descending). asset-model.md §2. */
|
|
34
|
+
export interface TokenBehavior {
|
|
35
|
+
transferable: boolean;
|
|
36
|
+
splittable: boolean;
|
|
37
|
+
combinable: boolean;
|
|
38
|
+
expirable: boolean;
|
|
39
|
+
governable: boolean;
|
|
40
|
+
}
|
|
41
|
+
/** Pack a {@link TokenBehavior} to its 5-bit integer (T=16 S=8 C=4 E=2 G=1). */
|
|
42
|
+
export declare function behaviorBits(b: TokenBehavior): number;
|
|
43
|
+
/** Common behavior presets (asset-model.md §2). */
|
|
44
|
+
export declare const TokenBehaviors: {
|
|
45
|
+
/** Non-transferable, non-divisible (bits 0). */
|
|
46
|
+
readonly Soulbound: TokenBehavior;
|
|
47
|
+
/** Transferable only (bits 16). */
|
|
48
|
+
readonly NFT: TokenBehavior;
|
|
49
|
+
/** Transferable + splittable + combinable (bits 28 = TSC). */
|
|
50
|
+
readonly Fungible: TokenBehavior;
|
|
51
|
+
/** Fungible + governable (bits 29 = TSCG) — the default for a gated debt token. */
|
|
52
|
+
readonly GovernedFungible: TokenBehavior;
|
|
53
|
+
};
|
|
54
|
+
/** A JSON-Logic expression (guard/policy). */
|
|
55
|
+
export type JsonLogicRule = Record<string, unknown>;
|
|
56
|
+
/** Supply policy: cap, mint/burn JSON-Logic guards, decimals. asset-model.md §3. */
|
|
57
|
+
export interface SupplyPolicy {
|
|
58
|
+
/** Hard cap; null = uncapped. */
|
|
59
|
+
maxSupply?: number | string | null;
|
|
60
|
+
/** Mint guard (JSON-Logic); null = minting closed after genesis. */
|
|
61
|
+
mintPolicy?: JsonLogicRule | null;
|
|
62
|
+
/** Burn guard (JSON-Logic); null = no burning. */
|
|
63
|
+
burnPolicy?: JsonLogicRule | null;
|
|
64
|
+
/** Fungible decimals; null/0 for NFTs. */
|
|
65
|
+
decimals?: number | null;
|
|
66
|
+
}
|
|
67
|
+
/** Morphism kinds. asset-model.md §4. */
|
|
68
|
+
export type MorphismKind = 'Transfer' | 'Burn' | 'Fractionalize' | 'Compose' | 'Decompose' | 'Wrap' | 'Stake';
|
|
69
|
+
/** Morphism visibility — Governed carries a JSON-Logic guard. asset-model.md §8. */
|
|
70
|
+
export type MorphismVisibility = 'Public' | 'Governed' | 'Disabled';
|
|
71
|
+
/** Per-kind morphism spec on a policy version. asset-model.md §7. */
|
|
72
|
+
export interface MorphismSpec {
|
|
73
|
+
visibility: MorphismVisibility;
|
|
74
|
+
/** Counter-party policy allowlist; omit for any. */
|
|
75
|
+
allowedPolicies?: string[];
|
|
76
|
+
/** Counter-party behavior-bitmask allowlist; omit for any. */
|
|
77
|
+
allowedTypes?: number[];
|
|
78
|
+
/** JSON-Logic guard (Governed only). */
|
|
79
|
+
guard?: JsonLogicRule;
|
|
80
|
+
}
|
|
81
|
+
/** A version requirement for resolving a policy. mirrors SDK `VersionReq`. */
|
|
82
|
+
export type VersionReq = {
|
|
83
|
+
Exact: {
|
|
84
|
+
version: string;
|
|
85
|
+
};
|
|
86
|
+
} | {
|
|
87
|
+
Caret: {
|
|
88
|
+
version: string;
|
|
89
|
+
};
|
|
90
|
+
} | {
|
|
91
|
+
Tilde: {
|
|
92
|
+
version: string;
|
|
93
|
+
};
|
|
94
|
+
} | {
|
|
95
|
+
Latest: Record<string, never>;
|
|
96
|
+
} | {
|
|
97
|
+
PinnedHash: {
|
|
98
|
+
hash: string;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
/** A policy reference `(name, versionReq)`. mirrors SDK `SchemaRef`. */
|
|
102
|
+
export interface PolicyRef {
|
|
103
|
+
name: string;
|
|
104
|
+
version: VersionReq;
|
|
105
|
+
}
|
|
106
|
+
export interface CreateAssetPolicyParams {
|
|
107
|
+
/** `.asset` registry name, e.g. "collateral-vault-v1.asset". */
|
|
108
|
+
name: string;
|
|
109
|
+
version: string;
|
|
110
|
+
behavior: TokenBehavior;
|
|
111
|
+
supply: SupplyPolicy;
|
|
112
|
+
morphisms: Partial<Record<MorphismKind, MorphismSpec>>;
|
|
113
|
+
/** The asset record's state shape (proto message shape); free-form here. */
|
|
114
|
+
stateShape: Record<string, unknown>;
|
|
115
|
+
metadata?: Record<string, string>;
|
|
116
|
+
}
|
|
117
|
+
export interface CreateAssetPolicyMessage {
|
|
118
|
+
CreateAssetPolicy: {
|
|
119
|
+
name: string;
|
|
120
|
+
version: string;
|
|
121
|
+
behavior: TokenBehavior;
|
|
122
|
+
supply: SupplyPolicy;
|
|
123
|
+
morphisms: Partial<Record<MorphismKind, MorphismSpec>>;
|
|
124
|
+
stateShape: Record<string, unknown>;
|
|
125
|
+
metadata?: Record<string, string>;
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/** Publish an asset policy package version. asset-model.md §7. */
|
|
129
|
+
export declare function createAssetPolicyPayload(params: CreateAssetPolicyParams): CreateAssetPolicyMessage;
|
|
130
|
+
export interface MintAssetParams {
|
|
131
|
+
/** The new asset instance id (UUID). */
|
|
132
|
+
assetId: string;
|
|
133
|
+
policyRef: PolicyRef;
|
|
134
|
+
holder: AssetHolder;
|
|
135
|
+
amount: number | string;
|
|
136
|
+
expiresAt?: number;
|
|
137
|
+
/** Witness the policy's `mintPolicy` guard reads (e.g. a Groth16 eligibility proof). */
|
|
138
|
+
witness?: Record<string, unknown>;
|
|
139
|
+
}
|
|
140
|
+
export interface MintAssetMessage {
|
|
141
|
+
MintAsset: {
|
|
142
|
+
assetId: string;
|
|
143
|
+
policyRef: PolicyRef;
|
|
144
|
+
holder: AssetHolder;
|
|
145
|
+
amount: number | string;
|
|
146
|
+
expiresAt?: number;
|
|
147
|
+
witness?: Record<string, unknown>;
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Mint an asset instance. asset-model.md §7. When the policy's `mintPolicy` is a
|
|
152
|
+
* `groth16_verify` guard (proof-gated mint), pass the eligibility `witness`.
|
|
153
|
+
*/
|
|
154
|
+
export declare function createMintAssetPayload(params: MintAssetParams): MintAssetMessage;
|
|
155
|
+
export interface ApplyMorphismParams {
|
|
156
|
+
assetId: string;
|
|
157
|
+
kind: MorphismKind;
|
|
158
|
+
targetSequenceNumber: number;
|
|
159
|
+
recipient?: AssetHolder;
|
|
160
|
+
otherAssets?: string[];
|
|
161
|
+
compositeId?: string;
|
|
162
|
+
shardIds?: string[];
|
|
163
|
+
nonce?: number;
|
|
164
|
+
/** Witness a Governed morphism's `guard` reads. */
|
|
165
|
+
witness?: Record<string, unknown>;
|
|
166
|
+
}
|
|
167
|
+
export interface ApplyMorphismMessage {
|
|
168
|
+
ApplyMorphism: {
|
|
169
|
+
assetId: string;
|
|
170
|
+
kind: MorphismKind;
|
|
171
|
+
targetSequenceNumber: number;
|
|
172
|
+
recipient?: AssetHolder;
|
|
173
|
+
otherAssets?: string[];
|
|
174
|
+
compositeId?: string;
|
|
175
|
+
shardIds?: string[];
|
|
176
|
+
nonce?: number;
|
|
177
|
+
witness?: Record<string, unknown>;
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Apply a typed morphism (Transfer / Burn / Compose / ...). asset-model.md §7.
|
|
182
|
+
* Transfer = `{ kind: "Transfer", recipient }`; Burn (repay) = `{ kind: "Burn" }`.
|
|
183
|
+
*/
|
|
184
|
+
export declare function createApplyMorphismPayload(params: ApplyMorphismParams): ApplyMorphismMessage;
|
|
185
|
+
export interface AuthorizeComposeParams {
|
|
186
|
+
assetId: string;
|
|
187
|
+
partnerPolicy: string;
|
|
188
|
+
nonce: number;
|
|
189
|
+
expiresAt: number;
|
|
190
|
+
targetSequenceNumber: number;
|
|
191
|
+
}
|
|
192
|
+
export interface AuthorizeComposeMessage {
|
|
193
|
+
AuthorizeCompose: {
|
|
194
|
+
assetId: string;
|
|
195
|
+
partnerPolicy: string;
|
|
196
|
+
nonce: number;
|
|
197
|
+
expiresAt: number;
|
|
198
|
+
targetSequenceNumber: number;
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
/** Commit half of a two-party compose. asset-model.md §7/§8. */
|
|
202
|
+
export declare function createAuthorizeComposePayload(params: AuthorizeComposeParams): AuthorizeComposeMessage;
|
|
203
|
+
/**
|
|
204
|
+
* The collateral vault policy: an NFT-like custodial holding (no fungible split) whose
|
|
205
|
+
* `Transfer` morphism is Governed — the loan/escrow fiber is the authorization. Locking is
|
|
206
|
+
* a custody Transfer into `AssetHolder.Fiber(escrow)`; release/liquidation is a Transfer out
|
|
207
|
+
* driven by the loan fiber's REPAID / LIQUIDATED transition (`_transferAsset`).
|
|
208
|
+
*/
|
|
209
|
+
export declare function collateralPolicy(name?: string, version?: string): CreateAssetPolicyParams;
|
|
210
|
+
/**
|
|
211
|
+
* The loan-debt / principal policy: a governed fungible whose `mintPolicy` is the
|
|
212
|
+
* proof-gated origination guard — the principal is mintable to the borrower only when the
|
|
213
|
+
* eligibility proof verifies. Repayment is a `Burn` governed by `burnPolicy`.
|
|
214
|
+
*
|
|
215
|
+
* @param mintGuard the origination guard (see `buildOriginationGuard`) — a `groth16_verify`
|
|
216
|
+
* expression bound to the pinned public lending rule.
|
|
217
|
+
*/
|
|
218
|
+
export declare function debtPolicy(mintGuard: JsonLogicRule, name?: string, version?: string): CreateAssetPolicyParams;
|
|
219
|
+
/**
|
|
220
|
+
* lock_collateral: custody Transfer of the pledged collateral into the loan escrow fiber.
|
|
221
|
+
* (asset-model.md §10 — locking is a custody transfer to `AssetHolder.Fiber`, there is no
|
|
222
|
+
* `Lock` morphism.)
|
|
223
|
+
*/
|
|
224
|
+
export declare function lockCollateralOp(args: {
|
|
225
|
+
collateralAssetId: string;
|
|
226
|
+
escrowFiberId: string;
|
|
227
|
+
targetSequenceNumber: number;
|
|
228
|
+
}): ApplyMorphismMessage;
|
|
229
|
+
/**
|
|
230
|
+
* originate: Mint the loan principal/debt to the borrower. The policy's `mintPolicy`
|
|
231
|
+
* (the origination guard) reads the eligibility `witness` ({publicValues, proof}).
|
|
232
|
+
*/
|
|
233
|
+
export declare function mintPrincipalOp(args: {
|
|
234
|
+
debtAssetId: string;
|
|
235
|
+
debtPolicyRef: PolicyRef;
|
|
236
|
+
borrower: string;
|
|
237
|
+
principalAmount: number | string;
|
|
238
|
+
witness: {
|
|
239
|
+
publicValues: string;
|
|
240
|
+
proof: string;
|
|
241
|
+
};
|
|
242
|
+
}): MintAssetMessage;
|
|
243
|
+
/** repay: Burn the borrower's debt token (the principal is repaid). */
|
|
244
|
+
export declare function repayBurnOp(args: {
|
|
245
|
+
debtAssetId: string;
|
|
246
|
+
targetSequenceNumber: number;
|
|
247
|
+
}): ApplyMorphismMessage;
|
|
248
|
+
/**
|
|
249
|
+
* release / liquidate: Transfer the escrowed collateral out of the escrow fiber to a
|
|
250
|
+
* recipient (the borrower on REPAID, the lender on LIQUIDATED). On-chain this is emitted by
|
|
251
|
+
* the loan fiber's transition via `_transferAsset`; this builder produces the equivalent
|
|
252
|
+
* explicit `ApplyMorphism(Transfer)` for off-fiber/manual settlement.
|
|
253
|
+
*/
|
|
254
|
+
export declare function settleCollateralOp(args: {
|
|
255
|
+
collateralAssetId: string;
|
|
256
|
+
recipient: string;
|
|
257
|
+
targetSequenceNumber: number;
|
|
258
|
+
}): ApplyMorphismMessage;
|