@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
|
@@ -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/neutral/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":"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
|
|
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/neutral/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"}
|
package/dist/neutral/modules.mjs
CHANGED
|
@@ -132,96 +132,23 @@ var countDecimalPlaces = (num) => {
|
|
|
132
132
|
return decimalIndex === -1 ? 0 : numStr.length - decimalIndex - 1;
|
|
133
133
|
};
|
|
134
134
|
|
|
135
|
-
// src/modules/modules/diviners/
|
|
135
|
+
// src/modules/modules/diviners/HeadValidationDiviner.ts
|
|
136
136
|
import {
|
|
137
137
|
assertEx as assertEx2,
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
isDefined as isDefined2,
|
|
139
|
+
toAddress
|
|
140
140
|
} from "@ariestools/sdk";
|
|
141
141
|
import {
|
|
142
142
|
AbstractDiviner as AbstractDiviner2,
|
|
143
143
|
asArchivistInstance,
|
|
144
144
|
asSchema as asSchema4,
|
|
145
|
-
creatableModule as creatableModule2
|
|
146
|
-
PayloadBuilder as PayloadBuilder2
|
|
147
|
-
} from "@xyo-network/sdk";
|
|
148
|
-
import { asBlockBoundWitness, hydrateBlock } from "@xyo-network/xl1-sdk";
|
|
149
|
-
import { BlockJsonSchemaValidator, validateHydratedBlock } from "#validation";
|
|
150
|
-
var BlockValidationDivinerConfigSchema = asSchema4("network.xyo.diviner.chain.block.validation.config", true);
|
|
151
|
-
var BlockValidationDiviner = class extends AbstractDiviner2 {
|
|
152
|
-
_inArchivist;
|
|
153
|
-
_outArchivist;
|
|
154
|
-
get chainId() {
|
|
155
|
-
return assertEx2(this.config.chainId, () => "Missing chainId");
|
|
156
|
-
}
|
|
157
|
-
get context() {
|
|
158
|
-
return assertEx2(this.params.context, () => "Missing context");
|
|
159
|
-
}
|
|
160
|
-
async resolveInArchivist() {
|
|
161
|
-
const resolvedModule = assertEx2(
|
|
162
|
-
await this.resolve(assertEx2(this.config.inArchivist, () => "Missing inArchivist")),
|
|
163
|
-
() => `Unable to resolve inArchivist [${this.config.inArchivist}]`
|
|
164
|
-
);
|
|
165
|
-
const resolvedArchivist = assertEx2(asArchivistInstance(resolvedModule), () => "Invalid inArchivist resolved");
|
|
166
|
-
this._inArchivist = resolvedArchivist;
|
|
167
|
-
return this._inArchivist;
|
|
168
|
-
}
|
|
169
|
-
async resolveOutArchivist() {
|
|
170
|
-
const resolvedModule = assertEx2(
|
|
171
|
-
await this.resolve(assertEx2(this.config.outArchivist, () => "Missing outArchivist")),
|
|
172
|
-
() => `Unable to resolve outArchivist [${this.config.outArchivist}]`
|
|
173
|
-
);
|
|
174
|
-
const resolvedArchivist = assertEx2(asArchivistInstance(resolvedModule), () => "Invalid outArchivist resolved");
|
|
175
|
-
this._outArchivist = resolvedArchivist;
|
|
176
|
-
return this._outArchivist;
|
|
177
|
-
}
|
|
178
|
-
async divineHandler(payloads) {
|
|
179
|
-
const inArchivist = await this.resolveInArchivist();
|
|
180
|
-
const inMap = inArchivist;
|
|
181
|
-
const blocks = (payloads ?? []).map((b) => asBlockBoundWitness(b)).filter(exists2);
|
|
182
|
-
const validationResults = await Promise.all(blocks.map(async (block) => {
|
|
183
|
-
const blockHash = await PayloadBuilder2.hash(block);
|
|
184
|
-
const hydratedBlock = await hydrateBlock({
|
|
185
|
-
...this.context,
|
|
186
|
-
chainMap: inMap,
|
|
187
|
-
caches: this.context.caches ?? {}
|
|
188
|
-
}, blockHash);
|
|
189
|
-
const validationErrors = await validateHydratedBlock(this.context, hydratedBlock, () => this.chainId, [], [BlockJsonSchemaValidator()]);
|
|
190
|
-
return validationErrors.length === 0 ? block : void 0;
|
|
191
|
-
}));
|
|
192
|
-
const results = validationResults.filter(exists2);
|
|
193
|
-
if (isString(this.config.outArchivist)) {
|
|
194
|
-
const outArchivist = await this.resolveOutArchivist();
|
|
195
|
-
if (results?.length > 0) {
|
|
196
|
-
await outArchivist.insert(results);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
return results;
|
|
200
|
-
}
|
|
201
|
-
};
|
|
202
|
-
__publicField(BlockValidationDiviner, "configSchemas", [...__superGet(BlockValidationDiviner, BlockValidationDiviner, "configSchemas"), BlockValidationDivinerConfigSchema]);
|
|
203
|
-
__publicField(BlockValidationDiviner, "targetSchema", BlockValidationDivinerConfigSchema);
|
|
204
|
-
BlockValidationDiviner = __decorateClass([
|
|
205
|
-
creatableModule2()
|
|
206
|
-
], BlockValidationDiviner);
|
|
207
|
-
|
|
208
|
-
// src/modules/modules/diviners/HeadValidationDiviner.ts
|
|
209
|
-
import {
|
|
210
|
-
assertEx as assertEx3,
|
|
211
|
-
isDefined as isDefined2,
|
|
212
|
-
toAddress
|
|
213
|
-
} from "@ariestools/sdk";
|
|
214
|
-
import {
|
|
215
|
-
AbstractDiviner as AbstractDiviner3,
|
|
216
|
-
asArchivistInstance as asArchivistInstance2,
|
|
217
|
-
asSchema as asSchema5,
|
|
218
|
-
creatableModule as creatableModule3
|
|
145
|
+
creatableModule as creatableModule2
|
|
219
146
|
} from "@xyo-network/sdk";
|
|
220
147
|
import { flattenHydratedBlock } from "@xyo-network/xl1-sdk";
|
|
221
148
|
import { Mutex } from "async-mutex";
|
|
222
149
|
import { ChainHeadSelector } from "#analyze";
|
|
223
|
-
var HeadValidationDivinerConfigSchema =
|
|
224
|
-
var HeadValidationDiviner = class extends
|
|
150
|
+
var HeadValidationDivinerConfigSchema = asSchema4("network.xyo.diviner.chain.head.validation.config", true);
|
|
151
|
+
var HeadValidationDiviner = class extends AbstractDiviner2 {
|
|
225
152
|
_context;
|
|
226
153
|
_headValidationDivinerHeadUpdateTotal;
|
|
227
154
|
_headSelector;
|
|
@@ -232,19 +159,19 @@ var HeadValidationDiviner = class extends AbstractDiviner3 {
|
|
|
232
159
|
return this.params.allowedProducers ?? this.config.allowedProducers ?? [];
|
|
233
160
|
}
|
|
234
161
|
get blockViewer() {
|
|
235
|
-
return
|
|
162
|
+
return assertEx2(this.params.blockViewer, () => "Missing block viewer");
|
|
236
163
|
}
|
|
237
164
|
get chainId() {
|
|
238
|
-
return
|
|
165
|
+
return assertEx2(this.params.chainId ?? this.config.chainId, () => "Missing chain information");
|
|
239
166
|
}
|
|
240
167
|
get context() {
|
|
241
168
|
return this._context;
|
|
242
169
|
}
|
|
243
170
|
get headSelector() {
|
|
244
|
-
return
|
|
171
|
+
return assertEx2(this._headSelector, () => "Missing head selector");
|
|
245
172
|
}
|
|
246
173
|
get mempoolViewer() {
|
|
247
|
-
return
|
|
174
|
+
return assertEx2(this.params.mempoolViewer, () => "Missing mempool viewer");
|
|
248
175
|
}
|
|
249
176
|
async createHandler() {
|
|
250
177
|
await super.createHandler();
|
|
@@ -263,11 +190,11 @@ var HeadValidationDiviner = class extends AbstractDiviner3 {
|
|
|
263
190
|
}
|
|
264
191
|
async resolveOutArchivist() {
|
|
265
192
|
if (this._outArchivist) return this._outArchivist;
|
|
266
|
-
const resolvedModule =
|
|
267
|
-
await this.resolve(
|
|
193
|
+
const resolvedModule = assertEx2(
|
|
194
|
+
await this.resolve(assertEx2(this.config.outArchivist, () => "Missing outArchivist")),
|
|
268
195
|
() => `Unable to resolve outArchivist [${this.config.outArchivist}]`
|
|
269
196
|
);
|
|
270
|
-
const resolvedArchivist =
|
|
197
|
+
const resolvedArchivist = assertEx2(asArchivistInstance(resolvedModule), () => "Invalid outArchivist resolved");
|
|
271
198
|
this._outArchivist = resolvedArchivist;
|
|
272
199
|
return this._outArchivist;
|
|
273
200
|
}
|
|
@@ -281,7 +208,7 @@ var HeadValidationDiviner = class extends AbstractDiviner3 {
|
|
|
281
208
|
if (isDefined2(bestHeadChain)) {
|
|
282
209
|
const outArchivist = await this.resolveOutArchivist();
|
|
283
210
|
const oldHeadBlock = this._startingHead?.[0];
|
|
284
|
-
const newHydratedHeadBlock =
|
|
211
|
+
const newHydratedHeadBlock = assertEx2(bestHeadChain.at(-1), () => "Missing best head block [HeadValidationDiviner]");
|
|
285
212
|
const newHeadBlock = newHydratedHeadBlock[0];
|
|
286
213
|
let finalizedBlocksAttributes = [];
|
|
287
214
|
this.logger?.debug("Validating new HeadBlock head from (block) ", oldHeadBlock?.block, "to", newHeadBlock.block);
|
|
@@ -321,24 +248,24 @@ var HeadValidationDiviner = class extends AbstractDiviner3 {
|
|
|
321
248
|
__publicField(HeadValidationDiviner, "configSchemas", [...__superGet(HeadValidationDiviner, HeadValidationDiviner, "configSchemas"), HeadValidationDivinerConfigSchema]);
|
|
322
249
|
__publicField(HeadValidationDiviner, "targetSchema", HeadValidationDivinerConfigSchema);
|
|
323
250
|
HeadValidationDiviner = __decorateClass([
|
|
324
|
-
|
|
251
|
+
creatableModule2()
|
|
325
252
|
], HeadValidationDiviner);
|
|
326
253
|
|
|
327
254
|
// src/modules/modules/witnesses/ArchivistNextWitness.ts
|
|
328
|
-
import { assertEx as
|
|
255
|
+
import { assertEx as assertEx3 } from "@ariestools/sdk";
|
|
329
256
|
import {
|
|
330
257
|
AbstractWitness,
|
|
331
|
-
asArchivistInstance as
|
|
332
|
-
asSchema as
|
|
258
|
+
asArchivistInstance as asArchivistInstance2,
|
|
259
|
+
asSchema as asSchema5
|
|
333
260
|
} from "@xyo-network/sdk";
|
|
334
|
-
var ArchivistNextWitnessConfigSchema =
|
|
261
|
+
var ArchivistNextWitnessConfigSchema = asSchema5("network.xyo.witness.archivist.next.config", true);
|
|
335
262
|
var ArchivistNextWitness = class extends AbstractWitness {
|
|
336
263
|
static configSchemas = [...super.configSchemas, ArchivistNextWitnessConfigSchema];
|
|
337
264
|
static defaultConfigSchema = ArchivistNextWitnessConfigSchema;
|
|
338
265
|
_cursor;
|
|
339
266
|
async getSourceArchivist() {
|
|
340
|
-
return
|
|
341
|
-
await this.resolve(
|
|
267
|
+
return assertEx3(asArchivistInstance2(
|
|
268
|
+
await this.resolve(assertEx3(this.config.sourceArchivist, () => "Missing sourceArchivist"))
|
|
342
269
|
), () => "Invalid sourceArchivist");
|
|
343
270
|
}
|
|
344
271
|
async observeHandler() {
|
|
@@ -355,10 +282,10 @@ var ArchivistNextWitness = class extends AbstractWitness {
|
|
|
355
282
|
// src/modules/modules/witnesses/NetworkStake/NetworkStake.ts
|
|
356
283
|
import { AsObjectFactory as AsObjectFactory2 } from "@ariestools/sdk";
|
|
357
284
|
import {
|
|
358
|
-
asSchema as
|
|
285
|
+
asSchema as asSchema6,
|
|
359
286
|
isPayloadOfSchemaType as isPayloadOfSchemaType2
|
|
360
287
|
} from "@xyo-network/sdk";
|
|
361
|
-
var WeightedNetworkStakeSchema =
|
|
288
|
+
var WeightedNetworkStakeSchema = asSchema6("network.xyo.witness.chain.stake.network.weighted", true);
|
|
362
289
|
var isWeightedNetworkStake = isPayloadOfSchemaType2(WeightedNetworkStakeSchema);
|
|
363
290
|
var asWeightedNetworkStakePayload = AsObjectFactory2.create(isWeightedNetworkStake);
|
|
364
291
|
var asWeightedNetworkStakePayloadWithStorageMeta = AsObjectFactory2.create(isWeightedNetworkStake);
|
|
@@ -366,10 +293,10 @@ var asWeightedNetworkStakePayloadWithStorageMeta = AsObjectFactory2.create(isWei
|
|
|
366
293
|
// src/modules/modules/witnesses/NetworkStake/NetworkStakeObserve.ts
|
|
367
294
|
import { AsObjectFactory as AsObjectFactory3 } from "@ariestools/sdk";
|
|
368
295
|
import {
|
|
369
|
-
asSchema as
|
|
296
|
+
asSchema as asSchema7,
|
|
370
297
|
isPayloadOfSchemaType as isPayloadOfSchemaType3
|
|
371
298
|
} from "@xyo-network/sdk";
|
|
372
|
-
var NetworkStakeObserveSchema =
|
|
299
|
+
var NetworkStakeObserveSchema = asSchema7("network.xyo.witness.chain.stake.network.observe", true);
|
|
373
300
|
var isNetworkStakeObserve = isPayloadOfSchemaType3(NetworkStakeObserveSchema);
|
|
374
301
|
var asNetworkStakeObservePayload = AsObjectFactory3.create(isNetworkStakeObserve);
|
|
375
302
|
var asNetworkStakeObservePayloadWithStorageMeta = AsObjectFactory3.create(isNetworkStakeObserve);
|
|
@@ -379,8 +306,6 @@ export {
|
|
|
379
306
|
BlockRewardDiviner,
|
|
380
307
|
BlockRewardDivinerConfigSchema,
|
|
381
308
|
BlockRewardSchema,
|
|
382
|
-
BlockValidationDiviner,
|
|
383
|
-
BlockValidationDivinerConfigSchema,
|
|
384
309
|
FixedPercentageBlockRewardDiviner,
|
|
385
310
|
FixedPercentageBlockRewardDivinerConfigSchema,
|
|
386
311
|
HeadValidationDiviner,
|