@aztec/pxe 0.16.9 → 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.
- package/dest/config/index.d.ts +1 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/database/kv_pxe_database.d.ts +5 -2
- package/dest/database/kv_pxe_database.d.ts.map +1 -1
- package/dest/database/kv_pxe_database.js +24 -12
- package/dest/database/memory_db.d.ts +7 -2
- package/dest/database/memory_db.d.ts.map +1 -1
- package/dest/database/memory_db.js +16 -4
- package/dest/database/pxe_database.d.ts +21 -1
- package/dest/database/pxe_database.d.ts.map +1 -1
- package/dest/database/pxe_database_test_suite.js +5 -5
- package/dest/kernel_prover/kernel_prover.d.ts.map +1 -1
- package/dest/kernel_prover/kernel_prover.js +9 -9
- package/dest/kernel_prover/proof_creator.d.ts.map +1 -1
- package/dest/kernel_prover/proof_creator.js +2 -2
- package/dest/note_processor/note_processor.d.ts +2 -3
- package/dest/note_processor/note_processor.d.ts.map +1 -1
- package/dest/note_processor/note_processor.js +11 -10
- package/dest/pxe_service/pxe_service.d.ts +5 -2
- package/dest/pxe_service/pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/pxe_service.js +55 -20
- package/dest/simulator_oracle/index.d.ts +3 -2
- package/dest/simulator_oracle/index.d.ts.map +1 -1
- package/dest/simulator_oracle/index.js +11 -6
- package/dest/synchronizer/synchronizer.d.ts +20 -6
- package/dest/synchronizer/synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/synchronizer.js +73 -46
- package/package.json +10 -12
|
@@ -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
|
|
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.
|
|
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,
|
|
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(
|
|
32
|
+
start(limit?: number, retryInterval?: number): void;
|
|
33
33
|
protected initialSync(): Promise<void>;
|
|
34
|
-
|
|
35
|
-
|
|
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;
|
|
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 =
|
|
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
|
-
|
|
34
|
+
start(limit = 1, retryInterval = 1000) {
|
|
36
35
|
if (this.running) {
|
|
37
36
|
return;
|
|
38
37
|
}
|
|
39
38
|
this.running = true;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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
|
-
|
|
67
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
121
|
+
return true;
|
|
109
122
|
}
|
|
110
123
|
catch (err) {
|
|
111
124
|
this.log.error(`Error in synchronizer work`, err);
|
|
112
|
-
|
|
125
|
+
return false;
|
|
113
126
|
}
|
|
114
127
|
}
|
|
115
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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 ===
|
|
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
|
-
|
|
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.
|
|
176
|
-
block.
|
|
177
|
-
await this.db.
|
|
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.
|
|
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:
|
|
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.
|
|
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.
|
|
37
|
-
"@aztec/circuits.js": "0.
|
|
38
|
-
"@aztec/ethereum": "0.
|
|
39
|
-
"@aztec/foundation": "0.
|
|
40
|
-
"@aztec/key-store": "0.
|
|
41
|
-
"@aztec/kv-store": "0.
|
|
42
|
-
"@aztec/noir-compiler": "0.
|
|
43
|
-
"@aztec/noir-protocol-circuits": "0.
|
|
44
|
-
"@aztec/types": "0.
|
|
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",
|