@aztec/pxe 0.17.0 → 0.18.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.
Files changed (63) hide show
  1. package/dest/bin/index.js +2 -2
  2. package/dest/config/index.js +2 -2
  3. package/dest/contract_data_oracle/index.d.ts +8 -5
  4. package/dest/contract_data_oracle/index.d.ts.map +1 -1
  5. package/dest/contract_data_oracle/index.js +13 -10
  6. package/dest/contract_database/memory_contract_database.d.ts +1 -1
  7. package/dest/contract_database/memory_contract_database.d.ts.map +1 -1
  8. package/dest/contract_tree/index.d.ts +1 -1
  9. package/dest/contract_tree/index.d.ts.map +1 -1
  10. package/dest/contract_tree/index.js +2 -2
  11. package/dest/database/deferred_note_dao.d.ts +43 -0
  12. package/dest/database/deferred_note_dao.d.ts.map +1 -0
  13. package/dest/database/deferred_note_dao.js +41 -0
  14. package/dest/database/kv_pxe_database.d.ts +15 -1
  15. package/dest/database/kv_pxe_database.d.ts.map +1 -1
  16. package/dest/database/kv_pxe_database.js +59 -4
  17. package/dest/database/memory_db.d.ts +6 -1
  18. package/dest/database/memory_db.d.ts.map +1 -1
  19. package/dest/database/memory_db.js +21 -2
  20. package/dest/database/note_dao.d.ts +4 -2
  21. package/dest/database/note_dao.d.ts.map +1 -1
  22. package/dest/database/note_dao.js +3 -2
  23. package/dest/database/pxe_database.d.ts +18 -1
  24. package/dest/database/pxe_database.d.ts.map +1 -1
  25. package/dest/database/pxe_database_test_suite.js +2 -2
  26. package/dest/index.d.ts +1 -1
  27. package/dest/index.d.ts.map +1 -1
  28. package/dest/index.js +2 -2
  29. package/dest/kernel_oracle/index.d.ts +1 -1
  30. package/dest/kernel_oracle/index.d.ts.map +1 -1
  31. package/dest/kernel_oracle/index.js +2 -2
  32. package/dest/kernel_prover/kernel_prover.d.ts +1 -0
  33. package/dest/kernel_prover/kernel_prover.d.ts.map +1 -1
  34. package/dest/kernel_prover/kernel_prover.js +24 -5
  35. package/dest/kernel_prover/proof_creator.d.ts.map +1 -1
  36. package/dest/kernel_prover/proof_creator.js +1 -1
  37. package/dest/note_processor/note_processor.d.ts +20 -18
  38. package/dest/note_processor/note_processor.d.ts.map +1 -1
  39. package/dest/note_processor/note_processor.js +66 -83
  40. package/dest/note_processor/produce_note_dao.d.ts +21 -0
  41. package/dest/note_processor/produce_note_dao.d.ts.map +1 -0
  42. package/dest/note_processor/produce_note_dao.js +92 -0
  43. package/dest/pxe_http/pxe_http_server.d.ts +1 -1
  44. package/dest/pxe_http/pxe_http_server.d.ts.map +1 -1
  45. package/dest/pxe_http/pxe_http_server.js +2 -2
  46. package/dest/pxe_service/create_pxe_service.d.ts +1 -1
  47. package/dest/pxe_service/create_pxe_service.d.ts.map +1 -1
  48. package/dest/pxe_service/create_pxe_service.js +1 -1
  49. package/dest/pxe_service/pxe_service.d.ts +3 -2
  50. package/dest/pxe_service/pxe_service.d.ts.map +1 -1
  51. package/dest/pxe_service/pxe_service.js +14 -10
  52. package/dest/pxe_service/test/pxe_test_suite.d.ts +1 -1
  53. package/dest/pxe_service/test/pxe_test_suite.d.ts.map +1 -1
  54. package/dest/pxe_service/test/pxe_test_suite.js +2 -2
  55. package/dest/simulator/index.d.ts +1 -1
  56. package/dest/simulator/index.d.ts.map +1 -1
  57. package/dest/simulator_oracle/index.d.ts +2 -2
  58. package/dest/simulator_oracle/index.d.ts.map +1 -1
  59. package/dest/simulator_oracle/index.js +2 -2
  60. package/dest/synchronizer/synchronizer.d.ts +22 -5
  61. package/dest/synchronizer/synchronizer.d.ts.map +1 -1
  62. package/dest/synchronizer/synchronizer.js +147 -60
  63. package/package.json +11 -10
@@ -1,12 +1,12 @@
1
- import { MAX_NEW_COMMITMENTS_PER_TX, MAX_NEW_NULLIFIERS_PER_TX } from '@aztec/circuits.js';
2
- import { computeCommitmentNonce, siloNullifier } from '@aztec/circuits.js/abis';
1
+ import { ContractNotFoundError } from '@aztec/acir-simulator';
2
+ import { INITIAL_L2_BLOCK_NUM, L1NotePayload, } from '@aztec/circuit-types';
3
+ import { MAX_NEW_COMMITMENTS_PER_TX } from '@aztec/circuits.js';
3
4
  import { Grumpkin } from '@aztec/circuits.js/barretenberg';
