@aztec/pxe 4.0.0-devnet.1-patch.1 → 4.0.0-devnet.2-patch.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 (98) hide show
  1. package/dest/access_scopes.d.ts +9 -0
  2. package/dest/access_scopes.d.ts.map +1 -0
  3. package/dest/access_scopes.js +6 -0
  4. package/dest/contract_function_simulator/contract_function_simulator.d.ts +5 -4
  5. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  6. package/dest/contract_function_simulator/contract_function_simulator.js +7 -11
  7. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +1 -1
  8. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +2 -2
  9. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  10. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +1 -1
  11. package/dest/contract_function_simulator/oracle/interfaces.d.ts +2 -2
  12. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  13. package/dest/contract_function_simulator/oracle/oracle.d.ts +2 -2
  14. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  15. package/dest/contract_function_simulator/oracle/oracle.js +2 -2
  16. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +3 -2
  17. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  18. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +10 -2
  19. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +5 -4
  20. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  21. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +12 -7
  22. package/dest/contract_sync/contract_sync_service.d.ts +4 -2
  23. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -1
  24. package/dest/contract_sync/contract_sync_service.js +34 -19
  25. package/dest/contract_sync/helpers.d.ts +3 -2
  26. package/dest/contract_sync/helpers.d.ts.map +1 -1
  27. package/dest/contract_sync/helpers.js +3 -3
  28. package/dest/debug/pxe_debug_utils.d.ts +5 -4
  29. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  30. package/dest/debug/pxe_debug_utils.js +1 -1
  31. package/dest/entrypoints/client/bundle/index.d.ts +3 -1
  32. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  33. package/dest/entrypoints/client/bundle/index.js +2 -0
  34. package/dest/entrypoints/client/lazy/index.d.ts +3 -1
  35. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  36. package/dest/entrypoints/client/lazy/index.js +2 -0
  37. package/dest/entrypoints/server/index.d.ts +3 -1
  38. package/dest/entrypoints/server/index.d.ts.map +1 -1
  39. package/dest/entrypoints/server/index.js +2 -0
  40. package/dest/logs/log_service.d.ts +3 -2
  41. package/dest/logs/log_service.d.ts.map +1 -1
  42. package/dest/logs/log_service.js +5 -10
  43. package/dest/notes/note_service.d.ts +4 -3
  44. package/dest/notes/note_service.d.ts.map +1 -1
  45. package/dest/notes/note_service.js +3 -2
  46. package/dest/notes_filter.d.ts +25 -0
  47. package/dest/notes_filter.d.ts.map +1 -0
  48. package/dest/notes_filter.js +4 -0
  49. package/dest/oracle_version.d.ts +2 -2
  50. package/dest/oracle_version.js +2 -2
  51. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  52. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  53. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  54. package/dest/private_kernel/hints/index.d.ts +1 -1
  55. package/dest/private_kernel/hints/index.js +1 -1
  56. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +4 -4
  57. package/dest/private_kernel/private_kernel_execution_prover.js +6 -6
  58. package/dest/pxe.d.ts +11 -7
  59. package/dest/pxe.d.ts.map +1 -1
  60. package/dest/pxe.js +13 -10
  61. package/dest/storage/note_store/note_store.d.ts +3 -3
  62. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  63. package/dest/storage/note_store/note_store.js +3 -4
  64. package/dest/tagging/get_all_logs_by_tags.d.ts +1 -1
  65. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
  66. package/dest/tagging/get_all_logs_by_tags.js +17 -3
  67. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +4 -4
  68. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +2 -2
  69. package/package.json +16 -16
  70. package/src/access_scopes.ts +9 -0
  71. package/src/contract_function_simulator/contract_function_simulator.ts +11 -15
  72. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +1 -1
  73. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +1 -1
  74. package/src/contract_function_simulator/oracle/interfaces.ts +1 -1
  75. package/src/contract_function_simulator/oracle/oracle.ts +2 -2
  76. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +14 -3
  77. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +15 -9
  78. package/src/contract_sync/contract_sync_service.ts +49 -26
  79. package/src/contract_sync/helpers.ts +7 -2
  80. package/src/debug/pxe_debug_utils.ts +8 -6
  81. package/src/entrypoints/client/bundle/index.ts +2 -0
  82. package/src/entrypoints/client/lazy/index.ts +2 -0
  83. package/src/entrypoints/server/index.ts +2 -0
  84. package/src/logs/log_service.ts +7 -19
  85. package/src/notes/note_service.ts +4 -3
  86. package/src/notes_filter.ts +26 -0
  87. package/src/oracle_version.ts +2 -2
  88. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  89. package/src/private_kernel/hints/index.ts +1 -1
  90. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +7 -7
  91. package/src/private_kernel/private_kernel_execution_prover.ts +6 -6
  92. package/src/pxe.ts +26 -22
  93. package/src/storage/note_store/note_store.ts +8 -5
  94. package/src/tagging/get_all_logs_by_tags.ts +28 -4
  95. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +4 -4
  96. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
  97. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  98. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
@@ -1,41 +1,41 @@
1
- import { MAX_INCLUDE_BY_TIMESTAMP_DURATION } from '@aztec/constants';
1
+ import { MAX_TX_LIFETIME } from '@aztec/constants';
2
2
  const ROUNDED_DURATIONS = [
3
3
  3600,
4
4
  1800,
5
5
  1
6
6
  ];
