@aztec/pxe 0.40.0 → 0.41.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 (71) hide show
  1. package/dest/database/kv_pxe_database.d.ts +1 -1
  2. package/dest/database/kv_pxe_database.js +2 -2
  3. package/dest/database/pxe_database.d.ts +5 -5
  4. package/dest/kernel_oracle/index.d.ts +7 -4
  5. package/dest/kernel_oracle/index.d.ts.map +1 -1
  6. package/dest/kernel_oracle/index.js +20 -4
  7. package/dest/kernel_prover/kernel_prover.d.ts.map +1 -1
  8. package/dest/kernel_prover/kernel_prover.js +17 -17
  9. package/dest/kernel_prover/private_inputs_builders/build_private_kernel_init_hints.d.ts +3 -0
  10. package/dest/kernel_prover/private_inputs_builders/build_private_kernel_init_hints.d.ts.map +1 -0
  11. package/dest/kernel_prover/private_inputs_builders/build_private_kernel_init_hints.js +11 -0
  12. package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_hints.d.ts +4 -0
  13. package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_hints.d.ts.map +1 -0
  14. package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_hints.js +59 -0
  15. package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_outputs.d.ts +4 -0
  16. package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_outputs.d.ts.map +1 -0
  17. package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_outputs.js +12 -0
  18. package/dest/kernel_prover/private_inputs_builders/build_private_kernel_tail_hints.d.ts +1 -2
  19. package/dest/kernel_prover/private_inputs_builders/build_private_kernel_tail_hints.d.ts.map +1 -1
  20. package/dest/kernel_prover/private_inputs_builders/build_private_kernel_tail_hints.js +7 -53
  21. package/dest/kernel_prover/private_inputs_builders/index.d.ts +3 -1
  22. package/dest/kernel_prover/private_inputs_builders/index.d.ts.map +1 -1
  23. package/dest/kernel_prover/private_inputs_builders/index.js +4 -2
  24. package/dest/kernel_prover/proving_data_oracle.d.ts +8 -6
  25. package/dest/kernel_prover/proving_data_oracle.d.ts.map +1 -1
  26. package/dest/kernel_prover/test/test_circuit_prover.d.ts +2 -1
  27. package/dest/kernel_prover/test/test_circuit_prover.d.ts.map +1 -1
  28. package/dest/kernel_prover/test/test_circuit_prover.js +14 -3
  29. package/dest/note_processor/note_processor.d.ts +2 -1
  30. package/dest/note_processor/note_processor.d.ts.map +1 -1
  31. package/dest/note_processor/note_processor.js +3 -2
  32. package/dest/note_processor/produce_note_dao.js +4 -20
  33. package/dest/pxe_service/create_pxe_service.d.ts +1 -1
  34. package/dest/pxe_service/create_pxe_service.d.ts.map +1 -1
  35. package/dest/pxe_service/create_pxe_service.js +6 -5
  36. package/dest/pxe_service/pxe_service.d.ts +5 -4
  37. package/dest/pxe_service/pxe_service.d.ts.map +1 -1
  38. package/dest/pxe_service/pxe_service.js +10 -12
  39. package/dest/pxe_service/test/pxe_test_suite.js +2 -2
  40. package/dest/simulator/index.d.ts +2 -1
  41. package/dest/simulator/index.d.ts.map +1 -1
  42. package/dest/simulator/index.js +1 -1
  43. package/dest/simulator_oracle/index.d.ts +6 -5
  44. package/dest/simulator_oracle/index.d.ts.map +1 -1
  45. package/dest/simulator_oracle/index.js +7 -8
  46. package/dest/synchronizer/synchronizer.d.ts +2 -1
  47. package/dest/synchronizer/synchronizer.d.ts.map +1 -1
  48. package/dest/synchronizer/synchronizer.js +8 -8
  49. package/package.json +14 -14
  50. package/src/database/kv_pxe_database.ts +2 -2
  51. package/src/database/pxe_database.ts +5 -5
  52. package/src/kernel_oracle/index.ts +29 -4
  53. package/src/kernel_prover/kernel_prover.ts +35 -26
  54. package/src/kernel_prover/private_inputs_builders/build_private_kernel_init_hints.ts +28 -0
  55. package/src/kernel_prover/private_inputs_builders/build_private_kernel_reset_hints.ts +179 -0
  56. package/src/kernel_prover/private_inputs_builders/{build_private_kernel_tail_outputs.ts → build_private_kernel_reset_outputs.ts} +14 -3
  57. package/src/kernel_prover/private_inputs_builders/build_private_kernel_tail_hints.ts +17 -126
  58. package/src/kernel_prover/private_inputs_builders/index.ts +3 -1
  59. package/src/kernel_prover/proving_data_oracle.ts +9 -5
  60. package/src/kernel_prover/test/test_circuit_prover.ts +24 -3
  61. package/src/note_processor/note_processor.ts +3 -2
  62. package/src/note_processor/produce_note_dao.ts +3 -19
  63. package/src/pxe_service/create_pxe_service.ts +9 -6
  64. package/src/pxe_service/pxe_service.ts +14 -12
  65. package/src/pxe_service/test/pxe_test_suite.ts +1 -1
  66. package/src/simulator/index.ts +2 -1
  67. package/src/simulator_oracle/index.ts +9 -9
  68. package/src/synchronizer/synchronizer.ts +8 -14
  69. package/dest/kernel_prover/private_inputs_builders/build_private_kernel_tail_outputs.d.ts +0 -4
  70. package/dest/kernel_prover/private_inputs_builders/build_private_kernel_tail_outputs.d.ts.map +0 -1
  71. package/dest/kernel_prover/private_inputs_builders/build_private_kernel_tail_outputs.js +0 -10