4
- import { Fr } from '@aztec/foundation/fields';
5
5
  import { createDebugLogger } from '@aztec/foundation/log';
6
6
  import { Timer } from '@aztec/foundation/timer';
7
- import { INITIAL_L2_BLOCK_NUM, L1NotePayload } from '@aztec/types';
8
- import { NoteDao } from '../database/note_dao.js';
7
+ import { DeferredNoteDao } from '../database/deferred_note_dao.js';
9
8
  import { getAcirSimulator } from '../simulator/index.js';
9
+ import { produceNoteDao } from './produce_note_dao.js';
10
10
  /**
11
11
  * NoteProcessor is responsible for decrypting logs and converting them to notes via their originating contracts
12
12
  * before storing them against their owner.
@@ -27,7 +27,7 @@ export class NoteProcessor {
27
27
  /** Keeps track of processing time since an instance is created. */
28
28
  this.timer = new Timer();
29
29
  /** Stats accumulated for this processor. */
30
- this.stats = { seen: 0, decrypted: 0, failed: 0, blocks: 0, txs: 0 };
30
+ this.stats = { seen: 0, decrypted: 0, deferred: 0, failed: 0, blocks: 0, txs: 0 };
31
31
  }
32
32
  /**
33
33
  * Check if the NoteProcessor is synchronized with the remote block number.
@@ -66,15 +66,17 @@ export class NoteProcessor {
66
66
  if (!l2BlockContexts.length) {
67
67
  return;
68
68
  }
69
- const blocksAndNotes = [];
70
69
  const curve = new Grumpkin();
70
+ const blocksAndNotes = [];
71
+ // Keep track of notes that we couldn't process because the contract was not found.
72
+ const deferredNoteDaos = [];
71
73
  // Iterate over both blocks and encrypted logs.
72
74
  for (let blockIndex = 0; blockIndex < encryptedL2BlockLogs.length; ++blockIndex) {
73
75
  this.stats.blocks++;
74
76
  const { txLogs } = encryptedL2BlockLogs[blockIndex];
75
77
  const blockContext = l2BlockContexts[blockIndex];
76
78
  const block = blockContext.block;
77
- const dataStartIndexForBlock = block.startNoteHashTreeSnapshot.nextAvailableLeafIndex;
79
+ const dataEndIndexForBlock = block.header.state.partial.noteHashTree.nextAvailableLeafIndex;
78
80
  // We are using set for `userPertainingTxIndices` to avoid duplicates. This would happen in case there were
79
81
  // multiple encrypted logs in a tx pertaining to a user.
80
82
  const noteDaos = [];
@@ -82,9 +84,8 @@ export class NoteProcessor {
82
84
  // Iterate over all the encrypted logs and try decrypting them. If successful, store the note.
83
85
  for (let indexOfTxInABlock = 0; indexOfTxInABlock < txLogs.length; ++indexOfTxInABlock) {
84
86
  this.stats.txs++;
85
- const dataStartIndexForTx = dataStartIndexForBlock + indexOfTxInABlock * MAX_NEW_COMMITMENTS_PER_TX;
87
+ const dataStartIndexForTx = dataEndIndexForBlock - (txLogs.length - indexOfTxInABlock) * MAX_NEW_COMMITMENTS_PER_TX;
86
88
  const newCommitments = block.newCommitments.slice(indexOfTxInABlock * MAX_NEW_COMMITMENTS_PER_TX, (indexOfTxInABlock + 1) * MAX_NEW_COMMITMENTS_PER_TX);
87
- const newNullifiers = block.newNullifiers.slice(indexOfTxInABlock * MAX_NEW_NULLIFIERS_PER_TX, (indexOfTxInABlock + 1) * MAX_NEW_NULLIFIERS_PER_TX);
88
89
  // Note: Each tx generates a `TxL2Logs` object and for this reason we can rely on its index corresponding
89
90
  // to the index of a tx in a block.
90
91
  const txFunctionLogs = txLogs[indexOfTxInABlock].functionLogs;
@@ -95,16 +96,23 @@ export class NoteProcessor {
95
96
  const payload = L1NotePayload.fromEncryptedBuffer(logs, privateKey, curve);
96
97
  if (payload) {
97
98
  // We have successfully decrypted the data.
99
+ const txHash = blockContext.getTxHash(indexOfTxInABlock);
98
100
  try {
99
- const { commitmentIndex, nonce, innerNoteHash, siloedNullifier } = await this.findNoteIndexAndNullifier(newCommitments, newNullifiers[0], payload, excludedIndices);
100
- const index = BigInt(dataStartIndexForTx + commitmentIndex);
101
- excludedIndices.add(commitmentIndex);
102
- noteDaos.push(new NoteDao(payload.note, payload.contractAddress, payload.storageSlot, blockContext.getTxHash(indexOfTxInABlock), nonce, innerNoteHash, siloedNullifier, index, this.publicKey));
101
+ const noteDao = await produceNoteDao(this.simulator, this.publicKey, payload, txHash, newCommitments, dataStartIndexForTx, excludedIndices);
102
+ noteDaos.push(noteDao);
103
103
  this.stats.decrypted++;
104
104
  }
105
105
  catch (e) {
106
- this.stats.failed++;
107
- this.log.warn(`Could not process note because of "${e}". Skipping note...`);
106
+ if (e instanceof ContractNotFoundError) {
107
+ this.stats.deferred++;
108
+ this.log.warn(e.message);
109
+ const deferredNoteDao = new DeferredNoteDao(this.publicKey, payload.note, payload.contractAddress, payload.storageSlot, txHash, newCommitments, dataStartIndexForTx);
110
+ deferredNoteDaos.push(deferredNoteDao);
111
+ }
112
+ else {
113
+ this.stats.failed++;
114
+ this.log.warn(`Could not process note because of "${e}". Discarding note...`);
115
+ }
108
116
  }
109
117
  }
110
118
  }
@@ -116,76 +124,11 @@ export class NoteProcessor {
116
124
  });
117
125
  }
118
126
  await this.processBlocksAndNotes(blocksAndNotes);
127
+ await this.processDeferredNotes(deferredNoteDaos);
119
128
  const syncedToBlock = l2BlockContexts[l2BlockContexts.length - 1].block.number;
120
129
  await this.db.setSynchedBlockNumberForPublicKey(this.publicKey, syncedToBlock);
121
130
  this.log(`Synched block ${syncedToBlock}`);
122
131
  }
123
- /**
124
- * Find the index of the note in the note hash tree by computing the note hash with different nonce and see which
125
- * commitment for the current tx matches this value.
126
- * Compute a nullifier for a given l1NotePayload.
127
- * The nullifier is calculated using the private key of the account,
128
- * contract address, and the note associated with the l1NotePayload.
129
- * This method assists in identifying spent commitments in the private state.
130
- * @param commitments - Commitments in the tx. One of them should be the note's commitment.
131
- * @param firstNullifier - First nullifier in the tx.
132
- * @param l1NotePayload - An instance of l1NotePayload.
133
- * @param excludedIndices - Indices that have been assigned a note in the same tx. Notes in a tx can have the same
134
- * l1NotePayload. We need to find a different index for each replicate.
135
- * @returns Information for a decrypted note, including the index of its commitment, nonce, inner note
136
- * hash, and the siloed nullifier. Throw if cannot find the nonce for the note.
137
- */
138
- async findNoteIndexAndNullifier(commitments, firstNullifier, { contractAddress, storageSlot, note }, excludedIndices) {
139
- let commitmentIndex = 0;
140
- let nonce;
141
- let innerNoteHash;
142
- let siloedNoteHash;
143
- let uniqueSiloedNoteHash;
144
- let innerNullifier;
145
- for (; commitmentIndex < commitments.length; ++commitmentIndex) {
146
- if (excludedIndices.has(commitmentIndex)) {
147
- continue;
148
- }
149
- const commitment = commitments[commitmentIndex];
150
- if (commitment.equals(Fr.ZERO)) {
151
- break;
152
- }
153
- const expectedNonce = computeCommitmentNonce(firstNullifier, commitmentIndex);
154
- ({ innerNoteHash, siloedNoteHash, uniqueSiloedNoteHash, innerNullifier } =
155
- await this.simulator.computeNoteHashAndNullifier(contractAddress, expectedNonce, storageSlot, note));
156
- if (commitment.equals(uniqueSiloedNoteHash)) {
157
- nonce = expectedNonce;
158
- break;
159
- }
160
- }
161
- if (!nonce) {
162
- let errorString;
163
- if (siloedNoteHash == undefined) {
164
- errorString = 'Cannot find a matching commitment for the note.';
165
- }
166
- else {
167
- errorString = `We decrypted a log, but couldn't find a corresponding note in the tree.
168
- This might be because the note was nullified in the same tx which created it.
169
- In that case, everything is fine. To check whether this is the case, look back through
170
- the logs for a notification
171
- 'important: chopped commitment for siloed inner hash note
172
- ${siloedNoteHash.toString()}'.
173
- If you can see that notification. Everything's fine.
174
- If that's not the case, and you can't find such a notification, something has gone wrong.
175
- There could be a problem with the way you've defined a custom note, or with the way you're
176
- serializing / deserializing / hashing / encrypting / decrypting that note.
177
- Please see the following github issue to track an improvement that we're working on:
178
- https://github.com/AztecProtocol/aztec-packages/issues/1641`;
179
- }
180
- throw new Error(errorString);
181
- }
182
- return {
183
- commitmentIndex,
184
- nonce,
185
- innerNoteHash: innerNoteHash,
186
- siloedNullifier: siloNullifier(contractAddress, innerNullifier),
187
- };
188
- }
189
132
  /**
190
133
  * Process the given blocks and their associated transaction auxiliary data.
191
134
  * This function updates the database with information about new transactions,
@@ -209,5 +152,45 @@ https://github.com/AztecProtocol/aztec-packages/issues/1641`;
209
152
  this.log(`Removed note for contract ${noteDao.contractAddress} at slot ${noteDao.storageSlot} with nullifier ${noteDao.siloedNullifier.toString()}`);
210
153
  });
211
154
  }
155
+ /**
156
+ * Store the given deferred notes in the database for later decoding.
157
+ *
158
+ * @param deferredNoteDaos - notes that are intended for us but we couldn't process because the contract was not found.
159
+ */
160
+ async processDeferredNotes(deferredNoteDaos) {
161
+ if (deferredNoteDaos.length) {
162
+ await this.db.addDeferredNotes(deferredNoteDaos);
163
+ deferredNoteDaos.forEach(noteDao => {
164
+ this.log(`Deferred note for contract ${noteDao.contractAddress} at slot ${noteDao.storageSlot} in tx ${noteDao.txHash.toString()}`);
165
+ });
166
+ }
167
+ }
168
+ /**
169
+ * Retry decoding the given deferred notes because we now have the contract code.
170
+ *
171
+ * @param deferredNoteDaos - notes that we have previously deferred because the contract was not found
172
+ * @returns An array of NoteDaos that were successfully decoded.
173
+ *
174
+ * @remarks Caller is responsible for making sure that we have the contract for the
175
+ * deferred notes provided: we will not retry notes that fail again.
176
+ */
177
+ async decodeDeferredNotes(deferredNoteDaos) {
178
+ const excludedIndices = new Set();
179
+ const noteDaos = [];
180
+ for (const deferredNote of deferredNoteDaos) {
181
+ const { note, contractAddress, storageSlot, txHash, newCommitments, dataStartIndexForTx } = deferredNote;
182
+ const payload = new L1NotePayload(note, contractAddress, storageSlot);
183
+ try {
184
+ const noteDao = await produceNoteDao(this.simulator, this.publicKey, payload, txHash, newCommitments, dataStartIndexForTx, excludedIndices);
185
+ noteDaos.push(noteDao);
186
+ this.stats.decrypted++;
187
+ }
188
+ catch (e) {
189
+ this.stats.failed++;
190
+ this.log.warn(`Could not process deferred note because of "${e}". Discarding note...`);
191
+ }
192
+ }
193
+ return noteDaos;
194
+ }
212
195
  }
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZV9wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90ZV9wcm9jZXNzb3Ivbm90ZV9wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHlCQUF5QixFQUFhLE1BQU0sb0JBQW9CLENBQUM7QUFDdEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFBYSxvQkFBb0IsRUFBWSxhQUFhLEVBQWlDLE1BQU0sY0FBYyxDQUFDO0FBSXZILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWdCekQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFPeEI7SUFDRTs7T0FFRztJQUNhLFNBQW9CLEVBQzVCLFFBQWtCLEVBQ2xCLEVBQWUsRUFDZixJQUFlLEVBQ2YsZ0JBQXdCLG9CQUFvQixFQUM1QyxZQUFZLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQ2hELE1BQU0saUJBQWlCLENBQUMsc0JBQXNCLENBQUM7UUFOdkMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUM1QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFXO1FBQ2Ysa0JBQWEsR0FBYixhQUFhLENBQStCO1FBQzVD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
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZV9wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90ZV9wcm9jZXNzb3Ivbm90ZV9wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUVMLG9CQUFvQixFQUVwQixhQUFhLEdBR2QsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsMEJBQTBCLEVBQWEsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUduRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFnQnZEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBT3hCO0lBQ0U7O09BRUc7SUFDYSxTQUFvQixFQUM1QixRQUFrQixFQUNsQixFQUFlLEVBQ2YsSUFBZSxFQUNmLGdCQUF3QixvQkFBb0IsRUFDNUMsWUFBWSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUNoRCxNQUFNLGlCQUFpQixDQUFDLHNCQUFzQixDQUFDO1FBTnZDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDNUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsU0FBSSxHQUFKLElBQUksQ0FBVztRQUNmLGtCQUFhLEdBQWIsYUFBYSxDQUErQjtRQUM1QyxjQUFTLEdBQVQsU0FBUyxDQUF1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
@@ -0,0 +1,21 @@
1
+ import { AcirSimulator } from '@aztec/acir-simulator';
2
+ import { L1NotePayload, TxHash } from '@aztec/circuit-types';
3
+ import { Fr, PublicKey } from '@aztec/circuits.js';
4
+ import { NoteDao } from '../database/note_dao.js';
5
+ /**
6
+ * Decodes a note from a transaction that we know was intended for us.
7
+ * Throws if we do not yet have the contract corresponding to the note in our database.
8
+ * Accepts a set of excluded indices, which are indices that have been assigned a note in the same tx.
9
+ * Inserts the index of the note into the excludedIndices set if the note is successfully decoded.
10
+ *
11
+ * @param publicKey - The public counterpart to the private key to be used in note decryption.
12
+ * @param payload - An instance of l1NotePayload.
13
+ * @param txHash - The hash of the transaction that created the note. Equivalent to the first nullifier of the transaction.
14
+ * @param newCommitments - New commitments in this transaction, one of which belongs to this note.
15
+ * @param dataStartIndexForTx - The next available leaf index for the note hash tree for this transaction.
16
+ * @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
+ * @param simulator - An instance of AcirSimulator.
18
+ * @returns an instance of NoteDao, or throws. inserts the index of the note into the excludedIndices set.
19
+ */
20
+ export declare function produceNoteDao(simulator: AcirSimulator, publicKey: PublicKey, payload: L1NotePayload, txHash: TxHash, newCommitments: Fr[], dataStartIndexForTx: number, excludedIndices: Set<number>): Promise<NoteDao>;
21
+ //# sourceMappingURL=produce_note_dao.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"produce_note_dao.d.ts","sourceRoot":"","sources":["../../src/note_processor/produce_note_dao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,EAAE,EAAE,EACpB,mBAAmB,EAAE,MAAM,EAC3B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,GAC3B,OAAO,CAAC,OAAO,CAAC,CAqBlB"}
@@ -0,0 +1,92 @@
1
+ import { Fr } from '@aztec/circuits.js';
2
+ import { computeCommitmentNonce, siloNullifier } from '@aztec/circuits.js/abis';
3
+ import { NoteDao } from '../database/note_dao.js';
4
+ /**
5
+ * Decodes a note from a transaction that we know was intended for us.
6
+ * Throws if we do not yet have the contract corresponding to the note in our database.
7
+ * Accepts a set of excluded indices, which are indices that have been assigned a note in the same tx.
8
+ * Inserts the index of the note into the excludedIndices set if the note is successfully decoded.
9
+ *
10
+ * @param publicKey - The public counterpart to the private key to be used in note decryption.
11
+ * @param payload - An instance of l1NotePayload.
12
+ * @param txHash - The hash of the transaction that created the note. Equivalent to the first nullifier of the transaction.
13
+ * @param newCommitments - New commitments in this transaction, one of which belongs to this note.
14
+ * @param dataStartIndexForTx - The next available leaf index for the note hash tree for this transaction.
15
+ * @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
+ * @param simulator - An instance of AcirSimulator.
17
+ * @returns an instance of NoteDao, or throws. inserts the index of the note into the excludedIndices set.
18
+ */
19
+ export async function produceNoteDao(simulator, publicKey, payload, txHash, newCommitments, dataStartIndexForTx, excludedIndices) {
20
+ const { commitmentIndex, nonce, innerNoteHash, siloedNullifier } = await findNoteIndexAndNullifier(simulator, newCommitments, txHash, payload, excludedIndices);
21
+ const index = BigInt(dataStartIndexForTx + commitmentIndex);
22
+ excludedIndices?.add(commitmentIndex);
23
+ return new NoteDao(payload.note, payload.contractAddress, payload.storageSlot, txHash, nonce, innerNoteHash, siloedNullifier, index, publicKey);
24
+ }
25
+ /**
26
+ * Find the index of the note in the note hash tree by computing the note hash with different nonce and see which
27
+ * commitment for the current tx matches this value.
28
+ * Compute a nullifier for a given l1NotePayload.
29
+ * The nullifier is calculated using the private key of the account,
30
+ * contract address, and the note associated with the l1NotePayload.
31
+ * This method assists in identifying spent commitments in the private state.
32
+ * @param commitments - Commitments in the tx. One of them should be the note's commitment.
33
+ * @param txHash - First nullifier in the tx.
34
+ * @param l1NotePayload - An instance of l1NotePayload.
35
+ * @param excludedIndices - Indices that have been assigned a note in the same tx. Notes in a tx can have the same
36
+ * l1NotePayload. We need to find a different index for each replicate.
37
+ * @returns Information for a decrypted note, including the index of its commitment, nonce, inner note
38
+ * hash, and the siloed nullifier. Throw if cannot find the nonce for the note.
39
+ */
40
+ async function findNoteIndexAndNullifier(simulator, commitments, txHash, { contractAddress, storageSlot, note }, excludedIndices) {
41
+ let commitmentIndex = 0;
42
+ let nonce;
43
+ let innerNoteHash;
44
+ let siloedNoteHash;
45
+ let uniqueSiloedNoteHash;
46
+ let innerNullifier;
47
+ const firstNullifier = Fr.fromBuffer(txHash.toBuffer());
48
+ for (; commitmentIndex < commitments.length; ++commitmentIndex) {
49
+ if (excludedIndices.has(commitmentIndex)) {
50
+ continue;
51
+ }
52
+ const commitment = commitments[commitmentIndex];
53
+ if (commitment.equals(Fr.ZERO)) {
54
+ break;
55
+ }
56
+ const expectedNonce = computeCommitmentNonce(firstNullifier, commitmentIndex);
57
+ ({ innerNoteHash, siloedNoteHash, uniqueSiloedNoteHash, innerNullifier } =
58
+ await simulator.computeNoteHashAndNullifier(contractAddress, expectedNonce, storageSlot, note));
59
+ if (commitment.equals(uniqueSiloedNoteHash)) {
60
+ nonce = expectedNonce;
61
+ break;
62
+ }
63
+ }
64
+ if (!nonce) {
65
+ let errorString;
66
+ if (siloedNoteHash == undefined) {
67
+ errorString = 'Cannot find a matching commitment for the note.';
68
+ }
69
+ else {
70
+ errorString = `We decrypted a log, but couldn't find a corresponding note in the tree.
71
+ This might be because the note was nullified in the same tx which created it.
72
+ In that case, everything is fine. To check whether this is the case, look back through
73
+ the logs for a notification
74
+ 'important: chopped commitment for siloed inner hash note
75
+ ${siloedNoteHash.toString()}'.
76
+ If you can see that notification. Everything's fine.
77
+ If that's not the case, and you can't find such a notification, something has gone wrong.
78
+ There could be a problem with the way you've defined a custom note, or with the way you're
79
+ serializing / deserializing / hashing / encrypting / decrypting that note.
80
+ Please see the following github issue to track an improvement that we're working on:
81
+ https://github.com/AztecProtocol/aztec-packages/issues/1641`;
82
+ }
83
+ throw new Error(errorString);
84
+ }
85
+ return {
86
+ commitmentIndex,
87
+ nonce,
88
+ innerNoteHash: innerNoteHash,
89
+ siloedNullifier: siloNullifier(contractAddress, innerNullifier),
90
+ };
91
+ }
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjZV9ub3RlX2Rhby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub3RlX3Byb2Nlc3Nvci9wcm9kdWNlX25vdGVfZGFvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQWEsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWxEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLFNBQXdCLEVBQ3hCLFNBQW9CLEVBQ3BCLE9BQXNCLEVBQ3RCLE1BQWMsRUFDZCxjQUFvQixFQUNwQixtQkFBMkIsRUFDM0IsZUFBNEI7SUFFNUIsTUFBTSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxHQUFHLE1BQU0seUJBQXlCLENBQ2hHLFNBQVMsRUFDVCxjQUFjLEVBQ2QsTUFBTSxFQUNOLE9BQU8sRUFDUCxlQUFlLENBQ2hCLENBQUM7SUFDRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsbUJBQW1CLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFDNUQsZUFBZSxFQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN0QyxPQUFPLElBQUksT0FBTyxDQUNoQixPQUFPLENBQUMsSUFBSSxFQUNaLE9BQU8sQ0FBQyxlQUFlLEVBQ3ZCLE9BQU8sQ0FBQyxXQUFXLEVBQ25CLE1BQU0sRUFDTixLQUFLLEVBQ0wsYUFBYSxFQUNiLGVBQWUsRUFDZixLQUFLLEVBQ0wsU0FBUyxDQUNWLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxLQUFLLFVBQVUseUJBQXlCLENBQ3RDLFNBQXdCLEVBQ3hCLFdBQWlCLEVBQ2pCLE1BQWMsRUFDZCxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFpQixFQUNyRCxlQUE0QjtJQUU1QixJQUFJLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDeEIsSUFBSSxLQUFxQixDQUFDO0lBQzFCLElBQUksYUFBNkIsQ0FBQztJQUNsQyxJQUFJLGNBQThCLENBQUM7SUFDbkMsSUFBSSxvQkFBb0MsQ0FBQztJQUN6QyxJQUFJLGNBQThCLENBQUM7SUFDbkMsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUV4RCxPQUFPLGVBQWUsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsZUFBZSxFQUFFO1FBQzlELElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUN4QyxTQUFTO1NBQ1Y7UUFFRCxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDaEQsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM5QixNQUFNO1NBQ1A7UUFFRCxNQUFNLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDOUUsQ0FBQyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFO1lBQ3RFLE1BQU0sU0FBUyxDQUFDLDJCQUEyQixDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQUU7WUFDM0MsS0FBSyxHQUFHLGFBQWEsQ0FBQztZQUN0QixNQUFNO1NBQ1A7S0FDRjtJQUVELElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixJQUFJLFdBQVcsQ0FBQztRQUNoQixJQUFJLGNBQWMsSUFBSSxTQUFTLEVBQUU7WUFDL0IsV0FBVyxHQUFHLGlEQUFpRCxDQUFDO1NBQ2pFO2FBQU07WUFDTCxXQUFXLEdBQUc7Ozs7O0VBS2xCLGNBQWMsQ0FBQyxRQUFRLEVBQUU7Ozs7Ozs0REFNaUMsQ0FBQztTQUN4RDtRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDOUI7SUFFRCxPQUFPO1FBQ0wsZUFBZTtRQUNmLEtBQUs7UUFDTCxhQUFhLEVBQUUsYUFBYztRQUM3QixlQUFlLEVBQUUsYUFBYSxDQUFDLGVBQWUsRUFBRSxjQUFlLENBQUM7S0FDakUsQ0FBQztBQUNKLENBQUMifQ==
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
+ import { PXE } from '@aztec/circuit-types';
2
3
  import { JsonRpcServer } from '@aztec/foundation/json-rpc/server';