7
- function roundTimestamp(blockTimestamp, includeByTimestamp) {
7
+ function roundTimestamp(blockTimestamp, expirationTimestamp) {
8
8
  return ROUNDED_DURATIONS.reduce((timestamp, duration)=>{
9
9
  if (timestamp <= blockTimestamp) {
10
10
  // The timestamp must be greater than the block timestamp.
11
11
  // If it is too small, round it down again using a smaller duration.
12
- const totalDuration = includeByTimestamp - blockTimestamp;
12
+ const totalDuration = expirationTimestamp - blockTimestamp;
13
13
  const roundedDuration = totalDuration - totalDuration % BigInt(duration);
14
14
  return blockTimestamp + roundedDuration;
15
15
  }
16
16
  return timestamp;
17
17
  }, 0n);
18
18
  }
19
- export function computeTxIncludeByTimestamp(previousKernel, maxDuration = MAX_INCLUDE_BY_TIMESTAMP_DURATION) {
20
- if (maxDuration > MAX_INCLUDE_BY_TIMESTAMP_DURATION) {
21
- throw new Error(`Custom max duration cannot be greater than the max allowed. Max allowed: ${MAX_INCLUDE_BY_TIMESTAMP_DURATION}. Custom value: ${maxDuration}.`);
19
+ export function computeTxExpirationTimestamp(previousKernel, txLifetime = MAX_TX_LIFETIME) {
20
+ if (txLifetime > MAX_TX_LIFETIME) {
21
+ throw new Error(`Custom tx lifetime cannot be greater than the max allowed. Max allowed: ${MAX_TX_LIFETIME}. Custom value: ${txLifetime}.`);
22
22
  }
23
23
  const anchorBlockTimestamp = previousKernel.constants.anchorBlockHeader.globalVariables.timestamp;
24
- const maxTimestamp = anchorBlockTimestamp + BigInt(maxDuration);
25
- const includeByTimestamp = previousKernel.includeByTimestamp;
26
- // If the includeByTimestamp set during the tx execution is greater than or equal to the max allowed duration,
24
+ const maxTimestamp = anchorBlockTimestamp + BigInt(txLifetime);
25
+ const expirationTimestamp = previousKernel.expirationTimestamp;
26
+ // If the expirationTimestamp set during the tx execution is greater than or equal to the max allowed duration,
27
27
  // use the maximum allowed timestamp.
28
28
  // Note: It shouldn't be larger than the max allowed duration, but we check for it anyway.
29
- if (includeByTimestamp >= maxTimestamp) {
29
+ if (expirationTimestamp >= maxTimestamp) {
30
30
  return maxTimestamp;
31
31
  }
32
32
  // Round it down to the nearest hour/min/second to reduce precision and avoid revealing the exact value.
33
33
  // This makes it harder for others to infer what function calls may have been used to produce a specific timestamp.
34
- const roundedTimestamp = roundTimestamp(anchorBlockTimestamp, includeByTimestamp);
34
+ const roundedTimestamp = roundTimestamp(anchorBlockTimestamp, expirationTimestamp);
35
35
  // The tx can't be published if the timestamp is the same or less than the anchor block's timestamp.
36
36
  // Future blocks will have a greater timestamp, so the tx would never be included.
37
37
  if (roundedTimestamp <= anchorBlockTimestamp) {
38
- throw new Error(`Include-by timestamp must be greater than the anchor block timestamp. Anchor block timestamp: ${anchorBlockTimestamp}. Include-by timestamp: ${includeByTimestamp}.`);
38
+ throw new Error(`Include-by timestamp must be greater than the anchor block timestamp. Anchor block timestamp: ${anchorBlockTimestamp}. Include-by timestamp: ${expirationTimestamp}.`);
39
39
  }
40
40
  return roundedTimestamp;
41
41
  }
@@ -1,3 +1,3 @@
1
1
  export * from './private_kernel_reset_private_inputs_builder.js';
2
- export * from './compute_tx_include_by_timestamp.js';
2
+ export * from './compute_tx_expiration_timestamp.js';
3
3
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcml2YXRlX2tlcm5lbC9oaW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsc0NBQXNDLENBQUMifQ==
@@ -1,2 +1,2 @@
1
1
  export * from './private_kernel_reset_private_inputs_builder.js';
2
- export * from './compute_tx_include_by_timestamp.js';
2
+ export * from './compute_tx_expiration_timestamp.js';
@@ -25,7 +25,7 @@ function getNullifierMembershipWitnessResolver(oracle) {
25
25
  };
26
26
  };
27
27
  }
28
- async function getMasterSecretKeysAndAppKeyGenerators(keyValidationRequests, numRequestsToVerify, oracle) {
28
+ async function getMasterSecretKeysAndKeyTypeDomainSeparators(keyValidationRequests, numRequestsToVerify, oracle) {
29
29
  const numRequestsToProcess = Math.min(keyValidationRequests.claimedLength, numRequestsToVerify);
30
30
  const keysHints = await Promise.all(keyValidationRequests.array.slice(0, numRequestsToProcess).map(async ({ request })=>{
31
31
  const secretKeys = await oracle.getMasterSecretKey(request.request.pkM);
@@ -101,7 +101,7 @@ export class PrivateKernelResetPrivateInputsBuilder {
101
101
  buildNullifierReadRequestHintsFromResetActions({
102
102
  getNullifierMembershipWitness: getNullifierMembershipWitnessResolver(oracle)
103
103
  }, this.previousKernel.validationRequests.nullifierReadRequests, this.nullifierResetActions),
104
- getMasterSecretKeysAndAppKeyGenerators(this.previousKernel.validationRequests.scopedKeyValidationRequestsAndGenerators, dimensions.KEY_VALIDATION, oracle)
104
+ getMasterSecretKeysAndKeyTypeDomainSeparators(this.previousKernel.validationRequests.scopedKeyValidationRequestsAndSeparators, dimensions.KEY_VALIDATION, oracle)
105
105
  ]);
106
106
  const vkData = new VkData(this.previousKernelOutput.verificationKey, Number(previousVkMembershipWitness.leafIndex), previousVkMembershipWitness.siblingPath);
107
107
  const previousKernelData = new PrivateKernelData(this.previousKernelOutput.publicInputs, vkData);
@@ -191,8 +191,8 @@ export class PrivateKernelResetPrivateInputsBuilder {
191
191
  return true;
192
192
  }
193
193
  needsResetNullifierKeys() {
194
- const numCurr = this.previousKernel.validationRequests.scopedKeyValidationRequestsAndGenerators.claimedLength;
195
- const numNext = this.nextIteration ? this.nextIteration.keyValidationRequestsAndGenerators.claimedLength : 0;
194
+ const numCurr = this.previousKernel.validationRequests.scopedKeyValidationRequestsAndSeparators.claimedLength;
195
+ const numNext = this.nextIteration ? this.nextIteration.keyValidationRequestsAndSeparators.claimedLength : 0;
196
196
  const maxAmountToKeep = !this.nextIteration ? 0 : MAX_KEY_VALIDATION_REQUESTS_PER_TX;
197
197
  if (numCurr + numNext <= maxAmountToKeep) {
198
198
  return false;
@@ -161,14 +161,14 @@ const NULL_SIMULATE_OUTPUT = {
161
161
  this.log.debug(`Calling private kernel tail with hwm ${previousKernelData.publicInputs.minRevertibleSideEffectCounter}`);
162
162
  // TODO: Enable padding once we better understand the final amounts to pad to.
163
163
  const paddedSideEffectAmounts = PaddedSideEffectAmounts.empty();
164
- // Use the aggregated includeByTimestamp set throughout the tx execution.
165
- // TODO: Call `computeTxIncludeByTimestamp` to round the value down and reduce precision, improving privacy.
166
- const includeByTimestampUpperBound = previousKernelData.publicInputs.includeByTimestamp;
164
+ // Use the aggregated expirationTimestamp set throughout the tx execution.
165
+ // TODO: Call `computeTxExpirationTimestamp` to round the value down and reduce precision, improving privacy.
166
+ const expirationTimestampUpperBound = previousKernelData.publicInputs.expirationTimestamp;
167
167
  const anchorBlockTimestamp = previousKernelData.publicInputs.constants.anchorBlockHeader.globalVariables.timestamp;
168
- if (includeByTimestampUpperBound <= anchorBlockTimestamp) {
169
- throw new Error(`Include-by timestamp must be greater than the anchor block timestamp. Anchor block timestamp: ${anchorBlockTimestamp}. Include-by timestamp: ${includeByTimestampUpperBound}.`);
168
+ if (expirationTimestampUpperBound <= anchorBlockTimestamp) {
169
+ throw new Error(`Include-by timestamp must be greater than the anchor block timestamp. Anchor block timestamp: ${anchorBlockTimestamp}. Include-by timestamp: ${expirationTimestampUpperBound}.`);
170
170
  }
171
- const privateInputs = new PrivateKernelTailCircuitPrivateInputs(previousKernelData, paddedSideEffectAmounts, includeByTimestampUpperBound);
171
+ const privateInputs = new PrivateKernelTailCircuitPrivateInputs(previousKernelData, paddedSideEffectAmounts, expirationTimestampUpperBound);
172
172
  const witgenTimer = new Timer();
173
173
  const tailOutput = generateWitnesses ? await this.proofCreator.generateTailOutput(privateInputs) : await this.proofCreator.simulateTail(privateInputs);
174
174
  executionSteps.push({
package/dest/pxe.d.ts CHANGED
@@ -10,6 +10,7 @@ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
10
10
  import { CompleteAddress, type ContractInstanceWithAddress, type PartialAddress } from '@aztec/stdlib/contract';
11
11
  import type { AztecNode, PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
12
12
  import { BlockHeader, type InTx, SimulationOverrides, TxExecutionRequest, TxProfileResult, TxProvingResult, TxSimulationResult, UtilitySimulationResult } from '@aztec/stdlib/tx';
13
+ import type { AccessScopes } from './access_scopes.js';
13
14
  import type { PXEConfig } from './config/index.js';
14
15
  import { PXEDebugUtils } from './debug/pxe_debug_utils.js';
15
16
  export type PackedPrivateEvent = InTx & {
@@ -22,6 +23,8 @@ export type ProfileTxOpts = {
22
23
  profileMode: 'full' | 'execution-steps' | 'gates';
23
24
  /** If true, proof generation is skipped during profiling. Defaults to true. */
24
25
  skipProofGeneration?: boolean;
26
+ /** Addresses whose private state and keys are accessible during private execution. */
27
+ scopes: AccessScopes;
25
28
  };
26
29
  /** Options for PXE.simulateTx. */
27
30
  export type SimulateTxOpts = {
@@ -33,15 +36,15 @@ export type SimulateTxOpts = {
33
36
  skipFeeEnforcement?: boolean;
34
37
  /** State overrides for the simulation, such as contract instances and artifacts. */
35
38
  overrides?: SimulationOverrides;
36
- /** The accounts whose notes we can access in this call. Defaults to all. */
37
- scopes?: AztecAddress[];
39
+ /** Addresses whose private state and keys are accessible during private execution */
40
+ scopes: AccessScopes;
38
41
  };
39
42
  /** Options for PXE.simulateUtility. */
40
43
  export type SimulateUtilityOpts = {
41
44
  /** The authentication witnesses required for the function call. */
42
45
  authwits?: AuthWitness[];
43
- /** The accounts whose notes we can access in this call. Defaults to all. */
44
- scopes?: AztecAddress[];
46
+ /** The accounts whose notes we can access in this call */
47
+ scopes: AccessScopes;
45
48
  };
46
49
  /** Args for PXE.create. */
47
50
  export type PXECreateArgs = {
@@ -188,18 +191,19 @@ export declare class PXE {
188
191
  * (where validators prove the public portion).
189
192
  *
190
193
  * @param txRequest - An authenticated tx request ready for proving
194
+ * @param scopes - Addresses whose private state and keys are accessible during private execution.
191
195
  * @returns A result containing the proof and public inputs of the tail circuit.
192
196
  * @throws If contract code not found, or public simulation reverts.
193
197
  * Also throws if simulatePublic is true and public simulation reverts.
194
198
  */
195
- proveTx(txRequest: TxExecutionRequest): Promise<TxProvingResult>;
199
+ proveTx(txRequest: TxExecutionRequest, scopes: AztecAddress[]): Promise<TxProvingResult>;
196
200
  /**
197
201
  * Profiles a transaction, reporting gate counts (unless disabled) and returns an execution trace.
198
202
  * @param txRequest - An authenticated tx request ready for simulation.
199
203
  * @returns A trace of the program execution with gate counts.
200
204
  * @throws If the code for the functions executed in this transaction have not been made available via `addContracts`.
201
205
  */
202
- profileTx(txRequest: TxExecutionRequest, { profileMode, skipProofGeneration }: ProfileTxOpts): Promise<TxProfileResult>;
206
+ profileTx(txRequest: TxExecutionRequest, { profileMode, skipProofGeneration, scopes }: ProfileTxOpts): Promise<TxProfileResult>;
203
207
  /**
204
208
  * Simulates a transaction based on the provided preauthenticated execution request.
205
209
  * This will run a local simulation of private execution (and optionally of public as well), run the
@@ -243,4 +247,4 @@ export declare class PXE {
243
247
  */
244
248
  stop(): Promise<void>;
245
249
  }
246
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHhlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBcUMsTUFBTSx1QkFBdUIsQ0FBQztBQUl2RixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxLQUFLLHlCQUF5QixFQUF5QixNQUFNLDJCQUEyQixDQUFDO0FBQ2xHLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLGFBQWEsRUFDYixZQUFZLEVBR2IsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLEtBQUssMkJBQTJCLEVBQ2hDLEtBQUssY0FBYyxFQUdwQixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBTXRGLE9BQU8sRUFDTCxXQUFXLEVBRVgsS0FBSyxJQUFJLEVBS1QsbUJBQW1CLEVBR25CLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsZUFBZSxFQUNmLGtCQUFrQixFQUNsQix1QkFBdUIsRUFDeEIsTUFBTSxrQkFBa0IsQ0FBQztBQUsxQixPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFtQjNELE1BQU0sTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUc7SUFDdEMsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ2xCLGFBQWEsRUFBRSxhQUFhLENBQUM7Q0FDOUIsQ0FBQztBQUVGLGlDQUFpQztBQUNqQyxNQUFNLE1BQU0sYUFBYSxHQUFHO0lBQzFCLGlDQUFpQztJQUNqQyxXQUFXLEVBQUUsTUFBTSxHQUFHLGlCQUFpQixHQUFHLE9BQU8sQ0FBQztJQUNsRCwrRUFBK0U7SUFDL0UsbUJBQW1CLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDL0IsQ0FBQztBQUVGLGtDQUFrQztBQUNsQyxNQUFNLE1BQU0sY0FBYyxHQUFHO0lBQzNCLDhEQUE4RDtJQUM5RCxjQUFjLEVBQUUsT0FBTyxDQUFDO0lBQ3hCLGtIQUFrSDtJQUNsSCxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUMzQixtQ0FBbUM7SUFDbkMsa0JBQWtCLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDN0Isb0ZBQW9GO0lBQ3BGLFNBQVMsQ0FBQyxFQUFFLG1CQUFtQixDQUFDO0lBQ2hDLDRFQUE0RTtJQUM1RSxNQUFNLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQztDQUN6QixDQUFDO0FBRUYsdUNBQXVDO0FBQ3ZDLE1BQU0sTUFBTSxtQkFBbUIsR0FBRztJQUNoQyxtRUFBbUU7SUFDbkUsUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDekIsNEVBQTRFO0lBQzVFLE1BQU0sQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDO0NBQ3pCLENBQUM7QUFFRiwyQkFBMkI7QUFDM0IsTUFBTSxNQUFNLGFBQWEsR0FBRztJQUMxQixvQ0FBb0M7SUFDcEMsSUFBSSxFQUFFLFNBQVMsQ0FBQztJQUNoQixvREFBb0Q7SUFDcEQsS0FBSyxFQUFFLGlCQUFpQixDQUFDO0lBQ3pCLHVEQUF1RDtJQUN2RCxZQUFZLEVBQUUsbUJBQW1CLENBQUM7SUFDbEMseURBQXlEO0lBQ3pELFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQztJQUM1Qiw4REFBOEQ7SUFDOUQseUJBQXlCLEVBQUUseUJBQXlCLENBQUM7SUFDckQsaUNBQWlDO0lBQ2pDLE1BQU0sRUFBRSxTQUFTLENBQUM7SUFDbEIscUVBQXFFO0lBQ3JFLGNBQWMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDbEMsQ0FBQztBQUVGOzs7R0FHRztBQUNILHFCQUFhLEdBQUc7O0lBRVosT0FBTyxDQUFDLElBQUk7SUFDWixPQUFPLENBQUMsc0JBQXNCO0lBQzlCLE9BQU8sQ0FBQyxRQUFRO0lBQ2hCLE9BQU8sQ0FBQyxhQUFhO0lBQ3JCLE9BQU8sQ0FBQyxTQUFTO0lBQ2pCLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIsT0FBTyxDQUFDLGtCQUFrQjtJQUMxQixPQUFPLENBQUMsc0JBQXNCO0lBQzlCLE9BQU8sQ0FBQyxxQkFBcUI7SUFDN0IsT0FBTyxDQUFDLFlBQVk7SUFDcEIsT0FBTyxDQUFDLGlCQUFpQjtJQUN6QixPQUFPLENBQUMsbUJBQW1CO0lBQzNCLE9BQU8sQ0FBQyxTQUFTO0lBQ2pCLE9BQU8sQ0FBQyxhQUFhO0lBQ3JCLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyx5QkFBeUI7SUFDakMsT0FBTyxDQUFDLEdBQUc7SUFDWCxPQUFPLENBQUMsUUFBUTtJQUNoQixPQUFPLENBQUMsY0FBYztJQUNmLEtBQUssRUFBRSxhQUFhO0lBckI3QixPQUFPLGVBc0JIO0lBRUo7Ozs7OztPQU1HO0lBQ0gsT0FBb0IsTUFBTSxDQUFDLEVBQ3pCLElBQUksRUFDSixLQUFLLEVBQ0wsWUFBWSxFQUNaLFNBQVMsRUFDVCx5QkFBeUIsRUFDekIsTUFBTSxFQUNOLGNBQWMsRUFDZixFQUFFLGFBQWEsZ0JBMkZmO0lBOE1EOzs7T0FHRztJQUNJLG9CQUFvQixJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FFbEQ7SUFFRDs7OztPQUlHO0lBQ0ksbUJBQW1CLENBQUMsT0FBTyxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsMkJBQTJCLEdBQUcsU0FBUyxDQUFDLENBRWxHO0lBRUQ7Ozs7T0FJRztJQUNVLG1CQUFtQixDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxDQUU5RTtJQUVEOzs7Ozs7Ozs7T0FTRztJQUNVLGVBQWUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxjQUFjLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQWFwRztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNVLGNBQWMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FnQnZFO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVSxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUUzQztJQUVEOzs7T0FHRztJQUNVLFlBQVksQ0FBQyxNQUFNLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FRN0Q7SUFFRDs7O09BR0c7SUFDVSxxQkFBcUIsSUFBSSxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FRL0Q7SUFFRDs7OztPQUlHO0lBQ1UscUJBQXFCLENBQUMsUUFBUSxFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJNUU7SUFFRDs7Ozs7OztPQU9HO0lBQ1UsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO1FBQUUsUUFBUSxFQUFFLDJCQUEyQixDQUFDO1FBQUMsUUFBUSxDQUFDLEVBQUUsZ0JBQWdCLENBQUE7S0FBRSxpQkFxQzdHO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxjQUFjLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQTZCOUY7SUFFRDs7O09BR0c7SUFDSSxZQUFZLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBRTdDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxPQUFPLENBQUMsU0FBUyxFQUFFLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0F1RXRFO0lBRUQ7Ozs7O09BS0c7SUFDSSxTQUFTLENBQ2QsU0FBUyxFQUFFLGtCQUFrQixFQUM3QixFQUFFLFdBQVcsRUFBRSxtQkFBMEIsRUFBRSxFQUFFLGFBQWEsR0FDekQsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQXVFMUI7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpQkc7SUFDSSxVQUFVLENBQ2YsU0FBUyxFQUFFLGtCQUFrQixFQUM3QixFQUFFLGNBQWMsRUFBRSxnQkFBd0IsRUFBRSxrQkFBMEIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEVBQUUsY0FBYyxHQUMxRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FnSTdCO0lBRUQ7OztPQUdHO0lBQ0ksZUFBZSxDQUNwQixJQUFJLEVBQUUsWUFBWSxFQUNsQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRSxtQkFBd0IsR0FDN0MsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBc0RsQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNVLGdCQUFnQixDQUMzQixhQUFhLEVBQUUsYUFBYSxFQUM1QixNQUFNLEVBQUUsa0JBQWtCLEdBQ3pCLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBNkIvQjtJQUVEOztPQUVHO0lBQ0ksSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFM0I7Q0FDRiJ9
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHhlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBcUMsTUFBTSx1QkFBdUIsQ0FBQztBQUl2RixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxLQUFLLHlCQUF5QixFQUF5QixNQUFNLDJCQUEyQixDQUFDO0FBQ2xHLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLGFBQWEsRUFDYixZQUFZLEVBR2IsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLEtBQUssMkJBQTJCLEVBQ2hDLEtBQUssY0FBYyxFQUdwQixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBTXRGLE9BQU8sRUFDTCxXQUFXLEVBRVgsS0FBSyxJQUFJLEVBS1QsbUJBQW1CLEVBR25CLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsZUFBZSxFQUNmLGtCQUFrQixFQUNsQix1QkFBdUIsRUFDeEIsTUFBTSxrQkFBa0IsQ0FBQztBQUkxQixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVB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
package/dest/pxe.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pxe.d.ts","sourceRoot":"","sources":["../src/pxe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pxe.d.ts","sourceRoot":"","sources":["../src/pxe.ts"],"names":[],"mappings":"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"}
package/dest/pxe.js CHANGED
@@ -193,7 +193,7 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
193
193
  const { origin: contractAddress, functionSelector } = txRequest;
194
194
  try {
195
195
  const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
196
- await this.contractSyncService.ensureContractSynced(contractAddress, functionSelector, (privateSyncCall)=>this.#simulateUtility(contractFunctionSimulator, privateSyncCall, [], undefined, jobId), anchorBlockHeader, jobId);
196
+ await this.contractSyncService.ensureContractSynced(contractAddress, functionSelector, (privateSyncCall, execScopes)=>this.#simulateUtility(contractFunctionSimulator, privateSyncCall, [], execScopes, jobId), anchorBlockHeader, jobId, scopes);
197
197
  const result = await contractFunctionSimulator.run(txRequest, {
198
198
  contractAddress,
199
199
  selector: functionSelector,
@@ -451,10 +451,11 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
451
451
  * (where validators prove the public portion).
452
452
  *
453
453
  * @param txRequest - An authenticated tx request ready for proving
454
+ * @param scopes - Addresses whose private state and keys are accessible during private execution.
454
455
  * @returns A result containing the proof and public inputs of the tail circuit.
455
456
  * @throws If contract code not found, or public simulation reverts.
456
457
  * Also throws if simulatePublic is true and public simulation reverts.
457
- */ proveTx(txRequest) {
458
+ */ proveTx(txRequest, scopes) {
458
459
  let privateExecutionResult;
459
460
  // We disable proving concurrently mostly out of caution, since it accesses some of our stores. Proving is so
460
461
  // computationally demanding that it'd be rare for someone to try to do it concurrently regardless.
@@ -465,7 +466,7 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
465
466
  await this.blockStateSynchronizer.sync();
466
467
  const syncTime = syncTimer.ms();
467
468
  const contractFunctionSimulator = this.#getSimulatorForTx();
468
- privateExecutionResult = await this.#executePrivate(contractFunctionSimulator, txRequest, undefined, jobId);
469
+ privateExecutionResult = await this.#executePrivate(contractFunctionSimulator, txRequest, scopes, jobId);
469
470
  const { publicInputs, chonkProof, executionSteps, timings: { proving } = {} } = await this.#prove(txRequest, this.proofCreator, privateExecutionResult, {
470
471
  simulate: false,
471
472
  skipFeeEnforcement: false,
@@ -518,7 +519,7 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
518
519
  * @param txRequest - An authenticated tx request ready for simulation.
519
520
  * @returns A trace of the program execution with gate counts.
520
521
  * @throws If the code for the functions executed in this transaction have not been made available via `addContracts`.
521
- */ profileTx(txRequest, { profileMode, skipProofGeneration = true }) {
522
+ */ profileTx(txRequest, { profileMode, skipProofGeneration = true, scopes }) {
522
523
  // We disable concurrent profiles for consistency with simulateTx.
523
524
  return this.#putInJobQueue(async (jobId)=>{
524
525
  const totalTimer = new Timer();
@@ -536,7 +537,7 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
536
537
  await this.blockStateSynchronizer.sync();
537
538
  const syncTime = syncTimer.ms();
538
539
  const contractFunctionSimulator = this.#getSimulatorForTx();
539
- const privateExecutionResult = await this.#executePrivate(contractFunctionSimulator, txRequest, undefined, jobId);
540
+ const privateExecutionResult = await this.#executePrivate(contractFunctionSimulator, txRequest, scopes, jobId);
540
541
  const { executionSteps, timings: { proving } = {} } = await this.#prove(txRequest, this.proofCreator, privateExecutionResult, {
541
542
  simulate: skipProofGeneration,
542
543
  skipFeeEnforcement: false,
@@ -682,14 +683,16 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
682
683
  nodeRPCCalls: simulatorStats.nodeRPCCalls
683
684
  });
684
685
  } catch (err) {
685
- throw this.#contextualizeError(err, inspect(txRequest), `simulatePublic=${simulatePublic}`, `skipTxValidation=${skipTxValidation}`, `scopes=${scopes?.map((s)=>s.toString()).join(', ') ?? 'undefined'}`);
686
+ throw this.#contextualizeError(err, inspect(txRequest), `simulatePublic=${simulatePublic}`, `skipTxValidation=${skipTxValidation}`, `scopes=${scopes === 'ALL_SCOPES' ? scopes : scopes.map((s)=>s.toString()).join(', ')}`);
686
687
  }
687
688
  });
688
689
  }
689
690
  /**
690
691
  * Simulates the execution of a contract utility function.
691
692
  * @param call - The function call containing the function details, arguments, and target contract address.
692
- */ simulateUtility(call, { authwits, scopes } = {}) {
693
+ */ simulateUtility(call, { authwits, scopes } = {
694
+ scopes: 'ALL_SCOPES'
695
+ }) {
693
696
  // We disable concurrent simulations since those might execute oracles which read and write to the PXE stores (e.g.
694
697
  // to the capsules), and we need to prevent concurrent runs from interfering with one another (e.g. attempting to
695
698
  // delete the same read value, or reading values that another simulation is currently modifying).
@@ -702,7 +705,7 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
702
705
  const functionTimer = new Timer();
703
706
  const contractFunctionSimulator = this.#getSimulatorForTx();
704
707
  const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
705
- await this.contractSyncService.ensureContractSynced(call.to, call.selector, (privateSyncCall)=>this.#simulateUtility(contractFunctionSimulator, privateSyncCall, [], undefined, jobId), anchorBlockHeader, jobId);
708
+ await this.contractSyncService.ensureContractSynced(call.to, call.selector, (privateSyncCall, execScopes)=>this.#simulateUtility(contractFunctionSimulator, privateSyncCall, [], execScopes, jobId), anchorBlockHeader, jobId, scopes);
706
709
  const executionResult = await this.#simulateUtility(contractFunctionSimulator, call, authwits ?? [], scopes, jobId);
707
710
  const functionTime = functionTimer.ms();
708
711
  const totalTime = totalTimer.ms();
@@ -729,7 +732,7 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
729
732
  } catch (err) {
730
733
  const { to, name, args } = call;
731
734
  const stringifiedArgs = args.map((arg)=>arg.toString()).join(', ');
732
- throw this.#contextualizeError(err, `simulateUtility ${to}:${name}(${stringifiedArgs})`, `scopes=${scopes?.map((s)=>s.toString()).join(', ') ?? 'undefined'}`);
735
+ throw this.#contextualizeError(err, `simulateUtility ${to}:${name}(${stringifiedArgs})`, `scopes=${scopes === 'ALL_SCOPES' ? scopes : scopes.map((s)=>s.toString()).join(', ')}`);
733
736
  }
734
737
  });
735
738
  }
@@ -752,7 +755,7 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
752
755
  const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
753
756
  anchorBlockNumber = anchorBlockHeader.getBlockNumber();
754
757
  const contractFunctionSimulator = this.#getSimulatorForTx();
755
- await this.contractSyncService.ensureContractSynced(filter.contractAddress, null, async (privateSyncCall)=>await this.#simulateUtility(contractFunctionSimulator, privateSyncCall, [], undefined, jobId), anchorBlockHeader, jobId);
758
+ await this.contractSyncService.ensureContractSynced(filter.contractAddress, null, async (privateSyncCall, execScopes)=>await this.#simulateUtility(contractFunctionSimulator, privateSyncCall, [], execScopes, jobId), anchorBlockHeader, jobId, filter.scopes);
756
759
  });
757
760
  // anchorBlockNumber is set during the job and fixed to whatever it is after a block sync
758
761
  const sanitizedFilter = new PrivateEventFilterValidator(anchorBlockNumber).validate(filter);
@@ -2,8 +2,9 @@ import type { Fr } from '@aztec/foundation/schemas';
2
2
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
3
3
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import type { DataInBlock } from '@aztec/stdlib/block';
5
- import { NoteDao, type NotesFilter } from '@aztec/stdlib/note';
5
+ import { NoteDao } from '@aztec/stdlib/note';
6
6
  import type { StagedStore } from '../../job_coordinator/job_coordinator.js';
7
+ import type { NotesFilter } from '../../notes_filter.js';
7
8
  /**
8
9
  * NoteStore manages the storage and retrieval of notes.
9
10
  *
@@ -35,7 +36,6 @@ export declare class NoteStore implements StagedStore {
35
36
  * @params jobId - the job context to read from.
36
37
  * @returns Filtered and deduplicated notes (a note might be present in multiple scopes - we ensure it is only
37
38
  * returned once if this is the case)
38
- * @throws If filtering by an empty scopes array. Scopes have to be set to undefined or to a non-empty array.
39
39
  */
40
40
  getNotes(filter: NotesFilter, jobId: string): Promise<NoteDao[]>;
41
41
  /**
@@ -80,4 +80,4 @@ export declare class NoteStore implements StagedStore {
80
80
  commit(jobId: string): Promise<void>;
81
81
  discardStaged(jobId: string): Promise<void>;
82
82
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZV9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JhZ2Uvbm90ZV9zdG9yZS9ub3RlX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFxQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVGLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQWMsS0FBSyxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUzRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUc1RTs7Ozs7SUFLSTtBQUNKLHFCQUFhLFNBQVUsWUFBVyxXQUFXOztJQUMzQyxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBVTtJQStCcEMsWUFBWSxLQUFLLEVBQUUsaUJBQWlCLEVBUW5DO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBYXJGO0lBY0Q7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxRQUFRLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQTZGL0Q7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNILGVBQWUsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0F5Q2hGO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDVSxRQUFRLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQU1wRjtJQTZFRDs7Ozs7Ozs7O09BU0c7SUFDRyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBVXpDO0lBRUQsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUcxQztDQWtDRiJ9
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZV9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JhZ2Uvbm90ZV9zdG9yZS9ub3RlX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFxQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVGLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd6RDs7Ozs7SUFLSTtBQUNKLHFCQUFhLFNBQVUsWUFBVyxXQUFXOztJQUMzQyxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBVTtJQStCcEMsWUFBWSxLQUFLLEVBQUUsaUJBQWlCLEVBUW5DO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBYXJGO0lBY0Q7Ozs7Ozs7Ozs7T0FVRztJQUNILFFBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBZ0cvRDtJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0gsZUFBZSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQXlDaEY7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNVLFFBQVEsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBTXBGO0lBNkVEOzs7Ozs7Ozs7T0FTRztJQUNHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FVekM7SUFFRCxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRzFDO0NBa0NGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"note_store.d.ts","sourceRoot":"","sources":["../../../src/storage/note_store/note_store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAG5E;;;;;IAKI;AACJ,qBAAa,SAAU,YAAW,WAAW;;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAU;IA+BpC,YAAY,KAAK,EAAE,iBAAiB,EAQnC;IAED;;;;;;;;;OASG;IACI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAarF;IAcD;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA6F/D;IAED;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAyChF;IAED;;;;;;;;;;;OAWG;IACU,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpF;IA6ED;;;;;;;;;OASG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUzC;IAED,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1C;CAkCF"}
1
+ {"version":3,"file":"note_store.d.ts","sourceRoot":"","sources":["../../../src/storage/note_store/note_store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAc,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD;;;;;IAKI;AACJ,qBAAa,SAAU,YAAW,WAAW;;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAU;IA+BpC,YAAY,KAAK,EAAE,iBAAiB,EAQnC;IAED;;;;;;;;;OASG;IACI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAarF;IAcD;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAgG/D;IAED;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAyChF;IAED;;;;;;;;;;;OAWG;IACU,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpF;IA6ED;;;;;;;;;OASG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUzC;IAED,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1C;CAkCF"}
@@ -74,10 +74,9 @@ import { StoredNote } from './stored_note.js';
74
74
  * @params jobId - the job context to read from.
75
75
  * @returns Filtered and deduplicated notes (a note might be present in multiple scopes - we ensure it is only
76
76
  * returned once if this is the case)
77
- * @throws If filtering by an empty scopes array. Scopes have to be set to undefined or to a non-empty array.
78
77
  */ getNotes(filter, jobId) {
79
- if (filter.scopes !== undefined && filter.scopes.length === 0) {
80
- return Promise.reject(new Error('Trying to get notes with an empty scopes array'));
78
+ if (filter.scopes !== 'ALL_SCOPES' && filter.scopes.length === 0) {
79
+ return Promise.resolve([]);
81
80
  }
82
81
  return this.#store.transactionAsync(async ()=>{
83
82
  const targetStatus = filter.status ?? NoteStatus.ACTIVE;
@@ -136,7 +135,7 @@ import { StoredNote } from './stored_note.js';
136
135
  if (filter.siloedNullifier && !note.noteDao.siloedNullifier.equals(filter.siloedNullifier)) {
137
136
  continue;
138
137
  }
139
- if (filter.scopes && note.scopes.intersection(new Set(filter.scopes.map((s)=>s.toString()))).size === 0) {
138
+ if (filter.scopes !== 'ALL_SCOPES' && note.scopes.intersection(new Set(filter.scopes.map((s)=>s.toString()))).size === 0) {
140
139
  continue;
141
140
  }
142
141
  foundNotes.set(note.noteDao.siloedNullifier.toString(), note.noteDao);
@@ -21,4 +21,4 @@ export declare function getAllPrivateLogsByTags(aztecNode: AztecNode, tags: Silo
21
21
  * @returns An array of log arrays, one per tag, containing all logs across all pages.
22
22
  */
23
23
  export declare function getAllPublicLogsByTagsFromContract(aztecNode: AztecNode, contractAddress: AztecAddress, tags: Tag[], anchorBlockHash: BlockHash): Promise<TxScopedL2Log[][]>;
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0X2FsbF9sb2dzX2J5X3RhZ3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90YWdnaW5nL2dldF9hbGxfbG9nc19ieV90YWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUE2QnhFOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0IsdUJBQXVCLENBQ3JDLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLElBQUksRUFBRSxTQUFTLEVBQUUsRUFDakIsZUFBZSxFQUFFLFNBQVMsR0FDekIsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FFNUI7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQixrQ0FBa0MsQ0FDaEQsU0FBUyxFQUFFLFNBQVMsRUFDcEIsZUFBZSxFQUFFLFlBQVksRUFDN0IsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUNYLGVBQWUsRUFBRSxTQUFTLEdBQ3pCLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBSTVCIn0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0X2FsbF9sb2dzX2J5X3RhZ3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90YWdnaW5nL2dldF9hbGxfbG9nc19ieV90YWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFpRHhFOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0IsdUJBQXVCLENBQ3JDLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLElBQUksRUFBRSxTQUFTLEVBQUUsRUFDakIsZUFBZSxFQUFFLFNBQVMsR0FDekIsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FJNUI7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQixrQ0FBa0MsQ0FDaEQsU0FBUyxFQUFFLFNBQVMsRUFDcEIsZUFBZSxFQUFFLFlBQVksRUFDN0IsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUNYLGVBQWUsRUFBRSxTQUFTLEdBQ3pCLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBTTVCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"get_all_logs_by_tags.d.ts","sourceRoot":"","sources":["../../src/tagging/get_all_logs_by_tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA6BxE;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,SAAS,EAAE,EACjB,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAE5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAChD,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,YAAY,EAC7B,IAAI,EAAE,GAAG,EAAE,EACX,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAI5B"}
1
+ {"version":3,"file":"get_all_logs_by_tags.d.ts","sourceRoot":"","sources":["../../src/tagging/get_all_logs_by_tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAiDxE;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,SAAS,EAAE,EACjB,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAI5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAChD,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,YAAY,EAC7B,IAAI,EAAE,GAAG,EAAE,EACX,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAM5B"}
@@ -1,4 +1,4 @@
1
- import { MAX_LOGS_PER_TAG } from '@aztec/stdlib/interfaces/api-limit';
1
+ import { MAX_LOGS_PER_TAG, MAX_RPC_LEN } from '@aztec/stdlib/interfaces/api-limit';
2
2
  /**
3
3
  * Generic pagination helper that fetches all pages of results.
4
4
  * @param numTags - The number of tags being queried (determines result array size).
@@ -23,6 +23,20 @@ import { MAX_LOGS_PER_TAG } from '@aztec/stdlib/interfaces/api-limit';
23
23
  }
24
24
  return allResultsPerTag;
25
25
  }
26
+ /**
27
+ * Splits tags into chunks of MAX_RPC_LEN, fetches logs for each chunk using getAllPages, then stitches the results
28
+ * back into a single array preserving the original tag order.
29
+ */ async function getAllPagesInBatches(tags, fetchAllPagesForBatch) {
30
+ if (tags.length <= MAX_RPC_LEN) {
31
+ return fetchAllPagesForBatch(tags);
32
+ }
33
+ const batches = [];
34
+ for(let i = 0; i < tags.length; i += MAX_RPC_LEN){
35
+ batches.push(tags.slice(i, i + MAX_RPC_LEN));
36
+ }
37
+ const batchResults = await Promise.all(batches.map(fetchAllPagesForBatch));
38
+ return batchResults.flat();
39
+ }
26
40
  /**
27
41
  * Fetches all private logs for the given tags, automatically paginating through all pages.
28
42
  * @param aztecNode - The Aztec node to query.
@@ -31,7 +45,7 @@ import { MAX_LOGS_PER_TAG } from '@aztec/stdlib/interfaces/api-limit';
31
45
  * because of reorgs).
32
46
  * @returns An array of log arrays, one per tag, containing all logs across all pages.
33
47
  */ export function getAllPrivateLogsByTags(aztecNode, tags, anchorBlockHash) {
34
- return getAllPages(tags.length, (page)=>aztecNode.getPrivateLogsByTags(tags, page, anchorBlockHash));
48
+ return getAllPagesInBatches(tags, (batch)=>getAllPages(batch.length, (page)=>aztecNode.getPrivateLogsByTags(batch, page, anchorBlockHash)));
35
49
  }
36
50
  /**
37
51
  * Fetches all public logs for the given tags from a contract, automatically paginating through all pages.
@@ -42,5 +56,5 @@ import { MAX_LOGS_PER_TAG } from '@aztec/stdlib/interfaces/api-limit';
42
56
  * because of reorgs).
43
57
  * @returns An array of log arrays, one per tag, containing all logs across all pages.
44
58
  */ export function getAllPublicLogsByTagsFromContract(aztecNode, contractAddress, tags, anchorBlockHash) {
45
- return getAllPages(tags.length, (page)=>aztecNode.getPublicLogsByTagsFromContract(contractAddress, tags, page, anchorBlockHash));
59
+ return getAllPagesInBatches(tags, (batch)=>getAllPages(batch.length, (page)=>aztecNode.getPublicLogsByTagsFromContract(contractAddress, batch, page, anchorBlockHash)));
46
60
  }
@@ -13,7 +13,7 @@ import { loadLogsForRange } from './utils/load_logs_for_range.js';
13
13
  // (highestAgedIndex, highestFinalizedIndex + WINDOW_LEN]
14
14
  //
15
15
  // highestAgedIndex is the highest index that was used in a tx that is included in a block at least
16
- // `MAX_INCLUDE_BY_TIMESTAMP_DURATION` seconds ago.
16
+ // `MAX_TX_LIFETIME` seconds ago.
17
17
  // highestFinalizedIndex is the highest index that was used in a tx that is included in a finalized block.
18
18
  //
19
19
  // "(" denotes an open end of the range - the index is not included in the range.
@@ -25,19 +25,19 @@ import { loadLogsForRange } from './utils/load_logs_for_range.js';
25
25
  // ever appear.
26
26
  //
27
27
  // This relies on the "maximum inclusion timestamp" rule enforced by the kernel and rollup circuits:
28
- // - a transaction's maximum inclusion timestamp is at most `MAX_INCLUDE_BY_TIMESTAMP_DURATION` seconds after
28
+ // - a transaction's maximum inclusion timestamp is at most `MAX_TX_LIFETIME` seconds after
29
29
  // the timestamp of its anchor block; and
30
30
  // - a rollup only includes transactions whose inclusion timestamp is >= the L2 block's timestamp.
31
31
  //
32
32
  // Suppose some device used index `I` in a transaction anchored to block `B_N` at time `N`, and that block is now at
33
- // least `MAX_INCLUDE_BY_TIMESTAMP_DURATION` seconds in the past. Then there is no possibility of any *other* device
33
+ // least `MAX_TX_LIFETIME` seconds in the past. Then there is no possibility of any *other* device
34
34
  // trying to use an index <= `I` while anchoring to a *newer* block than `B_N` because if we were anchoring to
35
35
  // a newer block than `B_N` then we would already have seen the log with index `I` and hence the device would have
36
36
  // chosen a larger index.
37
37
  // If that *other* device would anchor to a block older than `B_N` then that tx could never be included in a block
38
38
  // because it would already have been expired.
39
39
  //
40
- // Therefore, once we see that index `I` has been used in a block that is at least `MAX_INCLUDE_BY_TIMESTAMP_DURATION`
40
+ // Therefore, once we see that index `I` has been used in a block that is at least `MAX_TX_LIFETIME`
41
41
  // seconds old, we can safely stop syncing logs for all indexes <= `I` and set highestAgedIndex = `I`.
42
42
  //
43
43
  // ## Explanation of the upper bound `highestFinalizedIndex + WINDOW_LEN`
@@ -1,4 +1,4 @@
1
- import { MAX_INCLUDE_BY_TIMESTAMP_DURATION } from '@aztec/constants';
1
+ import { MAX_TX_LIFETIME } from '@aztec/constants';
2
2
  /**
3
3
  * Finds the highest aged and the highest finalized tagging indexes.
4
4
  */ export function findHighestIndexes(privateLogsWithIndexes, currentTimestamp, finalizedBlockNumber) {
@@ -6,7 +6,7 @@ import { MAX_INCLUDE_BY_TIMESTAMP_DURATION } from '@aztec/constants';
6
6
  let highestFinalizedIndex = undefined;
7
7
  for (const { log, taggingIndex } of privateLogsWithIndexes){
8
8
  const ageInSeconds = currentTimestamp - log.blockTimestamp;
9
- if (ageInSeconds >= BigInt(MAX_INCLUDE_BY_TIMESTAMP_DURATION) && (highestAgedIndex === undefined || taggingIndex > highestAgedIndex)) {
9
+ if (ageInSeconds >= BigInt(MAX_TX_LIFETIME) && (highestAgedIndex === undefined || taggingIndex > highestAgedIndex)) {
10
10
  highestAgedIndex = taggingIndex;
11
11
  }
12
12
  if (log.blockNumber <= finalizedBlockNumber && (highestFinalizedIndex === undefined || taggingIndex > highestFinalizedIndex)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/pxe",
3
- "version": "4.0.0-devnet.1-patch.1",
3
+ "version": "4.0.0-devnet.2-patch.0",
4
4
  "type": "module",
5
5
  "typedocOptions": {
6
6
  "entryPoints": [
@@ -70,19 +70,19 @@
70
70
  ]
71
71
  },
72
72
  "dependencies": {
73
- "@aztec/bb-prover": "4.0.0-devnet.1-patch.1",
74
- "@aztec/bb.js": "4.0.0-devnet.1-patch.1",
75
- "@aztec/builder": "4.0.0-devnet.1-patch.1",
76
- "@aztec/constants": "4.0.0-devnet.1-patch.1",
77
- "@aztec/ethereum": "4.0.0-devnet.1-patch.1",
78
- "@aztec/foundation": "4.0.0-devnet.1-patch.1",
79
- "@aztec/key-store": "4.0.0-devnet.1-patch.1",
80
- "@aztec/kv-store": "4.0.0-devnet.1-patch.1",
81
- "@aztec/noir-protocol-circuits-types": "4.0.0-devnet.1-patch.1",
82
- "@aztec/noir-types": "4.0.0-devnet.1-patch.1",
83
- "@aztec/protocol-contracts": "4.0.0-devnet.1-patch.1",
84
- "@aztec/simulator": "4.0.0-devnet.1-patch.1",
85
- "@aztec/stdlib": "4.0.0-devnet.1-patch.1",
73
+ "@aztec/bb-prover": "4.0.0-devnet.2-patch.0",
74
+ "@aztec/bb.js": "4.0.0-devnet.2-patch.0",
75
+ "@aztec/builder": "4.0.0-devnet.2-patch.0",
76
+ "@aztec/constants": "4.0.0-devnet.2-patch.0",
77
+ "@aztec/ethereum": "4.0.0-devnet.2-patch.0",
78
+ "@aztec/foundation": "4.0.0-devnet.2-patch.0",
79
+ "@aztec/key-store": "4.0.0-devnet.2-patch.0",
80
+ "@aztec/kv-store": "4.0.0-devnet.2-patch.0",
81
+ "@aztec/noir-protocol-circuits-types": "4.0.0-devnet.2-patch.0",
82
+ "@aztec/noir-types": "4.0.0-devnet.2-patch.0",
83
+ "@aztec/protocol-contracts": "4.0.0-devnet.2-patch.0",
84
+ "@aztec/simulator": "4.0.0-devnet.2-patch.0",
85
+ "@aztec/stdlib": "4.0.0-devnet.2-patch.0",
86
86
  "koa": "^2.16.1",
87
87
  "koa-router": "^13.1.1",
88
88
  "lodash.omit": "^4.5.0",
@@ -91,8 +91,8 @@
91
91
  "viem": "npm:@aztec/viem@2.38.2"
92
92
  },
93
93
  "devDependencies": {
94
- "@aztec/merkle-tree": "4.0.0-devnet.1-patch.1",
95
- "@aztec/noir-test-contracts.js": "4.0.0-devnet.1-patch.1",
94
+ "@aztec/merkle-tree": "4.0.0-devnet.2-patch.0",
95
+ "@aztec/noir-test-contracts.js": "4.0.0-devnet.2-patch.0",
96
96
  "@jest/globals": "^30.0.0",
97
97
  "@types/jest": "^30.0.0",
98
98
  "@types/lodash.omit": "^4.5.7",
@@ -0,0 +1,9 @@
1
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
2
+
3
+ /**
4
+ * Controls which accounts' private state and keys are accessible during execution.
5
+ * - `'ALL_SCOPES'`: All registered accounts' private state and keys are accessible.
6
+ * - `AztecAddress[]` with entries: Only the specified accounts' private state and keys are accessible.
7
+ * - `[]` (empty array): Deny-all. No private state is visible and no keys are accessible.
8
+ */
9
+ export type AccessScopes = 'ALL_SCOPES' | AztecAddress[];