@aztec/aztec-node 2.1.0-rc.9 → 3.0.0-devnet.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/dest/aztec-node/server.d.ts +26 -1
- package/dest/aztec-node/server.d.ts.map +1 -1
- package/dest/aztec-node/server.js +39 -2
- package/dest/sentinel/sentinel.d.ts.map +1 -1
- package/dest/sentinel/sentinel.js +6 -4
- package/package.json +25 -25
- package/src/aztec-node/server.ts +48 -6
- package/src/sentinel/sentinel.ts +8 -11
|
@@ -15,7 +15,7 @@ import { type InBlock, type L2Block, type L2BlockNumber, type L2BlockSource, typ
|
|
|
15
15
|
import type { ContractClassPublic, ContractDataSource, ContractInstanceWithAddress, NodeInfo, ProtocolContractAddresses } from '@aztec/stdlib/contract';
|
|
16
16
|
import type { GasFees } from '@aztec/stdlib/gas';
|
|
17
17
|
import { type AztecNode, type AztecNodeAdmin, type AztecNodeAdminConfig, type GetContractClassLogsResponse, type GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
|
|
18
|
-
import { type ClientProtocolCircuitVerifier, type L2LogsSource, type Service, type WorldStateSyncStatus, type WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
18
|
+
import { type AllowedElement, type ClientProtocolCircuitVerifier, type L2LogsSource, type Service, type WorldStateSyncStatus, type WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
19
19
|
import type { LogFilter, PrivateLog, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
20
20
|
import { type L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
21
21
|
import { P2PClientType } from '@aztec/stdlib/p2p';
|
|
@@ -88,6 +88,7 @@ export declare class AztecNodeService implements AztecNode, AztecNodeAdmin, Trac
|
|
|
88
88
|
*/
|
|
89
89
|
getL1ContractAddresses(): Promise<L1ContractAddresses>;
|
|
90
90
|
getEncodedEnr(): Promise<string | undefined>;
|
|
91
|
+
getAllowedPublicSetup(): Promise<AllowedElement[]>;
|
|
91
92
|
/**
|
|
92
93
|
* Method to determine if the node is ready to accept transactions.
|
|
93
94
|
* @returns - Flag indicating the readiness for tx submission.
|
|
@@ -100,6 +101,18 @@ export declare class AztecNodeService implements AztecNode, AztecNodeAdmin, Trac
|
|
|
100
101
|
* @returns The requested block.
|
|
101
102
|
*/
|
|
102
103
|
getBlock(number: L2BlockNumber): Promise<L2Block | undefined>;
|
|
104
|
+
/**
|
|
105
|
+
* Get a block specified by its hash.
|
|
106
|
+
* @param blockHash - The block hash being requested.
|
|
107
|
+
* @returns The requested block.
|
|
108
|
+
*/
|
|
109
|
+
getBlockByHash(blockHash: Fr): Promise<L2Block | undefined>;
|
|
110
|
+
/**
|
|
111
|
+
* Get a block specified by its archive root.
|
|
112
|
+
* @param archive - The archive root being requested.
|
|
113
|
+
* @returns The requested block.
|
|
114
|
+
*/
|
|
115
|
+
getBlockByArchive(archive: Fr): Promise<L2Block | undefined>;
|
|
103
116
|
/**
|
|
104
117
|
* Method to request blocks. Will attempt to return all requested blocks but will return only those available.
|
|
105
118
|
* @param from - The start of the range of blocks to return.
|
|
@@ -293,6 +306,18 @@ export declare class AztecNodeService implements AztecNode, AztecNodeAdmin, Trac
|
|
|
293
306
|
* @returns The current committed block header.
|
|
294
307
|
*/
|
|
295
308
|
getBlockHeader(blockNumber?: L2BlockNumber): Promise<BlockHeader | undefined>;
|
|
309
|
+
/**
|
|
310
|
+
* Get a block header specified by its hash.
|
|
311
|
+
* @param blockHash - The block hash being requested.
|
|
312
|
+
* @returns The requested block header.
|
|
313
|
+
*/
|
|
314
|
+
getBlockHeaderByHash(blockHash: Fr): Promise<BlockHeader | undefined>;
|
|
315
|
+
/**
|
|
316
|
+
* Get a block header specified by its archive root.
|
|
317
|
+
* @param archive - The archive root being requested.
|
|
318
|
+
* @returns The requested block header.
|
|
319
|
+
*/
|
|
320
|
+
getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined>;
|
|
296
321
|
/**
|
|
297
322
|
* Simulates the public part of a transaction with the current state.
|
|
298
323
|
* @param tx - The transaction to simulate.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/aztec-node/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,uBAAuB,EAAwB,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EACL,cAAc,EAEd,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAc,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,KAAK,mBAAmB,EAKzB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAS,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAIzE,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,aAAa,EAAoD,MAAM,YAAY,CAAC;AAE5G,OAAO,EAGL,eAAe,EACf,KAAK,kBAAkB,EAExB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAEL,iBAAiB,EACjB,KAAK,sBAAsB,EAG5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EAEZ,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,QAAQ,EACR,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EACL,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAEzB,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,EAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAE5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAa,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,KAAK,EAAyB,kBAAkB,EAA8B,MAAM,qBAAqB,CAAC;AACjH,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAClG,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,qBAAqB,IAAI,8BAA8B,EAC5D,KAAK,eAAe,EACpB,sBAAsB,EACtB,EAAE,EACF,KAAK,MAAM,EACX,SAAS,EAET,KAAK,kBAAkB,EACxB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAYjC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,KAAK,eAAe,EAA8B,MAAM,aAAa,CAAC;AAG/E;;GAEG;AACH,qBAAa,gBAAiB,YAAW,SAAS,EAAE,cAAc,EAAE,SAAS;;IAYzE,SAAS,CAAC,MAAM,EAAE,eAAe;IACjC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG;IACjC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAChE,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY;IAC3C,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB;IACzD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB;IAC3D,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB;IACjE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS;IACzD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,sBAAsB,GAAG,SAAS;IACpE,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,GAAG,SAAS;IAC3D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,SAAS;IACnE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM;IACpC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM;IAClC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,8BAA8B;IACxE,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAmB;IAClD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM;IACzC,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,GAAG;IA7Bb,OAAO,CAAC,OAAO,CAAc;IAG7B,OAAO,CAAC,mBAAmB,CAAS;IAGpC,OAAO,CAAC,OAAO,CAAkC;IAEjD,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAGnB,MAAM,EAAE,eAAe,EACd,SAAS,EAAE,GAAG,EACd,WAAW,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,EAC7C,UAAU,EAAE,YAAY,EACxB,kBAAkB,EAAE,kBAAkB,EACtC,mBAAmB,EAAE,mBAAmB,EACxC,sBAAsB,EAAE,sBAAsB,EAC9C,SAAS,EAAE,eAAe,GAAG,SAAS,EACtC,aAAa,EAAE,sBAAsB,GAAG,SAAS,EACjD,kBAAkB,EAAE,QAAQ,GAAG,SAAS,EACxC,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,EAChD,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,qBAAqB,EAAE,8BAA8B,EACrD,UAAU,EAAE,mBAAmB,EAC/B,cAAc,EAAE,MAAM,EACjC,aAAa,EAAE,6BAA6B,EAC5C,SAAS,GAAE,eAAsC,EACjD,GAAG,SAAuB;IAUvB,uBAAuB,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAK9D,SAAS;IAIhB;;;;OAIG;WACiB,aAAa,CAC/B,WAAW,EAAE,eAAe,EAC5B,IAAI,GAAE;QACJ,SAAS,CAAC,EAAE,eAAe,CAAC;QAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,kBAAkB,CAAC;QAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,cAAc,CAAC,EAAE,uBAAuB,CAAC;QACzC,aAAa,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAC9C,EACN,OAAO,GAAE;QACP,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;QAC3C,kBAAkB,CAAC,EAAE,OAAO,CAAC;KACzB,GACL,OAAO,CAAC,gBAAgB,CAAC;IA2R5B;;;OAGG;IACI,YAAY,IAAI,eAAe,GAAG,SAAS;IAI3C,cAAc,IAAI,aAAa;IAI/B,qBAAqB,IAAI,kBAAkB;IAI3C,MAAM,IAAI,GAAG;IAIpB;;;OAGG;IACI,sBAAsB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAItD,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/aztec-node/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -144,7 +144,7 @@ import { NodeMetrics } from './node_metrics.js';
|
|
|
144
144
|
if (!keyStoreProvided) {
|
|
145
145
|
log.warn('KEY STORE CREATED FROM ENVIRONMENT, IT IS RECOMMENDED TO USE A FILE-BASED KEY STORE IN PRODUCTION ENVIRONMENTS');
|
|
146
146
|
}
|
|
147
|
-
ValidatorClient.validateKeyStoreConfiguration(keyStoreManager);
|
|
147
|
+
ValidatorClient.validateKeyStoreConfiguration(keyStoreManager, log);
|
|
148
148
|
}
|
|
149
149
|
// validate that the actual chain id matches that specified in configuration
|
|
150
150
|
if (config.l1ChainId !== ethereumChain.chainInfo.id) {
|
|
@@ -330,6 +330,9 @@ import { NodeMetrics } from './node_metrics.js';
|
|
|
330
330
|
getEncodedEnr() {
|
|
331
331
|
return Promise.resolve(this.p2pClient.getEnr()?.encodeTxt());
|
|
332
332
|
}
|
|
333
|
+
async getAllowedPublicSetup() {
|
|
334
|
+
return this.config.txPublicSetupAllowList ?? await getDefaultAllowedSetupFunctions();
|
|
335
|
+
}
|
|
333
336
|
/**
|
|
334
337
|
* Method to determine if the node is ready to accept transactions.
|
|
335
338
|
* @returns - Flag indicating the readiness for tx submission.
|
|
@@ -364,6 +367,22 @@ import { NodeMetrics } from './node_metrics.js';
|
|
|
364
367
|
return await this.blockSource.getBlock(blockNumber);
|
|
365
368
|
}
|
|
366
369
|
/**
|
|
370
|
+
* Get a block specified by its hash.
|
|
371
|
+
* @param blockHash - The block hash being requested.
|
|
372
|
+
* @returns The requested block.
|
|
373
|
+
*/ async getBlockByHash(blockHash) {
|
|
374
|
+
const publishedBlock = await this.blockSource.getPublishedBlockByHash(blockHash);
|
|
375
|
+
return publishedBlock?.block;
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Get a block specified by its archive root.
|
|
379
|
+
* @param archive - The archive root being requested.
|
|
380
|
+
* @returns The requested block.
|
|
381
|
+
*/ async getBlockByArchive(archive) {
|
|
382
|
+
const publishedBlock = await this.blockSource.getPublishedBlockByArchive(archive);
|
|
383
|
+
return publishedBlock?.block;
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
367
386
|
* Method to request blocks. Will attempt to return all requested blocks but will return only those available.
|
|
368
387
|
* @param from - The start of the range of blocks to return.
|
|
369
388
|
* @param limit - The maximum number of blocks to obtain.
|
|
@@ -756,6 +775,20 @@ import { NodeMetrics } from './node_metrics.js';
|
|
|
756
775
|
return blockNumber === 0 || blockNumber === 'latest' && await this.blockSource.getBlockNumber() === 0 ? this.worldStateSynchronizer.getCommitted().getInitialHeader() : this.blockSource.getBlockHeader(blockNumber);
|
|
757
776
|
}
|
|
758
777
|
/**
|
|
778
|
+
* Get a block header specified by its hash.
|
|
779
|
+
* @param blockHash - The block hash being requested.
|
|
780
|
+
* @returns The requested block header.
|
|
781
|
+
*/ async getBlockHeaderByHash(blockHash) {
|
|
782
|
+
return await this.blockSource.getBlockHeaderByHash(blockHash);
|
|
783
|
+
}
|
|
784
|
+
/**
|
|
785
|
+
* Get a block header specified by its archive root.
|
|
786
|
+
* @param archive - The archive root being requested.
|
|
787
|
+
* @returns The requested block header.
|
|
788
|
+
*/ async getBlockHeaderByArchive(archive) {
|
|
789
|
+
return await this.blockSource.getBlockHeaderByArchive(archive);
|
|
790
|
+
}
|
|
791
|
+
/**
|
|
759
792
|
* Simulates the public part of a transaction with the current state.
|
|
760
793
|
* @param tx - The transaction to simulate.
|
|
761
794
|
**/ async simulatePublicCalls(tx, skipFeeEnforcement = false) {
|
|
@@ -780,7 +813,11 @@ import { NodeMetrics } from './node_metrics.js';
|
|
|
780
813
|
});
|
|
781
814
|
const merkleTreeFork = await this.worldStateSynchronizer.fork();
|
|
782
815
|
try {
|
|
783
|
-
const processor = publicProcessorFactory.create(merkleTreeFork, newGlobalVariables,
|
|
816
|
+
const processor = publicProcessorFactory.create(merkleTreeFork, newGlobalVariables, {
|
|
817
|
+
skipFeeEnforcement,
|
|
818
|
+
clientInitiatedSimulation: true,
|
|
819
|
+
maxDebugLogMemoryReads: this.config.rpcSimulatePublicMaxDebugLogMemoryReads
|
|
820
|
+
});
|
|
784
821
|
// REFACTOR: Consider merging ProcessReturnValues into ProcessedTx
|
|
785
822
|
const [processedTxs, failedTxs, _usedTxs, returns] = await processor.process([
|
|
786
823
|
tx
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"sentinel.d.ts","sourceRoot":"","sources":["../../src/sentinel/sentinel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { countWhile, filterAsync, fromEntries, getEntries, mapValues } from '@aztec/foundation/collection';
|
|
2
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
5
5
|
import { L2TipsMemoryStore } from '@aztec/kv-store/stores';
|
|
6
6
|
import { OffenseType, WANT_TO_SLASH_EVENT } from '@aztec/slasher';
|
|
7
|
-
import { L2BlockStream,
|
|
7
|
+
import { L2BlockStream, getAttestationInfoFromPublishedL2Block } from '@aztec/stdlib/block';
|
|
8
8
|
import { getEpochAtSlot, getSlotRangeForEpoch, getTimestampForSlot } from '@aztec/stdlib/epoch-helpers';
|
|
9
9
|
import EventEmitter from 'node:events';
|
|
10
10
|
export class Sentinel extends EventEmitter {
|
|
@@ -55,7 +55,7 @@ export class Sentinel extends EventEmitter {
|
|
|
55
55
|
this.slotNumberToBlock.set(block.block.header.getSlot(), {
|
|
56
56
|
blockNumber: block.block.number,
|
|
57
57
|
archive: block.block.archive.root.toString(),
|
|
58
|
-
attestors:
|
|
58
|
+
attestors: getAttestationInfoFromPublishedL2Block(block).filter((a)=>a.status === 'recovered-from-signature').map((a)=>a.address)
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
61
|
// Prune the archive map to only keep at most N entries
|
|
@@ -256,8 +256,10 @@ export class Sentinel extends EventEmitter {
|
|
|
256
256
|
// (contains the ones synced from mined blocks, which we may have missed from p2p).
|
|
257
257
|
const block = this.slotNumberToBlock.get(slot);
|
|
258
258
|
const p2pAttested = await this.p2p.getAttestationsForSlot(slot, block?.archive);
|
|
259
|
+
// Filter out attestations with invalid signatures
|
|
260
|
+
const p2pAttestors = p2pAttested.map((a)=>a.getSender()).filter((s)=>s !== undefined);
|
|
259
261
|
const attestors = new Set([
|
|
260
|
-
...
|
|
262
|
+
...p2pAttestors.map((a)=>a.toString()),
|
|
261
263
|
...block?.attestors.map((a)=>a.toString()) ?? []
|
|
262
264
|
].filter((addr)=>proposer.toString() !== addr));
|
|
263
265
|
// We assume that there was a block proposal if at least one of the validators (other than the proposer) attested to it.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/aztec-node",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-devnet.2",
|
|
4
4
|
"main": "dest/index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -66,33 +66,33 @@
|
|
|
66
66
|
]
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@aztec/archiver": "
|
|
70
|
-
"@aztec/bb-prover": "
|
|
71
|
-
"@aztec/blob-sink": "
|
|
72
|
-
"@aztec/constants": "
|
|
73
|
-
"@aztec/epoch-cache": "
|
|
74
|
-
"@aztec/ethereum": "
|
|
75
|
-
"@aztec/foundation": "
|
|
76
|
-
"@aztec/kv-store": "
|
|
77
|
-
"@aztec/l1-artifacts": "
|
|
78
|
-
"@aztec/merkle-tree": "
|
|
79
|
-
"@aztec/node-keystore": "
|
|
80
|
-
"@aztec/node-lib": "
|
|
81
|
-
"@aztec/noir-protocol-circuits-types": "
|
|
82
|
-
"@aztec/p2p": "
|
|
83
|
-
"@aztec/protocol-contracts": "
|
|
84
|
-
"@aztec/prover-client": "
|
|
85
|
-
"@aztec/sequencer-client": "
|
|
86
|
-
"@aztec/simulator": "
|
|
87
|
-
"@aztec/slasher": "
|
|
88
|
-
"@aztec/stdlib": "
|
|
89
|
-
"@aztec/telemetry-client": "
|
|
90
|
-
"@aztec/validator-client": "
|
|
91
|
-
"@aztec/world-state": "
|
|
69
|
+
"@aztec/archiver": "3.0.0-devnet.2",
|
|
70
|
+
"@aztec/bb-prover": "3.0.0-devnet.2",
|
|
71
|
+
"@aztec/blob-sink": "3.0.0-devnet.2",
|
|
72
|
+
"@aztec/constants": "3.0.0-devnet.2",
|
|
73
|
+
"@aztec/epoch-cache": "3.0.0-devnet.2",
|
|
74
|
+
"@aztec/ethereum": "3.0.0-devnet.2",
|
|
75
|
+
"@aztec/foundation": "3.0.0-devnet.2",
|
|
76
|
+
"@aztec/kv-store": "3.0.0-devnet.2",
|
|
77
|
+
"@aztec/l1-artifacts": "3.0.0-devnet.2",
|
|
78
|
+
"@aztec/merkle-tree": "3.0.0-devnet.2",
|
|
79
|
+
"@aztec/node-keystore": "3.0.0-devnet.2",
|
|
80
|
+
"@aztec/node-lib": "3.0.0-devnet.2",
|
|
81
|
+
"@aztec/noir-protocol-circuits-types": "3.0.0-devnet.2",
|
|
82
|
+
"@aztec/p2p": "3.0.0-devnet.2",
|
|
83
|
+
"@aztec/protocol-contracts": "3.0.0-devnet.2",
|
|
84
|
+
"@aztec/prover-client": "3.0.0-devnet.2",
|
|
85
|
+
"@aztec/sequencer-client": "3.0.0-devnet.2",
|
|
86
|
+
"@aztec/simulator": "3.0.0-devnet.2",
|
|
87
|
+
"@aztec/slasher": "3.0.0-devnet.2",
|
|
88
|
+
"@aztec/stdlib": "3.0.0-devnet.2",
|
|
89
|
+
"@aztec/telemetry-client": "3.0.0-devnet.2",
|
|
90
|
+
"@aztec/validator-client": "3.0.0-devnet.2",
|
|
91
|
+
"@aztec/world-state": "3.0.0-devnet.2",
|
|
92
92
|
"koa": "^2.16.1",
|
|
93
93
|
"koa-router": "^13.1.1",
|
|
94
94
|
"tslib": "^2.4.0",
|
|
95
|
-
"viem": "2.
|
|
95
|
+
"viem": "npm:@spalladino/viem@2.38.2-eip7594.0"
|
|
96
96
|
},
|
|
97
97
|
"devDependencies": {
|
|
98
98
|
"@jest/globals": "^30.0.0",
|
package/src/aztec-node/server.ts
CHANGED
|
@@ -73,6 +73,7 @@ import {
|
|
|
73
73
|
type GetPublicLogsResponse,
|
|
74
74
|
} from '@aztec/stdlib/interfaces/client';
|
|
75
75
|
import {
|
|
76
|
+
type AllowedElement,
|
|
76
77
|
type ClientProtocolCircuitVerifier,
|
|
77
78
|
type L2LogsSource,
|
|
78
79
|
type Service,
|
|
@@ -228,7 +229,7 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
|
|
|
228
229
|
'KEY STORE CREATED FROM ENVIRONMENT, IT IS RECOMMENDED TO USE A FILE-BASED KEY STORE IN PRODUCTION ENVIRONMENTS',
|
|
229
230
|
);
|
|
230
231
|
}
|
|
231
|
-
ValidatorClient.validateKeyStoreConfiguration(keyStoreManager);
|
|
232
|
+
ValidatorClient.validateKeyStoreConfiguration(keyStoreManager, log);
|
|
232
233
|
}
|
|
233
234
|
|
|
234
235
|
// validate that the actual chain id matches that specified in configuration
|
|
@@ -508,6 +509,10 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
|
|
|
508
509
|
return Promise.resolve(this.p2pClient.getEnr()?.encodeTxt());
|
|
509
510
|
}
|
|
510
511
|
|
|
512
|
+
public async getAllowedPublicSetup(): Promise<AllowedElement[]> {
|
|
513
|
+
return this.config.txPublicSetupAllowList ?? (await getDefaultAllowedSetupFunctions());
|
|
514
|
+
}
|
|
515
|
+
|
|
511
516
|
/**
|
|
512
517
|
* Method to determine if the node is ready to accept transactions.
|
|
513
518
|
* @returns - Flag indicating the readiness for tx submission.
|
|
@@ -548,6 +553,26 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
|
|
|
548
553
|
return await this.blockSource.getBlock(blockNumber);
|
|
549
554
|
}
|
|
550
555
|
|
|
556
|
+
/**
|
|
557
|
+
* Get a block specified by its hash.
|
|
558
|
+
* @param blockHash - The block hash being requested.
|
|
559
|
+
* @returns The requested block.
|
|
560
|
+
*/
|
|
561
|
+
public async getBlockByHash(blockHash: Fr): Promise<L2Block | undefined> {
|
|
562
|
+
const publishedBlock = await this.blockSource.getPublishedBlockByHash(blockHash);
|
|
563
|
+
return publishedBlock?.block;
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
/**
|
|
567
|
+
* Get a block specified by its archive root.
|
|
568
|
+
* @param archive - The archive root being requested.
|
|
569
|
+
* @returns The requested block.
|
|
570
|
+
*/
|
|
571
|
+
public async getBlockByArchive(archive: Fr): Promise<L2Block | undefined> {
|
|
572
|
+
const publishedBlock = await this.blockSource.getPublishedBlockByArchive(archive);
|
|
573
|
+
return publishedBlock?.block;
|
|
574
|
+
}
|
|
575
|
+
|
|
551
576
|
/**
|
|
552
577
|
* Method to request blocks. Will attempt to return all requested blocks but will return only those available.
|
|
553
578
|
* @param from - The start of the range of blocks to return.
|
|
@@ -1056,6 +1081,24 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
|
|
|
1056
1081
|
: this.blockSource.getBlockHeader(blockNumber);
|
|
1057
1082
|
}
|
|
1058
1083
|
|
|
1084
|
+
/**
|
|
1085
|
+
* Get a block header specified by its hash.
|
|
1086
|
+
* @param blockHash - The block hash being requested.
|
|
1087
|
+
* @returns The requested block header.
|
|
1088
|
+
*/
|
|
1089
|
+
public async getBlockHeaderByHash(blockHash: Fr): Promise<BlockHeader | undefined> {
|
|
1090
|
+
return await this.blockSource.getBlockHeaderByHash(blockHash);
|
|
1091
|
+
}
|
|
1092
|
+
|
|
1093
|
+
/**
|
|
1094
|
+
* Get a block header specified by its archive root.
|
|
1095
|
+
* @param archive - The archive root being requested.
|
|
1096
|
+
* @returns The requested block header.
|
|
1097
|
+
*/
|
|
1098
|
+
public async getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined> {
|
|
1099
|
+
return await this.blockSource.getBlockHeaderByArchive(archive);
|
|
1100
|
+
}
|
|
1101
|
+
|
|
1059
1102
|
/**
|
|
1060
1103
|
* Simulates the public part of a transaction with the current state.
|
|
1061
1104
|
* @param tx - The transaction to simulate.
|
|
@@ -1104,12 +1147,11 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
|
|
|
1104
1147
|
|
|
1105
1148
|
const merkleTreeFork = await this.worldStateSynchronizer.fork();
|
|
1106
1149
|
try {
|
|
1107
|
-
const processor = publicProcessorFactory.create(
|
|
1108
|
-
merkleTreeFork,
|
|
1109
|
-
newGlobalVariables,
|
|
1150
|
+
const processor = publicProcessorFactory.create(merkleTreeFork, newGlobalVariables, {
|
|
1110
1151
|
skipFeeEnforcement,
|
|
1111
|
-
|
|
1112
|
-
|
|
1152
|
+
clientInitiatedSimulation: true,
|
|
1153
|
+
maxDebugLogMemoryReads: this.config.rpcSimulatePublicMaxDebugLogMemoryReads,
|
|
1154
|
+
});
|
|
1113
1155
|
|
|
1114
1156
|
// REFACTOR: Consider merging ProcessReturnValues into ProcessedTx
|
|
1115
1157
|
const [processedTxs, failedTxs, _usedTxs, returns] = await processor.process([tx]);
|
package/src/sentinel/sentinel.ts
CHANGED
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
import type { EpochCache } from '@aztec/epoch-cache';
|
|
2
|
-
import {
|
|
3
|
-
compactArray,
|
|
4
|
-
countWhile,
|
|
5
|
-
filterAsync,
|
|
6
|
-
fromEntries,
|
|
7
|
-
getEntries,
|
|
8
|
-
mapValues,
|
|
9
|
-
} from '@aztec/foundation/collection';
|
|
2
|
+
import { countWhile, filterAsync, fromEntries, getEntries, mapValues } from '@aztec/foundation/collection';
|
|
10
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
11
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
12
5
|
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
@@ -25,7 +18,7 @@ import {
|
|
|
25
18
|
L2BlockStream,
|
|
26
19
|
type L2BlockStreamEvent,
|
|
27
20
|
type L2BlockStreamEventHandler,
|
|
28
|
-
|
|
21
|
+
getAttestationInfoFromPublishedL2Block,
|
|
29
22
|
} from '@aztec/stdlib/block';
|
|
30
23
|
import { getEpochAtSlot, getSlotRangeForEpoch, getTimestampForSlot } from '@aztec/stdlib/epoch-helpers';
|
|
31
24
|
import type {
|
|
@@ -98,7 +91,9 @@ export class Sentinel extends (EventEmitter as new () => WatcherEmitter) impleme
|
|
|
98
91
|
this.slotNumberToBlock.set(block.block.header.getSlot(), {
|
|
99
92
|
blockNumber: block.block.number,
|
|
100
93
|
archive: block.block.archive.root.toString(),
|
|
101
|
-
attestors:
|
|
94
|
+
attestors: getAttestationInfoFromPublishedL2Block(block)
|
|
95
|
+
.filter(a => a.status === 'recovered-from-signature')
|
|
96
|
+
.map(a => a.address!),
|
|
102
97
|
});
|
|
103
98
|
}
|
|
104
99
|
|
|
@@ -326,8 +321,10 @@ export class Sentinel extends (EventEmitter as new () => WatcherEmitter) impleme
|
|
|
326
321
|
// (contains the ones synced from mined blocks, which we may have missed from p2p).
|
|
327
322
|
const block = this.slotNumberToBlock.get(slot);
|
|
328
323
|
const p2pAttested = await this.p2p.getAttestationsForSlot(slot, block?.archive);
|
|
324
|
+
// Filter out attestations with invalid signatures
|
|
325
|
+
const p2pAttestors = p2pAttested.map(a => a.getSender()).filter((s): s is EthAddress => s !== undefined);
|
|
329
326
|
const attestors = new Set(
|
|
330
|
-
[...
|
|
327
|
+
[...p2pAttestors.map(a => a.toString()), ...(block?.attestors.map(a => a.toString()) ?? [])].filter(
|
|
331
328
|
addr => proposer.toString() !== addr, // Exclude the proposer from the attestors
|
|
332
329
|
),
|
|
333
330
|
);
|