@aztec/aztec-node 0.0.1-commit.2b2662070 → 0.0.1-commit.2c0ee1788
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/dest/aztec-node/block_response_helpers.d.ts +21 -0
- package/dest/aztec-node/block_response_helpers.d.ts.map +1 -0
- package/dest/aztec-node/block_response_helpers.js +88 -0
- package/dest/aztec-node/server.d.ts +21 -53
- package/dest/aztec-node/server.d.ts.map +1 -1
- package/dest/aztec-node/server.js +552 -336
- package/dest/sentinel/factory.d.ts +3 -2
- package/dest/sentinel/factory.d.ts.map +1 -1
- package/dest/sentinel/sentinel.d.ts +6 -3
- package/dest/sentinel/sentinel.d.ts.map +1 -1
- package/dest/sentinel/sentinel.js +7 -1
- package/package.json +26 -26
- package/src/aztec-node/block_response_helpers.ts +131 -0
- package/src/aztec-node/server.ts +647 -431
- package/src/sentinel/factory.ts +2 -1
- package/src/sentinel/sentinel.ts +17 -5
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { EpochCache } from '@aztec/epoch-cache';
|
|
2
2
|
import type { P2PClient } from '@aztec/p2p';
|
|
3
3
|
import type { L2BlockSource } from '@aztec/stdlib/block';
|
|
4
|
+
import type { ChainConfig } from '@aztec/stdlib/config';
|
|
4
5
|
import type { SlasherConfig } from '@aztec/stdlib/interfaces/server';
|
|
5
6
|
import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
|
|
6
7
|
import type { SentinelConfig } from './config.js';
|
|
7
8
|
import { Sentinel } from './sentinel.js';
|
|
8
|
-
export declare function createSentinel(epochCache: EpochCache, archiver: L2BlockSource, p2p: P2PClient, config: SentinelConfig & DataStoreConfig & SlasherConfig, logger?: import("@aztec/foundation/log").Logger): Promise<Sentinel | undefined>;
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
export declare function createSentinel(epochCache: EpochCache, archiver: L2BlockSource, p2p: P2PClient, config: SentinelConfig & DataStoreConfig & SlasherConfig & Pick<ChainConfig, 'l1ChainId' | 'l1Contracts'>, logger?: import("@aztec/foundation/log").Logger): Promise<Sentinel | undefined>;
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlbnRpbmVsL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHckQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pDLHdCQUFzQixjQUFjLENBQ2xDLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLFFBQVEsRUFBRSxhQUFhLEVBQ3ZCLEdBQUcsRUFBRSxTQUFTLEVBQ2QsTUFBTSxFQUFFLGNBQWMsR0FBRyxlQUFlLEdBQUcsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLGFBQWEsQ0FBQyxFQUN6RyxNQUFNLHlDQUFnQyxHQUNyQyxPQUFPLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxDQVkvQiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/sentinel/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,cAAc,GAAG,eAAe,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/sentinel/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,cAAc,GAAG,eAAe,GAAG,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,aAAa,CAAC,EACzG,MAAM,yCAAgC,GACrC,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAY/B"}
|
|
@@ -7,15 +7,17 @@ import type { P2PClient } from '@aztec/p2p';
|
|
|
7
7
|
import { type Watcher, type WatcherEmitter } from '@aztec/slasher';
|
|
8
8
|
import type { SlasherConfig } from '@aztec/slasher/config';
|
|
9
9
|
import { type L2BlockSource, L2BlockStream, type L2BlockStreamEvent, type L2BlockStreamEventHandler } from '@aztec/stdlib/block';
|
|
10
|
+
import type { ChainConfig } from '@aztec/stdlib/config';
|
|
10
11
|
import type { SingleValidatorStats, ValidatorStats, ValidatorStatusHistory, ValidatorStatusInSlot, ValidatorStatusType, ValidatorsEpochPerformance, ValidatorsStats } from '@aztec/stdlib/validators';
|
|
11
12
|
import { SentinelStore } from './store.js';
|
|
13
|
+
export type SentinelRuntimeConfig = Pick<SlasherConfig, 'slashInactivityTargetPercentage' | 'slashInactivityPenalty' | 'slashInactivityConsecutiveEpochThreshold'> & Pick<ChainConfig, 'l1ChainId' | 'l1Contracts'>;
|
|
12
14
|
declare const Sentinel_base: new () => WatcherEmitter;
|
|
13
15
|
export declare class Sentinel extends Sentinel_base implements L2BlockStreamEventHandler, Watcher {
|
|
14
16
|
protected epochCache: EpochCache;
|
|
15
17
|
protected archiver: L2BlockSource;
|
|
16
18
|
protected p2p: P2PClient;
|
|
17
19
|
protected store: SentinelStore;
|
|
18
|
-
protected config:
|
|
20
|
+
protected config: SentinelRuntimeConfig;
|
|
19
21
|
protected logger: import("@aztec/foundation/log").Logger;
|
|
20
22
|
protected runningPromise: RunningPromise;
|
|
21
23
|
protected blockStream: L2BlockStream;
|
|
@@ -27,7 +29,8 @@ export declare class Sentinel extends Sentinel_base implements L2BlockStreamEven
|
|
|
27
29
|
archive: string;
|
|
28
30
|
attestors: EthAddress[];
|
|
29
31
|
}>;
|
|
30
|
-
constructor(epochCache: EpochCache, archiver: L2BlockSource, p2p: P2PClient, store: SentinelStore, config:
|
|
32
|
+
constructor(epochCache: EpochCache, archiver: L2BlockSource, p2p: P2PClient, store: SentinelStore, config: SentinelRuntimeConfig, logger?: import("@aztec/foundation/log").Logger);
|
|
33
|
+
private getSignatureContext;
|
|
31
34
|
updateConfig(config: Partial<SlasherConfig>): void;
|
|
32
35
|
start(): Promise<void>;
|
|
33
36
|
/** Loads initial slot and initializes blockstream. We will not process anything at or before the initial slot. */
|
|
@@ -90,4 +93,4 @@ export declare class Sentinel extends Sentinel_base implements L2BlockStreamEven
|
|
|
90
93
|
} | undefined;
|
|
91
94
|
}
|
|
92
95
|
export {};
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudGluZWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZW50aW5lbC9zZW50aW5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQWUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXpHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFxQixLQUFLLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBSUwsS0FBSyxPQUFPLEVBQ1osS0FBSyxjQUFjLEVBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUNMLEtBQUssYUFBYSxFQUNsQixhQUFhLEVBQ2IsS0FBSyxrQkFBa0IsRUFDdkIsS0FBSyx5QkFBeUIsRUFFL0IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd4RCxPQUFPLEtBQUssRUFDVixvQkFBb0IsRUFDcEIsY0FBYyxFQUNkLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQixlQUFlLEVBQ2hCLE1BQU0sMEJBQTBCLENBQUM7QUFJbEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUzQyxNQUFNLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUN0QyxhQUFhLEVBQ2IsaUNBQWlDLEdBQUcsd0JBQXdC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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentinel.d.ts","sourceRoot":"","sources":["../../src/sentinel/sentinel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAe,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAEzG,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAIL,KAAK,OAAO,EACZ,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EACL,KAAK,aAAa,EAClB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAE/B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"sentinel.d.ts","sourceRoot":"","sources":["../../src/sentinel/sentinel.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,12 @@ export class Sentinel extends EventEmitter {
|
|
|
37
37
|
const interval = epochCache.getL1Constants().ethereumSlotDuration * 1000 / 4;
|
|
38
38
|
this.runningPromise = new RunningPromise(this.work.bind(this), logger, interval);
|
|
39
39
|
}
|
|
40
|
+
getSignatureContext() {
|
|
41
|
+
return {
|
|
42
|
+
chainId: this.config.l1ChainId,
|
|
43
|
+
rollupAddress: this.config.l1Contracts.rollupAddress
|
|
44
|
+
};
|
|
45
|
+
}
|
|
40
46
|
updateConfig(config) {
|
|
41
47
|
this.config = {
|
|
42
48
|
...this.config,
|
|
@@ -75,7 +81,7 @@ export class Sentinel extends EventEmitter {
|
|
|
75
81
|
this.slotNumberToCheckpoint.set(checkpoint.checkpoint.header.slotNumber, {
|
|
76
82
|
checkpointNumber: checkpoint.checkpoint.number,
|
|
77
83
|
archive: checkpoint.checkpoint.archive.root.toString(),
|
|
78
|
-
attestors: getAttestationInfoFromPublishedCheckpoint(checkpoint).filter((a)=>a.status === 'recovered-from-signature').map((a)=>a.address)
|
|
84
|
+
attestors: getAttestationInfoFromPublishedCheckpoint(checkpoint, this.getSignatureContext()).filter((a)=>a.status === 'recovered-from-signature').map((a)=>a.address)
|
|
79
85
|
});
|
|
80
86
|
// Prune the archive map to only keep at most N entries
|
|
81
87
|
const historyLength = this.store.getHistoryLength();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/aztec-node",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.2c0ee1788",
|
|
4
4
|
"main": "dest/index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -65,31 +65,31 @@
|
|
|
65
65
|
]
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@aztec/archiver": "0.0.1-commit.
|
|
69
|
-
"@aztec/bb-prover": "0.0.1-commit.
|
|
70
|
-
"@aztec/blob-client": "0.0.1-commit.
|
|
71
|
-
"@aztec/blob-lib": "0.0.1-commit.
|
|
72
|
-
"@aztec/constants": "0.0.1-commit.
|
|
73
|
-
"@aztec/epoch-cache": "0.0.1-commit.
|
|
74
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
75
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
76
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
77
|
-
"@aztec/l1-artifacts": "0.0.1-commit.
|
|
78
|
-
"@aztec/node-keystore": "0.0.1-commit.
|
|
79
|
-
"@aztec/node-lib": "0.0.1-commit.
|
|
80
|
-
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.
|
|
81
|
-
"@aztec/p2p": "0.0.1-commit.
|
|
82
|
-
"@aztec/protocol-contracts": "0.0.1-commit.
|
|
83
|
-
"@aztec/prover-client": "0.0.1-commit.
|
|
84
|
-
"@aztec/prover-node": "0.0.1-commit.
|
|
85
|
-
"@aztec/sequencer-client": "0.0.1-commit.
|
|
86
|
-
"@aztec/simulator": "0.0.1-commit.
|
|
87
|
-
"@aztec/slasher": "0.0.1-commit.
|
|
88
|
-
"@aztec/stdlib": "0.0.1-commit.
|
|
89
|
-
"@aztec/telemetry-client": "0.0.1-commit.
|
|
90
|
-
"@aztec/validator-client": "0.0.1-commit.
|
|
91
|
-
"@aztec/validator-ha-signer": "0.0.1-commit.
|
|
92
|
-
"@aztec/world-state": "0.0.1-commit.
|
|
68
|
+
"@aztec/archiver": "0.0.1-commit.2c0ee1788",
|
|
69
|
+
"@aztec/bb-prover": "0.0.1-commit.2c0ee1788",
|
|
70
|
+
"@aztec/blob-client": "0.0.1-commit.2c0ee1788",
|
|
71
|
+
"@aztec/blob-lib": "0.0.1-commit.2c0ee1788",
|
|
72
|
+
"@aztec/constants": "0.0.1-commit.2c0ee1788",
|
|
73
|
+
"@aztec/epoch-cache": "0.0.1-commit.2c0ee1788",
|
|
74
|
+
"@aztec/ethereum": "0.0.1-commit.2c0ee1788",
|
|
75
|
+
"@aztec/foundation": "0.0.1-commit.2c0ee1788",
|
|
76
|
+
"@aztec/kv-store": "0.0.1-commit.2c0ee1788",
|
|
77
|
+
"@aztec/l1-artifacts": "0.0.1-commit.2c0ee1788",
|
|
78
|
+
"@aztec/node-keystore": "0.0.1-commit.2c0ee1788",
|
|
79
|
+
"@aztec/node-lib": "0.0.1-commit.2c0ee1788",
|
|
80
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.2c0ee1788",
|
|
81
|
+
"@aztec/p2p": "0.0.1-commit.2c0ee1788",
|
|
82
|
+
"@aztec/protocol-contracts": "0.0.1-commit.2c0ee1788",
|
|
83
|
+
"@aztec/prover-client": "0.0.1-commit.2c0ee1788",
|
|
84
|
+
"@aztec/prover-node": "0.0.1-commit.2c0ee1788",
|
|
85
|
+
"@aztec/sequencer-client": "0.0.1-commit.2c0ee1788",
|
|
86
|
+
"@aztec/simulator": "0.0.1-commit.2c0ee1788",
|
|
87
|
+
"@aztec/slasher": "0.0.1-commit.2c0ee1788",
|
|
88
|
+
"@aztec/stdlib": "0.0.1-commit.2c0ee1788",
|
|
89
|
+
"@aztec/telemetry-client": "0.0.1-commit.2c0ee1788",
|
|
90
|
+
"@aztec/validator-client": "0.0.1-commit.2c0ee1788",
|
|
91
|
+
"@aztec/validator-ha-signer": "0.0.1-commit.2c0ee1788",
|
|
92
|
+
"@aztec/world-state": "0.0.1-commit.2c0ee1788",
|
|
93
93
|
"koa": "^2.16.1",
|
|
94
94
|
"koa-router": "^13.1.1",
|
|
95
95
|
"tslib": "^2.4.0",
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import {
|
|
3
|
+
type BlockData,
|
|
4
|
+
type BlockDataWithCheckpointContext,
|
|
5
|
+
type CheckpointedL2Block,
|
|
6
|
+
type CommitteeAttestation,
|
|
7
|
+
L2Block,
|
|
8
|
+
} from '@aztec/stdlib/block';
|
|
9
|
+
import type { CheckpointData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
10
|
+
import {
|
|
11
|
+
type BlockIncludeOptions,
|
|
12
|
+
type BlockResponse,
|
|
13
|
+
type CheckpointIncludeOptions,
|
|
14
|
+
type CheckpointResponse,
|
|
15
|
+
l1PublishInfoFromL1PublishedData,
|
|
16
|
+
} from '@aztec/stdlib/interfaces/client';
|
|
17
|
+
|
|
18
|
+
/** Projects a full {@link L2Block} into a {@link BlockResponse}, attaching L1 / attestation context when provided. */
|
|
19
|
+
export async function blockResponseFromL2Block(
|
|
20
|
+
block: L2Block,
|
|
21
|
+
options: BlockIncludeOptions,
|
|
22
|
+
context?: { l1?: BlockDataWithCheckpointContext['l1']; attestations?: CommitteeAttestation[] },
|
|
23
|
+
): Promise<BlockResponse> {
|
|
24
|
+
const response: BlockResponse = {
|
|
25
|
+
header: block.header,
|
|
26
|
+
archive: block.archive,
|
|
27
|
+
hash: await block.hash(),
|
|
28
|
+
checkpointNumber: block.checkpointNumber,
|
|
29
|
+
indexWithinCheckpoint: block.indexWithinCheckpoint,
|
|
30
|
+
number: block.number,
|
|
31
|
+
};
|
|
32
|
+
if (options.includeTransactions) {
|
|
33
|
+
(response as BlockResponse).body = block.body;
|
|
34
|
+
}
|
|
35
|
+
if (options.includeL1PublishInfo) {
|
|
36
|
+
(response as BlockResponse).l1 = l1PublishInfoFromL1PublishedData(context?.l1);
|
|
37
|
+
}
|
|
38
|
+
if (options.includeAttestations) {
|
|
39
|
+
(response as BlockResponse).attestations = context?.attestations ?? [];
|
|
40
|
+
}
|
|
41
|
+
return response;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/** Projects metadata-only {@link BlockData} into a {@link BlockResponse}. */
|
|
45
|
+
export function blockResponseFromBlockData(
|
|
46
|
+
data: BlockData,
|
|
47
|
+
blockNumber: BlockNumber,
|
|
48
|
+
options: BlockIncludeOptions,
|
|
49
|
+
context?: { l1?: BlockDataWithCheckpointContext['l1']; attestations?: CommitteeAttestation[] },
|
|
50
|
+
): BlockResponse {
|
|
51
|
+
const response: BlockResponse = {
|
|
52
|
+
header: data.header,
|
|
53
|
+
archive: data.archive,
|
|
54
|
+
hash: data.blockHash,
|
|
55
|
+
checkpointNumber: data.checkpointNumber,
|
|
56
|
+
indexWithinCheckpoint: data.indexWithinCheckpoint,
|
|
57
|
+
number: blockNumber,
|
|
58
|
+
};
|
|
59
|
+
if (options.includeL1PublishInfo) {
|
|
60
|
+
(response as BlockResponse).l1 = l1PublishInfoFromL1PublishedData(context?.l1);
|
|
61
|
+
}
|
|
62
|
+
if (options.includeAttestations) {
|
|
63
|
+
(response as BlockResponse).attestations = context?.attestations ?? [];
|
|
64
|
+
}
|
|
65
|
+
return response;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** Projects a {@link CheckpointedL2Block} into a {@link BlockResponse}. */
|
|
69
|
+
export function blockResponseFromCheckpointedL2Block(
|
|
70
|
+
cp: CheckpointedL2Block,
|
|
71
|
+
options: BlockIncludeOptions,
|
|
72
|
+
): Promise<BlockResponse> {
|
|
73
|
+
return blockResponseFromL2Block(cp.block, options, { l1: cp.l1, attestations: cp.attestations });
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/** Projects a {@link PublishedCheckpoint} into a {@link CheckpointResponse}. */
|
|
77
|
+
export async function checkpointResponseFromPublishedCheckpoint(
|
|
78
|
+
pc: PublishedCheckpoint,
|
|
79
|
+
options: CheckpointIncludeOptions,
|
|
80
|
+
): Promise<CheckpointResponse> {
|
|
81
|
+
const response: CheckpointResponse = {
|
|
82
|
+
number: pc.checkpoint.number,
|
|
83
|
+
header: pc.checkpoint.header,
|
|
84
|
+
archive: pc.checkpoint.archive,
|
|
85
|
+
checkpointOutHash: pc.checkpoint.getCheckpointOutHash(),
|
|
86
|
+
startBlock: pc.checkpoint.blocks[0]?.number ?? BlockNumber.ZERO,
|
|
87
|
+
blockCount: pc.checkpoint.blocks.length,
|
|
88
|
+
feeAssetPriceModifier: pc.checkpoint.feeAssetPriceModifier,
|
|
89
|
+
};
|
|
90
|
+
if (options.includeBlocks) {
|
|
91
|
+
(response as CheckpointResponse).blocks = await Promise.all(
|
|
92
|
+
pc.checkpoint.blocks.map(block =>
|
|
93
|
+
blockResponseFromL2Block(block, {
|
|
94
|
+
includeTransactions: options.includeTransactions,
|
|
95
|
+
includeL1PublishInfo: false,
|
|
96
|
+
includeAttestations: false,
|
|
97
|
+
}),
|
|
98
|
+
),
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
if (options.includeL1PublishInfo) {
|
|
102
|
+
(response as CheckpointResponse).l1 = l1PublishInfoFromL1PublishedData(pc.l1);
|
|
103
|
+
}
|
|
104
|
+
if (options.includeAttestations) {
|
|
105
|
+
(response as CheckpointResponse).attestations = pc.attestations;
|
|
106
|
+
}
|
|
107
|
+
return response;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/** Projects metadata-only {@link CheckpointData} into a {@link CheckpointResponse}. `includeBlocks` is ignored (no blocks loaded). */
|
|
111
|
+
export function checkpointResponseFromCheckpointData(
|
|
112
|
+
cd: CheckpointData,
|
|
113
|
+
options: CheckpointIncludeOptions,
|
|
114
|
+
): CheckpointResponse {
|
|
115
|
+
const response: CheckpointResponse = {
|
|
116
|
+
number: cd.checkpointNumber,
|
|
117
|
+
header: cd.header,
|
|
118
|
+
archive: cd.archive,
|
|
119
|
+
checkpointOutHash: cd.checkpointOutHash,
|
|
120
|
+
startBlock: cd.startBlock,
|
|
121
|
+
blockCount: cd.blockCount,
|
|
122
|
+
feeAssetPriceModifier: cd.feeAssetPriceModifier,
|
|
123
|
+
};
|
|
124
|
+
if (options.includeL1PublishInfo) {
|
|
125
|
+
(response as CheckpointResponse).l1 = l1PublishInfoFromL1PublishedData(cd.l1);
|
|
126
|
+
}
|
|
127
|
+
if (options.includeAttestations) {
|
|
128
|
+
(response as CheckpointResponse).attestations = cd.attestations;
|
|
129
|
+
}
|
|
130
|
+
return response;
|
|
131
|
+
}
|