@aztec/aztec-node 5.0.0-private.20260318 → 5.0.0-rc.1

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.
Files changed (47) hide show
  1. package/dest/aztec-node/block_response_helpers.d.ts +25 -0
  2. package/dest/aztec-node/block_response_helpers.d.ts.map +1 -0
  3. package/dest/aztec-node/block_response_helpers.js +112 -0
  4. package/dest/aztec-node/config.d.ts +14 -4
  5. package/dest/aztec-node/config.d.ts.map +1 -1
  6. package/dest/aztec-node/config.js +10 -5
  7. package/dest/aztec-node/public_data_overrides.d.ts +13 -0
  8. package/dest/aztec-node/public_data_overrides.d.ts.map +1 -0
  9. package/dest/aztec-node/public_data_overrides.js +21 -0
  10. package/dest/aztec-node/register_node_rpc_handlers.d.ts +10 -0
  11. package/dest/aztec-node/register_node_rpc_handlers.d.ts.map +1 -0
  12. package/dest/aztec-node/register_node_rpc_handlers.js +31 -0
  13. package/dest/aztec-node/server.d.ts +94 -99
  14. package/dest/aztec-node/server.d.ts.map +1 -1
  15. package/dest/aztec-node/server.js +1082 -479
  16. package/dest/bin/index.js +14 -9
  17. package/dest/index.d.ts +2 -1
  18. package/dest/index.d.ts.map +1 -1
  19. package/dest/index.js +1 -0
  20. package/dest/sentinel/config.d.ts +3 -2
  21. package/dest/sentinel/config.d.ts.map +1 -1
  22. package/dest/sentinel/config.js +15 -5
  23. package/dest/sentinel/factory.d.ts +4 -2
  24. package/dest/sentinel/factory.d.ts.map +1 -1
  25. package/dest/sentinel/factory.js +4 -4
  26. package/dest/sentinel/sentinel.d.ts +133 -9
  27. package/dest/sentinel/sentinel.d.ts.map +1 -1
  28. package/dest/sentinel/sentinel.js +212 -70
  29. package/dest/sentinel/store.d.ts +8 -8
  30. package/dest/sentinel/store.d.ts.map +1 -1
  31. package/dest/sentinel/store.js +25 -17
  32. package/dest/test/index.d.ts +3 -3
  33. package/dest/test/index.d.ts.map +1 -1
  34. package/package.json +27 -26
  35. package/src/aztec-node/block_response_helpers.ts +161 -0
  36. package/src/aztec-node/config.ts +23 -7
  37. package/src/aztec-node/public_data_overrides.ts +35 -0
  38. package/src/aztec-node/register_node_rpc_handlers.ts +29 -0
  39. package/src/aztec-node/server.ts +1203 -612
  40. package/src/bin/index.ts +13 -11
  41. package/src/index.ts +1 -0
  42. package/src/sentinel/README.md +103 -0
  43. package/src/sentinel/config.ts +18 -6
  44. package/src/sentinel/factory.ts +7 -4
  45. package/src/sentinel/sentinel.ts +267 -82
  46. package/src/sentinel/store.ts +26 -18
  47. package/src/test/index.ts +2 -2
