@xyo-network/chain-sdk 5.3.0 → 5.3.2
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/browser/modules/analyze/ChainHeadSelector.d.ts +47 -8
- package/dist/browser/modules/analyze/ChainHeadSelector.d.ts.map +1 -1
- package/dist/browser/modules/analyze/blockTime.d.ts +92 -0
- package/dist/browser/modules/analyze/blockTime.d.ts.map +1 -0
- package/dist/browser/modules/analyze/index.d.ts +1 -0
- package/dist/browser/modules/analyze/index.d.ts.map +1 -1
- package/dist/browser/modules/modules/diviners/index.d.ts +0 -1
- package/dist/browser/modules/modules/diviners/index.d.ts.map +1 -1
- package/dist/browser/modules/protocol/block/buildBlock.d.ts.map +1 -1
- package/dist/browser/modules/protocol/block/createProducerChainStakeIntentTransaction.d.ts +15 -2
- package/dist/browser/modules/protocol/block/createProducerChainStakeIntentTransaction.d.ts.map +1 -1
- package/dist/browser/modules/services/implementation/processPendingBlocks.d.ts +10 -3
- package/dist/browser/modules/services/implementation/processPendingBlocks.d.ts.map +1 -1
- package/dist/browser/modules/services/simple/block/runner/SimpleBlockRunner.d.ts +22 -1
- package/dist/browser/modules/services/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
- package/dist/browser/modules/validation/block/validators/index.d.ts +0 -1
- package/dist/browser/modules/validation/block/validators/index.d.ts.map +1 -1
- package/dist/browser/modules/validation/elevatedPayload/payloads/validateClaimInBlock.d.ts.map +1 -1
- package/dist/browser/modules/wrappers/block/HydratedBlock.d.ts.map +1 -1
- package/dist/neutral/analyze.mjs +166 -10
- package/dist/neutral/analyze.mjs.map +3 -3
- package/dist/neutral/modules/analyze/ChainHeadSelector.d.ts +47 -8
- package/dist/neutral/modules/analyze/ChainHeadSelector.d.ts.map +1 -1
- package/dist/neutral/modules/analyze/blockTime.d.ts +92 -0
- package/dist/neutral/modules/analyze/blockTime.d.ts.map +1 -0
- package/dist/neutral/modules/analyze/index.d.ts +1 -0
- package/dist/neutral/modules/analyze/index.d.ts.map +1 -1
- package/dist/neutral/modules/modules/diviners/index.d.ts +0 -1
- package/dist/neutral/modules/modules/diviners/index.d.ts.map +1 -1
- package/dist/neutral/modules/protocol/block/buildBlock.d.ts.map +1 -1
- package/dist/neutral/modules/protocol/block/createProducerChainStakeIntentTransaction.d.ts +15 -2
- package/dist/neutral/modules/protocol/block/createProducerChainStakeIntentTransaction.d.ts.map +1 -1
- package/dist/neutral/modules/services/implementation/processPendingBlocks.d.ts +10 -3
- package/dist/neutral/modules/services/implementation/processPendingBlocks.d.ts.map +1 -1
- package/dist/neutral/modules/services/simple/block/runner/SimpleBlockRunner.d.ts +22 -1
- package/dist/neutral/modules/services/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
- package/dist/neutral/modules/validation/block/validators/index.d.ts +0 -1
- package/dist/neutral/modules/validation/block/validators/index.d.ts.map +1 -1
- package/dist/neutral/modules/validation/elevatedPayload/payloads/validateClaimInBlock.d.ts.map +1 -1
- package/dist/neutral/modules/wrappers/block/HydratedBlock.d.ts.map +1 -1
- package/dist/neutral/modules.mjs +25 -100
- package/dist/neutral/modules.mjs.map +4 -4
- package/dist/neutral/protocol.mjs +1 -1
- package/dist/neutral/protocol.mjs.map +2 -2
- package/dist/neutral/services.mjs +40 -9
- package/dist/neutral/services.mjs.map +2 -2
- package/dist/neutral/validation.mjs +84 -106
- package/dist/neutral/validation.mjs.map +4 -4
- package/dist/neutral/wrappers.mjs +2 -1
- package/dist/neutral/wrappers.mjs.map +2 -2
- package/dist/node/modules/analyze/ChainHeadSelector.d.ts +47 -8
- package/dist/node/modules/analyze/ChainHeadSelector.d.ts.map +1 -1
- package/dist/node/modules/analyze/blockTime.d.ts +92 -0
- package/dist/node/modules/analyze/blockTime.d.ts.map +1 -0
- package/dist/node/modules/analyze/index.d.ts +1 -0
- package/dist/node/modules/analyze/index.d.ts.map +1 -1
- package/dist/node/modules/modules/diviners/index.d.ts +0 -1
- package/dist/node/modules/modules/diviners/index.d.ts.map +1 -1
- package/dist/node/modules/protocol/block/buildBlock.d.ts.map +1 -1
- package/dist/node/modules/protocol/block/createProducerChainStakeIntentTransaction.d.ts +15 -2
- package/dist/node/modules/protocol/block/createProducerChainStakeIntentTransaction.d.ts.map +1 -1
- package/dist/node/modules/services/implementation/processPendingBlocks.d.ts +10 -3
- package/dist/node/modules/services/implementation/processPendingBlocks.d.ts.map +1 -1
- package/dist/node/modules/services/simple/block/runner/SimpleBlockRunner.d.ts +22 -1
- package/dist/node/modules/services/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
- package/dist/node/modules/validation/block/validators/index.d.ts +0 -1
- package/dist/node/modules/validation/block/validators/index.d.ts.map +1 -1
- package/dist/node/modules/validation/elevatedPayload/payloads/validateClaimInBlock.d.ts.map +1 -1
- package/dist/node/modules/wrappers/block/HydratedBlock.d.ts.map +1 -1
- package/package.json +24 -25
- package/dist/browser/modules/modules/diviners/BlockValidationDiviner.d.ts +0 -38
- package/dist/browser/modules/modules/diviners/BlockValidationDiviner.d.ts.map +0 -1
- package/dist/browser/modules/validation/block/validators/JsonSchema.d.ts +0 -4
- package/dist/browser/modules/validation/block/validators/JsonSchema.d.ts.map +0 -1
- package/dist/neutral/modules/modules/diviners/BlockValidationDiviner.d.ts +0 -38
- package/dist/neutral/modules/modules/diviners/BlockValidationDiviner.d.ts.map +0 -1
- package/dist/neutral/modules/validation/block/validators/JsonSchema.d.ts +0 -4
- package/dist/neutral/modules/validation/block/validators/JsonSchema.d.ts.map +0 -1
- package/dist/node/modules/modules/diviners/BlockValidationDiviner.d.ts +0 -38
- package/dist/node/modules/modules/diviners/BlockValidationDiviner.d.ts.map +0 -1
- package/dist/node/modules/validation/block/validators/JsonSchema.d.ts +0 -4
- package/dist/node/modules/validation/block/validators/JsonSchema.d.ts.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Address } from '@ariestools/sdk';
|
|
2
2
|
import type { BaseContext, MempoolViewer, SignedHydratedBlockWithHashMeta } from '@xyo-network/xl1-sdk';
|
|
3
3
|
import type { AdmissionAssessment, AdmissionMode, AdmissionShadowReport, ProducerEligibilityEvaluator } from './admission.js';
|
|
4
|
+
import type { BlockTimeRuleParams } from './blockTime.js';
|
|
4
5
|
import type { ChainFinalizerParams } from './ChainFinalizer.js';
|
|
5
6
|
import { ChainFinalizer } from './ChainFinalizer.js';
|
|
6
7
|
export interface ChainHeadSelectorParams extends ChainFinalizerParams {
|
|
@@ -25,9 +26,9 @@ export interface ChainHeadSelectorParams extends ChainFinalizerParams {
|
|
|
25
26
|
*/
|
|
26
27
|
eligibility?: ProducerEligibilityEvaluator;
|
|
27
28
|
/**
|
|
28
|
-
* Minimum epoch spacing (ms) between transaction-less heartbeat blocks this selector
|
|
29
|
-
* qualify — a defense against producers heartbeating faster than the network's intended
|
|
30
|
-
* Transaction-carrying candidates are exempt. Undefined disables the check.
|
|
29
|
+
* Minimum signed-epoch spacing (ms) between transaction-less heartbeat blocks this selector
|
|
30
|
+
* will qualify — a defense against producers heartbeating faster than the network's intended
|
|
31
|
+
* pace. Transaction-carrying candidates are exempt. Undefined disables the check.
|
|
31
32
|
*/
|
|
32
33
|
heartbeatInterval?: number;
|
|
33
34
|
mempoolViewer: MempoolViewer;
|
|
@@ -38,6 +39,12 @@ export interface ChainHeadSelectorParams extends ChainFinalizerParams {
|
|
|
38
39
|
minCandidates?: number;
|
|
39
40
|
/** Where to publish what the two gates concluded, in shadow posture. */
|
|
40
41
|
publishAdmissionShadow?: (report: AdmissionShadowReport) => Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* What this selector knows about the present, against which every candidate's signed time
|
|
44
|
+
* claims are bounded. Absent disables the time rules, which is what keeps a selector built
|
|
45
|
+
* without them behaving exactly as it did before they existed.
|
|
46
|
+
*/
|
|
47
|
+
timeRules?: BlockTimeRuleParams;
|
|
41
48
|
}
|
|
42
49
|
export declare class ChainHeadSelector extends ChainFinalizer<ChainHeadSelectorParams> {
|
|
43
50
|
/**
|
|
@@ -87,13 +94,25 @@ export declare class ChainHeadSelector extends ChainFinalizer<ChainHeadSelectorP
|
|
|
87
94
|
protected assess(all: SignedHydratedBlockWithHashMeta[]): Promise<AdmissionAssessment[]>;
|
|
88
95
|
/**
|
|
89
96
|
* Defense against unwanted heartbeat rates: a transaction-less (heartbeat) candidate qualifies
|
|
90
|
-
* only when its
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
97
|
+
* only when its signed epoch is at least heartbeatInterval after the current head's. Both
|
|
98
|
+
* epochs come from the blocks' signed time payloads — never from client meta a producer or
|
|
99
|
+
* relay could rewrite after signing — so every finalizer applies the same pace deterministically
|
|
100
|
+
* regardless of wall clock. A producer heartbeating faster than the network's pace —
|
|
101
|
+
* misconfigured or hostile — cannot drive the chain's block rate: its candidates never qualify
|
|
102
|
+
* and age out of the pool, while transaction-carrying candidates are exempt and finalize
|
|
103
|
+
* immediately.
|
|
95
104
|
*/
|
|
96
105
|
protected filterPacedHeartbeatCandidates(proposedBlocks: SignedHydratedBlockWithHashMeta[]): SignedHydratedBlockWithHashMeta[];
|
|
106
|
+
/**
|
|
107
|
+
* Refuses candidates whose signed time claims cannot be true.
|
|
108
|
+
*
|
|
109
|
+
* Every rule reads the candidate's own signed time payload — the one statement about a block's
|
|
110
|
+
* timing its producer cannot alter after signing — so a producer with a bad clock or a bad EVM
|
|
111
|
+
* view cannot move the chain's clock, and neither can anything between it and this finalizer.
|
|
112
|
+
* A chain is kept up to its first failing block: what stands before the failure still builds on
|
|
113
|
+
* the head and is still worth finalizing.
|
|
114
|
+
*/
|
|
115
|
+
protected filterTimeValidUncles(uncles: SignedHydratedBlockWithHashMeta[][]): Promise<SignedHydratedBlockWithHashMeta[][]>;
|
|
97
116
|
/** Whether the configured allow-list admits a candidate. An empty list admits everyone. */
|
|
98
117
|
protected isAllowed(candidate: SignedHydratedBlockWithHashMeta): boolean;
|
|
99
118
|
/** Publishes what the two gates concluded, swallowing failures. */
|
|
@@ -109,5 +128,25 @@ export declare class ChainHeadSelector extends ChainFinalizer<ChainHeadSelectorP
|
|
|
109
128
|
* fresh ChainHeadSelector is constructed on every finalization tick.
|
|
110
129
|
*/
|
|
111
130
|
private reportSilentUncleRejections;
|
|
131
|
+
/**
|
|
132
|
+
* Says, once per candidate, which rule refused it.
|
|
133
|
+
*
|
|
134
|
+
* A refused candidate lingers in the pool until it ages out and a fresh selector runs every
|
|
135
|
+
* tick, so the memory of what was already reported lives in context.singletons alongside the
|
|
136
|
+
* other per-pool state; repeating the warning every half second would bury the one line that
|
|
137
|
+
* explains a stalled producer.
|
|
138
|
+
*/
|
|
139
|
+
private reportTimeRejection;
|
|
140
|
+
/**
|
|
141
|
+
* The present, as this selector sees it, resolved once per pass.
|
|
142
|
+
*
|
|
143
|
+
* The EVM head is read only when some candidate actually claims an anchor: it is the one rule
|
|
144
|
+
* input that costs a network call, and a chain running without anchors should not pay for it.
|
|
145
|
+
* An unreadable EVM yields no bound rather than a failure — that is a fact about this observer,
|
|
146
|
+
* and it must never stop the chain from finalizing.
|
|
147
|
+
*/
|
|
148
|
+
private resolveTimeBounds;
|
|
149
|
+
/** The longest prefix of an uncle chain in which every block's time claims hold against its parent. */
|
|
150
|
+
private timeValidPrefix;
|
|
112
151
|
}
|
|
113
152
|
//# sourceMappingURL=ChainHeadSelector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChainHeadSelector.d.ts","sourceRoot":"","sources":["../../../../src/modules/analyze/ChainHeadSelector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"ChainHeadSelector.d.ts","sourceRoot":"","sources":["../../../../src/modules/analyze/ChainHeadSelector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAQ,MAAM,iBAAiB,CAAA;AAIpD,OAAO,KAAK,EACV,WAAW,EAAE,aAAa,EAAE,+BAA+B,EAC5D,MAAM,sBAAsB,CAAA;AAK7B,OAAO,KAAK,EACV,mBAAmB,EAAE,aAAa,EAAE,qBAAqB,EAAE,4BAA4B,EACxF,MAAM,gBAAgB,CAAA;AAEvB,OAAO,KAAK,EAC2B,mBAAmB,EACzD,MAAM,gBAAgB,CAAA;AAIvB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,uBAAwB,SAAQ,oBAAoB;IACnE;;OAEG;IACH,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAA;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,WAAW,CAAA;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,4BAA4B,CAAA;IAC1C;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,aAAa,CAAA;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,wEAAwE;IACxE,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzE;;;;OAIG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAA;CAChC;AAOD,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,uBAAuB,CAAC;IAC5E;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,+BAA+B,QAAO;IAEtD,SAAS,CAAC,SAAS,EAAE,aAAa,CAAA;IAClC,SAAS,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAA;IACtC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC5B,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACpC,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAChC,OAAO,CAAC,mBAAmB,CAAa;gBAE5B,MAAM,EAAE,uBAAuB;IAS3C,SAAS,KAAK,OAAO;;;;;;;MAEpB;IAED,SAAS,KAAK,aAAa,kBAE1B;IAEK,YAAY,IAAI,OAAO,CAAC,+BAA+B,EAAE,CAAC;IAehE;;;;;;;;;;;;;OAaG;cACa,KAAK,CACnB,GAAG,EAAE,+BAA+B,EAAE,EACtC,OAAO,EAAE,+BAA+B,EAAE,GACzC,OAAO,CAAC,+BAA+B,EAAE,CAAC;IAW7C;;;;;;OAMG;cACa,MAAM,CAAC,GAAG,EAAE,+BAA+B,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAmB9F;;;;;;;;;OASG;IACH,SAAS,CAAC,8BAA8B,CAAC,cAAc,EAAE,+BAA+B,EAAE,GAAG,+BAA+B,EAAE;IA2B9H;;;;;;;;OAQG;cACa,qBAAqB,CAAC,MAAM,EAAE,+BAA+B,EAAE,EAAE,GAAG,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC;IAShI,2FAA2F;IAC3F,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,+BAA+B,GAAG,OAAO;IAOxE,mEAAmE;cACnD,aAAa,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAehF;;;;;;;;;OASG;IACH,OAAO,CAAC,2BAA2B;IAqBnC;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;;;;;;OAOG;YACW,iBAAiB;IAY/B,uGAAuG;IACvG,OAAO,CAAC,eAAe;CAkBxB"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { Hash, Promisable } from '@ariestools/sdk';
|
|
2
|
+
import type { XyoAddress } from '@xyo-network/sdk';
|
|
3
|
+
import type { HydratedBlock, SignedHydratedBlockWithHashMeta, TimePayload } from '@xyo-network/xl1-sdk';
|
|
4
|
+
/**
|
|
5
|
+
* How far ahead of this observer's clock a candidate's signed epoch may sit before it is refused.
|
|
6
|
+
*
|
|
7
|
+
* Producers and finalizers keep their own clocks, and a candidate reaches the finalizer some time
|
|
8
|
+
* after it was signed, so a strict "not after now" would refuse honest blocks from any producer
|
|
9
|
+
* whose clock runs slightly ahead. The allowance is what keeps this a defense against far-future
|
|
10
|
+
* claims rather than a lockout for imperfect NTP.
|
|
11
|
+
*/
|
|
12
|
+
export declare const DEFAULT_MAX_CLOCK_SKEW_MS = 30000;
|
|
13
|
+
/**
|
|
14
|
+
* How many EVM blocks past this observer's EVM head a candidate's anchor may sit before it is refused.
|
|
15
|
+
*
|
|
16
|
+
* Two nodes reading the tip through different RPC providers routinely disagree by a block for a
|
|
17
|
+
* few seconds, and that disagreement is about the observers, not the producer.
|
|
18
|
+
*/
|
|
19
|
+
export declare const DEFAULT_MAX_EVM_LEAD_BLOCKS = 2;
|
|
20
|
+
/** The time rules, named so a rejection says which one a candidate failed. */
|
|
21
|
+
export declare const BlockTimeRuleIds: readonly ["time-present", "epoch-after-parent", "epoch-not-future", "anchor-monotonic", "anchor-not-ahead"];
|
|
22
|
+
/** One of the time rules. */
|
|
23
|
+
export type BlockTimeRuleId = typeof BlockTimeRuleIds[number];
|
|
24
|
+
/** What an observer knows about the present, resolved to numbers a rule can compare against. */
|
|
25
|
+
export interface BlockTimeBounds {
|
|
26
|
+
/** The observer's EVM head; absent skips the anchor upper bound. */
|
|
27
|
+
evmHead?: number;
|
|
28
|
+
/** The observer's wall clock, in epoch milliseconds. */
|
|
29
|
+
now: number;
|
|
30
|
+
}
|
|
31
|
+
/** Tolerances the observer-relative rules apply. */
|
|
32
|
+
export interface BlockTimeRuleOptions {
|
|
33
|
+
/** Defaults to {@link DEFAULT_MAX_CLOCK_SKEW_MS}. */
|
|
34
|
+
maxClockSkewMs?: number;
|
|
35
|
+
/** Defaults to {@link DEFAULT_MAX_EVM_LEAD_BLOCKS}. */
|
|
36
|
+
maxEvmLeadBlocks?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* How a head selector reaches the present: readers rather than values, because a selection pass
|
|
40
|
+
* resolves them once, lazily, and only when a candidate makes the corresponding claim.
|
|
41
|
+
*/
|
|
42
|
+
export interface BlockTimeRuleParams extends BlockTimeRuleOptions {
|
|
43
|
+
/** Reads the observer's EVM head; absent, or answering undefined, skips the anchor upper bound. */
|
|
44
|
+
evmHead?: () => Promisable<number | undefined>;
|
|
45
|
+
/** The observer's wall clock. Injectable for tests. */
|
|
46
|
+
now?: () => number;
|
|
47
|
+
/** Told once per distinct candidate a rule refused. */
|
|
48
|
+
onRejection?: (rejection: BlockTimeRejection) => void;
|
|
49
|
+
}
|
|
50
|
+
/** A candidate a time rule refused, with enough context to explain it. */
|
|
51
|
+
export interface BlockTimeRejection {
|
|
52
|
+
/** The candidate's height. */
|
|
53
|
+
block: number;
|
|
54
|
+
/** What specifically was wrong. */
|
|
55
|
+
detail: string;
|
|
56
|
+
/** The candidate's hash. */
|
|
57
|
+
hash: Hash;
|
|
58
|
+
/** Who produced it. */
|
|
59
|
+
producer?: XyoAddress;
|
|
60
|
+
/** Which rule. */
|
|
61
|
+
rule: BlockTimeRuleId;
|
|
62
|
+
}
|
|
63
|
+
/** The signed time payload a block carries, when it has one. */
|
|
64
|
+
export declare function timePayloadOfBlock(block: HydratedBlock): TimePayload | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* The epoch a block's signed time payload claims, in milliseconds.
|
|
67
|
+
*
|
|
68
|
+
* Deliberately no fallback to the unsigned `$epoch` meta (unlike `epochOfBlock` in xl1-sdk, which
|
|
69
|
+
* reads history): everything here gates on the answer, and a gate must not accept a claim the
|
|
70
|
+
* producer never signed.
|
|
71
|
+
*/
|
|
72
|
+
export declare function signedEpochOfBlock(block: HydratedBlock): number | undefined;
|
|
73
|
+
/** The EVM height a block's signed time payload claims, when it claims one. */
|
|
74
|
+
export declare function evmAnchorOfBlock(block: HydratedBlock): number | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* Checks a candidate's signed time claims against its parent and against the observer.
|
|
77
|
+
*
|
|
78
|
+
* Every rule reads the candidate's own signed time payload, the one statement about a block's
|
|
79
|
+
* timing its producer cannot alter after signing. The parent-relative rules are deterministic:
|
|
80
|
+
* two finalizers holding the same pair reach the same verdict whenever they ask. The
|
|
81
|
+
* observer-relative rules are not, and are tolerant on purpose. They exist to refuse claims no
|
|
82
|
+
* honest clock or EVM view could have produced, not to arbitrate between two nodes' slightly
|
|
83
|
+
* different ideas of the present. That is also why they belong in head selection rather than in
|
|
84
|
+
* protocol validation: whether a block is valid must not depend on who looked, or when.
|
|
85
|
+
* @param candidate The block under consideration
|
|
86
|
+
* @param parent The block it builds on, when known; absent skips the parent-relative rules
|
|
87
|
+
* @param bounds What the observer knows about the present
|
|
88
|
+
* @param options Tolerances for the observer-relative rules
|
|
89
|
+
* @returns The first rule the candidate failed, or undefined when every rule holds
|
|
90
|
+
*/
|
|
91
|
+
export declare function evaluateBlockTime(candidate: SignedHydratedBlockWithHashMeta, parent: HydratedBlock | undefined, bounds: BlockTimeBounds, options?: BlockTimeRuleOptions): BlockTimeRejection | undefined;
|
|
92
|
+
//# sourceMappingURL=blockTime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockTime.d.ts","sourceRoot":"","sources":["../../../../src/modules/analyze/blockTime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EACV,aAAa,EAAE,+BAA+B,EAAE,WAAW,EAC5D,MAAM,sBAAsB,CAAA;AAG7B;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,QAAS,CAAA;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAA;AAE5C,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,6GAEnB,CAAA;AAEV,6BAA6B;AAC7B,MAAM,MAAM,eAAe,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAA;AAE7D,gGAAgG;AAChG,MAAM,WAAW,eAAe;IAC9B,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACnC,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAC/D,mGAAmG;IACnG,OAAO,CAAC,EAAE,MAAM,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAC9C,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,uDAAuD;IACvD,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,kBAAkB,KAAK,IAAI,CAAA;CACtD;AAED,0EAA0E;AAC1E,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,4BAA4B;IAC5B,IAAI,EAAE,IAAI,CAAA;IACV,uBAAuB;IACvB,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,kBAAkB;IAClB,IAAI,EAAE,eAAe,CAAA;CACtB;AAID,gEAAgE;AAChE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,WAAW,GAAG,SAAS,CAEhF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAE3E;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAEzE;AA6CD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,+BAA+B,EAC1C,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,oBAAyB,GACjC,kBAAkB,GAAG,SAAS,CAiBhC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './admission.js';
|
|
2
2
|
export * from './analyzeChain.js';
|
|
3
3
|
export * from './BalanceAnalyzer/index.js';
|
|
4
|
+
export * from './blockTime.js';
|
|
4
5
|
export * from './ChainFinalizer.js';
|
|
5
6
|
export * from './ChainHeadSelector.js';
|
|
6
7
|
export * from './producer/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/analyze/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/analyze/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/modules/diviners/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/modules/diviners/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,4BAA4B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildBlock.d.ts","sourceRoot":"","sources":["../../../../../src/modules/protocol/block/buildBlock.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACS,+BAA+B,EACnD,MAAM,sBAAsB,CAAA;AAY7B,OAAO,EACL,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAA;AA6B/B,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,+BAA+B,CAAC,
|
|
1
|
+
{"version":3,"file":"buildBlock.d.ts","sourceRoot":"","sources":["../../../../../src/modules/protocol/block/buildBlock.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACS,+BAA+B,EACnD,MAAM,sBAAsB,CAAA;AAY7B,OAAO,EACL,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAA;AA6B/B,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAuErG"}
|
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
import type { Address } from '@ariestools/sdk';
|
|
2
2
|
import type { AccountInstance } from '@xyo-network/sdk';
|
|
3
|
-
import type { ChainId,
|
|
4
|
-
export declare function createProducerChainStakeIntent(from: Address, exp: number, nbf?: number): Promise<import("@xyo-network/sdk").WithHashMeta<
|
|
3
|
+
import type { ChainId, HydratedTransactionWithHashMeta, XL1BlockNumber } from '@xyo-network/xl1-sdk';
|
|
4
|
+
export declare function createProducerChainStakeIntent(from: Address, exp: number, nbf?: number): Promise<import("@xyo-network/sdk").WithHashMeta<{
|
|
5
|
+
schema: "network.xyo.chain.stake.intent" & {
|
|
6
|
+
readonly __schema: true;
|
|
7
|
+
};
|
|
8
|
+
exp: number;
|
|
9
|
+
from: import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
|
|
10
|
+
readonly __hex: true;
|
|
11
|
+
} & {
|
|
12
|
+
readonly __address: true;
|
|
13
|
+
});
|
|
14
|
+
intent: "producer";
|
|
15
|
+
nbf: number;
|
|
16
|
+
$version?: number | undefined;
|
|
17
|
+
}>>;
|
|
5
18
|
export declare function createProducerChainStakeIntentTransaction(chain: ChainId, signers: AccountInstance[] | undefined, producer: Address, exp: XL1BlockNumber, nbf?: 0 & {
|
|
6
19
|
readonly __blockNumber: true;
|
|
7
20
|
} & {
|
package/dist/browser/modules/protocol/block/createProducerChainStakeIntentTransaction.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createProducerChainStakeIntentTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/modules/protocol/block/createProducerChainStakeIntentTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,KAAK,EACV,OAAO,
|
|
1
|
+
{"version":3,"file":"createProducerChainStakeIntentTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/modules/protocol/block/createProducerChainStakeIntentTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,KAAK,EACV,OAAO,EAEP,+BAA+B,EAC/B,cAAc,EACf,MAAM,sBAAsB,CAAA;AAM7B,wBAAsB,8BAA8B,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,SAAI;;;;;;;;;;;;;IAQvF;AAED,wBAAsB,yCAAyC,CAC7D,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,eAAe,EAAE,YAAK,EAC/B,QAAQ,EAAE,OAAO,EACjB,GAAG,EAAE,cAAc,EACnB,GAAG;;;;CAA4B,EAC/B,IAAI;;;;;CAAyB,GAC5B,OAAO,CAAC,+BAA+B,CAAC,CAc1C"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Address, Logger } from '@ariestools/sdk';
|
|
2
2
|
import type { AccountInstance } from '@xyo-network/sdk';
|
|
3
3
|
import type { BaseContext, BlockValidationViewer, BlockViewer, DeadLetterQueueRunner, FinalizationRunner, MempoolViewer } from '@xyo-network/xl1-sdk';
|
|
4
|
-
import type { AdmissionMode, AdmissionShadowReport, ProducerEligibilityEvaluator } from '../../analyze/index.js';
|
|
4
|
+
import type { AdmissionMode, AdmissionShadowReport, BlockTimeRuleParams, ProducerEligibilityEvaluator } from '../../analyze/index.js';
|
|
5
5
|
interface ProcessPendingBlocksParams {
|
|
6
6
|
/** How candidates are admitted; defaults to the allow-list the chain runs on today. */
|
|
7
7
|
admission?: AdmissionMode;
|
|
@@ -29,8 +29,13 @@ interface ProcessPendingBlocksParams {
|
|
|
29
29
|
observer?: AccountInstance;
|
|
30
30
|
/** Where to publish what both admission gates concluded, in shadow posture. */
|
|
31
31
|
publishAdmissionShadow?: (report: AdmissionShadowReport) => Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* What this node knows about the present, against which every candidate's signed time claims
|
|
34
|
+
* are bounded by the head selector. Undefined disables the time rules.
|
|
35
|
+
*/
|
|
36
|
+
timeRules?: BlockTimeRuleParams;
|
|
32
37
|
}
|
|
33
|
-
export declare function processPendingBlocks({ blockValidationViewer, blockViewer, context, logger, mempoolViewer, finalizationRunner, allowedProducers, backoffMs, heartbeatInterval, minCandidates, deadLetterQueueRunner, observer, admission, eligibility, publishAdmissionShadow, }: ProcessPendingBlocksParams): Promise<[{
|
|
38
|
+
export declare function processPendingBlocks({ blockValidationViewer, blockViewer, context, logger, mempoolViewer, finalizationRunner, allowedProducers, backoffMs, heartbeatInterval, minCandidates, deadLetterQueueRunner, observer, admission, eligibility, publishAdmissionShadow, timeRules, }: ProcessPendingBlocksParams): Promise<[{
|
|
34
39
|
schema: "network.xyo.boundwitness" & {
|
|
35
40
|
readonly __schema: true;
|
|
36
41
|
};
|
|
@@ -46,7 +51,6 @@ export declare function processPendingBlocks({ blockValidationViewer, blockViewe
|
|
|
46
51
|
block: import("@xyo-network/xl1-sdk").XL1BlockNumber;
|
|
47
52
|
chain: import("@ariestools/sdk").BrandedHex;
|
|
48
53
|
previous: import("@ariestools/sdk").BrandedHash | null;
|
|
49
|
-
$epoch: number;
|
|
50
54
|
_hash: import("@ariestools/sdk").BrandedHash;
|
|
51
55
|
_dataHash: import("@ariestools/sdk").BrandedHash;
|
|
52
56
|
$destination?: import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
|
|
@@ -58,11 +62,14 @@ export declare function processPendingBlocks({ blockValidationViewer, blockViewe
|
|
|
58
62
|
protocol?: number | undefined;
|
|
59
63
|
step_hashes?: import("@ariestools/sdk").BrandedHash[] | undefined;
|
|
60
64
|
supersedes?: import("@ariestools/sdk").BrandedHash | undefined;
|
|
65
|
+
$epoch?: number | undefined;
|
|
66
|
+
$version?: 1000000 | undefined;
|
|
61
67
|
}, {
|
|
62
68
|
[x: string]: unknown;
|
|
63
69
|
schema: import("@xyo-network/sdk").BrandedSchema<string>;
|
|
64
70
|
_hash: import("@ariestools/sdk").BrandedHash;
|
|
65
71
|
_dataHash: import("@ariestools/sdk").BrandedHash;
|
|
72
|
+
$version?: number | undefined;
|
|
66
73
|
}[]][] | undefined>;
|
|
67
74
|
export {};
|
|
68
75
|
//# sourceMappingURL=processPendingBlocks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processPendingBlocks.d.ts","sourceRoot":"","sources":["../../../../../src/modules/services/implementation/processPendingBlocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EACV,WAAW,EAAE,qBAAqB,EAAE,WAAW,EAAE,qBAAqB,EAAE,kBAAkB,EAA6B,aAAa,EACrI,MAAM,sBAAsB,CAAA;AAK7B,OAAO,KAAK,EACV,aAAa,EAAE,qBAAqB,EAAE,4BAA4B,
|
|
1
|
+
{"version":3,"file":"processPendingBlocks.d.ts","sourceRoot":"","sources":["../../../../../src/modules/services/implementation/processPendingBlocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EACV,WAAW,EAAE,qBAAqB,EAAE,WAAW,EAAE,qBAAqB,EAAE,kBAAkB,EAA6B,aAAa,EACrI,MAAM,sBAAsB,CAAA;AAK7B,OAAO,KAAK,EACV,aAAa,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,4BAA4B,EACxF,MAAM,UAAU,CAAA;AAKjB,UAAU,0BAA0B;IAClC,uFAAuF;IACvF,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,WAAW,CAAA;IACpB,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,uEAAuE;IACvE,WAAW,CAAC,EAAE,4BAA4B,CAAA;IAC1C,kBAAkB,EAAE,kBAAkB,CAAA;IACtC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,aAAa,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzE;;;OAGG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAA;CAChC;AAgCD,wBAAsB,oBAAoB,CAAC,EACzC,qBAAqB,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,SAAS,EAAE,iBAAiB,EAAE,aAAa,EAAE,qBAAqB,EAAE,QAAQ,EACtL,SAAS,EAAE,WAAW,EAAE,sBAAsB,EAAE,SAAS,GAC1D,EAAE,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA6E5B"}
|
|
@@ -75,6 +75,7 @@ export declare class SimpleBlockRunner extends AbstractCreatableProvider<SimpleB
|
|
|
75
75
|
private _blockValidationViewer?;
|
|
76
76
|
private _chainParamsViewer?;
|
|
77
77
|
private _finalizationViewer?;
|
|
78
|
+
private _headEpochCache?;
|
|
78
79
|
private _lastRejectedBuildAt;
|
|
79
80
|
/** Cache of the last candidate this runner signed; the mempool is the source of truth. */
|
|
80
81
|
private _lastSignedCandidate?;
|
|
@@ -143,7 +144,6 @@ export declare class SimpleBlockRunner extends AbstractCreatableProvider<SimpleB
|
|
|
143
144
|
block: import("@xyo-network/xl1-sdk").XL1BlockNumber;
|
|
144
145
|
chain: import("@ariestools/sdk").BrandedHex;
|
|
145
146
|
previous: import("@ariestools/sdk").BrandedHash | null;
|
|
146
|
-
$epoch: number;
|
|
147
147
|
_hash: import("@ariestools/sdk").BrandedHash;
|
|
148
148
|
_dataHash: import("@ariestools/sdk").BrandedHash;
|
|
149
149
|
$destination?: import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
|
|
@@ -155,11 +155,14 @@ export declare class SimpleBlockRunner extends AbstractCreatableProvider<SimpleB
|
|
|
155
155
|
protocol?: number | undefined;
|
|
156
156
|
step_hashes?: import("@ariestools/sdk").BrandedHash[] | undefined;
|
|
157
157
|
supersedes?: import("@ariestools/sdk").BrandedHash | undefined;
|
|
158
|
+
$epoch?: number | undefined;
|
|
159
|
+
$version?: 1000000 | undefined;
|
|
158
160
|
}, {
|
|
159
161
|
[x: string]: unknown;
|
|
160
162
|
schema: import("@xyo-network/sdk").BrandedSchema<string>;
|
|
161
163
|
_hash: import("@ariestools/sdk").BrandedHash;
|
|
162
164
|
_dataHash: import("@ariestools/sdk").BrandedHash;
|
|
165
|
+
$version?: number | undefined;
|
|
163
166
|
}[]] | undefined>;
|
|
164
167
|
private addTransferOutflow;
|
|
165
168
|
private commitProposedBlock;
|
|
@@ -181,8 +184,26 @@ export declare class SimpleBlockRunner extends AbstractCreatableProvider<SimpleB
|
|
|
181
184
|
private evictStaleExclusions;
|
|
182
185
|
private filterByFunded;
|
|
183
186
|
private generateTimePayload;
|
|
187
|
+
/**
|
|
188
|
+
* The head's signed epoch, read once per head.
|
|
189
|
+
*
|
|
190
|
+
* It comes from the head's own time payload, by way of the time sync viewer, rather than from the
|
|
191
|
+
* unsigned `$epoch` meta on the bound witness: the finalizer paces heartbeats by the signed
|
|
192
|
+
* epoch, and a producer pacing itself by anything else would drift from what qualifies. The
|
|
193
|
+
* viewer may be remote, and a head lasts many ticks, so the answer is cached until the head moves.
|
|
194
|
+
* A read failure is not cached — the next tick asks again — and reads as "no epoch", which errs
|
|
195
|
+
* toward heartbeating rather than toward silence.
|
|
196
|
+
* @param head The current head block
|
|
197
|
+
* @returns The head's signed epoch, or undefined when the head carries none or it could not be read
|
|
198
|
+
*/
|
|
199
|
+
private headEpoch;
|
|
184
200
|
/**
|
|
185
201
|
* Check if a heartbeat block is required based on network activity.
|
|
202
|
+
*
|
|
203
|
+
* A head with no signed epoch — the genesis block, or a head that predates the time payload —
|
|
204
|
+
* cannot be aged, and the chain needs a block to establish its clock, so a heartbeat is due at
|
|
205
|
+
* once rather than never. The finalizer's pacing agrees: it only paces against a head that has
|
|
206
|
+
* a signed epoch.
|
|
186
207
|
* @param head The current head block
|
|
187
208
|
* @returns True if a heartbeat is required, false otherwise
|
|
188
209
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleBlockRunner.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/services/simple/block/runner/SimpleBlockRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAAQ,UAAU,EAC1B,MAAM,iBAAiB,CAAA;AAKxB,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAAE,YAAY,EAChC,MAAM,kBAAkB,CAAA;AAKzB,OAAO,KAAK,EACV,oBAAoB,EAAuB,iBAAiB,EACxC,iBAAiB,EAAE,WAAW,EAAE,qBAAqB,EACzE,gBAAgB,EAAE,uBAAuB,EACzC,qBAAqB,EACrB,kBAAkB,EAClB,oCAAoC,EAAgC,aAAa,EACjF,mCAAmC,EACnC,+BAA+B,EAClB,cAAc,EAAE,QAAQ,EACtC,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EAQ1B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAKlD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAI3E,OAAO,KAAK,EAAE,gCAAgC,EAA+B,MAAM,uCAAuC,CAAA;AAG1H,uFAAuF;AACvF,UAAU,wBAAwB;IAChC,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,iBAAiB,CAAA;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAA;AAEpC;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,SAAU,CAAA;AAEjD;;GAEG;AACH,eAAO,MAAM,mCAAmC,MAAM,CAAA;AAEtD;;;GAGG;AACH,eAAO,MAAM,iCAAiC,MAAM,CAAA;AAEpD,MAAM,WAAW,uBAAwB,SAAQ,uBAAuB;IACtE,4FAA4F;IAC5F,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,0BAA0B,CAAC,EAAE,OAAO,CAAA;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,8FAA8F;IAC9F,eAAe,CAAC,EAAE,gCAAgC,CAAA;IAClD,6BAA6B,CAAC,EAAE,iBAAiB,CAAA;IACjD,gGAAgG;IAChG,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,0BAA0B,CAAC,EAAE,oCAAoC,CAAA;CAClE;AAED,qBACa,iBAAkB,SAAQ,yBAAyB,CAAC,uBAAuB,CAAE,YAAW,WAAW;IAC9G;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,sBAAsB,QAAO;IAE7C,MAAM,CAAC,QAAQ,CAAC,eAAe,uCAAuC;IACtE,MAAM,CAAC,QAAQ,CAAC,cAAc,gBAAqB;IACnD,MAAM,CAAC,QAAQ,CAAC,YAAY,yIAO3B;IAED,MAAM,CAAC,QAAQ,CAAC,QAAQ,kBAAuB;IAE/C,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAG,MAAM,CAAS;IAEzC,OAAO,gBAAmC;IAE1C,SAAS,CAAC,mBAAmB,CAAC,EAAE,kBAAkB,CAAA;IAClD,SAAS,CAAC,sBAAsB,CAAC,EAAE,qBAAqB,CAAA;IAMxD,SAAS,CAAC,0BAA0B,uEAA4C;IAChF,SAAS,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAC1C,SAAS,CAAC,8BAA8B,CAAC,EAAE,iBAAiB,CAAA;IAE5D,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,OAAO,CAAC,qBAAqB,CAAC,CAAsB;IACpD,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,kBAAkB,CAAC,CAAmB;IAC9C,OAAO,CAAC,sBAAsB,CAAC,CAAuB;IACtD,OAAO,CAAC,kBAAkB,CAAC,CAAmB;IAC9C,OAAO,CAAC,mBAAmB,CAAC,CAAoB;IAChD,OAAO,CAAC,oBAAoB,CAAI;IAChC,0FAA0F;IAC1F,OAAO,CAAC,oBAAoB,CAAC,CAA+C;IAC5E,OAAO,CAAC,cAAc,CAAC,CAAe;IACtC,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,eAAe,CAAC,CAAgB;IAExC;;OAEG;IACH,MAAM,KAAK,gBAAgB,IAAI,MAAM,CAEpC;IAED;;;OAGG;IACH,MAAM,KAAK,qBAAqB,IAAI,MAAM,CAEzC;IAED;;;OAGG;IACH,MAAM,KAAK,mBAAmB,IAAI,MAAM,CAEvC;IAED,SAAS,KAAK,OAAO,oBAEpB;IAED,SAAS,KAAK,oBAAoB,yBAEjC;IAED,SAAS,KAAK,OAAO;;;;MAEpB;IAED,SAAS,KAAK,iBAAiB,sBAE9B;IAED,SAAS,KAAK,qBAAqB,0BAElC;IAED,SAAS,KAAK,kBAAkB,uBAE/B;IAED,SAAS,KAAK,iBAAiB,WAE9B;IAED,SAAS,KAAK,eAAe,IAAI,gCAAgC,GAAG,SAAS,CAE5E;IAED,SAAS,KAAK,aAAa,kBAE1B;IAED,SAAS,KAAK,cAAc;;;;MAE3B;IAMD,SAAS,KAAK,6BAA6B,mPAE1C;IAED,SAAS,KAAK,aAAa,IAAI,OAAO,CAErC;IAMD,SAAS,KAAK,cAAc,IAAI,cAAc,CAE7C;IAMc,aAAa;IAwBtB,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,+BAA+B,GAAG,SAAS,CAAC;IAgBjG,gBAAgB,CAAC,IAAI,EAAE,mCAAmC,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAClH,gBAAgB,CAAC,IAAI,EAAE,mCAAmC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,+BAA+B,GAAG,SAAS,CAAC;cAOtH,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAiB3E;;;;OAIG;IACH,SAAS,CAAC,wBAAwB,CAAC,IAAI,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAC,gBAAgB,GAAG,SAAS,CAAC;cAsBnG,qBAAqB,CAAC,IAAI,EAAE,YAAY,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,UAAQ
|
|
1
|
+
{"version":3,"file":"SimpleBlockRunner.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/services/simple/block/runner/SimpleBlockRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/validation/block/validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/validation/block/validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA"}
|
package/dist/browser/modules/validation/elevatedPayload/payloads/validateClaimInBlock.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateClaimInBlock.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/validation/elevatedPayload/payloads/validateClaimInBlock.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACwB,gCAAgC,EAEnE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"validateClaimInBlock.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/validation/elevatedPayload/payloads/validateClaimInBlock.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACwB,gCAAgC,EAEnE,MAAM,sBAAsB,CAAA;AA2I7B,gGAAgG;AAChG,eAAO,MAAM,oBAAoB,EAAE,gCAqClC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HydratedBlock.d.ts","sourceRoot":"","sources":["../../../../../src/modules/wrappers/block/HydratedBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EACX,qBAAqB,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,iBAAiB,EAEjG,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"HydratedBlock.d.ts","sourceRoot":"","sources":["../../../../../src/modules/wrappers/block/HydratedBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EACX,qBAAqB,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,iBAAiB,EAEjG,MAAM,sBAAsB,CAAA;AAe7B,qBAAa,oBAAoB,CAAC,CAAC,SAAS,yBAAyB,CAAE,YAAW,qBAAqB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACzJ,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAA;IACxD,SAAS,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAK;IAC7D,SAAS,CAAC,OAAO,EAAE,WAAW,CAAA;IAC9B,SAAS,CAAC,iBAAiB,EAAE,2BAA2B,EAAE,CAAK;IAC/D,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,eAAe,CAA0B;IAEjD,SAAS,aAAa,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW;IAKrG,IAAI,KAAK,kDAER;IAED,IAAI,YAAY,uBAEf;IAED,IAAI,KAAK,IAAI,GAAG,CAEf;IAED,IAAI,WAAW,YAEd;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAE7B;IAED,IAAI,MAAM,IAAI,MAAM,CAGnB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,UAAU,IAAI,iBAAiB,EAAE,CAEpC;IAED,IAAI,UAAU,IAAI,IAAI,EAAE,CAEvB;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,YAAY,IAAI,2BAA2B,EAAE,CAEhD;WAEY,KAAK,CAAC,CAAC,SAAS,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAKnH,OAAO,CAAC,KAAK,EAAE,MAAM;IAIrB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIvD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS;IAI7D,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAK5B,aAAa,CAAC,QAAQ,EAAE;QAAE,cAAc,EAAE,oBAAoB,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;cAOzE,KAAK,CAAC,QAAQ,UAAQ,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAkB5H"}
|