3
- import { PXE } from '@aztec/types';
4
4
  import http from 'http';
5
5
  export declare const localAnvil: {
6
6
  readonly id: 31337;
@@ -1 +1 @@
1
- {"version":3,"file":"pxe_http_server.d.ts","sourceRoot":"","sources":["../../src/pxe_http/pxe_http_server.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAYL,GAAG,EAKJ,MAAM,cAAc,CAAC;AAEtB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;CAAU,CAAC;AAElC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,GAAG,aAAa,CA2BjE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAQtF"}
1
+ {"version":3,"file":"pxe_http_server.d.ts","sourceRoot":"","sources":["../../src/pxe_http/pxe_http_server.ts"],"names":[],"mappings":";AAAA,OAAO,EAYL,GAAG,EAKJ,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;CAAU,CAAC;AAElC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,GAAG,aAAa,CA2BjE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAQtF"}
@@ -1,9 +1,9 @@
1
+ import { AuthWitness, CompleteAddress, ContractData, ExtendedContractData, ExtendedNote, ExtendedUnencryptedL2Log, L2Block, L2BlockL2Logs, L2Tx, LogId, Note, Tx, TxExecutionRequest, TxHash, TxReceipt, } from '@aztec/circuit-types';
1
2
  import { FunctionSelector } from '@aztec/circuits.js';
2
3
  import { AztecAddress } from '@aztec/foundation/aztec-address';
3
4
  import { EthAddress } from '@aztec/foundation/eth-address';
4
5
  import { Fr, GrumpkinScalar, Point } from '@aztec/foundation/fields';
5
6
  import { JsonRpcServer } from '@aztec/foundation/json-rpc/server';
6
- import { AuthWitness, CompleteAddress, ContractData, ExtendedContractData, ExtendedNote, ExtendedUnencryptedL2Log, L2Block, L2BlockL2Logs, L2Tx, LogId, Note, Tx, TxExecutionRequest, TxHash, TxReceipt, } from '@aztec/types';
7
7
  import http from 'http';
8
8
  import { foundry } from 'viem/chains';
9
9
  export const localAnvil = foundry;
@@ -46,4 +46,4 @@ export function startPXEHttpServer(pxeService, port) {
46
46
  httpServer.listen(port);
47
47
  return httpServer;
48
48
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX2h0dHBfc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B4ZV9odHRwL3B4ZV9odHRwX3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGVBQWUsRUFDZixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLFlBQVksRUFDWix3QkFBd0IsRUFDeEIsT0FBTyxFQUNQLGFBQWEsRUFDYixJQUFJLEVBQ0osS0FBSyxFQUNMLElBQUksRUFFSixFQUFFLEVBQ0Ysa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdEMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQztBQUVsQzs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsVUFBZTtJQUNoRCxPQUFPLElBQUksYUFBYSxDQUN0QixVQUFVLEVBQ1Y7UUFDRSxlQUFlO1FBQ2YsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQixZQUFZO1FBQ1osb0JBQW9CO1FBQ3BCLHdCQUF3QjtRQUN4QixnQkFBZ0I7UUFDaEIsTUFBTTtRQUNOLFVBQVU7UUFDVixLQUFLO1FBQ0wsRUFBRTtRQUNGLGNBQWM7UUFDZCxJQUFJO1FBQ0osWUFBWTtRQUNaLFdBQVc7UUFDWCxPQUFPO1FBQ1AsSUFBSTtRQUNKLEtBQUs7S0FDTixFQUNELEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsRUFDaEMsS0FBSyxFQUNMLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUNsQixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFVBQWUsRUFBRSxJQUFxQjtJQUN2RSxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVqRCxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDL0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNyRCxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXhCLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMifQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX2h0dHBfc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B4ZV9odHRwL3B4ZV9odHRwX3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGVBQWUsRUFDZixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLFlBQVksRUFDWix3QkFBd0IsRUFDeEIsT0FBTyxFQUNQLGFBQWEsRUFDYixJQUFJLEVBQ0osS0FBSyxFQUNMLElBQUksRUFFSixFQUFFLEVBQ0Ysa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVsRSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBRWxDOzs7R0FHRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUFlO0lBQ2hELE9BQU8sSUFBSSxhQUFhLENBQ3RCLFVBQVUsRUFDVjtRQUNFLGVBQWU7UUFDZixZQUFZO1FBQ1osa0JBQWtCO1FBQ2xCLFlBQVk7UUFDWixvQkFBb0I7UUFDcEIsd0JBQXdCO1FBQ3hCLGdCQUFnQjtRQUNoQixNQUFNO1FBQ04sVUFBVTtRQUNWLEtBQUs7UUFDTCxFQUFFO1FBQ0YsY0FBYztRQUNkLElBQUk7UUFDSixZQUFZO1FBQ1osV0FBVztRQUNYLE9BQU87UUFDUCxJQUFJO1FBQ0osS0FBSztLQUNOLEVBQ0QsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxFQUNoQyxLQUFLLEVBQ0wsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQ2xCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsVUFBZSxFQUFFLElBQXFCO0lBQ3ZFLE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWpELE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMvQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFeEIsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyJ9
@@ -1,4 +1,4 @@
1
- import { AztecNode } from '@aztec/types';
1
+ import { AztecNode } from '@aztec/circuit-types';
2
2
  import { PXEServiceConfig } from '../config/index.js';
3
3
  import { PXEService } from './pxe_service.js';
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"create_pxe_service.d.ts","sourceRoot":"","sources":["../../src/pxe_service/create_pxe_service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,EACxB,YAAY,GAAE,MAAM,GAAG,OAAO,GAAG,SAAqB,uBAuBvD"}
1
+ {"version":3,"file":"create_pxe_service.d.ts","sourceRoot":"","sources":["../../src/pxe_service/create_pxe_service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAOjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,EACxB,YAAY,GAAE,MAAM,GAAG,OAAO,GAAG,SAAqB,uBAuBvD"}
@@ -29,4 +29,4 @@ export async function createPXEService(aztecNode, config, useLogSuffix = undefin
29
29
  await server.start();
30
30
  return server;
31
31
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX3B4ZV9zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B4ZV9zZXJ2aWNlL2NyZWF0ZV9weGVfc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUM7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsU0FBb0IsRUFDcEIsTUFBd0IsRUFDeEIsZUFBNkMsU0FBUztJQUV0RCxNQUFNLFNBQVMsR0FDYixPQUFPLFlBQVksS0FBSyxTQUFTO1FBQy9CLENBQUMsQ0FBQyxZQUFZO1lBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDLFNBQVM7UUFDYixDQUFDLENBQUMsWUFBWSxDQUFDO0lBRW5CLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDNUYsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNwRyxNQUFNLFdBQVcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBRTdELE1BQU0sUUFBUSxHQUFHLElBQUksWUFBWSxDQUMvQixJQUFJLFFBQVEsRUFBRSxFQUNkLE1BQU0sY0FBYyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUNyRSxDQUFDO0lBQ0YsTUFBTSxFQUFFLEdBQUcsSUFBSSxhQUFhLENBQUMsTUFBTSxjQUFjLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUVoRyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFMUUsTUFBTSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyJ9
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX3B4ZV9zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B4ZV9zZXJ2aWNlL2NyZWF0ZV9weGVfc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUM7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsU0FBb0IsRUFDcEIsTUFBd0IsRUFDeEIsZUFBNkMsU0FBUztJQUV0RCxNQUFNLFNBQVMsR0FDYixPQUFPLFlBQVksS0FBSyxTQUFTO1FBQy9CLENBQUMsQ0FBQyxZQUFZO1lBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDLFNBQVM7UUFDYixDQUFDLENBQUMsWUFBWSxDQUFDO0lBRW5CLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDNUYsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNwRyxNQUFNLFdBQVcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBRTdELE1BQU0sUUFBUSxHQUFHLElBQUksWUFBWSxDQUMvQixJQUFJLFFBQVEsRUFBRSxFQUNkLE1BQU0sY0FBYyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUNyRSxDQUFDO0lBQ0YsTUFBTSxFQUFFLEdBQUcsSUFBSSxhQUFhLENBQUMsTUFBTSxjQUFjLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUVoRyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFMUUsTUFBTSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyJ9
@@ -1,7 +1,8 @@
1
+ import { AuthWitness, AztecNode, ContractData, DeployedContract, ExtendedContractData, ExtendedNote, GetUnencryptedLogsResponse, KeyStore, L2Block, L2Tx, LogFilter, NoteFilter, PXE, Tx, TxExecutionRequest, TxHash, TxReceipt } from '@aztec/circuit-types';
1
2
  import { AztecAddress, CompleteAddress, GrumpkinPrivateKey, PartialAddress } from '@aztec/circuits.js';
2
3
  import { DecodedReturn } from '@aztec/foundation/abi';
3
4
  import { Fr } from '@aztec/foundation/fields';
4
- import { AuthWitness, AztecNode, ContractData, DeployedContract, ExtendedContractData, ExtendedNote, GetUnencryptedLogsResponse, KeyStore, L2Block, L2Tx, LogFilter, NodeInfo, NoteFilter, PXE, Tx, TxExecutionRequest, TxHash, TxReceipt } from '@aztec/types';
5
+ import { NodeInfo } from '@aztec/types/interfaces';
5
6
  import { PXEServiceConfig } from '../config/index.js';
6
7
  import { PxeDatabase } from '../database/index.js';
7
8
  /**
@@ -17,7 +18,7 @@ export declare class PXEService implements PXE {
17
18
  private contractDataOracle;
18
19
  private simulator;
19
20
  private log;
20
- private sandboxVersion;
21
+ private nodeVersion;
21
22
  private jobQueue;
22
23
  constructor(keyStore: KeyStore, node: AztecNode, db: PxeDatabase, config: PXEServiceConfig, logSuffix?: string);
23
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"pxe_service.d.ts","sourceRoot":"","sources":["../../src/pxe_service/pxe_service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pxe_service.d.ts","sourceRoot":"","sources":["../../src/pxe_service/pxe_service.ts"],"names":[],"mappings":"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"}