@@ -143,7 +143,7 @@ export const pxeTestSuite = (testName: string, pxeSetup: () => Promise<PXE>) =>
143
143
  );
144
144
  });
145
145
 
146
- // Note: Not testing a successful run of `proveTx`, `sendTx`, `getTxReceipt` and `viewTx` here as it requires
146
+ // Note: Not testing a successful run of `proveTx`, `sendTx`, `getTxReceipt` and `simulateUnconstrained` here as it requires
147
147
  // a larger setup and it's sufficiently tested in the e2e tests.
148
148
 
149
149
  it('throws when getting public storage for non-existent contract', async () => {
@@ -1,4 +1,5 @@
1
- import { type AztecNode, type KeyStore } from '@aztec/circuit-types';
1
+ import { type AztecNode } from '@aztec/circuit-types';
2
+ import { type KeyStore } from '@aztec/key-store';
2
3
  import { AcirSimulator } from '@aztec/simulator';
3
4
 
4
5
  import { ContractDataOracle } from '../contract_data_oracle/index.js';
@@ -1,6 +1,5 @@
1
1
  import {
2
2
  type AztecNode,
3
- type KeyStore,
4
3
  type L2Block,
5
4
  MerkleTreeId,
6
5
  type NoteStatus,
@@ -14,12 +13,14 @@ import {
14
13
  type Fr,
15
14
  type FunctionSelector,
16
15
  type Header,
16
+ type KeyValidationRequest,
17
17
  type L1_TO_L2_MSG_TREE_HEIGHT,
18
18
  } from '@aztec/circuits.js';
19
19
  import { computeL1ToL2MessageNullifier } from '@aztec/circuits.js/hash';
20
20
  import { type FunctionArtifact, getFunctionArtifact } from '@aztec/foundation/abi';
21
21
  import { createDebugLogger } from '@aztec/foundation/log';
22
- import { type DBOracle, MessageLoadOracleInputs, type NullifierKeys } from '@aztec/simulator';
22
+ import { type KeyStore } from '@aztec/key-store';
23
+ import { type DBOracle, MessageLoadOracleInputs } from '@aztec/simulator';
23
24
  import { type ContractInstance } from '@aztec/types/contracts';
24
25
 
25
26
  import { type ContractDataOracle } from '../contract_data_oracle/index.js';
@@ -37,17 +38,16 @@ export class SimulatorOracle implements DBOracle {
37
38
  private log = createDebugLogger('aztec:pxe:simulator_oracle'),
38
39
  ) {}
39
40
 
40
- async getNullifierKeys(accountAddress: AztecAddress, contractAddress: AztecAddress): Promise<NullifierKeys> {
41
- const masterNullifierPublicKey = await this.keyStore.getMasterNullifierPublicKey(accountAddress);
42
- const appNullifierSecretKey = await this.keyStore.getAppNullifierSecretKey(accountAddress, contractAddress);
43
- return { masterNullifierPublicKey, appNullifierSecretKey };
41
+ getKeyValidationRequest(pkMHash: Fr, contractAddress: AztecAddress): Promise<KeyValidationRequest> {
42
+ return this.keyStore.getKeyValidationRequest(pkMHash, contractAddress);
44
43
  }
45
44
 
46
- async getCompleteAddress(address: AztecAddress): Promise<CompleteAddress> {
47
- const completeAddress = await this.db.getCompleteAddress(address);
45
+ async getCompleteAddress(account: AztecAddress): Promise<CompleteAddress> {
46
+ const completeAddress = await this.db.getCompleteAddress(account);
48
47
  if (!completeAddress) {
49
48
  throw new Error(
50
- `No public key registered for address ${address.toString()}. Register it by calling pxe.registerRecipient(...) or pxe.registerAccount(...).\nSee docs for context: https://docs.aztec.network/developers/debugging/aztecnr-errors#simulation-error-No-public-key-registered-for-address-0x0-Register-it-by-calling-pxeregisterRecipient-or-pxeregisterAccount`,
49
+ `No public key registered for address ${account}.
50
+ Register it by calling pxe.registerRecipient(...) or pxe.registerAccount(...).\nSee docs for context: https://docs.aztec.network/developers/debugging/aztecnr-errors#simulation-error-No-public-key-registered-for-address-0x0-Register-it-by-calling-pxeregisterRecipient-or-pxeregisterAccount`,
51
51
  );
52
52
  }
53
53
  return completeAddress;
@@ -1,16 +1,10 @@
1
- import {
2
- type AztecNode,
3
- type KeyStore,
4
- type L2Block,
5
- L2BlockL2Logs,
6
- MerkleTreeId,
7
- type TxHash,
8
- } from '@aztec/circuit-types';
1
+ import { type AztecNode, type L2Block, L2BlockL2Logs, MerkleTreeId, type TxHash } from '@aztec/circuit-types';
9
2
  import { type NoteProcessorCaughtUpStats } from '@aztec/circuit-types/stats';
10
3
  import { type AztecAddress, type Fr, INITIAL_L2_BLOCK_NUM, type PublicKey } from '@aztec/circuits.js';
11
4
  import { type SerialQueue } from '@aztec/foundation/fifo';
12
5
  import { type DebugLogger, createDebugLogger } from '@aztec/foundation/log';
13
6
  import { RunningPromise } from '@aztec/foundation/running-promise';
7
+ import { type KeyStore } from '@aztec/key-store';
14
8
 
15
9
  import { type DeferredNoteDao } from '../database/deferred_note_dao.js';
16
10
  import { type PxeDatabase } from '../database/index.js';
@@ -105,18 +99,18 @@ export class Synchronizer {
105
99
  return false;
106
100
  }
107
101
 
108
- const encryptedLogs = blocks.flatMap(block => block.body.encryptedLogs);
102
+ const noteEncryptedLogs = blocks.flatMap(block => block.body.noteEncryptedLogs);
109
103
 
110
104
  // Update latest tree roots from the most recent block
111
105
  const latestBlock = blocks[blocks.length - 1];
112
106
  await this.setHeaderFromBlock(latestBlock);
113
107
 
114
- const logCount = L2BlockL2Logs.getTotalLogCount(encryptedLogs);
108
+ const logCount = L2BlockL2Logs.getTotalLogCount(noteEncryptedLogs);
115
109
  this.log.debug(
116
110
  `Forwarding ${logCount} encrypted logs and blocks to ${this.noteProcessors.length} note processors`,
117
111
  );
118
112
  for (const noteProcessor of this.noteProcessors) {
119
- await noteProcessor.process(blocks, encryptedLogs);
113
+ await noteProcessor.process(blocks, noteEncryptedLogs);
120
114
  }
121
115
  return true;
122
116
  } catch (err) {
@@ -182,9 +176,9 @@ export class Synchronizer {
182
176
  throw new Error('No blocks in processor catch up mode');
183
177
  }
184
178
 
185
- const encryptedLogs = blocks.flatMap(block => block.body.encryptedLogs);
179
+ const noteEncryptedLogs = blocks.flatMap(block => block.body.noteEncryptedLogs);
186
180
 
187
- const logCount = L2BlockL2Logs.getTotalLogCount(encryptedLogs);
181
+ const logCount = L2BlockL2Logs.getTotalLogCount(noteEncryptedLogs);
188
182
  this.log.debug(`Forwarding ${logCount} encrypted logs and blocks to note processors in catch up mode`);
189
183
 
190
184
  for (const noteProcessor of catchUpGroup) {
@@ -202,7 +196,7 @@ export class Synchronizer {
202
196
  blocks.length - index
203
197
  } blocks`,
204
198
  );
205
- await noteProcessor.process(blocks.slice(index), encryptedLogs.slice(index));
199
+ await noteProcessor.process(blocks.slice(index), noteEncryptedLogs.slice(index));
206
200
 
207
201
  if (noteProcessor.status.syncedToBlock === toBlockNumber) {
208
202
  // Note processor caught up, move it to `noteProcessors` from `noteProcessorsToCatchUp`.
@@ -1,4 +0,0 @@
1
- import { MAX_NEW_NOTE_HASHES_PER_TX, MAX_NEW_NULLIFIERS_PER_TX, PrivateKernelTailOutputs, ScopedNoteHash, ScopedNullifier } from '@aztec/circuits.js';
2
- import { type Tuple } from '@aztec/foundation/serialize';
3
- export declare function buildPrivateKernelTailOutputs(prevNoteHashes: Tuple<ScopedNoteHash, typeof MAX_NEW_NOTE_HASHES_PER_TX>, prevNullifiers: Tuple<ScopedNullifier, typeof MAX_NEW_NULLIFIERS_PER_TX>): PrivateKernelTailOutputs;
4
- //# sourceMappingURL=build_private_kernel_tail_outputs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build_private_kernel_tail_outputs.d.ts","sourceRoot":"","sources":["../../../src/kernel_prover/private_inputs_builders/build_private_kernel_tail_outputs.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,cAAc,EACd,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,0BAA0B,CAAC,EACxE,cAAc,EAAE,KAAK,CAAC,eAAe,EAAE,OAAO,yBAAyB,CAAC,4BAiBzE"}
@@ -1,10 +0,0 @@
1
- import { MAX_NEW_NOTE_HASHES_PER_TX, MAX_NEW_NULLIFIERS_PER_TX, PrivateKernelTailOutputs, ScopedNoteHash, ScopedNullifier, } from '@aztec/circuits.js';
2
- import { padArrayEnd } from '@aztec/foundation/collection';
3
- export function buildPrivateKernelTailOutputs(prevNoteHashes, prevNullifiers) {
4
- // Propagate note hashes that are not linked to a nullifier.
5
- // Note that note hashes can't link to the first nullifier (counter == 0).
6
- const noteHashes = padArrayEnd(prevNoteHashes.filter(n => !n.nullifierCounter), ScopedNoteHash.empty(), MAX_NEW_NOTE_HASHES_PER_TX);
7
- const nullifiers = padArrayEnd(prevNullifiers.filter(n => n.nullifiedNoteHash.isZero()), ScopedNullifier.empty(), MAX_NEW_NULLIFIERS_PER_TX);
8
- return new PrivateKernelTailOutputs(noteHashes, nullifiers);
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRfcHJpdmF0ZV9rZXJuZWxfdGFpbF9vdXRwdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2tlcm5lbF9wcm92ZXIvcHJpdmF0ZV9pbnB1dHNfYnVpbGRlcnMvYnVpbGRfcHJpdmF0ZV9rZXJuZWxfdGFpbF9vdXRwdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsZUFBZSxHQUNoQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUczRCxNQUFNLFVBQVUsNkJBQTZCLENBQzNDLGNBQXdFLEVBQ3hFLGNBQXdFO0lBRXhFLDREQUE0RDtJQUM1RCwwRUFBMEU7SUFDMUUsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUM1QixjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFDL0MsY0FBYyxDQUFDLEtBQUssRUFBRSxFQUN0QiwwQkFBMEIsQ0FDM0IsQ0FBQztJQUVGLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FDNUIsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUN4RCxlQUFlLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLHlCQUF5QixDQUMxQixDQUFDO0lBRUYsT0FBTyxJQUFJLHdCQUF3QixDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUM5RCxDQUFDIn0=