@aztec/validator-client 0.86.0-nightly.20250430 → 0.86.0-nightly.20250502

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.
@@ -51,7 +51,7 @@ export declare class ValidatorClient extends WithTracer implements Validator {
51
51
  private epochCacheUpdateLoop;
52
52
  private blockProposalValidator;
53
53
  constructor(keyStore: ValidatorKeyStore, epochCache: EpochCache, p2pClient: P2P, config: ValidatorClientConfig, dateProvider?: DateProvider, telemetry?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
54
- private handleEpochCommiteeUpdate;
54
+ private handleEpochCommitteeUpdate;
55
55
  static new(config: ValidatorClientConfig, epochCache: EpochCache, p2pClient: P2P, dateProvider?: DateProvider, telemetry?: TelemetryClient): ValidatorClient;
56
56
  getValidatorAddress(): EthAddress;
57
57
  start(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
package/dest/validator.js CHANGED
@@ -34,12 +34,12 @@ import { ValidatorMetrics } from './metrics.js';
34
34
  this.metrics = new ValidatorMetrics(telemetry);
35
35
  this.validationService = new ValidationService(keyStore);
36
36
  this.blockProposalValidator = new BlockProposalValidator(epochCache);
37
- // Refresh epoch cache every second to trigger alert if participation in commitee changes
37
+ // Refresh epoch cache every second to trigger alert if participation in committee changes
38
38
  this.myAddress = this.keyStore.getAddress();
39
- this.epochCacheUpdateLoop = new RunningPromise(this.handleEpochCommiteeUpdate.bind(this), log, 1000);
39
+ this.epochCacheUpdateLoop = new RunningPromise(this.handleEpochCommitteeUpdate.bind(this), log, 1000);
40
40
  this.log.verbose(`Initialized validator with address ${this.keyStore.getAddress().toString()}`);
41
41
  }
42
- async handleEpochCommiteeUpdate() {
42
+ async handleEpochCommitteeUpdate() {
43
43
  try {
44
44
  const { committee, epoch } = await this.epochCache.getCommittee('now');
45
45
  if (epoch !== this.lastEpoch) {
@@ -157,7 +157,9 @@ import { ValidatorMetrics } from './metrics.js';
157
157
  const txs = (await Promise.all(txHashes.map((tx)=>this.p2pClient.getTxByHash(tx)))).filter((tx)=>tx !== undefined);
158
158
  // If we cannot request all of the transactions, then we should fail
159
159
  if (txs.length !== txHashes.length) {
160
- throw new TransactionsNotAvailableError(txHashes);
160
+ const foundTxHashes = await Promise.all(txs.map(async (tx)=>await tx.getTxHash()));
161
+ const missingTxHashes = txHashes.filter((txHash)=>!foundTxHashes.includes(txHash));
162
+ throw new TransactionsNotAvailableError(missingTxHashes);
161
163
  }
162
164
  // Assertion: This check will fail if re-execution is not enabled
163
165
  if (this.blockBuilder === undefined) {
@@ -193,16 +195,13 @@ import { ValidatorMetrics } from './metrics.js';
193
195
  * @param proposal - The proposal to attest to
194
196
  */ async ensureTransactionsAreAvailable(proposal) {
195
197
  const txHashes = proposal.payload.txHashes;
196
- const transactionStatuses = await Promise.all(txHashes.map((txHash)=>this.p2pClient.getTxStatus(txHash)));
197
- const missingTxs = txHashes.filter((_, index)=>![
198
- 'pending',
199
- 'mined'
200
- ].includes(transactionStatuses[index] ?? ''));
198
+ const availability = await this.p2pClient.hasTxsInPool(txHashes);
199
+ const missingTxs = txHashes.filter((_, index)=>!availability[index]);
201
200
  if (missingTxs.length === 0) {
202
201
  return; // All transactions are available
203
202
  }
204
203
  this.log.verbose(`Missing ${missingTxs.length} transactions in the tx pool, requesting from the network`);
205
- const requestedTxs = await this.p2pClient.requestTxs(missingTxs);
204
+ const requestedTxs = await this.p2pClient.requestTxsByHash(missingTxs);
206
205
  if (requestedTxs.some((tx)=>tx === undefined)) {
207
206
  throw new TransactionsNotAvailableError(missingTxs);
208
207
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/validator-client",
3
- "version": "0.86.0-nightly.20250430",
3
+ "version": "0.86.0-nightly.20250502",
4
4
  "main": "dest/index.js",
5
5
  "type": "module",
6
6
  "exports": {
@@ -60,12 +60,12 @@
60
60
  ]
61
61
  },
62
62
  "dependencies": {
63
- "@aztec/epoch-cache": "0.86.0-nightly.20250430",
64
- "@aztec/ethereum": "0.86.0-nightly.20250430",
65
- "@aztec/foundation": "0.86.0-nightly.20250430",
66
- "@aztec/p2p": "0.86.0-nightly.20250430",
67
- "@aztec/stdlib": "0.86.0-nightly.20250430",
68
- "@aztec/telemetry-client": "0.86.0-nightly.20250430",
63
+ "@aztec/epoch-cache": "0.86.0-nightly.20250502",
64
+ "@aztec/ethereum": "0.86.0-nightly.20250502",
65
+ "@aztec/foundation": "0.86.0-nightly.20250502",
66
+ "@aztec/p2p": "0.86.0-nightly.20250502",
67
+ "@aztec/stdlib": "0.86.0-nightly.20250502",
68
+ "@aztec/telemetry-client": "0.86.0-nightly.20250502",
69
69
  "koa": "^2.16.1",
70
70
  "koa-router": "^12.0.0",
71
71
  "tslib": "^2.4.0",
package/src/validator.ts CHANGED
@@ -101,14 +101,14 @@ export class ValidatorClient extends WithTracer implements Validator {
101
101
 
102
102
  this.blockProposalValidator = new BlockProposalValidator(epochCache);
103
103
 
104
- // Refresh epoch cache every second to trigger alert if participation in commitee changes
104
+ // Refresh epoch cache every second to trigger alert if participation in committee changes
105
105
  this.myAddress = this.keyStore.getAddress();
106
- this.epochCacheUpdateLoop = new RunningPromise(this.handleEpochCommiteeUpdate.bind(this), log, 1000);
106
+ this.epochCacheUpdateLoop = new RunningPromise(this.handleEpochCommitteeUpdate.bind(this), log, 1000);
107
107
 
108
108
  this.log.verbose(`Initialized validator with address ${this.keyStore.getAddress().toString()}`);
109
109
  }
110
110
 
111
- private async handleEpochCommiteeUpdate() {
111
+ private async handleEpochCommitteeUpdate() {
112
112
  try {
113
113
  const { committee, epoch } = await this.epochCache.getCommittee('now');
114
114
  if (epoch !== this.lastEpoch) {
@@ -256,7 +256,9 @@ export class ValidatorClient extends WithTracer implements Validator {
256
256
 
257
257
  // If we cannot request all of the transactions, then we should fail
258
258
  if (txs.length !== txHashes.length) {
259
- throw new TransactionsNotAvailableError(txHashes);
259
+ const foundTxHashes = await Promise.all(txs.map(async tx => await tx.getTxHash()));
260
+ const missingTxHashes = txHashes.filter(txHash => !foundTxHashes.includes(txHash));
261
+ throw new TransactionsNotAvailableError(missingTxHashes);
260
262
  }
261
263
 
262
264
  // Assertion: This check will fail if re-execution is not enabled
@@ -300,9 +302,8 @@ export class ValidatorClient extends WithTracer implements Validator {
300
302
  */
301
303
  async ensureTransactionsAreAvailable(proposal: BlockProposal) {
302
304
  const txHashes: TxHash[] = proposal.payload.txHashes;
303
- const transactionStatuses = await Promise.all(txHashes.map(txHash => this.p2pClient.getTxStatus(txHash)));
304
-
305
- const missingTxs = txHashes.filter((_, index) => !['pending', 'mined'].includes(transactionStatuses[index] ?? ''));
305
+ const availability = await this.p2pClient.hasTxsInPool(txHashes);
306
+ const missingTxs = txHashes.filter((_, index) => !availability[index]);
306
307
 
307
308
  if (missingTxs.length === 0) {
308
309
  return; // All transactions are available
@@ -310,7 +311,7 @@ export class ValidatorClient extends WithTracer implements Validator {
310
311
 
311
312
  this.log.verbose(`Missing ${missingTxs.length} transactions in the tx pool, requesting from the network`);
312
313
 
313
- const requestedTxs = await this.p2pClient.requestTxs(missingTxs);
314
+ const requestedTxs = await this.p2pClient.requestTxsByHash(missingTxs);
314
315
  if (requestedTxs.some(tx => tx === undefined)) {
315
316
  throw new TransactionsNotAvailableError(missingTxs);
316
317
  }