@ottochain/sdk 2.4.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +20 -3
- package/dist/cjs/ottochain/genesis-manifest.js +6 -0
- package/dist/cjs/ottochain/metagraph-client.js +16 -8
- 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 +117 -1
- package/dist/cjs/schema/fiber-app.js +132 -3
- 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 +16 -8
- 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 +110 -0
- package/dist/esm/schema/fiber-app.js +127 -3
- 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/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 +107 -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
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The generic staked-pool BASE definition (`StakedPool`) — the reusable epoch-pool skeleton with a
|
|
4
|
+
* minimal pass-through `finalize` (authority settles; publishes a trivial result and an EMPTY in-consensus
|
|
5
|
+
* set, zero transfers). It is the lowest-common-denominator def; downstream apps should prefer a
|
|
6
|
+
* specialization (e.g. the oracle pool) that supplies real aggregation. Exposed for definition-validity
|
|
7
|
+
* round-tripping and as the explicit "base, unspecialized" instance.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.stakedPoolBaseDef = void 0;
|
|
11
|
+
const base_js_1 = require("../base.js");
|
|
12
|
+
/** Minimal finalize: authority settles; no aggregation, empty entitlement set, zero transfers. */
|
|
13
|
+
const baseFinalizeArm = {
|
|
14
|
+
from: 'COLLECTING',
|
|
15
|
+
to: 'SETTLED',
|
|
16
|
+
eventName: 'finalize',
|
|
17
|
+
guard: {
|
|
18
|
+
and: [
|
|
19
|
+
{ in: [{ var: 'state.authority' }, { map: [{ var: 'proofs' }, { var: 'address' }] }] },
|
|
20
|
+
{ '>=': [{ count: [{ var: 'state.submissions' }] }, { var: 'state.quorum' }] },
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
effect: {
|
|
24
|
+
merge: [
|
|
25
|
+
{ var: 'state' },
|
|
26
|
+
{
|
|
27
|
+
status: 'SETTLED',
|
|
28
|
+
inConsensus: [],
|
|
29
|
+
claimed: {},
|
|
30
|
+
result: {
|
|
31
|
+
submissionCount: { count: [{ var: 'state.submissions' }] },
|
|
32
|
+
epoch: { var: 'state.epoch' },
|
|
33
|
+
finalizedAt: { var: '$ordinal' },
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
},
|
|
38
|
+
dependencies: [],
|
|
39
|
+
};
|
|
40
|
+
exports.stakedPoolBaseDef = (0, base_js_1.makeStakedPoolDef)({
|
|
41
|
+
metadata: {
|
|
42
|
+
name: 'StakedPool',
|
|
43
|
+
type: 'base',
|
|
44
|
+
description: 'Generic staked-epoch-pool base (FORMING→COLLECTING→SETTLED→COLLECTING…→CLOSED): registry-gated ' +
|
|
45
|
+
'join with stake custody, append-only submissions, a state-resident claim entitlement ledger, and ' +
|
|
46
|
+
'one-whole-asset claim/withdraw transfers. Specialize `submit`/`finalize` for a concrete pool.',
|
|
47
|
+
},
|
|
48
|
+
finalize: baseFinalizeArm,
|
|
49
|
+
});
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Oracle-pool specialization of the staked-pool base (`StakedPoolOracle`).
|
|
4
|
+
*
|
|
5
|
+
* `submit` appends a numeric datapoint `{ addr, value }` (the base default arm).
|
|
6
|
+
* `finalize` (COLLECTING→SETTLED) aggregates the array with an outlier-bounded mean and publishes the
|
|
7
|
+
* answer + the in-consensus address set — emitting ZERO asset transfers (the entitlement ledger is
|
|
8
|
+
* `inConsensus`; rewards are pulled per-claim via the base `claim_reward` arm).
|
|
9
|
+
*
|
|
10
|
+
* Aggregation (default `trimmedMean`):
|
|
11
|
+
* 1. vals = map(submissions, .value)
|
|
12
|
+
* 2. trimmed = filter(submissions, value != min(vals) && value != max(vals)) — drop single min + single max
|
|
13
|
+
* 3. center = sum(trimmed.value) / count(trimmed) — EXACT rational (no truncation)
|
|
14
|
+
* 4. kept = filter(submissions, abs(value - center) <= outlierBound) — the in-consensus set
|
|
15
|
+
* 5. answer = sum(kept.value) / count(kept)
|
|
16
|
+
*
|
|
17
|
+
* CRITICAL JLVM SCOPING (verified against @constellation-network/metagraph-sdk-jlvm@1.8.0-rc.5):
|
|
18
|
+
* - Inside a `map`/`filter` callback the data scope is the BARE element, BUT the outer `state.*` is
|
|
19
|
+
* still readable (verified: `{cat:[addr,"|",{var:"state.epoch"}]}` reads epoch correctly).
|
|
20
|
+
* - A `let`-bound name does NOT cross into a `map`/`filter` callback. So `center` is INLINED into the
|
|
21
|
+
* `kept` predicate (it reads `state.submissions`, which IS visible) rather than `let`-hoisted — a
|
|
22
|
+
* `let`-bound `center` resolves to null inside `filter`, evicting every submission (div-by-zero).
|
|
23
|
+
* - A `reduce` with a MAP initial accumulator is rejected (`opReduce` requires `isPrimitive(init)`),
|
|
24
|
+
* so the reward ledger is NOT a folded `{addr:int}` map — it is the `inConsensus` array (membership =
|
|
25
|
+
* entitlement), consumed by `claim_reward` + a `claimed` dedup map.
|
|
26
|
+
*/
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.stakedPoolOracleDef = void 0;
|
|
29
|
+
exports.makeOraclePoolDef = makeOraclePoolDef;
|
|
30
|
+
const base_js_1 = require("../base.js");
|
|
31
|
+
const sum = (arr) => ({
|
|
32
|
+
reduce: [arr, { '+': [{ var: 'accumulator' }, { var: 'current' }] }, 0],
|
|
33
|
+
});
|
|
34
|
+
const meanOf = (arr) => ({ '/': [sum(arr), { count: [arr] }] });
|
|
35
|
+
/** vals = map(submissions, .value) */
|
|
36
|
+
const VALS = { map: [{ var: 'state.submissions' }, { get: [{ var: '' }, 'value'] }] };
|
|
37
|
+
/**
|
|
38
|
+
* The aggregation `center` as a CLOSED expression over `state.submissions` (must be inlined into the
|
|
39
|
+
* `kept` filter — see file header). `trimmedMean` drops the single min + single max before averaging.
|
|
40
|
+
*/
|
|
41
|
+
function centerExpr(aggregation) {
|
|
42
|
+
if (aggregation === 'mean')
|
|
43
|
+
return meanOf(VALS);
|
|
44
|
+
const trimmed = {
|
|
45
|
+
filter: [
|
|
46
|
+
{ var: 'state.submissions' },
|
|
47
|
+
{
|
|
48
|
+
and: [
|
|
49
|
+
{ '!==': [{ get: [{ var: '' }, 'value'] }, { min: [VALS] }] },
|
|
50
|
+
{ '!==': [{ get: [{ var: '' }, 'value'] }, { max: [VALS] }] },
|
|
51
|
+
],
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
};
|
|
55
|
+
const trimmedVals = { map: [trimmed, { get: [{ var: '' }, 'value'] }] };
|
|
56
|
+
return meanOf(trimmedVals);
|
|
57
|
+
}
|
|
58
|
+
/** finalize COLLECTING→SETTLED — publish answer + inConsensus; ZERO asset transfers. */
|
|
59
|
+
function finalizeArm(aggregation) {
|
|
60
|
+
const center = centerExpr(aggregation);
|
|
61
|
+
// kept = the in-consensus submissions; `center` is INLINED (visible state.submissions inside filter).
|
|
62
|
+
const kept = {
|
|
63
|
+
filter: [
|
|
64
|
+
{ var: 'state.submissions' },
|
|
65
|
+
{
|
|
66
|
+
'<=': [{ abs: [{ '-': [{ get: [{ var: '' }, 'value'] }, center] }] }, { var: 'state.outlierBound' }],
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
};
|
|
70
|
+
const keptVals = { map: [kept, { get: [{ var: '' }, 'value'] }] };
|
|
71
|
+
const inConsensus = { map: [kept, { get: [{ var: '' }, 'addr'] }] };
|
|
72
|
+
return {
|
|
73
|
+
from: 'COLLECTING',
|
|
74
|
+
to: 'SETTLED',
|
|
75
|
+
eventName: 'finalize',
|
|
76
|
+
// Authority finalizes once quorum is met AND the window has elapsed.
|
|
77
|
+
guard: {
|
|
78
|
+
and: [
|
|
79
|
+
{ in: [{ var: 'state.authority' }, { map: [{ var: 'proofs' }, { var: 'address' }] }] },
|
|
80
|
+
{ '>=': [{ count: [{ var: 'state.submissions' }] }, { var: 'state.quorum' }] },
|
|
81
|
+
{
|
|
82
|
+
'>=': [{ var: '$ordinal' }, { '+': [{ var: 'state.epochStartedAt' }, { var: 'state.epochLength' }] }],
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
// ZERO _transferAsset: publish result + record the in-consensus entitlement set + reset claimed.
|
|
87
|
+
effect: {
|
|
88
|
+
merge: [
|
|
89
|
+
{ var: 'state' },
|
|
90
|
+
{
|
|
91
|
+
status: 'SETTLED',
|
|
92
|
+
inConsensus,
|
|
93
|
+
claimed: {},
|
|
94
|
+
result: {
|
|
95
|
+
value: meanOf(keptVals),
|
|
96
|
+
epoch: { var: 'state.epoch' },
|
|
97
|
+
finalizedAt: { var: '$ordinal' },
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
dependencies: [],
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/** Build the oracle-pool definition. `outlierPenalty` is soft-only (no-credit for outliers); hard slash is v2. */
|
|
106
|
+
function makeOraclePoolDef(options = {}) {
|
|
107
|
+
const aggregation = options.aggregation ?? 'trimmedMean';
|
|
108
|
+
return (0, base_js_1.makeStakedPoolDef)({
|
|
109
|
+
metadata: {
|
|
110
|
+
name: 'StakedPoolOracle',
|
|
111
|
+
type: 'oraclePool',
|
|
112
|
+
description: 'Reputation-gated staked oracle pool: participants stake + submit numeric datapoints; finalize ' +
|
|
113
|
+
'publishes an outlier-bounded (default trimmed-mean) consensus answer and credits the in-consensus ' +
|
|
114
|
+
'set as a claim entitlement (zero finalize-time transfers); a consumer reads the published value ' +
|
|
115
|
+
'cross-fiber via an epoch-pinned depInState(SETTLED) gate.',
|
|
116
|
+
},
|
|
117
|
+
finalize: finalizeArm(aggregation),
|
|
118
|
+
extraCreateProperties: {
|
|
119
|
+
rewardPolicy: {
|
|
120
|
+
type: 'string',
|
|
121
|
+
description: 'Asset policy of the shared fungible reward token.',
|
|
122
|
+
immutable: true,
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
extraStateProperties: {
|
|
126
|
+
rewardPolicy: { type: 'string', immutable: true },
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/** Default oracle-pool definition (trimmed-mean). */
|
|
131
|
+
exports.stakedPoolOracleDef = makeOraclePoolDef();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
|
-
// protoc-gen-ts_proto v2.11.
|
|
4
|
+
// protoc-gen-ts_proto v2.11.8
|
|
5
5
|
// protoc unknown
|
|
6
6
|
// source: google/protobuf/struct.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
|
-
// protoc-gen-ts_proto v2.11.
|
|
4
|
+
// protoc-gen-ts_proto v2.11.8
|
|
5
5
|
// protoc unknown
|
|
6
6
|
// source: google/protobuf/timestamp.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
|
-
// protoc-gen-ts_proto v2.11.
|
|
4
|
+
// protoc-gen-ts_proto v2.11.8
|
|
5
5
|
// protoc unknown
|
|
6
6
|
// source: ottochain/apps/contracts/v1/contract.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
|
-
// protoc-gen-ts_proto v2.11.
|
|
4
|
+
// protoc-gen-ts_proto v2.11.8
|
|
5
5
|
// protoc unknown
|
|
6
6
|
// source: ottochain/apps/corporate/v1/corporate.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
|
-
// protoc-gen-ts_proto v2.11.
|
|
4
|
+
// protoc-gen-ts_proto v2.11.8
|
|
5
5
|
// protoc unknown
|
|
6
6
|
// source: ottochain/apps/governance/v1/governance.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
|
-
// protoc-gen-ts_proto v2.11.
|
|
4
|
+
// protoc-gen-ts_proto v2.11.8
|
|
5
5
|
// protoc unknown
|
|
6
6
|
// source: ottochain/apps/identity/v1/attestation.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
|
-
// protoc-gen-ts_proto v2.11.
|
|
4
|
+
// protoc-gen-ts_proto v2.11.8
|
|
5
5
|
// protoc unknown
|
|
6
6
|
// source: ottochain/apps/identity/v1/identity.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
|
-
// protoc-gen-ts_proto v2.11.
|
|
4
|
+
// protoc-gen-ts_proto v2.11.8
|
|
5
5
|
// protoc unknown
|
|
6
6
|
// source: ottochain/apps/markets/v1/market.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
|
-
// protoc-gen-ts_proto v2.11.
|
|
4
|
+
// protoc-gen-ts_proto v2.11.8
|
|
5
5
|
// protoc unknown
|
|
6
6
|
// source: ottochain/v1/common.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
|
-
// protoc-gen-ts_proto v2.11.
|
|
4
|
+
// protoc-gen-ts_proto v2.11.8
|
|
5
5
|
// protoc unknown
|
|
6
6
|
// source: ottochain/v1/fiber.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -433,7 +433,7 @@ exports.StateMachineDefinition = {
|
|
|
433
433
|
},
|
|
434
434
|
};
|
|
435
435
|
function createBaseEmittedEvent() {
|
|
436
|
-
return { name: "", data: undefined, destination: undefined };
|
|
436
|
+
return { name: "", data: undefined, destination: undefined, emitterFiberId: "", emissionIndex: 0 };
|
|
437
437
|
}
|
|
438
438
|
exports.EmittedEvent = {
|
|
439
439
|
encode(message, writer = new wire_1.BinaryWriter()) {
|
|
@@ -446,6 +446,12 @@ exports.EmittedEvent = {
|
|
|
446
446
|
if (message.destination !== undefined) {
|
|
447
447
|
writer.uint32(26).string(message.destination);
|
|
448
448
|
}
|
|
449
|
+
if (message.emitterFiberId !== "") {
|
|
450
|
+
writer.uint32(34).string(message.emitterFiberId);
|
|
451
|
+
}
|
|
452
|
+
if (message.emissionIndex !== 0) {
|
|
453
|
+
writer.uint32(40).int32(message.emissionIndex);
|
|
454
|
+
}
|
|
449
455
|
return writer;
|
|
450
456
|
},
|
|
451
457
|
decode(input, length) {
|
|
@@ -476,6 +482,20 @@ exports.EmittedEvent = {
|
|
|
476
482
|
message.destination = reader.string();
|
|
477
483
|
continue;
|
|
478
484
|
}
|
|
485
|
+
case 4: {
|
|
486
|
+
if (tag !== 34) {
|
|
487
|
+
break;
|
|
488
|
+
}
|
|
489
|
+
message.emitterFiberId = reader.string();
|
|
490
|
+
continue;
|
|
491
|
+
}
|
|
492
|
+
case 5: {
|
|
493
|
+
if (tag !== 40) {
|
|
494
|
+
break;
|
|
495
|
+
}
|
|
496
|
+
message.emissionIndex = reader.int32();
|
|
497
|
+
continue;
|
|
498
|
+
}
|
|
479
499
|
}
|
|
480
500
|
if ((tag & 7) === 4 || tag === 0) {
|
|
481
501
|
break;
|
|
@@ -489,6 +509,16 @@ exports.EmittedEvent = {
|
|
|
489
509
|
name: isSet(object.name) ? globalThis.String(object.name) : "",
|
|
490
510
|
data: isSet(object?.data) ? object.data : undefined,
|
|
491
511
|
destination: isSet(object.destination) ? globalThis.String(object.destination) : undefined,
|
|
512
|
+
emitterFiberId: isSet(object.emitterFiberId)
|
|
513
|
+
? globalThis.String(object.emitterFiberId)
|
|
514
|
+
: isSet(object.emitter_fiber_id)
|
|
515
|
+
? globalThis.String(object.emitter_fiber_id)
|
|
516
|
+
: "",
|
|
517
|
+
emissionIndex: isSet(object.emissionIndex)
|
|
518
|
+
? globalThis.Number(object.emissionIndex)
|
|
519
|
+
: isSet(object.emission_index)
|
|
520
|
+
? globalThis.Number(object.emission_index)
|
|
521
|
+
: 0,
|
|
492
522
|
};
|
|
493
523
|
},
|
|
494
524
|
toJSON(message) {
|
|
@@ -502,6 +532,12 @@ exports.EmittedEvent = {
|
|
|
502
532
|
if (message.destination !== undefined) {
|
|
503
533
|
obj.destination = message.destination;
|
|
504
534
|
}
|
|
535
|
+
if (message.emitterFiberId !== "") {
|
|
536
|
+
obj.emitterFiberId = message.emitterFiberId;
|
|
537
|
+
}
|
|
538
|
+
if (message.emissionIndex !== 0) {
|
|
539
|
+
obj.emissionIndex = Math.round(message.emissionIndex);
|
|
540
|
+
}
|
|
505
541
|
return obj;
|
|
506
542
|
},
|
|
507
543
|
create(base) {
|
|
@@ -512,6 +548,8 @@ exports.EmittedEvent = {
|
|
|
512
548
|
message.name = object.name ?? "";
|
|
513
549
|
message.data = object.data ?? undefined;
|
|
514
550
|
message.destination = object.destination ?? undefined;
|
|
551
|
+
message.emitterFiberId = object.emitterFiberId ?? "";
|
|
552
|
+
message.emissionIndex = object.emissionIndex ?? 0;
|
|
515
553
|
return message;
|
|
516
554
|
},
|
|
517
555
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
|
-
// protoc-gen-ts_proto v2.11.
|
|
4
|
+
// protoc-gen-ts_proto v2.11.8
|
|
5
5
|
// protoc unknown
|
|
6
6
|
// source: ottochain/v1/messages.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
|
-
// protoc-gen-ts_proto v2.11.
|
|
4
|
+
// protoc-gen-ts_proto v2.11.8
|
|
5
5
|
// protoc unknown
|
|
6
6
|
// source: ottochain/v1/records.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
package/dist/cjs/index.js
CHANGED
|
@@ -31,8 +31,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.
|
|
35
|
-
exports.SHIELDED_POOL_STATE = exports.shieldApp = exports.setDependencyActive = exports.addDependency = exports.depInState = exports.signerHasRoleVia = exports.signerHasReputationVia = exports.signerHasRole = exports.signerHasReputation = exports.actorHasEntry = exports.actorInSet = exports.actorIsSigner = exports.assetSignerIs = exports.signerHasEntry = void 0;
|
|
34
|
+
exports.IMMUTABLE_POLICY = exports.immutable = exports.unconstrained = exports.constrained = exports.defineFiberApp = exports.toProtoDefinition = exports.OttoMetagraphClient = exports.assert = exports.safeParse = exports.validateKeyPair = exports.validateAddress = exports.validatePublicKey = exports.validatePrivateKey = exports.validate = exports.CompleteContractRequestSchema = exports.AcceptContractRequestSchema = exports.ProposeContractRequestSchema = exports.ContractTermsSchema = exports.PlatformLinkSchema = exports.AgentIdentityRegistrationSchema = exports.TransferParamsSchema = exports.CurrencyTransactionSchema = exports.CurrencyTransactionValueSchema = exports.TransactionReferenceSchema = exports.SignedSchema = exports.SignatureProofSchema = exports.KeyPairSchema = exports.PublicKeySchema = exports.PrivateKeySchema = exports.DagAddressSchema = exports.wrapError = exports.isErrorCode = exports.ErrorCode = exports.TransactionError = exports.SigningError = exports.ValidationError = exports.NetworkError = exports.OttoChainError = exports.GENESIS_MANIFEST_VERSION = exports.buildGenesisManifest = exports.dropNulls = exports.MetagraphNetworkError = exports.HttpClient = exports.createMetagraphClient = exports.MetagraphClient = exports.batchSign = exports.addSignature = exports.createSignedObject = exports.signDataUpdate = exports.verify = void 0;
|
|
35
|
+
exports.SHIELDED_POOL_STATE = exports.shieldApp = exports.RESERVED_EFFECT_KEYS = exports.toWallet = exports.toFiber = exports.emit = exports.spawn = exports.triggers = exports.transferAsset = exports.setDependencyActive = exports.addDependency = exports.actorNotInArray = exports.depInState = exports.signerHasRoleVia = exports.signerHasReputationVia = exports.signerHasRole = exports.signerHasReputation = exports.actorHasEntry = exports.actorInSet = exports.actorIsSigner = exports.assetSignerIs = exports.signerHasEntry = exports.signerIsNotParty = exports.signerInSet = exports.signerIsAnyParty = exports.signerIsParty = exports.projectFiberPolicy = void 0;
|
|
36
36
|
// ─── Core metagraph SDK ───────────────────────────────────────────────────────
|
|
37
37
|
// Consumers can also import directly from '@constellation-network/metagraph-sdk'
|
|
38
38
|
__exportStar(require("@constellation-network/metagraph-sdk"), exports);
|
|
@@ -112,6 +112,13 @@ Object.defineProperty(exports, "OttoMetagraphClient", { enumerable: true, get: f
|
|
|
112
112
|
var fiber_app_js_1 = require("./schema/fiber-app.js");
|
|
113
113
|
Object.defineProperty(exports, "toProtoDefinition", { enumerable: true, get: function () { return fiber_app_js_1.toProtoDefinition; } });
|
|
114
114
|
Object.defineProperty(exports, "defineFiberApp", { enumerable: true, get: function () { return fiber_app_js_1.defineFiberApp; } });
|
|
115
|
+
// Fiber policy (the fiber constitution): mirrors the chain ADT
|
|
116
|
+
// `FiberPolicy = Unconstrained | Immutable | Constrained(<dials>)`.
|
|
117
|
+
Object.defineProperty(exports, "constrained", { enumerable: true, get: function () { return fiber_app_js_1.constrained; } });
|
|
118
|
+
Object.defineProperty(exports, "unconstrained", { enumerable: true, get: function () { return fiber_app_js_1.unconstrained; } });
|
|
119
|
+
Object.defineProperty(exports, "immutable", { enumerable: true, get: function () { return fiber_app_js_1.immutable; } });
|
|
120
|
+
Object.defineProperty(exports, "IMMUTABLE_POLICY", { enumerable: true, get: function () { return fiber_app_js_1.IMMUTABLE_POLICY; } });
|
|
121
|
+
Object.defineProperty(exports, "projectFiberPolicy", { enumerable: true, get: function () { return fiber_app_js_1.projectFiberPolicy; } });
|
|
115
122
|
// Canonical authorization-guard builders (bind to verified signers, not attacker payloads).
|
|
116
123
|
var guards_js_1 = require("./schema/guards.js");
|
|
117
124
|
Object.defineProperty(exports, "signerIsParty", { enumerable: true, get: function () { return guards_js_1.signerIsParty; } });
|
|
@@ -132,10 +139,20 @@ Object.defineProperty(exports, "signerHasReputationVia", { enumerable: true, get
|
|
|
132
139
|
Object.defineProperty(exports, "signerHasRoleVia", { enumerable: true, get: function () { return guards_js_1.signerHasRoleVia; } });
|
|
133
140
|
// cross-fiber state gate (runtime-bound dependency, #24) — replaces object-form deps
|
|
134
141
|
Object.defineProperty(exports, "depInState", { enumerable: true, get: function () { return guards_js_1.depInState; } });
|
|
135
|
-
//
|
|
142
|
+
// append-only-array dedup: actor not yet present in an array of records
|
|
143
|
+
Object.defineProperty(exports, "actorNotInArray", { enumerable: true, get: function () { return guards_js_1.actorNotInArray; } });
|
|
144
|
+
// Reserved EFFECT-directive builders (dynamic dependencies, #24; whole-asset custody moves;
|
|
145
|
+
// cross-fiber triggers, spawn, emit + recipient-intent helpers; the reserved-key set for validators).
|
|
136
146
|
var effects_js_1 = require("./schema/effects.js");
|
|
137
147
|
Object.defineProperty(exports, "addDependency", { enumerable: true, get: function () { return effects_js_1.addDependency; } });
|
|
138
148
|
Object.defineProperty(exports, "setDependencyActive", { enumerable: true, get: function () { return effects_js_1.setDependencyActive; } });
|
|
149
|
+
Object.defineProperty(exports, "transferAsset", { enumerable: true, get: function () { return effects_js_1.transferAsset; } });
|
|
150
|
+
Object.defineProperty(exports, "triggers", { enumerable: true, get: function () { return effects_js_1.triggers; } });
|
|
151
|
+
Object.defineProperty(exports, "spawn", { enumerable: true, get: function () { return effects_js_1.spawn; } });
|
|
152
|
+
Object.defineProperty(exports, "emit", { enumerable: true, get: function () { return effects_js_1.emit; } });
|
|
153
|
+
Object.defineProperty(exports, "toFiber", { enumerable: true, get: function () { return effects_js_1.toFiber; } });
|
|
154
|
+
Object.defineProperty(exports, "toWallet", { enumerable: true, get: function () { return effects_js_1.toWallet; } });
|
|
155
|
+
Object.defineProperty(exports, "RESERVED_EFFECT_KEYS", { enumerable: true, get: function () { return effects_js_1.RESERVED_EFFECT_KEYS; } });
|
|
139
156
|
// ─── Privacy: shield any fiber app into a zk-jlvm-shielded private-state pool ──
|
|
140
157
|
// See docs/design/zk-private-contract-state-rfc.md.
|
|
141
158
|
var shield_app_js_1 = require("./privacy/shield-app.js");
|
|
@@ -149,6 +149,12 @@ function toWireDefinition(def) {
|
|
|
149
149
|
})),
|
|
150
150
|
// Strip FiberAppMetadata — the chain's `metadata` is `Option[JsonLogicValue]`.
|
|
151
151
|
metadata: null,
|
|
152
|
+
// Carry the fiber constitution through verbatim from the shared projector: PRESENT for
|
|
153
|
+
// `Constrained` (a bare object of set dials) and `Immutable` (the bare string
|
|
154
|
+
// `"Immutable"`), ABSENT for `Unconstrained`. The `policy` key is only set here when
|
|
155
|
+
// `toProtoDefinition` emitted one, so an unconstrained def keeps NO `policy` key
|
|
156
|
+
// (omit-on-unconstrained wire parity).
|
|
157
|
+
...(proto.policy !== undefined ? { policy: proto.policy } : {}),
|
|
152
158
|
};
|
|
153
159
|
}
|
|
154
160
|
// ─── Builder ──────────────────────────────────────────────────────────────────
|
|
@@ -247,7 +247,9 @@ class MetagraphClient {
|
|
|
247
247
|
try {
|
|
248
248
|
onError(cbErr instanceof Error ? cbErr : new Error(String(cbErr)));
|
|
249
249
|
}
|
|
250
|
-
catch {
|
|
250
|
+
catch {
|
|
251
|
+
/* ignore */
|
|
252
|
+
}
|
|
251
253
|
}
|
|
252
254
|
};
|
|
253
255
|
const poll = async () => {
|
|
@@ -264,7 +266,9 @@ class MetagraphClient {
|
|
|
264
266
|
try {
|
|
265
267
|
onError(err instanceof Error ? err : new Error(String(err)));
|
|
266
268
|
}
|
|
267
|
-
catch {
|
|
269
|
+
catch {
|
|
270
|
+
/* ignore */
|
|
271
|
+
}
|
|
268
272
|
if (active)
|
|
269
273
|
setTimeout(poll, intervalMs);
|
|
270
274
|
return;
|
|
@@ -297,7 +301,9 @@ class MetagraphClient {
|
|
|
297
301
|
// callers can unsubscribe before the first poll runs, and each
|
|
298
302
|
// jest.runOnlyPendingTimersAsync() advances exactly one poll cycle.
|
|
299
303
|
setTimeout(poll, 0);
|
|
300
|
-
return () => {
|
|
304
|
+
return () => {
|
|
305
|
+
active = false;
|
|
306
|
+
};
|
|
301
307
|
}
|
|
302
308
|
/**
|
|
303
309
|
* Wait for a fiber to reach a specific state, with an optional timeout.
|
|
@@ -395,14 +401,16 @@ class MetagraphClient {
|
|
|
395
401
|
let settled = false;
|
|
396
402
|
let pending = this.dl1Clients.length;
|
|
397
403
|
for (const client of this.dl1Clients) {
|
|
398
|
-
client.post('/data', request).then((result) => {
|
|
399
|
-
settled
|
|
400
|
-
|
|
401
|
-
|
|
404
|
+
client.post('/data', request).then((result) => {
|
|
405
|
+
if (!settled) {
|
|
406
|
+
settled = true;
|
|
407
|
+
resolve(result);
|
|
408
|
+
}
|
|
409
|
+
}, (err) => {
|
|
402
410
|
errors.push(err instanceof Error ? err : new Error(String(err)));
|
|
403
411
|
pending--;
|
|
404
412
|
if (pending === 0 && !settled) {
|
|
405
|
-
reject(new Error('All DL1 nodes failed: ' + errors.map(e => e.message).join('; ')));
|
|
413
|
+
reject(new Error('All DL1 nodes failed: ' + errors.map((e) => e.message).join('; ')));
|
|
406
414
|
}
|
|
407
415
|
});
|
|
408
416
|
}
|
|
@@ -90,8 +90,7 @@ function getLogsForFiber(onChain, fiberId) {
|
|
|
90
90
|
* @returns Array of EventReceipt entries
|
|
91
91
|
*/
|
|
92
92
|
function getEventReceipts(onChain, fiberId) {
|
|
93
|
-
return getLogsForFiber(onChain, fiberId)
|
|
94
|
-
.filter((entry) => 'eventName' in entry && 'success' in entry);
|
|
93
|
+
return getLogsForFiber(onChain, fiberId).filter((entry) => 'eventName' in entry && 'success' in entry);
|
|
95
94
|
}
|
|
96
95
|
/**
|
|
97
96
|
* Get ScriptInvocation log entries for a specific fiber.
|
|
@@ -104,6 +103,5 @@ function getEventReceipts(onChain, fiberId) {
|
|
|
104
103
|
* @returns Array of ScriptInvocation entries
|
|
105
104
|
*/
|
|
106
105
|
function getScriptInvocations(onChain, fiberId) {
|
|
107
|
-
return getLogsForFiber(onChain, fiberId)
|
|
108
|
-
.filter((entry) => 'method' in entry && 'result' in entry);
|
|
106
|
+
return getLogsForFiber(onChain, fiberId).filter((entry) => 'method' in entry && 'result' in entry);
|
|
109
107
|
}
|
|
@@ -15,6 +15,8 @@ exports.createAssetPolicyPayload = createAssetPolicyPayload;
|
|
|
15
15
|
exports.createMintAssetPayload = createMintAssetPayload;
|
|
16
16
|
exports.createApplyMorphismPayload = createApplyMorphismPayload;
|
|
17
17
|
exports.createAuthorizeComposePayload = createAuthorizeComposePayload;
|
|
18
|
+
exports.createPublishMachineVersionPayload = createPublishMachineVersionPayload;
|
|
19
|
+
exports.createUpgradeFiberPayload = createUpgradeFiberPayload;
|
|
18
20
|
exports.signTransaction = signTransaction;
|
|
19
21
|
exports.createDataTransactionRequest = createDataTransactionRequest;
|
|
20
22
|
exports.addTransactionSignature = addTransactionSignature;
|
|
@@ -172,6 +174,14 @@ function createApplyMorphismPayload(params) {
|
|
|
172
174
|
function createAuthorizeComposePayload(params) {
|
|
173
175
|
return { AuthorizeCompose: params };
|
|
174
176
|
}
|
|
177
|
+
/** Wrap a {@link PublishMachineVersion} (create-or-append a STATE-MACHINE registry version). */
|
|
178
|
+
function createPublishMachineVersionPayload(params) {
|
|
179
|
+
return { PublishMachineVersion: params };
|
|
180
|
+
}
|
|
181
|
+
/** Wrap an {@link UpgradeFiber} (re-pin a fiber to another registered version of the SAME package). */
|
|
182
|
+
function createUpgradeFiberPayload(params) {
|
|
183
|
+
return { UpgradeFiber: params };
|
|
184
|
+
}
|
|
175
185
|
/**
|
|
176
186
|
* Sign a transaction payload for self-signed mode.
|
|
177
187
|
*
|