@aztec/pxe 0.42.0 → 0.43.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/database/deferred_note_dao.d.ts +2 -2
- package/dest/database/deferred_note_dao.d.ts.map +1 -1
- package/dest/database/deferred_note_dao.js +2 -2
- package/dest/database/incoming_note_dao.d.ts +73 -0
- package/dest/database/incoming_note_dao.d.ts.map +1 -0
- package/dest/database/incoming_note_dao.js +92 -0
- package/dest/database/kv_pxe_database.d.ts +10 -7
- package/dest/database/kv_pxe_database.d.ts.map +1 -1
- package/dest/database/kv_pxe_database.js +149 -78
- package/dest/database/{note_dao.d.ts → outgoing_note_dao.d.ts} +7 -12
- package/dest/database/outgoing_note_dao.d.ts.map +1 -0
- package/dest/database/outgoing_note_dao.js +83 -0
- package/dest/database/pxe_database.d.ts +21 -9
- package/dest/database/pxe_database.d.ts.map +1 -1
- package/dest/database/pxe_database_test_suite.d.ts.map +1 -1
- package/dest/database/pxe_database_test_suite.js +71 -24
- package/dest/kernel_oracle/index.d.ts +1 -1
- package/dest/note_processor/note_processor.d.ts +23 -20
- package/dest/note_processor/note_processor.d.ts.map +1 -1
- package/dest/note_processor/note_processor.js +123 -76
- package/dest/note_processor/produce_note_dao.d.ts +13 -4
- package/dest/note_processor/produce_note_dao.d.ts.map +1 -1
- package/dest/note_processor/produce_note_dao.js +88 -31
- package/dest/pxe_service/create_pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/create_pxe_service.js +3 -1
- package/dest/pxe_service/pxe_service.d.ts +9 -4
- package/dest/pxe_service/pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/pxe_service.js +106 -28
- package/dest/simulator_oracle/index.js +2 -2
- package/dest/synchronizer/synchronizer.d.ts +2 -2
- package/dest/synchronizer/synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/synchronizer.js +37 -36
- package/package.json +14 -14
- package/src/database/deferred_note_dao.ts +1 -1
- package/src/database/{note_dao.ts → incoming_note_dao.ts} +10 -7
- package/src/database/kv_pxe_database.ts +127 -29
- package/src/database/outgoing_note_dao.ts +90 -0
- package/src/database/pxe_database.ts +23 -9
- package/src/database/pxe_database_test_suite.ts +93 -29
- package/src/note_processor/note_processor.ts +191 -121
- package/src/note_processor/produce_note_dao.ts +164 -50
- package/src/pxe_service/create_pxe_service.ts +2 -0
- package/src/pxe_service/pxe_service.ts +170 -42
- package/src/simulator_oracle/index.ts +1 -1
- package/src/synchronizer/synchronizer.ts +48 -52
- package/dest/database/note_dao.d.ts.map +0 -1
- package/dest/database/note_dao.js +0 -89
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { L1NotePayload,
|
|
2
|
-
import { INITIAL_L2_BLOCK_NUM, MAX_NEW_NOTE_HASHES_PER_TX } from '@aztec/circuits.js';
|
|
1
|
+
import { L1NotePayload, TaggedLog } from '@aztec/circuit-types';
|
|
2
|
+
import { INITIAL_L2_BLOCK_NUM, MAX_NEW_NOTE_HASHES_PER_TX, } from '@aztec/circuits.js';
|
|
3
3
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { Timer } from '@aztec/foundation/timer';
|
|
5
|
-
import { ContractNotFoundError } from '@aztec/simulator';
|
|
6
|
-
import { DeferredNoteDao } from '../database/deferred_note_dao.js';
|
|
7
5
|
import { getAcirSimulator } from '../simulator/index.js';
|
|
8
|
-
import {
|
|
6
|
+
import { produceNoteDaos } from './produce_note_dao.js';
|
|
9
7
|
/**
|
|
10
8
|
* NoteProcessor is responsible for decrypting logs and converting them to notes via their originating contracts
|
|
11
9
|
* before storing them against their owner.
|
|
12
10
|
*/
|
|
13
11
|
export class NoteProcessor {
|
|
14
|
-
constructor(
|
|
15
|
-
/**
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
this.
|
|
12
|
+
constructor(account,
|
|
13
|
+
/** The public counterpart to the secret key to be used in the decryption of incoming note logs. */
|
|
14
|
+
ivpkM,
|
|
15
|
+
/** The public counterpart to the secret key to be used in the decryption of outgoing note logs. */
|
|
16
|
+
ovpkM, keyStore, db, node, startingBlock, simulator, log) {
|
|
17
|
+
this.account = account;
|
|
18
|
+
this.ivpkM = ivpkM;
|
|
19
|
+
this.ovpkM = ovpkM;
|
|
20
20
|
this.keyStore = keyStore;
|
|
21
21
|
this.db = db;
|
|
22
22
|
this.node = node;
|
|
@@ -26,7 +26,21 @@ export class NoteProcessor {
|
|
|
26
26
|
/** Keeps track of processing time since an instance is created. */
|
|
27
27
|
this.timer = new Timer();
|
|
28
28
|
/** Stats accumulated for this processor. */
|
|
29
|
-
this.stats = {
|
|
29
|
+
this.stats = {
|
|
30
|
+
seen: 0,
|
|
31
|
+
decryptedIncoming: 0,
|
|
32
|
+
decryptedOutgoing: 0,
|
|
33
|
+
deferredIncoming: 0,
|
|
34
|
+
deferredOutgoing: 0,
|
|
35
|
+
failed: 0,
|
|
36
|
+
blocks: 0,
|
|
37
|
+
txs: 0,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
static async create(account, keyStore, db, node, startingBlock = INITIAL_L2_BLOCK_NUM, simulator = getAcirSimulator(db, node, keyStore), log = createDebugLogger('aztec:note_processor')) {
|
|
41
|
+
const ivpkM = await keyStore.getMasterIncomingViewingPublicKey(account);
|
|
42
|
+
const ovpkM = await keyStore.getMasterOutgoingViewingPublicKey(account);
|
|
43
|
+
return new NoteProcessor(account, ivpkM, ovpkM, keyStore, db, node, startingBlock, simulator, log);
|
|
30
44
|
}
|
|
31
45
|
/**
|
|
32
46
|
* Check if the NoteProcessor is synchronized with the remote block number.
|
|
@@ -46,37 +60,34 @@ export class NoteProcessor {
|
|
|
46
60
|
return { syncedToBlock: this.getSyncedToBlock() };
|
|
47
61
|
}
|
|
48
62
|
getSyncedToBlock() {
|
|
49
|
-
return this.db.getSynchedBlockNumberForPublicKey(this.
|
|
63
|
+
return this.db.getSynchedBlockNumberForPublicKey(this.ivpkM) ?? this.startingBlock - 1;
|
|
50
64
|
}
|
|
51
65
|
/**
|
|
52
66
|
* Extracts new user-relevant notes from the information contained in the provided L2 blocks and encrypted logs.
|
|
53
67
|
*
|
|
54
|
-
* @
|
|
55
|
-
* @param l2Blocks - L2 blocks to be processed.
|
|
56
|
-
* @param encryptedL2BlockLogs - Encrypted logs associated with the L2 blocks.
|
|
68
|
+
* @param blocks - L2 blocks to be processed.
|
|
57
69
|
* @returns A promise that resolves once the processing is completed.
|
|
58
70
|
*/
|
|
59
|
-
async process(
|
|
60
|
-
if (
|
|
61
|
-
throw new Error(`Number of blocks and EncryptedLogs is not equal. Received ${l2Blocks.length} blocks, ${encryptedL2BlockLogs.length} encrypted logs.`);
|
|
62
|
-
}
|
|
63
|
-
if (l2Blocks.length === 0) {
|
|
71
|
+
async process(blocks) {
|
|
72
|
+
if (blocks.length === 0) {
|
|
64
73
|
return;
|
|
65
74
|
}
|
|
66
75
|
const blocksAndNotes = [];
|
|
67
76
|
// Keep track of notes that we couldn't process because the contract was not found.
|
|
68
|
-
const
|
|
77
|
+
const deferredIncomingNotes = [];
|
|
78
|
+
const deferredOutgoingNotes = [];
|
|
79
|
+
const ivskM = await this.keyStore.getMasterSecretKey(this.ivpkM);
|
|
80
|
+
const ovskM = await this.keyStore.getMasterSecretKey(this.ovpkM);
|
|
69
81
|
// Iterate over both blocks and encrypted logs.
|
|
70
|
-
for (
|
|
82
|
+
for (const block of blocks) {
|
|
71
83
|
this.stats.blocks++;
|
|
72
|
-
const { txLogs } =
|
|
73
|
-
const block = l2Blocks[blockIndex];
|
|
84
|
+
const { txLogs } = block.body.noteEncryptedLogs;
|
|
74
85
|
const dataStartIndexForBlock = block.header.state.partial.noteHashTree.nextAvailableLeafIndex -
|
|
75
86
|
block.body.numberOfTxsIncludingPadded * MAX_NEW_NOTE_HASHES_PER_TX;
|
|
76
87
|
// We are using set for `userPertainingTxIndices` to avoid duplicates. This would happen in case there were
|
|
77
88
|
// multiple encrypted logs in a tx pertaining to a user.
|
|
78
|
-
const
|
|
79
|
-
const
|
|
89
|
+
const incomingNotes = [];
|
|
90
|
+
const outgoingNotes = [];
|
|
80
91
|
// Iterate over all the encrypted logs and try decrypting them. If successful, store the note.
|
|
81
92
|
for (let indexOfTxInABlock = 0; indexOfTxInABlock < txLogs.length; ++indexOfTxInABlock) {
|
|
82
93
|
this.stats.txs++;
|
|
@@ -89,42 +100,57 @@ export class NoteProcessor {
|
|
|
89
100
|
for (const functionLogs of txFunctionLogs) {
|
|
90
101
|
for (const log of functionLogs.logs) {
|
|
91
102
|
this.stats.seen++;
|
|
92
|
-
|
|
93
|
-
const
|
|
94
|
-
if (
|
|
95
|
-
|
|
96
|
-
//
|
|
103
|
+
const incomingTaggedNote = TaggedLog.decryptAsIncoming(log.data, ivskM);
|
|
104
|
+
const outgoingTaggedNote = TaggedLog.decryptAsOutgoing(log.data, ovskM);
|
|
105
|
+
if (incomingTaggedNote || outgoingTaggedNote) {
|
|
106
|
+
// TODO(#7053): Re-enable this check
|
|
107
|
+
// if (
|
|
108
|
+
// incomingTaggedNote &&
|
|
109
|
+
// outgoingTaggedNote &&
|
|
110
|
+
// !incomingTaggedNote.payload.equals(outgoingTaggedNote.payload)
|
|
111
|
+
// ) {
|
|
112
|
+
// throw new Error(
|
|
113
|
+
// `Incoming and outgoing note payloads do not match. Incoming: ${JSON.stringify(
|
|
114
|
+
// incomingTaggedNote.payload,
|
|
115
|
+
// )}, Outgoing: ${JSON.stringify(outgoingTaggedNote.payload)}`,
|
|
116
|
+
// );
|
|
117
|
+
// }
|
|
118
|
+
const payload = incomingTaggedNote?.payload || outgoingTaggedNote?.payload;
|
|
97
119
|
const txHash = block.body.txEffects[indexOfTxInABlock].txHash;
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
this.stats.
|
|
120
|
+
const { incomingNote, outgoingNote, incomingDeferredNote, outgoingDeferredNote } = await produceNoteDaos(this.simulator, incomingTaggedNote ? this.ivpkM : undefined, outgoingTaggedNote ? this.ovpkM : undefined, payload, txHash, newNoteHashes, dataStartIndexForTx, excludedIndices, this.log);
|
|
121
|
+
if (incomingNote) {
|
|
122
|
+
incomingNotes.push(incomingNote);
|
|
123
|
+
this.stats.decryptedIncoming++;
|
|
124
|
+
}
|
|
125
|
+
if (outgoingNote) {
|
|
126
|
+
outgoingNotes.push(outgoingNote);
|
|
127
|
+
this.stats.decryptedOutgoing++;
|
|
128
|
+
}
|
|
129
|
+
if (incomingDeferredNote) {
|
|
130
|
+
deferredIncomingNotes.push(incomingDeferredNote);
|
|
131
|
+
this.stats.deferredIncoming++;
|
|
102
132
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
this.stats.failed++;
|
|
112
|
-
this.log.error(`Could not process note because of "${e}". Discarding note...`);
|
|
113
|
-
}
|
|
133
|
+
if (outgoingDeferredNote) {
|
|
134
|
+
deferredOutgoingNotes.push(outgoingDeferredNote);
|
|
135
|
+
this.stats.deferredOutgoing++;
|
|
136
|
+
}
|
|
137
|
+
if (incomingNote == undefined && outgoingNote == undefined && incomingDeferredNote == undefined) {
|
|
138
|
+
this.stats.failed++;
|
|
114
139
|
}
|
|
115
140
|
}
|
|
116
141
|
}
|
|
117
142
|
}
|
|
118
143
|
}
|
|
119
144
|
blocksAndNotes.push({
|
|
120
|
-
block
|
|
121
|
-
|
|
145
|
+
block,
|
|
146
|
+
incomingNotes,
|
|
147
|
+
outgoingNotes,
|
|
122
148
|
});
|
|
123
149
|
}
|
|
124
150
|
await this.processBlocksAndNotes(blocksAndNotes);
|
|
125
|
-
await this.processDeferredNotes(
|
|
126
|
-
const syncedToBlock =
|
|
127
|
-
await this.db.setSynchedBlockNumberForPublicKey(this.
|
|
151
|
+
await this.processDeferredNotes(deferredIncomingNotes, deferredOutgoingNotes);
|
|
152
|
+
const syncedToBlock = blocks[blocks.length - 1].number;
|
|
153
|
+
await this.db.setSynchedBlockNumberForPublicKey(this.ivpkM, syncedToBlock);
|
|
128
154
|
this.log.debug(`Synched block ${syncedToBlock}`);
|
|
129
155
|
}
|
|
130
156
|
/**
|
|
@@ -137,15 +163,19 @@ export class NoteProcessor {
|
|
|
137
163
|
* @param blocksAndNotes - Array of objects containing L2 blocks, user-pertaining transaction indices, and NoteDaos.
|
|
138
164
|
*/
|
|
139
165
|
async processBlocksAndNotes(blocksAndNotes) {
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
166
|
+
const incomingNotes = blocksAndNotes.flatMap(b => b.incomingNotes);
|
|
167
|
+
const outgoingNotes = blocksAndNotes.flatMap(b => b.outgoingNotes);
|
|
168
|
+
if (incomingNotes.length || outgoingNotes.length) {
|
|
169
|
+
await this.db.addNotes(incomingNotes, outgoingNotes);
|
|
170
|
+
incomingNotes.forEach(noteDao => {
|
|
171
|
+
this.log.verbose(`Added incoming note for contract ${noteDao.contractAddress} at slot ${noteDao.storageSlot} with nullifier ${noteDao.siloedNullifier.toString()}`);
|
|
172
|
+
});
|
|
173
|
+
outgoingNotes.forEach(noteDao => {
|
|
174
|
+
this.log.verbose(`Added outgoing note for contract ${noteDao.contractAddress} at slot ${noteDao.storageSlot}`);
|
|
145
175
|
});
|
|
146
176
|
}
|
|
147
177
|
const newNullifiers = blocksAndNotes.flatMap(b => b.block.body.txEffects.flatMap(txEffect => txEffect.nullifiers));
|
|
148
|
-
const removedNotes = await this.db.removeNullifiedNotes(newNullifiers, this.
|
|
178
|
+
const removedNotes = await this.db.removeNullifiedNotes(newNullifiers, this.ivpkM);
|
|
149
179
|
removedNotes.forEach(noteDao => {
|
|
150
180
|
this.log.verbose(`Removed note for contract ${noteDao.contractAddress} at slot ${noteDao.storageSlot} with nullifier ${noteDao.siloedNullifier.toString()}`);
|
|
151
181
|
});
|
|
@@ -153,13 +183,17 @@ export class NoteProcessor {
|
|
|
153
183
|
/**
|
|
154
184
|
* Store the given deferred notes in the database for later decoding.
|
|
155
185
|
*
|
|
156
|
-
* @param
|
|
186
|
+
* @param deferredIncomingNotes - incoming notes that are intended for us but we couldn't process because the contract was not found.
|
|
187
|
+
* @param deferredOutgoingNotes - outgoing notes that we couldn't process because the contract was not found.
|
|
157
188
|
*/
|
|
158
|
-
async processDeferredNotes(
|
|
159
|
-
if (
|
|
160
|
-
await this.db.addDeferredNotes(
|
|
161
|
-
|
|
162
|
-
this.log.verbose(`Deferred note for contract ${noteDao.contractAddress} at slot ${noteDao.storageSlot} in tx ${noteDao.txHash.toString()}`);
|
|
189
|
+
async processDeferredNotes(deferredIncomingNotes, deferredOutgoingNotes) {
|
|
190
|
+
if (deferredIncomingNotes.length || deferredOutgoingNotes.length) {
|
|
191
|
+
await this.db.addDeferredNotes([...deferredIncomingNotes, ...deferredOutgoingNotes]);
|
|
192
|
+
deferredIncomingNotes.forEach(noteDao => {
|
|
193
|
+
this.log.verbose(`Deferred incoming note for contract ${noteDao.contractAddress} at slot ${noteDao.storageSlot} in tx ${noteDao.txHash.toString()}`);
|
|
194
|
+
});
|
|
195
|
+
deferredOutgoingNotes.forEach(noteDao => {
|
|
196
|
+
this.log.verbose(`Deferred outgoing note for contract ${noteDao.contractAddress} at slot ${noteDao.storageSlot} in tx ${noteDao.txHash.toString()}`);
|
|
163
197
|
});
|
|
164
198
|
}
|
|
165
199
|
}
|
|
@@ -167,28 +201,41 @@ export class NoteProcessor {
|
|
|
167
201
|
* Retry decoding the given deferred notes because we now have the contract code.
|
|
168
202
|
*
|
|
169
203
|
* @param deferredNoteDaos - notes that we have previously deferred because the contract was not found
|
|
170
|
-
* @returns An
|
|
204
|
+
* @returns An object containing arrays of incoming and outgoing notes that were successfully decoded.
|
|
171
205
|
*
|
|
172
206
|
* @remarks Caller is responsible for making sure that we have the contract for the
|
|
173
207
|
* deferred notes provided: we will not retry notes that fail again.
|
|
174
208
|
*/
|
|
175
209
|
async decodeDeferredNotes(deferredNoteDaos) {
|
|
176
210
|
const excludedIndices = new Set();
|
|
177
|
-
const
|
|
211
|
+
const incomingNotes = [];
|
|
212
|
+
const outgoingNotes = [];
|
|
178
213
|
for (const deferredNote of deferredNoteDaos) {
|
|
179
|
-
const { note, contractAddress, storageSlot, noteTypeId, txHash, newNoteHashes, dataStartIndexForTx } = deferredNote;
|
|
214
|
+
const { publicKey, note, contractAddress, storageSlot, noteTypeId, txHash, newNoteHashes, dataStartIndexForTx } = deferredNote;
|
|
180
215
|
const payload = new L1NotePayload(note, contractAddress, storageSlot, noteTypeId);
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
this
|
|
216
|
+
const isIncoming = publicKey.equals(this.ivpkM);
|
|
217
|
+
const isOutgoing = publicKey.equals(this.ovpkM);
|
|
218
|
+
if (!isIncoming && !isOutgoing) {
|
|
219
|
+
// The note does not belong to this note processor
|
|
220
|
+
continue;
|
|
185
221
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
222
|
+
const { incomingNote, outgoingNote } = await produceNoteDaos(this.simulator, isIncoming ? this.ivpkM : undefined, isOutgoing ? this.ovpkM : undefined, payload, txHash, newNoteHashes, dataStartIndexForTx, excludedIndices, this.log);
|
|
223
|
+
if (isIncoming) {
|
|
224
|
+
if (!incomingNote) {
|
|
225
|
+
throw new Error('Deferred incoming note could not be decoded');
|
|
226
|
+
}
|
|
227
|
+
incomingNotes.push(incomingNote);
|
|
228
|
+
this.stats.decryptedIncoming++;
|
|
229
|
+
}
|
|
230
|
+
if (outgoingNote) {
|
|
231
|
+
if (!outgoingNote) {
|
|
232
|
+
throw new Error('Deferred outgoing note could not be decoded');
|
|
233
|
+
}
|
|
234
|
+
outgoingNotes.push(outgoingNote);
|
|
235
|
+
this.stats.decryptedOutgoing++;
|
|
189
236
|
}
|
|
190
237
|
}
|
|
191
|
-
return
|
|
238
|
+
return { incomingNotes, outgoingNotes };
|
|
192
239
|
}
|
|
193
240
|
}
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZV9wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90ZV9wcm9jZXNzb3Ivbm90ZV9wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGFBQWEsRUFFYixVQUFVLEdBQ1gsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsMEJBQTBCLEVBQWtCLE1BQU0sb0JBQW9CLENBQUM7QUFFdEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUduRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFnQnZEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBT3hCO0lBQ0U7O09BRUc7SUFDYSw4QkFBeUMsRUFDakQsUUFBa0IsRUFDbEIsRUFBZSxFQUNmLElBQWUsRUFDZixnQkFBd0Isb0JBQW9CLEVBQzVDLFlBQVksZ0JBQWdCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsRUFDaEQsTUFBTSxpQkFBaUIsQ0FBQyxzQkFBc0IsQ0FBQztRQU52QyxtQ0FBOEIsR0FBOUIsOEJBQThCLENBQVc7UUFDakQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsU0FBSSxHQUFKLElBQUksQ0FBVztRQUNmLGtCQUFhLEdBQWIsYUFBYSxDQUErQjtRQUM1QyxjQUFTLEdBQVQsU0FBUyxDQUF1QztRQUNoRCxRQUFHLEdBQUgsR0FBRyxDQUE0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
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZV9wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90ZV9wcm9jZXNzb3Ivbm90ZV9wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixhQUFhLEVBQWdCLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTlGLE9BQU8sRUFFTCxvQkFBb0IsRUFDcEIsMEJBQTBCLEdBRTNCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUFlLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBUWhELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWN4RDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQWdCeEIsWUFDa0IsT0FBcUI7SUFDckMsbUdBQW1HO0lBQ2xGLEtBQWdCO0lBQ2pDLG1HQUFtRztJQUNsRixLQUFnQixFQUN6QixRQUFrQixFQUNsQixFQUFlLEVBQ2YsSUFBZSxFQUNmLGFBQXFCLEVBQ3JCLFNBQXdCLEVBQ3hCLEdBQVc7UUFWSCxZQUFPLEdBQVAsT0FBTyxDQUFjO1FBRXBCLFVBQUssR0FBTCxLQUFLLENBQVc7UUFFaEIsVUFBSyxHQUFMLEtBQUssQ0FBVztRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFXO1FBQ2Ysa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQUN4QixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBMUJyQixtRUFBbUU7UUFDbkQsVUFBSyxHQUFVLElBQUksS0FBSyxFQUFFLENBQUM7UUFFM0MsNENBQTRDO1FBQzVCLFVBQUss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
|
|
@@ -1,21 +1,30 @@
|
|
|
1
1
|
import { type L1NotePayload, type TxHash } from '@aztec/circuit-types';
|
|
2
2
|
import { Fr, type PublicKey } from '@aztec/circuits.js';
|
|
3
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
3
4
|
import { type AcirSimulator } from '@aztec/simulator';
|
|
4
|
-
import {
|
|
5
|
+
import { DeferredNoteDao } from '../database/deferred_note_dao.js';
|
|
6
|
+
import { IncomingNoteDao } from '../database/incoming_note_dao.js';
|
|
7
|
+
import { OutgoingNoteDao } from '../database/outgoing_note_dao.js';
|
|
5
8
|
/**
|
|
6
9
|
* Decodes a note from a transaction that we know was intended for us.
|
|
7
10
|
* Throws if we do not yet have the contract corresponding to the note in our database.
|
|
8
11
|
* Accepts a set of excluded indices, which are indices that have been assigned a note in the same tx.
|
|
9
12
|
* Inserts the index of the note into the excludedIndices set if the note is successfully decoded.
|
|
10
13
|
*
|
|
11
|
-
* @param
|
|
14
|
+
* @param ivpkM - The public counterpart to the secret key to be used in the decryption of incoming note logs.
|
|
15
|
+
* @param ovpkM - The public counterpart to the secret key to be used in the decryption of outgoing note logs.
|
|
12
16
|
* @param payload - An instance of l1NotePayload.
|
|
13
17
|
* @param txHash - The hash of the transaction that created the note. Equivalent to the first nullifier of the transaction.
|
|
14
18
|
* @param newNoteHashes - New note hashes in this transaction, one of which belongs to this note.
|
|
15
19
|
* @param dataStartIndexForTx - The next available leaf index for the note hash tree for this transaction.
|
|
16
20
|
* @param excludedIndices - Indices that have been assigned a note in the same tx. Notes in a tx can have the same l1NotePayload, we need to find a different index for each replicate.
|
|
17
21
|
* @param simulator - An instance of AcirSimulator.
|
|
18
|
-
* @returns
|
|
22
|
+
* @returns An object containing the incoming, outgoing, and deferred notes.
|
|
19
23
|
*/
|
|
20
|
-
export declare function
|
|
24
|
+
export declare function produceNoteDaos(simulator: AcirSimulator, ivpkM: PublicKey | undefined, ovpkM: PublicKey | undefined, payload: L1NotePayload, txHash: TxHash, newNoteHashes: Fr[], dataStartIndexForTx: number, excludedIndices: Set<number>, log: Logger): Promise<{
|
|
25
|
+
incomingNote: IncomingNoteDao | undefined;
|
|
26
|
+
outgoingNote: OutgoingNoteDao | undefined;
|
|
27
|
+
incomingDeferredNote: DeferredNoteDao | undefined;
|
|
28
|
+
outgoingDeferredNote: DeferredNoteDao | undefined;
|
|
29
|
+
}>;
|
|
21
30
|
//# sourceMappingURL=produce_note_dao.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"produce_note_dao.d.ts","sourceRoot":"","sources":["../../src/note_processor/produce_note_dao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"produce_note_dao.d.ts","sourceRoot":"","sources":["../../src/note_processor/produce_note_dao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,KAAK,aAAa,EAAyB,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,SAAS,GAAG,SAAS,EAC5B,KAAK,EAAE,SAAS,GAAG,SAAS,EAC5B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,EAAE,EAAE,EACnB,mBAAmB,EAAE,MAAM,EAC3B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,EAC5B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IACT,YAAY,EAAE,eAAe,GAAG,SAAS,CAAC;IAC1C,YAAY,EAAE,eAAe,GAAG,SAAS,CAAC;IAC1C,oBAAoB,EAAE,eAAe,GAAG,SAAS,CAAC;IAClD,oBAAoB,EAAE,eAAe,GAAG,SAAS,CAAC;CACnD,CAAC,CA4HD"}
|
|
@@ -1,60 +1,117 @@
|
|
|
1
1
|
import { Fr } from '@aztec/circuits.js';
|
|
2
2
|
import { computeNoteHashNonce, siloNullifier } from '@aztec/circuits.js/hash';
|
|
3
|
-
import {
|
|
3
|
+
import { ContractNotFoundError } from '@aztec/simulator';
|
|
4
|
+
import { DeferredNoteDao } from '../database/deferred_note_dao.js';
|
|
5
|
+
import { IncomingNoteDao } from '../database/incoming_note_dao.js';
|
|
6
|
+
import { OutgoingNoteDao } from '../database/outgoing_note_dao.js';
|
|
4
7
|
/**
|
|
5
8
|
* Decodes a note from a transaction that we know was intended for us.
|
|
6
9
|
* Throws if we do not yet have the contract corresponding to the note in our database.
|
|
7
10
|
* Accepts a set of excluded indices, which are indices that have been assigned a note in the same tx.
|
|
8
11
|
* Inserts the index of the note into the excludedIndices set if the note is successfully decoded.
|
|
9
12
|
*
|
|
10
|
-
* @param
|
|
13
|
+
* @param ivpkM - The public counterpart to the secret key to be used in the decryption of incoming note logs.
|
|
14
|
+
* @param ovpkM - The public counterpart to the secret key to be used in the decryption of outgoing note logs.
|
|
11
15
|
* @param payload - An instance of l1NotePayload.
|
|
12
16
|
* @param txHash - The hash of the transaction that created the note. Equivalent to the first nullifier of the transaction.
|
|
13
17
|
* @param newNoteHashes - New note hashes in this transaction, one of which belongs to this note.
|
|
14
18
|
* @param dataStartIndexForTx - The next available leaf index for the note hash tree for this transaction.
|
|
15
19
|
* @param excludedIndices - Indices that have been assigned a note in the same tx. Notes in a tx can have the same l1NotePayload, we need to find a different index for each replicate.
|
|
16
20
|
* @param simulator - An instance of AcirSimulator.
|
|
17
|
-
* @returns
|
|
21
|
+
* @returns An object containing the incoming, outgoing, and deferred notes.
|
|
18
22
|
*/
|
|
19
|
-
export async function
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
export async function produceNoteDaos(simulator, ivpkM, ovpkM, payload, txHash, newNoteHashes, dataStartIndexForTx, excludedIndices, log) {
|
|
24
|
+
if (!ivpkM && !ovpkM) {
|
|
25
|
+
throw new Error('Both ivpkM and ovpkM are undefined. Cannot create note.');
|
|
26
|
+
}
|
|
27
|
+
let incomingNote;
|
|
28
|
+
let outgoingNote;
|
|
29
|
+
let incomingDeferredNote;
|
|
30
|
+
let outgoingDeferredNote;
|
|
31
|
+
try {
|
|
32
|
+
if (ivpkM) {
|
|
33
|
+
const { noteHashIndex, nonce, innerNoteHash, siloedNullifier } = await findNoteIndexAndNullifier(simulator, newNoteHashes, txHash, payload, excludedIndices, true);
|
|
34
|
+
const index = BigInt(dataStartIndexForTx + noteHashIndex);
|
|
35
|
+
excludedIndices?.add(noteHashIndex);
|
|
36
|
+
incomingNote = new IncomingNoteDao(payload.note, payload.contractAddress, payload.storageSlot, payload.noteTypeId, txHash, nonce, innerNoteHash, siloedNullifier, index, ivpkM);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
if (e instanceof ContractNotFoundError) {
|
|
41
|
+
log.warn(e.message);
|
|
42
|
+
if (ivpkM) {
|
|
43
|
+
incomingDeferredNote = new DeferredNoteDao(ivpkM, payload.note, payload.contractAddress, payload.storageSlot, payload.noteTypeId, txHash, newNoteHashes, dataStartIndexForTx);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
log.error(`Could not process note because of "${e}". Discarding note...`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
if (ovpkM) {
|
|
52
|
+
if (incomingNote) {
|
|
53
|
+
// Incoming note is defined meaning that this PXE has both the incoming and outgoing keys. We can skip computing
|
|
54
|
+
// note hash and note index since we already have them in the incoming note.
|
|
55
|
+
outgoingNote = new OutgoingNoteDao(payload.note, payload.contractAddress, payload.storageSlot, payload.noteTypeId, txHash, incomingNote.nonce, incomingNote.innerNoteHash, incomingNote.index, ovpkM);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
const { noteHashIndex, nonce, innerNoteHash } = await findNoteIndexAndNullifier(simulator, newNoteHashes, txHash, payload, excludedIndices, false);
|
|
59
|
+
const index = BigInt(dataStartIndexForTx + noteHashIndex);
|
|
60
|
+
excludedIndices?.add(noteHashIndex);
|
|
61
|
+
outgoingNote = new OutgoingNoteDao(payload.note, payload.contractAddress, payload.storageSlot, payload.noteTypeId, txHash, nonce, innerNoteHash, index, ovpkM);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
if (e instanceof ContractNotFoundError) {
|
|
67
|
+
log.warn(e.message);
|
|
68
|
+
if (ovpkM) {
|
|
69
|
+
outgoingDeferredNote = new DeferredNoteDao(ovpkM, payload.note, payload.contractAddress, payload.storageSlot, payload.noteTypeId, txHash, newNoteHashes, dataStartIndexForTx);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
log.error(`Could not process note because of "${e}". Discarding note...`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
incomingNote,
|
|
78
|
+
outgoingNote,
|
|
79
|
+
incomingDeferredNote,
|
|
80
|
+
outgoingDeferredNote,
|
|
81
|
+
};
|
|
24
82
|
}
|
|
25
83
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* @param
|
|
33
|
-
* @param txHash - First nullifier in the tx.
|
|
34
|
-
* @param l1NotePayload - An instance of l1NotePayload.
|
|
84
|
+
* Finds nonce, index, inner hash and siloed nullifier for a given note.
|
|
85
|
+
* @dev Finds the index in the note hash tree by computing the note hash with different nonce and see which hash for
|
|
86
|
+
* the current tx matches this value.
|
|
87
|
+
* @remarks This method assists in identifying spent notes in the note hash tree.
|
|
88
|
+
* @param noteHashes - Note hashes in the tx. One of them should correspond to the note we are looking for
|
|
89
|
+
* @param txHash - Hash of a tx the note was emitted in.
|
|
90
|
+
* @param l1NotePayload - The note payload.
|
|
35
91
|
* @param excludedIndices - Indices that have been assigned a note in the same tx. Notes in a tx can have the same
|
|
36
92
|
* l1NotePayload. We need to find a different index for each replicate.
|
|
37
|
-
* @
|
|
38
|
-
*
|
|
93
|
+
* @param computeNullifier - A flag indicating whether to compute the nullifier or just return 0.
|
|
94
|
+
* @returns Nonce, index, inner hash and siloed nullifier for a given note.
|
|
95
|
+
* @throws If cannot find the nonce for the note.
|
|
39
96
|
*/
|
|
40
|
-
async function findNoteIndexAndNullifier(simulator,
|
|
41
|
-
let
|
|
97
|
+
async function findNoteIndexAndNullifier(simulator, noteHashes, txHash, { contractAddress, storageSlot, noteTypeId, note }, excludedIndices, computeNullifier) {
|
|
98
|
+
let noteHashIndex = 0;
|
|
42
99
|
let nonce;
|
|
43
100
|
let innerNoteHash;
|
|
44
101
|
let siloedNoteHash;
|
|
45
102
|
let innerNullifier;
|
|
46
103
|
const firstNullifier = Fr.fromBuffer(txHash.toBuffer());
|
|
47
|
-
for (;
|
|
48
|
-
if (excludedIndices.has(
|
|
104
|
+
for (; noteHashIndex < noteHashes.length; ++noteHashIndex) {
|
|
105
|
+
if (excludedIndices.has(noteHashIndex)) {
|
|
49
106
|
continue;
|
|
50
107
|
}
|
|
51
|
-
const
|
|
52
|
-
if (
|
|
108
|
+
const noteHash = noteHashes[noteHashIndex];
|
|
109
|
+
if (noteHash.equals(Fr.ZERO)) {
|
|
53
110
|
break;
|
|
54
111
|
}
|
|
55
|
-
const expectedNonce = computeNoteHashNonce(firstNullifier,
|
|
56
|
-
({ innerNoteHash, siloedNoteHash, innerNullifier } = await simulator.
|
|
57
|
-
if (
|
|
112
|
+
const expectedNonce = computeNoteHashNonce(firstNullifier, noteHashIndex);
|
|
113
|
+
({ innerNoteHash, siloedNoteHash, innerNullifier } = await simulator.computeNoteHashAndOptionallyANullifier(contractAddress, expectedNonce, storageSlot, noteTypeId, computeNullifier, note));
|
|
114
|
+
if (noteHash.equals(siloedNoteHash)) {
|
|
58
115
|
nonce = expectedNonce;
|
|
59
116
|
break;
|
|
60
117
|
}
|
|
@@ -62,13 +119,13 @@ async function findNoteIndexAndNullifier(simulator, commitments, txHash, { contr
|
|
|
62
119
|
if (!nonce) {
|
|
63
120
|
// NB: this used to warn the user that a decrypted log didn't match any notes.
|
|
64
121
|
// This was previously fine as we didn't chop transient note logs, but now we do (#1641 complete).
|
|
65
|
-
throw new Error('Cannot find a matching
|
|
122
|
+
throw new Error('Cannot find a matching note hash for the note.');
|
|
66
123
|
}
|
|
67
124
|
return {
|
|
68
|
-
|
|
125
|
+
noteHashIndex,
|
|
69
126
|
nonce,
|
|
70
127
|
innerNoteHash: innerNoteHash,
|
|
71
128
|
siloedNullifier: siloNullifier(contractAddress, innerNullifier),
|
|
72
129
|
};
|
|
73
130
|
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjZV9ub3RlX2Rhby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub3RlX3Byb2Nlc3Nvci9wcm9kdWNlX25vdGVfZGFvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQWtCLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlFLE9BQU8sRUFBc0IscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVuRTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGVBQWUsQ0FDbkMsU0FBd0IsRUFDeEIsS0FBNEIsRUFDNUIsS0FBNEIsRUFDNUIsT0FBc0IsRUFDdEIsTUFBYyxFQUNkLGFBQW1CLEVBQ25CLG1CQUEyQixFQUMzQixlQUE0QixFQUM1QixHQUFXO0lBT1gsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsSUFBSSxZQUF5QyxDQUFDO0lBQzlDLElBQUksWUFBeUMsQ0FBQztJQUM5QyxJQUFJLG9CQUFpRCxDQUFDO0lBQ3RELElBQUksb0JBQWlELENBQUM7SUFFdEQsSUFBSSxDQUFDO1FBQ0gsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE1BQU0sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsR0FBRyxNQUFNLHlCQUF5QixDQUM5RixTQUFTLEVBQ1QsYUFBYSxFQUNi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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_pxe_service.d.ts","sourceRoot":"","sources":["../../src/pxe_service/create_pxe_service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"create_pxe_service.d.ts","sourceRoot":"","sources":["../../src/pxe_service/create_pxe_service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAezE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,EACxB,YAAY,GAAE,MAAM,GAAG,OAAO,GAAG,SAAqB,EACtD,YAAY,CAAC,EAAE,YAAY,uBAyC5B"}
|
|
@@ -4,6 +4,7 @@ import { createDebugLogger } from '@aztec/foundation/log';
|
|
|
4
4
|
import { KeyStore } from '@aztec/key-store';
|
|
5
5
|
import { AztecLmdbStore } from '@aztec/kv-store/lmdb';
|
|
6
6
|
import { initStoreForRollup } from '@aztec/kv-store/utils';
|
|
7
|
+
import { getCanonicalAuthRegistry } from '@aztec/protocol-contracts/auth-registry';
|
|
7
8
|
import { getCanonicalClassRegisterer } from '@aztec/protocol-contracts/class-registerer';
|
|
8
9
|
import { getCanonicalGasToken } from '@aztec/protocol-contracts/gas-token';
|
|
9
10
|
import { getCanonicalInstanceDeployer } from '@aztec/protocol-contracts/instance-deployer';
|
|
@@ -48,10 +49,11 @@ export async function createPXEService(aztecNode, config, useLogSuffix = undefin
|
|
|
48
49
|
getCanonicalMultiCallEntrypointContract(),
|
|
49
50
|
getCanonicalGasToken(),
|
|
50
51
|
getCanonicalKeyRegistry(),
|
|
52
|
+
getCanonicalAuthRegistry(),
|
|
51
53
|
]) {
|
|
52
54
|
await server.registerContract(contract);
|
|
53
55
|
}
|
|
54
56
|
await server.start();
|
|
55
57
|
return server;
|
|
56
58
|
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX3B4ZV9zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B4ZV9zZXJ2aWNlL2NyZWF0ZV9weGVfc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUUxRyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUM7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCLENB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
|