@@ -0,0 +1,25 @@
1
+ import { type BlockData, type CommitteeAttestation, L2Block } from '@aztec/stdlib/block';
2
+ import type { CheckpointData, L1PublishedData, ProposedCheckpointData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
3
+ import { type BlockIncludeOptions, type BlockResponse, type CheckpointIncludeOptions, type CheckpointResponse } from '@aztec/stdlib/interfaces/client';
4
+ /** Projects a full {@link L2Block} into a {@link BlockResponse}, attaching L1 / attestation context when provided. */
5
+ export declare function blockResponseFromL2Block(block: L2Block, options: BlockIncludeOptions, context?: {
6
+ l1?: L1PublishedData;
7
+ attestations?: CommitteeAttestation[];
8
+ }): Promise<BlockResponse>;
9
+ /** Projects metadata-only {@link BlockData} into a {@link BlockResponse}. */
10
+ export declare function blockResponseFromBlockData(data: BlockData, options: BlockIncludeOptions, context?: {
11
+ l1?: L1PublishedData;
12
+ attestations?: CommitteeAttestation[];
13
+ }): BlockResponse;
14
+ /** Projects a {@link PublishedCheckpoint} into a {@link CheckpointResponse}. */
15
+ export declare function checkpointResponseFromPublishedCheckpoint(pc: PublishedCheckpoint, options: CheckpointIncludeOptions): Promise<CheckpointResponse>;
16
+ /** Projects metadata-only {@link CheckpointData} into a {@link CheckpointResponse}. `includeBlocks` is ignored (no blocks loaded). */
17
+ export declare function checkpointResponseFromCheckpointData(cd: CheckpointData, options: CheckpointIncludeOptions): CheckpointResponse;
18
+ /**
19
+ * Projects a {@link ProposedCheckpointData} into a {@link CheckpointResponse}.
20
+ * Pure projection — caller pre-fetches `blocks` via `blockSource.getBlocks(...)` when
21
+ * `options.includeBlocks` is true. Throws if `includeL1PublishInfo` or `includeAttestations`
22
+ * is requested (proposed checkpoints have no L1 publish info or attestations).
23
+ */
24
+ export declare function projectProposedToCheckpointResponse(proposed: ProposedCheckpointData, options: CheckpointIncludeOptions, blocks?: L2Block[]): Promise<CheckpointResponse>;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfcmVzcG9uc2VfaGVscGVycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F6dGVjLW5vZGUvYmxvY2tfcmVzcG9uc2VfaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQUUsS0FBSyxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RixPQUFPLEtBQUssRUFDVixjQUFjLEVBQ2QsZUFBZSxFQUNmLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDcEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQ0wsS0FBSyxtQkFBbUIsRUFDeEIsS0FBSyxhQUFhLEVBQ2xCLEtBQUssd0JBQXdCLEVBQzdCLEtBQUssa0JBQWtCLEVBRXhCLE1BQU0saUNBQWlDLENBQUM7QUFFekMsc0hBQXNIO0FBQ3RILHdCQUFzQix3QkFBd0IsQ0FDNUMsS0FBSyxFQUFFLE9BQU8sRUFDZCxPQUFPLEVBQUUsbUJBQW1CLEVBQzVCLE9BQU8sQ0FBQyxFQUFFO0lBQUUsRUFBRSxDQUFDLEVBQUUsZUFBZSxDQUFDO0lBQUMsWUFBWSxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQTtDQUFFLEdBQ3hFLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FtQnhCO0FBRUQsNkVBQTZFO0FBQzdFLHdCQUFnQiwwQkFBMEIsQ0FDeEMsSUFBSSxFQUFFLFNBQVMsRUFDZixPQUFPLEVBQUUsbUJBQW1CLEVBQzVCLE9BQU8sQ0FBQyxFQUFFO0lBQUUsRUFBRSxDQUFDLEVBQUUsZUFBZSxDQUFDO0lBQUMsWUFBWSxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQTtDQUFFLEdBQ3hFLGFBQWEsQ0FnQmY7QUFFRCxnRkFBZ0Y7QUFDaEYsd0JBQXNCLHlDQUF5QyxDQUM3RCxFQUFFLEVBQUUsbUJBQW1CLEVBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsR0FDaEMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBNEI3QjtBQUVELHNJQUFzSTtBQUN0SSx3QkFBZ0Isb0NBQW9DLENBQ2xELEVBQUUsRUFBRSxjQUFjLEVBQ2xCLE9BQU8sRUFBRSx3QkFBd0IsR0FDaEMsa0JBQWtCLENBaUJwQjtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLG1DQUFtQyxDQUN2RCxRQUFRLEVBQUUsc0JBQXNCLEVBQ2hDLE9BQU8sRUFBRSx3QkFBd0IsRUFDakMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQ2pCLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQTRCN0IifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block_response_helpers.d.ts","sourceRoot":"","sources":["../../src/aztec-node/block_response_helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,oBAAoB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EAExB,MAAM,iCAAiC,CAAC;AAEzC,sHAAsH;AACtH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE;IAAE,EAAE,CAAC,EAAE,eAAe,CAAC;IAAC,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAA;CAAE,GACxE,OAAO,CAAC,aAAa,CAAC,CAmBxB;AAED,6EAA6E;AAC7E,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE;IAAE,EAAE,CAAC,EAAE,eAAe,CAAC;IAAC,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAA;CAAE,GACxE,aAAa,CAgBf;AAED,gFAAgF;AAChF,wBAAsB,yCAAyC,CAC7D,EAAE,EAAE,mBAAmB,EACvB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CA4B7B;AAED,sIAAsI;AACtI,wBAAgB,oCAAoC,CAClD,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,wBAAwB,GAChC,kBAAkB,CAiBpB;AAED;;;;;GAKG;AACH,wBAAsB,mCAAmC,CACvD,QAAQ,EAAE,sBAAsB,EAChC,OAAO,EAAE,wBAAwB,EACjC,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,kBAAkB,CAAC,CA4B7B"}
@@ -0,0 +1,112 @@
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import { l1PublishInfoFromL1PublishedData } from '@aztec/stdlib/interfaces/client';
3
+ /** Projects a full {@link L2Block} into a {@link BlockResponse}, attaching L1 / attestation context when provided. */ export async function blockResponseFromL2Block(block, options, context) {
4
+ const response = {
5
+ header: block.header,
6
+ archive: block.archive,
7
+ hash: await block.hash(),
8
+ checkpointNumber: block.checkpointNumber,
9
+ indexWithinCheckpoint: block.indexWithinCheckpoint,
10
+ number: block.number
11
+ };
12
+ if (options.includeTransactions) {
13
+ response.body = block.body;
14
+ }
15
+ if (options.includeL1PublishInfo) {
16
+ response.l1 = l1PublishInfoFromL1PublishedData(context?.l1);
17
+ }
18
+ if (options.includeAttestations) {
19
+ response.attestations = context?.attestations ?? [];
20
+ }
21
+ return response;
22
+ }
23
+ /** Projects metadata-only {@link BlockData} into a {@link BlockResponse}. */ export function blockResponseFromBlockData(data, options, context) {
24
+ const response = {
25
+ header: data.header,
26
+ archive: data.archive,
27
+ hash: data.blockHash,
28
+ checkpointNumber: data.checkpointNumber,
29
+ indexWithinCheckpoint: data.indexWithinCheckpoint,
30
+ number: data.header.getBlockNumber()
31
+ };
32
+ if (options.includeL1PublishInfo) {
33
+ response.l1 = l1PublishInfoFromL1PublishedData(context?.l1);
34
+ }
35
+ if (options.includeAttestations) {
36
+ response.attestations = context?.attestations ?? [];
37
+ }
38
+ return response;
39
+ }
40
+ /** Projects a {@link PublishedCheckpoint} into a {@link CheckpointResponse}. */ export async function checkpointResponseFromPublishedCheckpoint(pc, options) {
41
+ const response = {
42
+ number: pc.checkpoint.number,
43
+ header: pc.checkpoint.header,
44
+ archive: pc.checkpoint.archive,
45
+ checkpointOutHash: pc.checkpoint.getCheckpointOutHash(),
46
+ startBlock: pc.checkpoint.blocks[0]?.number ?? BlockNumber.ZERO,
47
+ blockCount: pc.checkpoint.blocks.length,
48
+ feeAssetPriceModifier: pc.checkpoint.feeAssetPriceModifier
49
+ };
50
+ if (options.includeBlocks) {
51
+ response.blocks = await Promise.all(pc.checkpoint.blocks.map((block)=>blockResponseFromL2Block(block, {
52
+ includeTransactions: options.includeTransactions,
53
+ includeL1PublishInfo: false,
54
+ includeAttestations: false
55
+ })));
56
+ }
57
+ if (options.includeL1PublishInfo) {
58
+ response.l1 = l1PublishInfoFromL1PublishedData(pc.l1);
59
+ }
60
+ if (options.includeAttestations) {
61
+ response.attestations = pc.attestations;
62
+ }
63
+ return response;
64
+ }
65
+ /** Projects metadata-only {@link CheckpointData} into a {@link CheckpointResponse}. `includeBlocks` is ignored (no blocks loaded). */ export function checkpointResponseFromCheckpointData(cd, options) {
66
+ const response = {
67
+ number: cd.checkpointNumber,
68
+ header: cd.header,
69
+ archive: cd.archive,
70
+ checkpointOutHash: cd.checkpointOutHash,
71
+ startBlock: cd.startBlock,
72
+ blockCount: cd.blockCount,
73
+ feeAssetPriceModifier: cd.feeAssetPriceModifier
74
+ };
75
+ if (options.includeL1PublishInfo) {
76
+ response.l1 = l1PublishInfoFromL1PublishedData(cd.l1);
77
+ }
78
+ if (options.includeAttestations) {
79
+ response.attestations = cd.attestations;
80
+ }
81
+ return response;
82
+ }
83
+ /**
84
+ * Projects a {@link ProposedCheckpointData} into a {@link CheckpointResponse}.
85
+ * Pure projection — caller pre-fetches `blocks` via `blockSource.getBlocks(...)` when
86
+ * `options.includeBlocks` is true. Throws if `includeL1PublishInfo` or `includeAttestations`
87
+ * is requested (proposed checkpoints have no L1 publish info or attestations).
88
+ */ export async function projectProposedToCheckpointResponse(proposed, options, blocks) {
89
+ if (options.includeL1PublishInfo || options.includeAttestations) {
90
+ throw new Error('Proposed checkpoints have no L1 publish info or attestations');
91
+ }
92
+ const response = {
93
+ number: proposed.checkpointNumber,
94
+ header: proposed.header,
95
+ archive: proposed.archive,
96
+ checkpointOutHash: proposed.checkpointOutHash,
97
+ startBlock: proposed.startBlock,
98
+ blockCount: proposed.blockCount,
99
+ feeAssetPriceModifier: proposed.feeAssetPriceModifier
100
+ };
101
+ if (options.includeBlocks) {
102
+ if (!blocks) {
103
+ throw new Error('Blocks must be supplied when includeBlocks is true');
104
+ }
105
+ response.blocks = await Promise.all(blocks.map((block)=>blockResponseFromL2Block(block, {
106
+ includeTransactions: options.includeTransactions,
107
+ includeL1PublishInfo: false,
108
+ includeAttestations: false
109
+ })));
110
+ }
111
+ return response;
112
+ }
@@ -1,6 +1,5 @@
1
1
  import { type ArchiverConfig } from '@aztec/archiver/config';
2
2
  import { type GenesisStateConfig } from '@aztec/ethereum/config';
3
- import { type L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
4
3
  import { type ConfigMappingsType } from '@aztec/foundation/config';
5
4
  import { type KeyStore } from '@aztec/node-keystore';
6
5
  import { type SharedNodeConfig } from '@aztec/node-lib/config';
@@ -19,8 +18,6 @@ export { sequencerClientConfigMappings, type SequencerClientConfig };
19
18
  * The configuration the aztec node.
20
19
  */
21
20
  export type AztecNodeConfig = ArchiverConfig & SequencerClientConfig & ValidatorClientConfig & ProverClientUserConfig & WorldStateConfig & Pick<ProverClientUserConfig, 'bbBinaryPath' | 'bbWorkingDirectory' | 'realProofs'> & P2PConfig & DataStoreConfig & SentinelConfig & SharedNodeConfig & GenesisStateConfig & NodeRPCConfig & SlasherConfig & ProverNodeConfig & {
22
- /** L1 contracts addresses */
23
- l1Contracts: L1ContractAddresses;
24
21
  /** Whether the validator is disabled for this node */
25
22
  disableValidator: boolean;
26
23
  /** Whether to skip waiting for the archiver to be fully synced before starting other services */
@@ -29,6 +26,19 @@ export type AztecNodeConfig = ArchiverConfig & SequencerClientConfig & Validator
29
26
  debugForceTxProofVerification: boolean;
30
27
  /** Whether to enable the prover node as a subsystem. */
31
28
  enableProverNode: boolean;
29
+ /**
30
+ * Test-only: use the deterministic AutomineSequencer instead of the production Sequencer.
31
+ * Requires `aztecTargetCommitteeSize === 0` on the deployed rollup and anvil-backed L1.
32
+ * See `AUTOMINE_E2E_OPTS` in `end-to-end/src/fixtures/fixtures.ts`.
33
+ */
34
+ useAutomineSequencer?: boolean;
35
+ /**
36
+ * Test-only: have the AutomineSequencer automatically prove epochs (write epoch out hashes into
37
+ * the L1 Outbox and advance the proven tip) as checkpoints land, replacing the standalone
38
+ * `EpochTestSettler`. Set by the local network/sandbox; the e2e `AUTOMINE_E2E_OPTS` fixture leaves
39
+ * it off so tests drive proving manually via `prove` / `cheatCodes.rollup.markAsProven`.
40
+ */
41
+ automineEnableProveEpoch?: boolean;
32
42
  };
33
43
  export declare const aztecNodeConfigMappings: ConfigMappingsType<AztecNodeConfig>;
34
44
  /**
@@ -37,4 +47,4 @@ export declare const aztecNodeConfigMappings: ConfigMappingsType<AztecNodeConfig
37
47
  */
38
48
  export declare function getConfigEnvVars(): AztecNodeConfig;
39
49
  export declare function createKeyStoreForValidator(config: SequencerTxSenderConfig & SequencerClientConfig & SharedNodeConfig): KeyStore | undefined;
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp0ZWMtbm9kZS9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssY0FBYyxFQUEwQixNQUFNLHdCQUF3QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUE4QixNQUFNLHdCQUF3QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxLQUFLLG1CQUFtQixFQUE4QixNQUFNLHVDQUF1QyxDQUFDO0FBQzdHLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUE4QyxNQUFNLDBCQUEwQixDQUFDO0FBRS9HLE9BQU8sRUFDTCxLQUFLLFFBQVEsRUFJZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUE0QixNQUFNLHdCQUF3QixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBcUIsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsS0FBSyxzQkFBc0IsRUFBOEIsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RyxPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFHdEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQ0wsS0FBSyxxQkFBcUIsRUFDMUIsS0FBSyx1QkFBdUIsRUFDNUIsNkJBQTZCLEVBQzlCLE1BQU0sZ0NBQWdDLENBQUM7QUFHeEMsT0FBTyxFQUFFLEtBQUssYUFBYSxFQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsS0FBSyxxQkFBcUIsRUFBaUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRyxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBNEIsTUFBTSwyQkFBMkIsQ0FBQztBQUk1RixPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQTBCLE1BQU0sdUJBQXVCLENBQUM7QUFFcEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLEtBQUsscUJBQXFCLEVBQUUsQ0FBQztBQUVyRTs7R0FFRztBQUNILE1BQU0sTUFBTSxlQUFlLEdBQUcsY0FBYyxHQUMxQyxxQkFBcUIsR0FDckIscUJBQXFCLEdBQ3JCLHNCQUFzQixHQUN0QixnQkFBZ0IsR0FDaEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLGNBQWMsR0FBRyxvQkFBb0IsR0FBRyxZQUFZLENBQUMsR0FDbEYsU0FBUyxHQUNULGVBQWUsR0FDZixjQUFjLEdBQ2QsZ0JBQWdCLEdBQ2hCLGtCQUFrQixHQUNsQixhQUFhLEdBQ2IsYUFBYSxHQUNiLGdCQUFnQixHQUFHO0lBQ2pCLDZCQUE2QjtJQUM3QixXQUFXLEVBQUUsbUJBQW1CLENBQUM7SUFDakMsc0RBQXNEO0lBQ3RELGdCQUFnQixFQUFFLE9BQU8sQ0FBQztJQUMxQixpR0FBaUc7SUFDakcsdUJBQXVCLEVBQUUsT0FBTyxDQUFDO0lBQ2pDLDZFQUE2RTtJQUM3RSw2QkFBNkIsRUFBRSxPQUFPLENBQUM7SUFDdkMsd0RBQXdEO0lBQ3hELGdCQUFnQixFQUFFLE9BQU8sQ0FBQztDQUMzQixDQUFDO0FBRUosZUFBTyxNQUFNLHVCQUF1QixFQUFFLGtCQUFrQixDQUFDLGVBQWUsQ0F3Q3ZFLENBQUM7QUFFRjs7O0dBR0c7QUFDSCx3QkFBZ0IsZ0JBQWdCLElBQUksZUFBZSxDQUVsRDtBQXNFRCx3QkFBZ0IsMEJBQTBCLENBQ3hDLE1BQU0sRUFBRSx1QkFBdUIsR0FBRyxxQkFBcUIsR0FBRyxnQkFBZ0IsR0FDekUsUUFBUSxHQUFHLFNBQVMsQ0FNdEIifQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp0ZWMtbm9kZS9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssY0FBYyxFQUEwQixNQUFNLHdCQUF3QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUE4QixNQUFNLHdCQUF3QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUE4QyxNQUFNLDBCQUEwQixDQUFDO0FBRS9HLE9BQU8sRUFDTCxLQUFLLFFBQVEsRUFJZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUE0QixNQUFNLHdCQUF3QixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBcUIsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsS0FBSyxzQkFBc0IsRUFBOEIsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RyxPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFHdEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQ0wsS0FBSyxxQkFBcUIsRUFDMUIsS0FBSyx1QkFBdUIsRUFDNUIsNkJBQTZCLEVBQzlCLE1BQU0sZ0NBQWdDLENBQUM7QUFHeEMsT0FBTyxFQUFFLEtBQUssYUFBYSxFQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsS0FBSyxxQkFBcUIsRUFBaUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRyxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBNEIsTUFBTSwyQkFBMkIsQ0FBQztBQUk1RixPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQTBCLE1BQU0sdUJBQXVCLENBQUM7QUFFcEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLEtBQUsscUJBQXFCLEVBQUUsQ0FBQztBQUVyRTs7R0FFRztBQUNILE1BQU0sTUFBTSxlQUFlLEdBQUcsY0FBYyxHQUMxQyxxQkFBcUIsR0FDckIscUJBQXFCLEdBQ3JCLHNCQUFzQixHQUN0QixnQkFBZ0IsR0FDaEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLGNBQWMsR0FBRyxvQkFBb0IsR0FBRyxZQUFZLENBQUMsR0FDbEYsU0FBUyxHQUNULGVBQWUsR0FDZixjQUFjLEdBQ2QsZ0JBQWdCLEdBQ2hCLGtCQUFrQixHQUNsQixhQUFhLEdBQ2IsYUFBYSxHQUNiLGdCQUFnQixHQUFHO0lBQ2pCLHNEQUFzRDtJQUN0RCxnQkFBZ0IsRUFBRSxPQUFPLENBQUM7SUFDMUIsaUdBQWlHO0lBQ2pHLHVCQUF1QixFQUFFLE9BQU8sQ0FBQztJQUNqQyw2RUFBNkU7SUFDN0UsNkJBQTZCLEVBQUUsT0FBTyxDQUFDO0lBQ3ZDLHdEQUF3RDtJQUN4RCxnQkFBZ0IsRUFBRSxPQUFPLENBQUM7SUFDMUI7Ozs7T0FJRztJQUNILG9CQUFvQixDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQy9COzs7OztPQUtHO0lBQ0gsd0JBQXdCLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDcEMsQ0FBQztBQUVKLGVBQU8sTUFBTSx1QkFBdUIsRUFBRSxrQkFBa0IsQ0FBQyxlQUFlLENBOEN2RSxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsd0JBQWdCLGdCQUFnQixJQUFJLGVBQWUsQ0FFbEQ7QUFzRUQsd0JBQWdCLDBCQUEwQixDQUN4QyxNQUFNLEVBQUUsdUJBQXVCLEdBQUcscUJBQXFCLEdBQUcsZ0JBQWdCLEdBQ3pFLFFBQVEsR0FBRyxTQUFTLENBTXRCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/aztec-node/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,KAAK,kBAAkB,EAA8B,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,KAAK,mBAAmB,EAA8B,MAAM,uCAAuC,CAAC;AAC7G,OAAO,EAAE,KAAK,kBAAkB,EAA8C,MAAM,0BAA0B,CAAC;AAE/G,OAAO,EACL,KAAK,QAAQ,EAId,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,KAAK,sBAAsB,EAA8B,MAAM,6BAA6B,CAAC;AACtG,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,6BAA6B,EAC9B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,KAAK,aAAa,EAAyB,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,KAAK,qBAAqB,EAAiC,MAAM,gCAAgC,CAAC;AAC3G,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,2BAA2B,CAAC;AAI5F,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,uBAAuB,CAAC;AAEpF,OAAO,EAAE,6BAA6B,EAAE,KAAK,qBAAqB,EAAE,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,cAAc,GAC1C,qBAAqB,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,gBAAgB,GAChB,IAAI,CAAC,sBAAsB,EAAE,cAAc,GAAG,oBAAoB,GAAG,YAAY,CAAC,GAClF,SAAS,GACT,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,kBAAkB,GAClB,aAAa,GACb,aAAa,GACb,gBAAgB,GAAG;IACjB,6BAA6B;IAC7B,WAAW,EAAE,mBAAmB,CAAC;IACjC,sDAAsD;IACtD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iGAAiG;IACjG,uBAAuB,EAAE,OAAO,CAAC;IACjC,6EAA6E;IAC7E,6BAA6B,EAAE,OAAO,CAAC;IACvC,wDAAwD;IACxD,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEJ,eAAO,MAAM,uBAAuB,EAAE,kBAAkB,CAAC,eAAe,CAwCvE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,eAAe,CAElD;AAsED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,uBAAuB,GAAG,qBAAqB,GAAG,gBAAgB,GACzE,QAAQ,GAAG,SAAS,CAMtB"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/aztec-node/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,KAAK,kBAAkB,EAA8B,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,KAAK,kBAAkB,EAA8C,MAAM,0BAA0B,CAAC;AAE/G,OAAO,EACL,KAAK,QAAQ,EAId,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,KAAK,sBAAsB,EAA8B,MAAM,6BAA6B,CAAC;AACtG,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,6BAA6B,EAC9B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,KAAK,aAAa,EAAyB,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,KAAK,qBAAqB,EAAiC,MAAM,gCAAgC,CAAC;AAC3G,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,2BAA2B,CAAC;AAI5F,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,uBAAuB,CAAC;AAEpF,OAAO,EAAE,6BAA6B,EAAE,KAAK,qBAAqB,EAAE,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,cAAc,GAC1C,qBAAqB,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,gBAAgB,GAChB,IAAI,CAAC,sBAAsB,EAAE,cAAc,GAAG,oBAAoB,GAAG,YAAY,CAAC,GAClF,SAAS,GACT,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,kBAAkB,GAClB,aAAa,GACb,aAAa,GACb,gBAAgB,GAAG;IACjB,sDAAsD;IACtD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iGAAiG;IACjG,uBAAuB,EAAE,OAAO,CAAC;IACjC,6EAA6E;IAC7E,6BAA6B,EAAE,OAAO,CAAC;IACvC,wDAAwD;IACxD,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEJ,eAAO,MAAM,uBAAuB,EAAE,kBAAkB,CAAC,eAAe,CA8CvE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,eAAe,CAElD;AAsED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,uBAAuB,GAAG,qBAAqB,GAAG,gBAAgB,GACzE,QAAQ,GAAG,SAAS,CAMtB"}
@@ -1,6 +1,5 @@
1
1
  import { archiverConfigMappings } from '@aztec/archiver/config';
2
2
  import { genesisStateConfigMappings } from '@aztec/ethereum/config';
3
- import { l1ContractAddressesMapping } from '@aztec/ethereum/l1-contract-addresses';
4
3
  import { booleanConfigHelper, getConfigFromMappings } from '@aztec/foundation/config';
5
4
  import { EthAddress } from '@aztec/foundation/eth-address';
6
5
  import { ethPrivateKeySchema, keyStoreConfigMappings } from '@aztec/node-keystore';
@@ -34,10 +33,6 @@ export const aztecNodeConfigMappings = {
34
33
  ...nodeRpcConfigMappings,
35
34
  ...slasherConfigMappings,
36
35
  ...specificProverNodeConfigMappings,
37
- l1Contracts: {
38
- description: 'The deployed L1 contract addresses',
39
- nested: l1ContractAddressesMapping
40
- },
41
36
  disableValidator: {
42
37
  env: 'VALIDATOR_DISABLED',
43
38
  description: 'Whether the validator is disabled for this node.',
@@ -57,6 +52,16 @@ export const aztecNodeConfigMappings = {
57
52
  env: 'ENABLE_PROVER_NODE',
58
53
  description: 'Whether to enable the prover node as a subsystem.',
59
54
  ...booleanConfigHelper(false)
55
+ },
56
+ useAutomineSequencer: {
57
+ env: 'USE_AUTOMINE_SEQUENCER',
58
+ description: 'Test-only: use AutomineSequencer instead of the production Sequencer.',
59
+ ...booleanConfigHelper(false)
60
+ },
61
+ automineEnableProveEpoch: {
62
+ env: 'AUTOMINE_ENABLE_PROVE_EPOCH',
63
+ description: 'Test-only: have the AutomineSequencer automatically prove epochs as checkpoints land.',
64
+ ...booleanConfigHelper(false)
60
65
  }
61
66
  };
62
67
  /**
@@ -0,0 +1,13 @@
1
+ import type { PublicStorageOverride } from '@aztec/stdlib/interfaces/client';
2
+ import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
3
+ /**
4
+ * Injects public-state overrides into an (ephemeral) world-state fork before simulation.
5
+ *
6
+ * Each override is written via the same `sequentialInsert` path the public processor
7
+ * uses during real transaction execution, so low-leaf updates and root coherence are
8
+ * handled identically for both simulation and proof generation.
9
+ *
10
+ * Writes never reach committed world state — the fork is thrown away after simulation.
11
+ */
12
+ export declare function applyPublicDataOverrides(fork: MerkleTreeWriteOperations, publicStorage: PublicStorageOverride[] | undefined): Promise<void>;
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2RhdGFfb3ZlcnJpZGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp0ZWMtbm9kZS9wdWJsaWNfZGF0YV9vdmVycmlkZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR2pGOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLHdCQUF3QixDQUM1QyxJQUFJLEVBQUUseUJBQXlCLEVBQy9CLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxHQUFHLFNBQVMsR0FDakQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWdCZiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public_data_overrides.d.ts","sourceRoot":"","sources":["../../src/aztec-node/public_data_overrides.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAGjF;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,yBAAyB,EAC/B,aAAa,EAAE,qBAAqB,EAAE,GAAG,SAAS,GACjD,OAAO,CAAC,IAAI,CAAC,CAgBf"}
@@ -0,0 +1,21 @@
1
+ import { PublicDataWrite } from '@aztec/stdlib/avm';
2
+ import { computePublicDataTreeLeafSlot } from '@aztec/stdlib/hash';
3
+ import { MerkleTreeId } from '@aztec/stdlib/trees';
4
+ /**
5
+ * Injects public-state overrides into an (ephemeral) world-state fork before simulation.
6
+ *
7
+ * Each override is written via the same `sequentialInsert` path the public processor
8
+ * uses during real transaction execution, so low-leaf updates and root coherence are
9
+ * handled identically for both simulation and proof generation.
10
+ *
11
+ * Writes never reach committed world state — the fork is thrown away after simulation.
12
+ */ export async function applyPublicDataOverrides(fork, publicStorage) {
13
+ if (!publicStorage?.length) {
14
+ return;
15
+ }
16
+ const writes = await Promise.all(publicStorage.map(async (o)=>{
17
+ const leafSlot = await computePublicDataTreeLeafSlot(o.contract, o.slot);
18
+ return new PublicDataWrite(leafSlot, o.value);
19
+ }));
20
+ await fork.sequentialInsert(MerkleTreeId.PUBLIC_DATA_TREE, writes.map((w)=>w.toBuffer()));
21
+ }
@@ -0,0 +1,10 @@
1
+ import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
2
+ import type { AztecNodeService } from './server.js';
3
+ /**
4
+ * Registers the Aztec node RPC handlers (`aztec_*`, `aztecAdmin_*`, and optionally `aztecDebug_*`), along with the
5
+ * legacy pre-v5 namespaces (`node_*`, `nodeAdmin_*`, `nodeDebug_*`, `p2p_*`) for backwards compatibility.
6
+ */
7
+ export declare function registerAztecNodeRpcHandlers(node: AztecNodeService, services: NamespacedApiHandlers, adminServices?: NamespacedApiHandlers, options?: {
8
+ debug?: boolean;
9
+ }): void;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXJfbm9kZV9ycGNfaGFuZGxlcnMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9henRlYy1ub2RlL3JlZ2lzdGVyX25vZGVfcnBjX2hhbmRsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJL0UsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEQ7OztHQUdHO0FBRUgsd0JBQWdCLDRCQUE0QixDQUMxQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQ3RCLFFBQVEsRUFBRSxxQkFBcUIsRUFDL0IsYUFBYSxDQUFDLEVBQUUscUJBQXFCLEVBQ3JDLE9BQU8sR0FBRTtJQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQTtDQUFPLEdBQ2hDLElBQUksQ0FZTiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register_node_rpc_handlers.d.ts","sourceRoot":"","sources":["../../src/aztec-node/register_node_rpc_handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAI/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD;;;GAGG;AAEH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,qBAAqB,EAC/B,aAAa,CAAC,EAAE,qBAAqB,EACrC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAChC,IAAI,CAYN"}
@@ -0,0 +1,31 @@
1
+ import { AztecNodeAdminApiSchema, AztecNodeApiSchema, AztecNodeDebugApiSchema } from '@aztec/stdlib/interfaces/client';
2
+ import { P2PApiSchema } from '@aztec/stdlib/interfaces/server';
3
+ /**
4
+ * Registers the Aztec node RPC handlers (`aztec_*`, `aztecAdmin_*`, and optionally `aztecDebug_*`), along with the
5
+ * legacy pre-v5 namespaces (`node_*`, `nodeAdmin_*`, `nodeDebug_*`, `p2p_*`) for backwards compatibility.
6
+ */ // TODO: Legacy support for node, nodeAdmin, nodeDebug, p2p namespaces. New namespaces introduced in v5. Remove on future release. A-1169
7
+ export function registerAztecNodeRpcHandlers(node, services, adminServices, options = {}) {
8
+ services.aztec = [
9
+ node,
10
+ AztecNodeApiSchema
11
+ ];
12
+ services.node = services.aztec;
13
+ services.p2p = [
14
+ node.getP2P(),
15
+ P2PApiSchema
16
+ ];
17
+ if (adminServices) {
18
+ adminServices.aztecAdmin = [
19
+ node,
20
+ AztecNodeAdminApiSchema
21
+ ];
22
+ adminServices.nodeAdmin = adminServices.aztecAdmin;
23
+ }
24
+ if (options.debug) {
25
+ services.aztecDebug = [
26
+ node,
27
+ AztecNodeDebugApiSchema
28
+ ];
29
+ services.nodeDebug = services.aztecDebug;
30
+ }
31
+ }