@aztec/pxe 0.16.8 → 0.17.0

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.
@@ -1,5 +1,5 @@
1
1
  import { createDebugLogger } from '@aztec/foundation/log';
2
- import { MerkleTreeId } from '@aztec/types';
2
+ import { MerkleTreeId, } from '@aztec/types';
3
3
  /**
4
4
  * A data oracle that provides information needed for simulating a transaction.
5
5
  */
@@ -76,7 +76,7 @@ export class SimulatorOracle {
76
76
  *
77
77
  * @param msgKey - The key of the message to be retrieved
78
78
  * @returns A promise that resolves to the message data, a sibling path and the
79
- * index of the message in the l1ToL2MessagesTree
79
+ * index of the message in the l1ToL2MessageTree
80
80
  */
81
81
  async getL1ToL2Message(msgKey) {
82
82
  const messageAndIndex = await this.stateInfoProvider.getL1ToL2MessageAndIndex(msgKey);
@@ -106,14 +106,16 @@ export class SimulatorOracle {
106
106
  async getSiblingPath(blockNumber, treeId, leafIndex) {
107
107
  // @todo Doing a nasty workaround here because of https://github.com/AztecProtocol/aztec-packages/issues/3414
108
108
  switch (treeId) {
109
+ case MerkleTreeId.CONTRACT_TREE:
110
+ return (await this.stateInfoProvider.getContractSiblingPath(blockNumber, leafIndex)).toFieldArray();
109
111
  case MerkleTreeId.NULLIFIER_TREE:
110
- return (await this.stateInfoProvider.getNullifierTreeSiblingPath(blockNumber, leafIndex)).toFieldArray();
112
+ return (await this.stateInfoProvider.getNullifierSiblingPath(blockNumber, leafIndex)).toFieldArray();
111
113
  case MerkleTreeId.NOTE_HASH_TREE:
112
114
  return (await this.stateInfoProvider.getNoteHashSiblingPath(blockNumber, leafIndex)).toFieldArray();
115
+ case MerkleTreeId.PUBLIC_DATA_TREE:
116
+ return (await this.stateInfoProvider.getPublicDataSiblingPath(blockNumber, leafIndex)).toFieldArray();
113
117
  case MerkleTreeId.ARCHIVE:
114
118
  return (await this.stateInfoProvider.getArchiveSiblingPath(blockNumber, leafIndex)).toFieldArray();
115
- case MerkleTreeId.PUBLIC_DATA_TREE:
116
- return (await this.stateInfoProvider.getPublicDataTreeSiblingPath(blockNumber, leafIndex)).toFieldArray();
117
119
  default:
118
120
  throw new Error('Not implemented');
119
121
  }
@@ -127,6 +129,9 @@ export class SimulatorOracle {
127
129
  async getBlock(blockNumber) {
128
130
  return await this.stateInfoProvider.getBlock(blockNumber);
129
131
  }
132
+ async getPublicDataTreeWitness(blockNumber, leafSlot) {
133
+ return await this.stateInfoProvider.getPublicDataTreeWitness(blockNumber, leafSlot);
134
+ }
130
135
  /**
131
136
  * Retrieve the databases view of the Block Header object.
132
137
  * This structure is fed into the circuits simulator and is used to prove against certain historical roots.
@@ -144,4 +149,4 @@ export class SimulatorOracle {
144
149
  return await this.stateInfoProvider.getBlockNumber();
145
150
  }
146
151
  }
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2ltdWxhdG9yX29yYWNsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQXFCLFlBQVksRUFBaUQsTUFBTSxjQUFjLENBQUM7QUFLOUc7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNVLGtCQUFzQyxFQUN0QyxFQUFlLEVBQ2YsUUFBa0IsRUFDbEIsaUJBQW9DLEVBQ3BDLE1BQU0saUJBQWlCLENBQUMsNEJBQTRCLENBQUM7UUFKckQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLFFBQUcsR0FBSCxHQUFHLENBQWtEO0lBQzVELENBQUM7SUFFSixZQUFZLENBQUMsZ0JBQThCLEVBQUUsTUFBaUI7UUFDNUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBcUI7UUFDNUMsTUFBTSxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FDYix3Q0FBd0MsT0FBTyxDQUFDLFFBQVEsRUFBRSxvTUFBb00sQ0FDL1AsQ0FBQztTQUNIO1FBQ0QsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBZTtRQUNsQyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsY0FB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
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2ltdWxhdG9yX29yYWNsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBR0wsWUFBWSxHQUliLE1BQU0sY0FBYyxDQUFDO0FBS3RCOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDVSxrQkFBc0MsRUFDdEMsRUFBZSxFQUNmLFFBQWtCLEVBQ2xCLGlCQUFvQyxFQUNwQyxNQUFNLGlCQUFpQixDQUFDLDRCQUE0QixDQUFDO1FBSnJELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxRQUFHLEdBQUgsR0FBRyxDQUFrRDtJQUM1RCxDQUFDO0lBRUosWUFBWSxDQUFDLGdCQUE4QixFQUFFLE1BQWlCO1FBQzVELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE9BQXFCO1FBQzVDLE1BQU0sZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQ2Isd0NBQXdDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsb01BQW9NLENBQy9QLENBQUM7U0FDSDtRQUNELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQWU7UUFDbEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMs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
@@ -1,4 +1,5 @@
1
1
  import { AztecAddress, PublicKey } from '@aztec/circuits.js';
2
+ import { SerialQueue } from '@aztec/foundation/fifo';
2
3
  import { AztecNode, KeyStore } from '@aztec/types';
3
4
  import { PxeDatabase } from '../database/index.js';
4
5
  /**
@@ -11,28 +12,40 @@ import { PxeDatabase } from '../database/index.js';
11
12
  export declare class Synchronizer {
12
13
  private node;
13
14
  private db;
15
+ private jobQueue;
14
16
  private runningPromise?;
15
17
  private noteProcessors;
16
18
  private interruptibleSleep;
17
19
  private running;
18
20
  private initialSyncBlockNumber;
19
- private synchedToBlock;
20
21
  private log;
21
22
  private noteProcessorsToCatchUp;
22
- constructor(node: AztecNode, db: PxeDatabase, logSuffix?: string);
23
+ constructor(node: AztecNode, db: PxeDatabase, jobQueue: SerialQueue, logSuffix?: string);
23
24
  /**
24
25
  * Starts the synchronization process by fetching encrypted logs and blocks from a specified position.
25
26
  * Continuously processes the fetched data for all note processors until stopped. If there is no data
26
27
  * available, it retries after a specified interval.
27
28
  *
28
- * @param from - The starting position for fetching encrypted logs and blocks.
29
29
  * @param limit - The maximum number of encrypted, unencrypted logs and blocks to fetch in each iteration.
30
30
  * @param retryInterval - The time interval (in ms) to wait before retrying if no data is available.
31
31
  */
32
- start(from?: number, limit?: number, retryInterval?: number): Promise<void>;
32
+ start(limit?: number, retryInterval?: number): void;
33
33
  protected initialSync(): Promise<void>;
34
- protected work(limit?: number, retryInterval?: number): Promise<void>;
35
- protected workNoteProcessorCatchUp(limit?: number, retryInterval?: number): Promise<void>;
34
+ /**
35
+ * Fetches encrypted logs and blocks from the Aztec node and processes them for all note processors.
36
+ *
37
+ * @param limit - The maximum number of encrypted, unencrypted logs and blocks to fetch in each iteration.
38
+ * @returns true if there could be more work, false if we're caught up or there was an error.
39
+ */
40
+ protected work(limit?: number): Promise<boolean>;
41
+ /**
42
+ * Catch up a note processor that is lagging behind the main sync,
43
+ * e.g. because we just added a new account.
44
+ *
45
+ * @param limit - the maximum number of encrypted, unencrypted logs and blocks to fetch in each iteration.
46
+ * @returns true if there could be more work, false if we're caught up or there was an error.
47
+ */
48
+ protected workNoteProcessorCatchUp(limit?: number): Promise<boolean>;
36
49
  private setBlockDataFromBlock;
37
50
  /**
38
51
  * Stops the synchronizer gracefully, interrupting any ongoing sleep and waiting for the current
@@ -62,6 +75,7 @@ export declare class Synchronizer {
62
75
  * @throws If checking a sync status of account which is not registered.
63
76
  */
64
77
  isAccountStateSynchronized(account: AztecAddress): Promise<boolean>;
78
+ private getSynchedBlockNumber;
65
79
  /**
66
80
  * Checks whether all the blocks were processed (tree roots updated, txs updated with block info, etc.).
67
81
  * @returns True if there are no outstanding blocks to be synched.
@@ -1 +1 @@
1
- {"version":3,"file":"synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAmB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI9E,OAAO,EAAE,SAAS,EAAwB,QAAQ,EAA0C,MAAM,cAAc,CAAC;AAGjH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD;;;;;;GAMG;AACH,qBAAa,YAAY;IAUX,OAAO,CAAC,IAAI;IAAa,OAAO,CAAC,EAAE;IAT/C,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,uBAAuB,CAAuB;gBAElC,IAAI,EAAE,SAAS,EAAU,EAAE,EAAE,WAAW,EAAE,SAAS,SAAK;IAI5E;;;;;;;;OAQG;IACU,KAAK,CAAC,IAAI,SAAuB,EAAE,KAAK,SAAI,EAAE,aAAa,SAAO;cA6B/D,WAAW;cAOX,IAAI,CAAC,KAAK,SAAI,EAAE,aAAa,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC;cA0DpD,wBAAwB,CAAC,KAAK,SAAI,EAAE,aAAa,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YA8D1E,qBAAqB;IAqBnC;;;;;;OAMG;IACU,IAAI;IAOjB;;;;;;;;;OASG;IACI,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM;IAUjF;;;;;;;OAOG;IACU,0BAA0B,CAAC,OAAO,EAAE,YAAY;IAe7D;;;;;OAKG;IACU,yBAAyB;IAKtC;;;OAGG;IACI,aAAa;;;;;;CAMrB"}
1
+ {"version":3,"file":"synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAmB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EAAE,SAAS,EAAwB,QAAQ,EAA0C,MAAM,cAAc,CAAC;AAGjH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD;;;;;;GAMG;AACH,qBAAa,YAAY;IASX,OAAO,CAAC,IAAI;IAAa,OAAO,CAAC,EAAE;IAAe,OAAO,CAAC,QAAQ;IAR9E,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,sBAAsB,CAA4B;IAC1D,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,uBAAuB,CAAuB;gBAElC,IAAI,EAAE,SAAS,EAAU,EAAE,EAAE,WAAW,EAAU,QAAQ,EAAE,WAAW,EAAE,SAAS,SAAK;IAI3G;;;;;;;OAOG;IACI,KAAK,CAAC,KAAK,SAAI,EAAE,aAAa,SAAO;cAoC5B,WAAW;IAU3B;;;;;OAKG;cACa,IAAI,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAsDjD;;;;;;OAMG;cACa,wBAAwB,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC,OAAO,CAAC;YAkEvD,qBAAqB;IAqBnC;;;;;;OAMG;IACU,IAAI;IAOjB;;;;;;;;;OASG;IACI,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM;IAUjF;;;;;;;OAOG;IACU,0BAA0B,CAAC,OAAO,EAAE,YAAY;IAe7D,OAAO,CAAC,qBAAqB;IAI7B;;;;;OAKG;IACU,yBAAyB;IAKtC;;;OAGG;IACI,aAAa;;;;;;CAOrB"}
@@ -12,14 +12,14 @@ import { NoteProcessor } from '../note_processor/index.js';
12
12
  * in sync with the blockchain while handling retries and errors gracefully.
13
13
  */
14
14
  export class Synchronizer {
15
- constructor(node, db, logSuffix = '') {
15
+ constructor(node, db, jobQueue, logSuffix = '') {
16
16
  this.node = node;
17
17
  this.db = db;
18
+ this.jobQueue = jobQueue;
18
19
  this.noteProcessors = [];
19
20
  this.interruptibleSleep = new InterruptibleSleep();
20
21
  this.running = false;
21
- this.initialSyncBlockNumber = 0;
22
- this.synchedToBlock = 0;
22
+ this.initialSyncBlockNumber = INITIAL_L2_BLOCK_NUM - 1;
23
23
  this.noteProcessorsToCatchUp = [];
24
24
  this.log = createDebugLogger(logSuffix ? `aztec:pxe_synchronizer_${logSuffix}` : 'aztec:pxe_synchronizer');
25
25
  }
@@ -28,59 +28,72 @@ export class Synchronizer {
28
28
  * Continuously processes the fetched data for all note processors until stopped. If there is no data
29
29
  * available, it retries after a specified interval.
30
30
  *
31
- * @param from - The starting position for fetching encrypted logs and blocks.
32
31
  * @param limit - The maximum number of encrypted, unencrypted logs and blocks to fetch in each iteration.
33
32
  * @param retryInterval - The time interval (in ms) to wait before retrying if no data is available.
34
33
  */
35
- async start(from = INITIAL_L2_BLOCK_NUM, limit = 1, retryInterval = 1000) {
34
+ start(limit = 1, retryInterval = 1000) {
36
35
  if (this.running) {
37
36
  return;
38
37
  }
39
38
  this.running = true;
40
- if (from < this.synchedToBlock + 1) {
41
- throw new Error(`From block ${from} is smaller than the currently synched block ${this.synchedToBlock}`);
42
- }
43
- this.synchedToBlock = from - 1;
44
- await this.initialSync();
39
+ this.jobQueue
40
+ .put(() => this.initialSync())
41
+ .catch(err => {
42
+ this.log.error(`Error in synchronizer initial sync`, err);
43
+ this.running = false;
44
+ throw err;
45
+ });
45
46
  const run = async () => {
46
47
  while (this.running) {
47
- if (this.noteProcessorsToCatchUp.length > 0) {
48
- // There is a note processor that needs to catch up. We hijack the main loop to catch up the note processor.
49
- await this.workNoteProcessorCatchUp(limit, retryInterval);
50
- }
51
- else {
52
- // No note processor needs to catch up. We continue with the normal flow.
53
- await this.work(limit, retryInterval);
54
- }
48
+ await this.jobQueue.put(async () => {
49
+ let moreWork = true;
50
+ while (moreWork && this.running) {
51
+ if (this.noteProcessorsToCatchUp.length > 0) {
52
+ // There is a note processor that needs to catch up. We hijack the main loop to catch up the note processor.
53
+ moreWork = await this.workNoteProcessorCatchUp(limit);
54
+ }
55
+ else {
56
+ // No note processor needs to catch up. We continue with the normal flow.
57
+ moreWork = await this.work(limit);
58
+ }
59
+ }
60
+ });
61
+ await this.interruptibleSleep.sleep(retryInterval);
55
62
  }
56
63
  };
57
64
  this.runningPromise = run();
58
65
  this.log('Started');
59
66
  }
60
67
  async initialSync() {
61
- const [blockNumber, blockHeader] = await Promise.all([this.node.getBlockNumber(), this.node.getBlockHeader()]);
62
- this.initialSyncBlockNumber = blockNumber;
63
- this.synchedToBlock = this.initialSyncBlockNumber;
64
- await this.db.setBlockHeader(blockHeader);
68
+ // fast forward to the latest block
69
+ const [latestBlockNumber, latestBlockHeader] = await Promise.all([
70
+ this.node.getBlockNumber(),
71
+ this.node.getBlockHeader(),
72
+ ]);
73
+ this.initialSyncBlockNumber = latestBlockNumber;
74
+ await this.db.setBlockData(latestBlockNumber, latestBlockHeader);
65
75
  }
66
- async work(limit = 1, retryInterval = 1000) {
67
- const from = this.synchedToBlock + 1;
76
+ /**
77
+ * Fetches encrypted logs and blocks from the Aztec node and processes them for all note processors.
78
+ *
79
+ * @param limit - The maximum number of encrypted, unencrypted logs and blocks to fetch in each iteration.
80
+ * @returns true if there could be more work, false if we're caught up or there was an error.
81
+ */
82
+ async work(limit = 1) {
83
+ const from = this.getSynchedBlockNumber() + 1;
68
84
  try {
69
85
  let encryptedLogs = await this.node.getLogs(from, limit, LogType.ENCRYPTED);
70
86
  if (!encryptedLogs.length) {
71
- await this.interruptibleSleep.sleep(retryInterval);
72
- return;
87
+ return false;
73
88
  }
74
89
  let unencryptedLogs = await this.node.getLogs(from, limit, LogType.UNENCRYPTED);
75
90
  if (!unencryptedLogs.length) {
76
- await this.interruptibleSleep.sleep(retryInterval);
77
- return;
91
+ return false;
78
92
  }
79
93
  // Note: If less than `limit` encrypted logs is returned, then we fetch only that number of blocks.
80
94
  const blocks = await this.node.getBlocks(from, encryptedLogs.length);
81
95
  if (!blocks.length) {
82
- await this.interruptibleSleep.sleep(retryInterval);
83
- return;
96
+ return false;
84
97
  }
85
98
  if (blocks.length !== encryptedLogs.length) {
86
99
  // "Trim" the encrypted logs to match the number of blocks.
@@ -95,8 +108,8 @@ export class Synchronizer {
95
108
  block.attachLogs(encryptedLogs[i], LogType.ENCRYPTED);
96
109
  block.attachLogs(unencryptedLogs[i], LogType.UNENCRYPTED);
97
110
  });
98
- // Wrap blocks in block contexts.
99
- const blockContexts = blocks.map(block => new L2BlockContext(block));
111
+ // Wrap blocks in block contexts & only keep those that match our query
112
+ const blockContexts = blocks.filter(block => block.number >= from).map(block => new L2BlockContext(block));
100
113
  // Update latest tree roots from the most recent block
101
114
  const latestBlock = blockContexts[blockContexts.length - 1];
102
115
  await this.setBlockDataFromBlock(latestBlock);
@@ -105,24 +118,33 @@ export class Synchronizer {
105
118
  for (const noteProcessor of this.noteProcessors) {
106
119
  await noteProcessor.process(blockContexts, encryptedLogs);
107
120
  }
108
- this.synchedToBlock = latestBlock.block.number;
121
+ return true;
109
122
  }
110
123
  catch (err) {
111
124
  this.log.error(`Error in synchronizer work`, err);
112
- await this.interruptibleSleep.sleep(retryInterval);
125
+ return false;
113
126
  }
114
127
  }
115
- async workNoteProcessorCatchUp(limit = 1, retryInterval = 1000) {
128
+ /**
129
+ * Catch up a note processor that is lagging behind the main sync,
130
+ * e.g. because we just added a new account.
131
+ *
132
+ * @param limit - the maximum number of encrypted, unencrypted logs and blocks to fetch in each iteration.
133
+ * @returns true if there could be more work, false if we're caught up or there was an error.
134
+ */
135
+ async workNoteProcessorCatchUp(limit = 1) {
116
136
  const noteProcessor = this.noteProcessorsToCatchUp[0];
117
- if (noteProcessor.status.syncedToBlock === this.synchedToBlock) {
137
+ const toBlockNumber = this.getSynchedBlockNumber();
138
+ if (noteProcessor.status.syncedToBlock >= toBlockNumber) {
118
139
  // Note processor already synched, nothing to do
119
140
  this.noteProcessorsToCatchUp.shift();
120
141
  this.noteProcessors.push(noteProcessor);
121
- return;
142
+ // could be more work if there are more note processors to catch up
143
+ return true;
122
144
  }
123
145
  const from = noteProcessor.status.syncedToBlock + 1;
124
146
  // Ensuring that the note processor does not sync further than the main sync.
125
- limit = Math.min(limit, this.synchedToBlock - from + 1);
147
+ limit = Math.min(limit, toBlockNumber - from + 1);
126
148
  if (limit < 1) {
127
149
  throw new Error(`Unexpected limit ${limit} for note processor catch up`);
128
150
  }
@@ -148,7 +170,7 @@ export class Synchronizer {
148
170
  const logCount = L2BlockL2Logs.getTotalLogCount(encryptedLogs);
149
171
  this.log(`Forwarding ${logCount} encrypted logs and blocks to note processor in catch up mode`);
150
172
  await noteProcessor.process(blockContexts, encryptedLogs);
151
- if (noteProcessor.status.syncedToBlock === this.synchedToBlock) {
173
+ if (noteProcessor.status.syncedToBlock === toBlockNumber) {
152
174
  // Note processor caught up, move it to `noteProcessors` from `noteProcessorsToCatchUp`.
153
175
  this.log(`Note processor for ${noteProcessor.publicKey.toString()} has caught up`, {
154
176
  eventName: 'note-processor-caught-up',
@@ -160,10 +182,11 @@ export class Synchronizer {
160
182
  this.noteProcessorsToCatchUp.shift();
161
183
  this.noteProcessors.push(noteProcessor);
162
184
  }
185
+ return true;
163
186
  }
164
187
  catch (err) {
165
188
  this.log.error(`Error in synchronizer workNoteProcessorCatchUp`, err);
166
- await this.interruptibleSleep.sleep(retryInterval);
189
+ return false;
167
190
  }
168
191
  }
169
192
  async setBlockDataFromBlock(latestBlock) {
@@ -172,9 +195,9 @@ export class Synchronizer {
172
195
  return;
173
196
  }
174
197
  const globalsHash = computeGlobalsHash(latestBlock.block.globalVariables);
175
- const blockHeader = new BlockHeader(block.endNoteHashTreeSnapshot.root, block.endNullifierTreeSnapshot.root, block.endContractTreeSnapshot.root, block.endL1ToL2MessagesTreeSnapshot.root, block.endArchiveSnapshot.root, Fr.ZERO, // todo: private kernel vk tree root
176
- block.endPublicDataTreeRoot, globalsHash);
177
- await this.db.setBlockHeader(blockHeader);
198
+ const blockHeader = new BlockHeader(block.endNoteHashTreeSnapshot.root, block.endNullifierTreeSnapshot.root, block.endContractTreeSnapshot.root, block.endL1ToL2MessageTreeSnapshot.root, block.endArchiveSnapshot.root, Fr.ZERO, // todo: private kernel vk tree root
199
+ block.endPublicDataTreeSnapshot.root, globalsHash);
200
+ await this.db.setBlockData(block.number, blockHeader);
178
201
  }
179
202
  /**
180
203
  * Stops the synchronizer gracefully, interrupting any ongoing sleep and waiting for the current
@@ -227,6 +250,9 @@ export class Synchronizer {
227
250
  }
228
251
  return await processor.isSynchronized();
229
252
  }
253
+ getSynchedBlockNumber() {
254
+ return this.db.getBlockNumber() ?? this.initialSyncBlockNumber;
255
+ }
230
256
  /**
231
257
  * Checks whether all the blocks were processed (tree roots updated, txs updated with block info, etc.).
232
258
  * @returns True if there are no outstanding blocks to be synched.
@@ -235,17 +261,18 @@ export class Synchronizer {
235
261
  */
236
262
  async isGlobalStateSynchronized() {
237
263
  const latest = await this.node.getBlockNumber();
238
- return latest <= this.synchedToBlock;
264
+ return latest <= this.getSynchedBlockNumber();
239
265
  }
240
266
  /**
241
267
  * Returns the latest block that has been synchronized by the synchronizer and each account.
242
268
  * @returns The latest block synchronized for blocks, and the latest block synched for notes for each public key being tracked.
243
269
  */
244
270
  getSyncStatus() {
271
+ const lastBlockNumber = this.getSynchedBlockNumber();
245
272
  return {
246
- blocks: this.synchedToBlock,
273
+ blocks: lastBlockNumber,
247
274
  notes: Object.fromEntries(this.noteProcessors.map(n => [n.publicKey.toString(), n.status.syncedToBlock])),
248
275
  };
249
276
  }
250
277
  }
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luY2hyb25pemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N5bmNocm9uaXplci9zeW5jaHJvbml6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixXQUFXLEVBQUUsRUFBRSxFQUFhLE1BQU0sb0JBQW9CLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFlLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFhLG9CQUFvQixFQUFZLGNBQWMsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSWpILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUzRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQVV2QixZQUFvQixJQUFlLEVBQVUsRUFBZSxFQUFFLFNBQVMsR0FBRyxFQUFFO1FBQXhELFNBQUksR0FBSixJQUFJLENBQVc7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBUnBELG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztRQUNyQyx1QkFBa0IsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDOUMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQiwyQkFBc0IsR0FBRyxDQUFDLENBQUM7UUFDM0IsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFFbkIsNEJBQXVCLEdBQW9CLEVBQUUsQ0FBQztRQUdwRCxJQUFJLENBQUMsR0FBRyxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEtBQUssQ0FBQyxLQUFL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
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luY2hyb25pemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N5bmNocm9uaXplci9zeW5jaHJvbml6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixXQUFXLEVBQUUsRUFBRSxFQUFhLE1BQU0sb0JBQW9CLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0QsT0FBTyxFQUFlLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFhLG9CQUFvQixFQUFZLGNBQWMsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSWpILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUzRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQVN2QixZQUFvQixJQUFlLEVBQVUsRUFBZSxFQUFVLFFBQXFCLEVBQUUsU0FBUyxHQUFHLEVBQUU7UUFBdkYsU0FBSSxHQUFKLElBQUksQ0FBVztRQUFVLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBUG5GLG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztRQUNyQyx1QkFBa0IsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDOUMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQiwyQkFBc0IsR0FBRyxvQkFBb0IsR0FBRyxDQUFDLENBQUM7UUFFbEQsNEJBQXVCLEdBQW9CLEVBQUUsQ0FBQztRQUdwRCxJQUFJLENBQUMsR0FBRyxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFRDs7Ozs7OztPQU9H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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/pxe",
3
- "version": "0.16.8",
3
+ "version": "0.17.0",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "bin": "./dest/bin/index.js",
@@ -33,19 +33,18 @@
33
33
  "workerThreads": true
34
34
  },
35
35
  "dependencies": {
36
- "@aztec/acir-simulator": "0.16.8",
37
- "@aztec/circuits.js": "0.16.8",
38
- "@aztec/ethereum": "0.16.8",
39
- "@aztec/foundation": "0.16.8",
40
- "@aztec/key-store": "0.16.8",
41
- "@aztec/kv-store": "0.16.8",
42
- "@aztec/noir-compiler": "0.16.8",
43
- "@aztec/noir-protocol-circuits": "0.16.8",
44
- "@aztec/types": "0.16.8",
36
+ "@aztec/acir-simulator": "0.17.0",
37
+ "@aztec/circuits.js": "0.17.0",
38
+ "@aztec/ethereum": "0.17.0",
39
+ "@aztec/foundation": "0.17.0",
40
+ "@aztec/key-store": "0.17.0",
41
+ "@aztec/kv-store": "0.17.0",
42
+ "@aztec/noir-compiler": "0.17.0",
43
+ "@aztec/noir-protocol-circuits": "0.17.0",
44
+ "@aztec/types": "0.17.0",
45
45
  "koa": "^2.14.2",
46
46
  "koa-router": "^12.0.0",
47
47
  "lodash.omit": "^4.5.0",
48
- "lodash.partition": "^4.6.0",
49
48
  "lodash.times": "^4.3.2",
50
49
  "sha3": "^2.1.4",
51
50
  "tslib": "^2.4.0",
@@ -55,7 +54,6 @@
55
54
  "@jest/globals": "^29.5.0",
56
55
  "@types/jest": "^29.5.0",
57
56
  "@types/lodash.omit": "^4.5.7",
58
- "@types/lodash.partition": "^4.6.0",
59
57
  "@types/lodash.times": "^4.3.7",
60
58
  "@types/node": "^18.7.23",
61
59
  "jest": "^29.5.0",