@aztec/pxe 0.76.4-devnet-test-rc3 → 0.77.0-testnet-ignition.17

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 (113) hide show
  1. package/dest/bin/index.js +4 -6
  2. package/dest/config/index.d.ts +2 -2
  3. package/dest/config/index.d.ts.map +1 -1
  4. package/dest/config/index.js +20 -23
  5. package/dest/config/package_info.js +4 -2
  6. package/dest/contract_data_oracle/index.d.ts +10 -10
  7. package/dest/contract_data_oracle/index.d.ts.map +1 -1
  8. package/dest/contract_data_oracle/index.js +74 -89
  9. package/dest/contract_data_oracle/private_functions_tree.d.ts +5 -4
  10. package/dest/contract_data_oracle/private_functions_tree.d.ts.map +1 -1
  11. package/dest/contract_data_oracle/private_functions_tree.js +47 -51
  12. package/dest/database/contracts/contract_artifact_db.d.ts +2 -2
  13. package/dest/database/contracts/contract_artifact_db.d.ts.map +1 -1
  14. package/dest/database/contracts/contract_artifact_db.js +3 -2
  15. package/dest/database/contracts/contract_instance_db.d.ts +2 -1
  16. package/dest/database/contracts/contract_instance_db.d.ts.map +1 -1
  17. package/dest/database/contracts/contract_instance_db.js +3 -2
  18. package/dest/database/index.js +0 -1
  19. package/dest/database/kv_pxe_database.d.ts +9 -5
  20. package/dest/database/kv_pxe_database.d.ts.map +1 -1
  21. package/dest/database/kv_pxe_database.js +244 -257
  22. package/dest/database/note_dao.d.ts +13 -10
  23. package/dest/database/note_dao.d.ts.map +1 -1
  24. package/dest/database/note_dao.js +35 -48
  25. package/dest/database/outgoing_note_dao.d.ts +6 -3
  26. package/dest/database/outgoing_note_dao.d.ts.map +1 -1
  27. package/dest/database/outgoing_note_dao.js +25 -37
  28. package/dest/database/pxe_database.d.ts +12 -8
  29. package/dest/database/pxe_database.d.ts.map +1 -1
  30. package/dest/database/pxe_database.js +4 -2
  31. package/dest/database/pxe_database_test_suite.d.ts +1 -1
  32. package/dest/database/pxe_database_test_suite.d.ts.map +1 -1
  33. package/dest/database/pxe_database_test_suite.js +286 -147
  34. package/dest/index.d.ts +1 -6
  35. package/dest/index.d.ts.map +1 -1
  36. package/dest/index.js +1 -7
  37. package/dest/kernel_oracle/index.d.ts +20 -10
  38. package/dest/kernel_oracle/index.d.ts.map +1 -1
  39. package/dest/kernel_oracle/index.js +32 -9
  40. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.d.ts +3 -3
  41. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -1
  42. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.js +71 -67
  43. package/dest/kernel_prover/hints/index.js +0 -1
  44. package/dest/kernel_prover/index.js +0 -1
  45. package/dest/kernel_prover/kernel_prover.d.ts +6 -4
  46. package/dest/kernel_prover/kernel_prover.d.ts.map +1 -1
  47. package/dest/kernel_prover/kernel_prover.js +95 -74
  48. package/dest/kernel_prover/proving_data_oracle.d.ts +15 -7
  49. package/dest/kernel_prover/proving_data_oracle.d.ts.map +1 -1
  50. package/dest/kernel_prover/proving_data_oracle.js +4 -2
  51. package/dest/note_decryption_utils/add_public_values_to_payload.d.ts +3 -2
  52. package/dest/note_decryption_utils/add_public_values_to_payload.d.ts.map +1 -1
  53. package/dest/note_decryption_utils/add_public_values_to_payload.js +11 -12
  54. package/dest/pxe_http/index.js +0 -1
  55. package/dest/pxe_http/pxe_http_server.d.ts +1 -1
  56. package/dest/pxe_http/pxe_http_server.d.ts.map +1 -1
  57. package/dest/pxe_http/pxe_http_server.js +9 -7
  58. package/dest/pxe_service/error_enriching.d.ts +3 -3
  59. package/dest/pxe_service/error_enriching.d.ts.map +1 -1
  60. package/dest/pxe_service/error_enriching.js +14 -17
  61. package/dest/pxe_service/index.d.ts +0 -1
  62. package/dest/pxe_service/index.d.ts.map +1 -1
  63. package/dest/pxe_service/index.js +0 -2
  64. package/dest/pxe_service/pxe_service.d.ts +21 -12
  65. package/dest/pxe_service/pxe_service.d.ts.map +1 -1
  66. package/dest/pxe_service/pxe_service.js +280 -331
  67. package/dest/pxe_service/test/pxe_test_suite.d.ts +1 -1
  68. package/dest/pxe_service/test/pxe_test_suite.d.ts.map +1 -1
  69. package/dest/pxe_service/test/pxe_test_suite.js +44 -28
  70. package/dest/simulator/index.d.ts +3 -3
  71. package/dest/simulator/index.d.ts.map +1 -1
  72. package/dest/simulator/index.js +1 -3
  73. package/dest/simulator_oracle/index.d.ts +18 -6
  74. package/dest/simulator_oracle/index.d.ts.map +1 -1
  75. package/dest/simulator_oracle/index.js +307 -235
  76. package/dest/simulator_oracle/tagging_utils.d.ts +2 -1
  77. package/dest/simulator_oracle/tagging_utils.d.ts.map +1 -1
  78. package/dest/simulator_oracle/tagging_utils.js +5 -7
  79. package/dest/synchronizer/index.js +0 -1
  80. package/dest/synchronizer/synchronizer.d.ts +7 -4
  81. package/dest/synchronizer/synchronizer.d.ts.map +1 -1
  82. package/dest/synchronizer/synchronizer.js +64 -43
  83. package/dest/utils/create_pxe_service.d.ts +2 -2
  84. package/dest/utils/create_pxe_service.d.ts.map +1 -1
  85. package/dest/utils/create_pxe_service.js +13 -11
  86. package/package.json +17 -18
  87. package/src/bin/index.ts +1 -1
  88. package/src/config/index.ts +3 -3
  89. package/src/contract_data_oracle/index.ts +20 -20
  90. package/src/contract_data_oracle/private_functions_tree.ts +6 -7
  91. package/src/database/contracts/contract_artifact_db.ts +2 -2
  92. package/src/database/contracts/contract_instance_db.ts +2 -1
  93. package/src/database/kv_pxe_database.ts +33 -32
  94. package/src/database/note_dao.ts +11 -8
  95. package/src/database/outgoing_note_dao.ts +7 -4
  96. package/src/database/pxe_database.ts +13 -15
  97. package/src/database/pxe_database_test_suite.ts +8 -11
  98. package/src/index.ts +1 -7
  99. package/src/kernel_oracle/index.ts +55 -22
  100. package/src/kernel_prover/hints/build_private_kernel_reset_private_inputs.ts +14 -11
  101. package/src/kernel_prover/kernel_prover.ts +70 -44
  102. package/src/kernel_prover/proving_data_oracle.ts +20 -20
  103. package/src/note_decryption_utils/add_public_values_to_payload.ts +5 -4
  104. package/src/pxe_http/pxe_http_server.ts +1 -1
  105. package/src/pxe_service/error_enriching.ts +6 -6
  106. package/src/pxe_service/index.ts +0 -1
  107. package/src/pxe_service/pxe_service.ts +120 -220
  108. package/src/pxe_service/test/pxe_test_suite.ts +6 -3
  109. package/src/simulator/index.ts +3 -3
  110. package/src/simulator_oracle/index.ts +77 -47
  111. package/src/simulator_oracle/tagging_utils.ts +2 -1
  112. package/src/synchronizer/synchronizer.ts +31 -12
  113. package/src/utils/create_pxe_service.ts +16 -4
@@ -1,13 +1,19 @@
1
- import { collectEnqueuedPublicFunctionCalls, collectNoteHashLeafIndexMap, collectNoteHashNullifierCounterMap, collectPublicTeardownFunctionCall, getFinalMinRevertibleSideEffectCounter, } from '@aztec/circuit-types';
2
- import { CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS, ClientIvcProof, Fr, PrivateCallData, PrivateKernelCircuitPublicInputs, PrivateKernelData, PrivateKernelInitCircuitPrivateInputs, PrivateKernelInnerCircuitPrivateInputs, PrivateKernelTailCircuitPrivateInputs, VK_TREE_HEIGHT, VerificationKeyAsFields, } from '@aztec/circuits.js';
3
- import { hashVK } from '@aztec/circuits.js/hash';
1
+ import { CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS, VK_TREE_HEIGHT } from '@aztec/constants';
4
2
  import { vkAsFieldsMegaHonk } from '@aztec/foundation/crypto';
3
+ import { Fr } from '@aztec/foundation/fields';
5
4
  import { createLogger } from '@aztec/foundation/log';
6
5
  import { assertLength } from '@aztec/foundation/serialize';
7
6
  import { pushTestData } from '@aztec/foundation/testing';
8
7
  import { Timer } from '@aztec/foundation/timer';
9
- import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vks';
8
+ import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
10
9
  import { getProtocolContractLeafAndMembershipWitness, protocolContractTreeRoot } from '@aztec/protocol-contracts';
10
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
11
+ import { computeContractAddressFromInstance } from '@aztec/stdlib/contract';
12
+ import { hashVK } from '@aztec/stdlib/hash';
13
+ import { PrivateCallData, PrivateKernelCircuitPublicInputs, PrivateKernelData, PrivateKernelInitCircuitPrivateInputs, PrivateKernelInnerCircuitPrivateInputs, PrivateKernelTailCircuitPrivateInputs, PrivateVerificationKeyHints } from '@aztec/stdlib/kernel';
14
+ import { ClientIvcProof } from '@aztec/stdlib/proofs';
15
+ import { collectEnqueuedPublicFunctionCalls, collectNoteHashLeafIndexMap, collectNoteHashNullifierCounterMap, collectPublicTeardownFunctionCall, getFinalMinRevertibleSideEffectCounter } from '@aztec/stdlib/tx';
16
+ import { VerificationKeyAsFields } from '@aztec/stdlib/vks';
11
17
  import { strict as assert } from 'assert';
12
18
  import { PrivateKernelResetPrivateInputsBuilder } from './hints/build_private_kernel_reset_private_inputs.js';
13
19
  // TODO(#10592): Temporary workaround to check that the private logs are correctly split into non-revertible set and revertible set.
@@ -15,67 +21,76 @@ import { PrivateKernelResetPrivateInputsBuilder } from './hints/build_private_ke
15
21
  function checkPrivateLogs(privateLogs, nonRevertiblePrivateLogs, revertiblePrivateLogs, splitCounter) {
16
22
  let numNonRevertible = 0;
17
23
  let numRevertible = 0;
18
- privateLogs
19
- .filter(privateLog => privateLog.inner.counter !== 0)
20
- .forEach(privateLog => {
24
+ privateLogs.filter((privateLog)=>privateLog.inner.counter !== 0).forEach((privateLog)=>{
21
25
  if (privateLog.inner.counter < splitCounter) {
22
26
  assert(privateLog.inner.log.toBuffer().equals(nonRevertiblePrivateLogs[numNonRevertible].toBuffer()), `mismatch non-revertible private logs at index ${numNonRevertible}`);
23
27
  numNonRevertible++;
24
- }
25
- else {
28
+ } else {
26
29
  assert(privateLog.inner.log.toBuffer().equals(revertiblePrivateLogs[numRevertible].toBuffer()), `mismatch revertible private logs at index ${numRevertible}`);
27
30
  numRevertible++;
28
31
  }
29
32
  });
30
- assert(nonRevertiblePrivateLogs.slice(numNonRevertible).every(l => l.isEmpty()), 'Unexpected non-empty private log in non-revertible set.');
31
- assert(revertiblePrivateLogs.slice(numRevertible).every(l => l.isEmpty()), 'Unexpected non-empty private log in revertible set.');
33
+ assert(nonRevertiblePrivateLogs.slice(numNonRevertible).every((l)=>l.isEmpty()), 'Unexpected non-empty private log in non-revertible set.');
34
+ assert(revertiblePrivateLogs.slice(numRevertible).every((l)=>l.isEmpty()), 'Unexpected non-empty private log in revertible set.');
32
35
  }
33
36
  const NULL_PROVE_OUTPUT = {
34
37
  publicInputs: PrivateKernelCircuitPublicInputs.empty(),
35
38
  verificationKey: VerificationKeyAsFields.makeEmpty(CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS),
36
39
  outputWitness: new Map(),
37
- bytecode: Buffer.from([]),
40
+ bytecode: Buffer.from([])
38
41
  };
39
42
  /**
40
43
  * The KernelProver class is responsible for generating kernel proofs.
41
44
  * It takes a transaction request, its signature, and the simulation result as inputs, and outputs a proof
42
45
  * along with output notes. The class interacts with a ProvingDataOracle to fetch membership witnesses and
43
46
  * constructs private call data based on the execution results.
44
- */
45
- export class KernelProver {
46
- constructor(oracle, proofCreator, fakeProofs = false) {
47
+ */ export class KernelProver {
48
+ oracle;
49
+ proofCreator;
50
+ fakeProofs;
51
+ log;
52
+ constructor(oracle, proofCreator, fakeProofs = false){
47
53
  this.oracle = oracle;
48
54
  this.proofCreator = proofCreator;
49
55
  this.fakeProofs = fakeProofs;
50
56
  this.log = createLogger('pxe:kernel-prover');
51
57
  }
52
58
  /**
53
- * Generate a proof for a given transaction request and execution result.
54
- * The function iterates through the nested executions in the execution result, creates private call data,
55
- * and generates a proof using the provided ProofCreator instance. It also maintains an index of new notes
56
- * created during the execution and returns them as a part of the KernelProverOutput.
57
- *
58
- * @param txRequest - The authenticated transaction request object.
59
- * @param executionResult - The execution result object containing nested executions and preimages.
60
- * @param profile - Set true to profile the gate count for each circuit
61
- * @param dryRun - Set true to skip the IVC proof generation (only simulation is run). Useful for profiling gate count without proof gen.
62
- * @returns A Promise that resolves to a KernelProverOutput object containing proof, public inputs, and output notes.
63
- * TODO(#7368) this should be refactored to not recreate the ACIR bytecode now that it operates on a program stack
64
- */
65
- async prove(txRequest, executionResult, { simulate, profile, dryRun } = { simulate: false, profile: false, dryRun: false }) {
59
+ * Generate a proof for a given transaction request and execution result.
60
+ * The function iterates through the nested executions in the execution result, creates private call data,
61
+ * and generates a proof using the provided ProofCreator instance. It also maintains an index of new notes
62
+ * created during the execution and returns them as a part of the KernelProverOutput.
63
+ *
64
+ * @param txRequest - The authenticated transaction request object.
65
+ * @param executionResult - The execution result object containing nested executions and preimages.
66
+ * @param profile - Set true to profile the gate count for each circuit
67
+ * @param dryRun - Set true to skip the IVC proof generation (only simulation is run). Useful for profiling gate count without proof gen.
68
+ * @returns A Promise that resolves to a KernelProverOutput object containing proof, public inputs, and output notes.
69
+ * TODO(#7368) this should be refactored to not recreate the ACIR bytecode now that it operates on a program stack
70
+ */ async prove(txRequest, executionResult, { simulate, skipFeeEnforcement, profile, dryRun } = {
71
+ simulate: false,
72
+ skipFeeEnforcement: false,
73
+ profile: false,
74
+ dryRun: false
75
+ }) {
66
76
  if (simulate && profile) {
67
77
  throw new Error('Cannot simulate and profile at the same time');
68
78
  }
69
79
  simulate = simulate || this.fakeProofs;
70
80
  const timer = new Timer();
71
81
  const isPrivateOnlyTx = this.isPrivateOnly(executionResult);
72
- const executionStack = [executionResult.entrypoint];
82
+ const executionStack = [
83
+ executionResult.entrypoint
84
+ ];
73
85
  let firstIteration = true;
74
86
  let output = NULL_PROVE_OUTPUT;
75
87
  const gateCounts = [];
76
- const addGateCount = async (circuitName, bytecode) => {
77
- const gateCount = (await this.proofCreator.computeGateCountForCircuit(bytecode, circuitName));
78
- gateCounts.push({ circuitName, gateCount });
88
+ const addGateCount = async (circuitName, bytecode)=>{
89
+ const gateCount = await this.proofCreator.computeGateCountForCircuit(bytecode, circuitName);
90
+ gateCounts.push({
91
+ circuitName,
92
+ gateCount
93
+ });
79
94
  this.log.info(`Tx ${txRequest.hash()}: bb gates for ${circuitName} - ${gateCount}`);
80
95
  };
81
96
  const noteHashLeafIndexMap = collectNoteHashLeafIndexMap(executionResult);
@@ -86,14 +101,12 @@ export class KernelProver {
86
101
  // vector of gzipped bincode acirs
87
102
  const acirs = [];
88
103
  const witnessStack = [];
89
- while (executionStack.length) {
104
+ while(executionStack.length){
90
105
  if (!firstIteration) {
91
106
  let resetBuilder = new PrivateKernelResetPrivateInputsBuilder(output, executionStack, noteHashNullifierCounterMap, validationRequestsSplitCounter);
92
- while (resetBuilder.needsReset()) {
107
+ while(resetBuilder.needsReset()){
93
108
  const privateInputs = await resetBuilder.build(this.oracle, noteHashLeafIndexMap);
94
- output = simulate
95
- ? await this.proofCreator.simulateReset(privateInputs)
96
- : await this.proofCreator.generateResetOutput(privateInputs);
109
+ output = simulate ? await this.proofCreator.simulateReset(privateInputs) : await this.proofCreator.generateResetOutput(privateInputs);
97
110
  // TODO(#7368) consider refactoring this redundant bytecode pushing
98
111
  acirs.push(output.bytecode);
99
112
  witnessStack.push(output.outputWitness);
@@ -104,7 +117,9 @@ export class KernelProver {
104
117
  }
105
118
  }
106
119
  const currentExecution = executionStack.pop();
107
- executionStack.push(...[...currentExecution.nestedExecutions].reverse());
120
+ executionStack.push(...[
121
+ ...currentExecution.nestedExecutions
122
+ ].reverse());
108
123
  const functionName = await this.oracle.getDebugFunctionName(currentExecution.publicInputs.callContext.contractAddress, currentExecution.publicInputs.callContext.functionSelector);
109
124
  // TODO(#7368): This used to be associated with getDebugFunctionName
110
125
  // TODO(#7368): Is there any way to use this with client IVC proving?
@@ -118,23 +133,18 @@ export class KernelProver {
118
133
  const proofInput = new PrivateKernelInitCircuitPrivateInputs(txRequest, getVKTreeRoot(), protocolContractTreeRoot, privateCallData, isPrivateOnlyTx, executionResult.firstNullifier);
119
134
  this.log.debug(`Calling private kernel init with isPrivateOnly ${isPrivateOnlyTx} and firstNullifierHint ${proofInput.firstNullifierHint}`);
120
135
  pushTestData('private-kernel-inputs-init', proofInput);
121
- output = simulate
122
- ? await this.proofCreator.simulateInit(proofInput)
123
- : await this.proofCreator.generateInitOutput(proofInput);
136
+ output = simulate ? await this.proofCreator.simulateInit(proofInput) : await this.proofCreator.generateInitOutput(proofInput);
124
137
  acirs.push(output.bytecode);
125
138
  witnessStack.push(output.outputWitness);
126
139
  if (profile) {
127
140
  await addGateCount('private_kernel_init', output.bytecode);
128
141
  }
129
- }
130
- else {
142
+ } else {
131
143
  const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(output.verificationKey);
132
144
  const previousKernelData = new PrivateKernelData(output.publicInputs, output.verificationKey, Number(previousVkMembershipWitness.leafIndex), assertLength(previousVkMembershipWitness.siblingPath, VK_TREE_HEIGHT));
133
145
  const proofInput = new PrivateKernelInnerCircuitPrivateInputs(previousKernelData, privateCallData);
134
146
  pushTestData('private-kernel-inputs-inner', proofInput);
135
- output = simulate
136
- ? await this.proofCreator.simulateInner(proofInput)
137
- : await this.proofCreator.generateInnerOutput(proofInput);
147
+ output = simulate ? await this.proofCreator.simulateInner(proofInput) : await this.proofCreator.generateInnerOutput(proofInput);
138
148
  acirs.push(output.bytecode);
139
149
  witnessStack.push(output.outputWitness);
140
150
  if (profile) {
@@ -145,11 +155,9 @@ export class KernelProver {
145
155
  }
146
156
  // Reset.
147
157
  let resetBuilder = new PrivateKernelResetPrivateInputsBuilder(output, [], noteHashNullifierCounterMap, validationRequestsSplitCounter);
148
- while (resetBuilder.needsReset()) {
158
+ while(resetBuilder.needsReset()){
149
159
  const privateInputs = await resetBuilder.build(this.oracle, noteHashLeafIndexMap);
150
- output = simulate
151
- ? await this.proofCreator.simulateReset(privateInputs)
152
- : await this.proofCreator.generateResetOutput(privateInputs);
160
+ output = simulate ? await this.proofCreator.simulateReset(privateInputs) : await this.proofCreator.generateResetOutput(privateInputs);
153
161
  acirs.push(output.bytecode);
154
162
  witnessStack.push(output.outputWitness);
155
163
  if (profile) {
@@ -157,15 +165,19 @@ export class KernelProver {
157
165
  }
158
166
  resetBuilder = new PrivateKernelResetPrivateInputsBuilder(output, [], noteHashNullifierCounterMap, validationRequestsSplitCounter);
159
167
  }
168
+ if (output.publicInputs.feePayer.isZero() && skipFeeEnforcement) {
169
+ if (!dryRun && !simulate) {
170
+ throw new Error('Fee payment must be enforced when creating real proof.');
171
+ }
172
+ output.publicInputs.feePayer = new AztecAddress(Fr.MAX_FIELD_VALUE);
173
+ }
160
174
  // Private tail.
161
175
  const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(output.verificationKey);
162
176
  const previousKernelData = new PrivateKernelData(output.publicInputs, output.verificationKey, Number(previousVkMembershipWitness.leafIndex), assertLength(previousVkMembershipWitness.siblingPath, VK_TREE_HEIGHT));
163
177
  this.log.debug(`Calling private kernel tail with hwm ${previousKernelData.publicInputs.minRevertibleSideEffectCounter}`);
164
178
  const privateInputs = new PrivateKernelTailCircuitPrivateInputs(previousKernelData);
165
179
  pushTestData('private-kernel-inputs-ordering', privateInputs);
166
- const tailOutput = simulate
167
- ? await this.proofCreator.simulateTail(privateInputs)
168
- : await this.proofCreator.generateTailOutput(privateInputs);
180
+ const tailOutput = simulate ? await this.proofCreator.simulateTail(privateInputs) : await this.proofCreator.generateTailOutput(privateInputs);
169
181
  if (tailOutput.publicInputs.forPublic) {
170
182
  const privateLogs = privateInputs.previousKernel.publicInputs.end.privateLogs;
171
183
  const nonRevertiblePrivateLogs = tailOutput.publicInputs.forPublic.nonRevertibleAccumulatedData.privateLogs;
@@ -176,7 +188,9 @@ export class KernelProver {
176
188
  witnessStack.push(tailOutput.outputWitness);
177
189
  if (profile) {
178
190
  await addGateCount('private_kernel_tail', tailOutput.bytecode);
179
- tailOutput.profileResult = { gateCounts };
191
+ tailOutput.profileResult = {
192
+ gateCounts
193
+ };
180
194
  }
181
195
  if (!simulate) {
182
196
  this.log.info(`Private kernel witness generation took ${timer.ms()}ms`);
@@ -185,8 +199,7 @@ export class KernelProver {
185
199
  if (!dryRun && !simulate) {
186
200
  const ivcProof = await this.proofCreator.createClientIvcProof(acirs, witnessStack);
187
201
  tailOutput.clientIvcProof = ivcProof;
188
- }
189
- else {
202
+ } else {
190
203
  tailOutput.clientIvcProof = ClientIvcProof.random();
191
204
  }
192
205
  return tailOutput;
@@ -195,34 +208,42 @@ export class KernelProver {
195
208
  const { contractAddress, functionSelector } = publicInputs.callContext;
196
209
  const vkAsFields = await vkAsFieldsMegaHonk(vkAsBuffer);
197
210
  const vk = new VerificationKeyAsFields(vkAsFields, await hashVK(vkAsFields));
198
- const functionLeafMembershipWitness = await this.oracle.getFunctionMembershipWitness(contractAddress, functionSelector);
199
- const { contractClassId, publicKeys, saltedInitializationHash } = await this.oracle.getContractAddressPreimage(contractAddress);
200
- const { artifactHash: contractClassArtifactHash, publicBytecodeCommitment: contractClassPublicBytecodeCommitment } = await this.oracle.getContractClassIdPreimage(contractClassId);
211
+ const { currentContractClassId, publicKeys, saltedInitializationHash } = await this.oracle.getContractAddressPreimage(contractAddress);
212
+ const functionLeafMembershipWitness = await this.oracle.getFunctionMembershipWitness(currentContractClassId, functionSelector);
213
+ const { artifactHash: contractClassArtifactHash, publicBytecodeCommitment: contractClassPublicBytecodeCommitment } = await this.oracle.getContractClassIdPreimage(currentContractClassId);
201
214
  // TODO(#262): Use real acir hash
202
215
  // const acirHash = keccak256(Buffer.from(bytecode, 'hex'));
203
216
  const acirHash = Fr.fromBuffer(Buffer.alloc(32, 0));
204
- const { lowLeaf: protocolContractLeaf, witness: protocolContractMembershipWitness } = await getProtocolContractLeafAndMembershipWitness(contractAddress);
217
+ // This will be the address computed in the kernel by the executed class. We need to provide non membership of it in the protocol contract tree.
218
+ // This would only be equal to contractAddress if the currentClassId is equal to the original class id (no update happened).
219
+ const computedAddress = await computeContractAddressFromInstance({
220
+ originalContractClassId: currentContractClassId,
221
+ saltedInitializationHash,
222
+ publicKeys
223
+ });
224
+ const { lowLeaf: protocolContractLeaf, witness: protocolContractMembershipWitness } = await getProtocolContractLeafAndMembershipWitness(contractAddress, computedAddress);
225
+ const updatedClassIdHints = await this.oracle.getUpdatedClassIdHints(contractAddress);
205
226
  return PrivateCallData.from({
206
227
  publicInputs,
207
228
  vk,
208
- publicKeys,
209
- contractClassArtifactHash,
210
- contractClassPublicBytecodeCommitment,
211
- saltedInitializationHash,
212
- functionLeafMembershipWitness,
213
- protocolContractMembershipWitness,
214
- protocolContractLeaf,
215
- acirHash,
229
+ verificationKeyHints: PrivateVerificationKeyHints.from({
230
+ publicKeys,
231
+ contractClassArtifactHash,
232
+ contractClassPublicBytecodeCommitment,
233
+ saltedInitializationHash,
234
+ functionLeafMembershipWitness,
235
+ protocolContractMembershipWitness,
236
+ protocolContractLeaf,
237
+ acirHash,
238
+ updatedClassIdHints
239
+ })
216
240
  });
217
241
  }
218
242
  isPrivateOnly(executionResult) {
219
- const isPrivateOnlyRecursive = (callResult) => {
220
- const makesPublicCalls = callResult.enqueuedPublicFunctionCalls.some(enqueuedCall => !enqueuedCall.isEmpty()) ||
221
- !callResult.publicTeardownFunctionCall.isEmpty();
222
- return (!makesPublicCalls &&
223
- callResult.nestedExecutions.every(nestedExecution => isPrivateOnlyRecursive(nestedExecution)));
243
+ const isPrivateOnlyRecursive = (callResult)=>{
244
+ const makesPublicCalls = callResult.enqueuedPublicFunctionCalls.some((enqueuedCall)=>!enqueuedCall.isEmpty()) || !callResult.publicTeardownFunctionCall.isEmpty();
245
+ return !makesPublicCalls && callResult.nestedExecutions.every((nestedExecution)=>isPrivateOnlyRecursive(nestedExecution));
224
246
  };
225
247
  return isPrivateOnlyRecursive(executionResult.entrypoint);
226
248
  }
227
249
  }
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VybmVsX3Byb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXJuZWxfcHJvdmVyL2tlcm5lbF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLGtDQUFrQyxFQUNsQywyQkFBMkIsRUFDM0Isa0NBQWtDLEVBQ2xDLGlDQUFpQyxFQUNqQyxzQ0FBc0MsR0FDdkMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsNENBQTRDLEVBQzVDLGNBQWMsRUFDZCxFQUFFLEVBQ0YsZUFBZSxFQUNmLGdDQUFnQyxFQUNoQyxpQkFBaUIsRUFDakIscUNBQXFDLEVBQ3JDLHNDQUFzQyxFQUN0QyxxQ0FBcUMsRUFLckMsY0FBYyxFQUNkLHVCQUF1QixHQUN4QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSwyQ0FBMkMsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR2xILE9BQU8sRUFBRSxNQUFNLElBQUksTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBRzlHLG9JQUFvSTtBQUNwSSw2RUFBNkU7QUFDN0UsU0FBUyxnQkFBZ0IsQ0FDdkIs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
@@ -1,6 +1,12 @@
1
- import { type NullifierMembershipWitness } from '@aztec/circuit-types';
2
- import { type FUNCTION_TREE_HEIGHT, type Fr, type FunctionSelector, type GrumpkinScalar, type MembershipWitness, type NOTE_HASH_TREE_HEIGHT, type Point, type PublicKeys, type VK_TREE_HEIGHT, type VerificationKeyAsFields } from '@aztec/circuits.js';
3
- import { type AztecAddress } from '@aztec/foundation/aztec-address';
1
+ import type { FUNCTION_TREE_HEIGHT, NOTE_HASH_TREE_HEIGHT, VK_TREE_HEIGHT } from '@aztec/constants';
2
+ import type { Fr, GrumpkinScalar, Point } from '@aztec/foundation/fields';
3
+ import type { MembershipWitness } from '@aztec/foundation/trees';
4
+ import type { FunctionSelector } from '@aztec/stdlib/abi';
5
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
6
+ import { UpdatedClassIdHints } from '@aztec/stdlib/kernel';
7
+ import type { PublicKeys } from '@aztec/stdlib/keys';
8
+ import type { NullifierMembershipWitness } from '@aztec/stdlib/trees';
9
+ import type { VerificationKeyAsFields } from '@aztec/stdlib/vks';
4
10
  /**
5
11
  * Provides functionality to fetch membership witnesses for verification keys,
6
12
  * contract addresses, and function selectors in their respective merkle trees.
@@ -10,7 +16,8 @@ export interface ProvingDataOracle {
10
16
  getContractAddressPreimage(address: AztecAddress): Promise<{
11
17
  saltedInitializationHash: Fr;
12
18
  publicKeys: PublicKeys;
13
- contractClassId: Fr;
19
+ currentContractClassId: Fr;
20
+ originalContractClassId: Fr;
14
21
  }>;
15
22
  /** Retrieves the preimage of a contract class id from the contract classes db. */
16
23
  getContractClassIdPreimage(contractClassId: Fr): Promise<{
@@ -19,15 +26,15 @@ export interface ProvingDataOracle {
19
26
  privateFunctionsRoot: Fr;
20
27
  }>;
21
28
  /**
22
- * Retrieve the function membership witness for the given contract address and function selector.
29
+ * Retrieve the function membership witness for the given contract class and function selector.
23
30
  * The function membership witness represents a proof that the function belongs to the specified contract.
24
31
  * Throws an error if the contract address or function selector is unknown.
25
32
  *
26
- * @param contractAddress - The contract address.
33
+ * @param contractClassId - The id of the class.
27
34
  * @param selector - The function selector.
28
35
  * @returns A promise that resolves with the MembershipWitness instance for the specified contract's function.
29
36
  */
30
- getFunctionMembershipWitness(contractAddress: AztecAddress, selector: FunctionSelector): Promise<MembershipWitness<typeof FUNCTION_TREE_HEIGHT>>;
37
+ getFunctionMembershipWitness(contractClassId: Fr, selector: FunctionSelector): Promise<MembershipWitness<typeof FUNCTION_TREE_HEIGHT>>;
31
38
  /**
32
39
  * Retrieve the membership witness corresponding to a verification key.
33
40
  * This function currently returns a random membership witness of the specified height,
@@ -61,5 +68,6 @@ export interface ProvingDataOracle {
61
68
  */
62
69
  getMasterSecretKey(masterPublicKey: Point): Promise<GrumpkinScalar>;
63
70
  getDebugFunctionName(contractAddress: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
71
+ getUpdatedClassIdHints(contractAddress: AztecAddress): Promise<UpdatedClassIdHints>;
64
72
  }
65
73
  //# sourceMappingURL=proving_data_oracle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"proving_data_oracle.d.ts","sourceRoot":"","sources":["../../src/kernel_prover/proving_data_oracle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,EAAE,EACP,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,8FAA8F;IAC9F,0BAA0B,CACxB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC;QAAE,wBAAwB,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,UAAU,CAAC;QAAC,eAAe,EAAE,EAAE,CAAA;KAAE,CAAC,CAAC;IAE1F,kFAAkF;IAClF,0BAA0B,CACxB,eAAe,EAAE,EAAE,GAClB,OAAO,CAAC;QAAE,YAAY,EAAE,EAAE,CAAC;QAAC,wBAAwB,EAAE,EAAE,CAAC;QAAC,oBAAoB,EAAE,EAAE,CAAA;KAAE,CAAC,CAAC;IAEzF;;;;;;;;OAQG;IACH,4BAA4B,CAC1B,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,iBAAiB,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;IAE3D;;;;;;;;OAQG;IACH,sBAAsB,CAAC,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC;IAEvG;;;;;OAKG;IACH,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC;IAE1G,6BAA6B,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAAC;IAE9F;;;;OAIG;IACH,mBAAmB,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IAEnC;;;;;;OAMG;IACH,kBAAkB,CAAC,eAAe,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEpE,oBAAoB,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC9G"}
1
+ {"version":3,"file":"proving_data_oracle.d.ts","sourceRoot":"","sources":["../../src/kernel_prover/proving_data_oracle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpG,OAAO,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,8FAA8F;IAC9F,0BAA0B,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;QACzD,wBAAwB,EAAE,EAAE,CAAC;QAC7B,UAAU,EAAE,UAAU,CAAC;QACvB,sBAAsB,EAAE,EAAE,CAAC;QAC3B,uBAAuB,EAAE,EAAE,CAAC;KAC7B,CAAC,CAAC;IAEH,kFAAkF;IAClF,0BAA0B,CACxB,eAAe,EAAE,EAAE,GAClB,OAAO,CAAC;QAAE,YAAY,EAAE,EAAE,CAAC;QAAC,wBAAwB,EAAE,EAAE,CAAC;QAAC,oBAAoB,EAAE,EAAE,CAAA;KAAE,CAAC,CAAC;IAEzF;;;;;;;;OAQG;IACH,4BAA4B,CAC1B,eAAe,EAAE,EAAE,EACnB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,iBAAiB,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;IAE3D;;;;;;;;OAQG;IACH,sBAAsB,CAAC,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC;IAEvG;;;;;OAKG;IACH,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC;IAE1G,6BAA6B,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAAC;IAE9F;;;;OAIG;IACH,mBAAmB,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IAEnC;;;;;;OAMG;IACH,kBAAkB,CAAC,eAAe,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEpE,oBAAoB,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE7G,sBAAsB,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACrF"}
@@ -1,2 +1,4 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19kYXRhX29yYWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXJuZWxfcHJvdmVyL3Byb3ZpbmdfZGF0YV9vcmFjbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
1
+ /**
2
+ * Provides functionality to fetch membership witnesses for verification keys,
3
+ * contract addresses, and function selectors in their respective merkle trees.
4
+ */ export { };
@@ -1,5 +1,6 @@
1
- import { type L1NotePayload, Note } from '@aztec/circuit-types';
2
- import { type PxeDatabase } from '../database/pxe_database.js';
1
+ import type { L1NotePayload } from '@aztec/stdlib/logs';
2
+ import { Note } from '@aztec/stdlib/note';
3
+ import type { PxeDatabase } from '../database/pxe_database.js';
3
4
  /**
4
5
  * Merges privately and publicly delivered note values.
5
6
  * @param db - PXE database used to fetch contract instance and artifact.
@@ -1 +1 @@
1
- {"version":3,"file":"add_public_values_to_payload.d.ts","sourceRoot":"","sources":["../../src/note_decryption_utils/add_public_values_to_payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAGhE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,WAAW,EACf,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,EAAE,aAAa,GAClF,OAAO,CAAC,IAAI,CAAC,CAgDf"}
1
+ {"version":3,"file":"add_public_values_to_payload.d.ts","sourceRoot":"","sources":["../../src/note_decryption_utils/add_public_values_to_payload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,WAAW,EACf,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,EAAE,aAAa,GAClF,OAAO,CAAC,IAAI,CAAC,CAgDf"}
@@ -1,12 +1,11 @@
1
- import { Note } from '@aztec/circuit-types';
2
1
  import { ContractNotFoundError } from '@aztec/simulator/client';
2
+ import { Note } from '@aztec/stdlib/note';
3
3
  /**
4
4
  * Merges privately and publicly delivered note values.
5
5
  * @param db - PXE database used to fetch contract instance and artifact.
6
6
  * @param payload - Payload corresponding to the note.
7
7
  * @returns Note payload with public fields added.
8
- */
9
- export async function getOrderedNoteItems(db, { contractAddress, noteTypeId, privateNoteValues, publicNoteValues }) {
8
+ */ export async function getOrderedNoteItems(db, { contractAddress, noteTypeId, privateNoteValues, publicNoteValues }) {
10
9
  if (publicNoteValues.length === 0) {
11
10
  return new Note(privateNoteValues);
12
11
  }
@@ -14,27 +13,28 @@ export async function getOrderedNoteItems(db, { contractAddress, noteTypeId, pri
14
13
  if (!instance) {
15
14
  throw new ContractNotFoundError(`Could not find instance for ${contractAddress.toString()}. This should never happen here as the partial notes flow should be triggered only for non-deferred notes.`);
16
15
  }
17
- const artifact = await db.getContractArtifact(instance.contractClassId);
16
+ const artifact = await db.getContractArtifact(instance.currentContractClassId);
18
17
  if (!artifact) {
19
- throw new Error(`Could not find artifact for contract class ${instance.contractClassId.toString()}. This should never happen here as the partial notes flow should be triggered only for non-deferred notes.`);
18
+ throw new Error(`Could not find artifact for contract class ${instance.currentContractClassId.toString()}. This should never happen here as the partial notes flow should be triggered only for non-deferred notes.`);
20
19
  }
21
- const noteFields = Object.values(artifact.notes).find(note => note.id.equals(noteTypeId))?.fields;
20
+ const noteFields = Object.values(artifact.notes).find((note)=>note.id.equals(noteTypeId))?.fields;
22
21
  if (!noteFields) {
23
22
  throw new Error(`Could not find note fields for note type ${noteTypeId.toString()}.`);
24
23
  }
25
24
  // We sort note fields by index so that we can iterate over them in order.
26
- noteFields.sort((a, b) => a.index - b.index);
25
+ noteFields.sort((a, b)=>a.index - b.index);
27
26
  // Now we insert the public fields into the note based on its indices defined in the ABI.
28
- const modifiedNoteItems = [...privateNoteValues];
27
+ const modifiedNoteItems = [
28
+ ...privateNoteValues
29
+ ];
29
30
  let indexInPublicValues = 0;
30
- for (let i = 0; i < noteFields.length; i++) {
31
+ for(let i = 0; i < noteFields.length; i++){
31
32
  const noteField = noteFields[i];
32
33
  if (noteField.nullable) {
33
34
  if (i == noteFields.length - 1) {
34
35
  // We are processing the last field so we simply insert the rest of the public fields at the end
35
36
  modifiedNoteItems.push(...publicNoteValues.slice(indexInPublicValues));
36
- }
37
- else {
37
+ } else {
38
38
  const noteFieldLength = noteFields[i + 1].index - noteField.index;
39
39
  const publicValuesToInsert = publicNoteValues.slice(indexInPublicValues, indexInPublicValues + noteFieldLength);
40
40
  indexInPublicValues += noteFieldLength;
@@ -45,4 +45,3 @@ export async function getOrderedNoteItems(db, { contractAddress, noteTypeId, pri
45
45
  }
46
46
  return new Note(modifiedNoteItems);
47
47
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkX3B1YmxpY192YWx1ZXNfdG9fcGF5bG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub3RlX2RlY3J5cHRpb25fdXRpbHMvYWRkX3B1YmxpY192YWx1ZXNfdG9fcGF5bG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSWhFOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxtQkFBbUIsQ0FDdkMsRUFBZSxFQUNmLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBaUI7SUFFbkYsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEMsT0FBTyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUkscUJBQXFCLENBQzdCLCtCQUErQixlQUFlLENBQUMsUUFBUSxFQUFFLDRHQUE0RyxDQUN0SyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4RSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUksS0FBSyxDQUNiLDhDQUE4QyxRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSw0R0FBNEcsQ0FDOUwsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUVsRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsVUFBVSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU3Qyx5RkFBeUY7SUFDekYsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQztJQUNqRCxJQUFJLG1CQUFtQixHQUFHLENBQUMsQ0FBQztJQUM1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzNDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMvQixnR0FBZ0c7Z0JBQ2hHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7WUFDekUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQ2xFLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixHQUFHLGVBQWUsQ0FBQyxDQUFDO2dCQUNoSCxtQkFBbUIsSUFBSSxlQUFlLENBQUM7Z0JBQ3ZDLDBEQUEwRDtnQkFDMUQsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsb0JBQW9CLENBQUMsQ0FBQztZQUN4RSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDckMsQ0FBQyJ9
@@ -1,2 +1 @@
1
1
  export * from './pxe_http_server.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHhlX2h0dHAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQyJ9
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- import { type PXE } from '@aztec/circuit-types';
2
+ import { type PXE } from '@aztec/stdlib/interfaces/client';
3
3
  import http from 'http';
4
4
  /**
5
5
  * Wraps an instance of Private eXecution Environment (PXE) implementation to a JSON RPC HTTP interface.
@@ -1 +1 @@
1
- {"version":3,"file":"pxe_http_server.d.ts","sourceRoot":"","sources":["../../src/pxe_http/pxe_http_server.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,GAAG,EAAa,MAAM,sBAAsB,CAAC;AAG3D,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,iEAEjD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAStF"}
1
+ {"version":3,"file":"pxe_http_server.d.ts","sourceRoot":"","sources":["../../src/pxe_http/pxe_http_server.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,GAAG,EAAa,MAAM,iCAAiC,CAAC;AAEtE,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,iEAEjD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAStF"}
@@ -1,11 +1,10 @@
1
- import { PXESchema } from '@aztec/circuit-types';
2
1
  import { createNamespacedSafeJsonRpcServer, createSafeJsonRpcServer } from '@aztec/foundation/json-rpc/server';
2
+ import { PXESchema } from '@aztec/stdlib/interfaces/client';
3
3
  import http from 'http';
4
4
  /**
5
5
  * Wraps an instance of Private eXecution Environment (PXE) implementation to a JSON RPC HTTP interface.
6
6
  * @returns A new instance of the HTTP server.
7
- */
8
- export function createPXERpcServer(pxeService) {
7
+ */ export function createPXERpcServer(pxeService) {
9
8
  return createSafeJsonRpcServer(pxeService, PXESchema);
10
9
  }
11
10
  /**
@@ -13,13 +12,16 @@ export function createPXERpcServer(pxeService) {
13
12
  * @param pxeService - PXE that answers queries to the created HTTP server.
14
13
  * @param port - Port to listen in.
15
14
  * @returns A running http server.
16
- */
17
- export function startPXEHttpServer(pxeService, port) {
18
- const rpcServer = createNamespacedSafeJsonRpcServer({ pxe: [pxeService, PXESchema] });
15
+ */ export function startPXEHttpServer(pxeService, port) {
16
+ const rpcServer = createNamespacedSafeJsonRpcServer({
17
+ pxe: [
18
+ pxeService,
19
+ PXESchema
20
+ ]
21
+ });
19
22
  const app = rpcServer.getApp();
20
23
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
21
24
  const httpServer = http.createServer(app.callback());
22
25
  httpServer.listen(port);
23
26
  return httpServer;
24
27
  }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX2h0dHBfc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B4ZV9odHRwL3B4ZV9odHRwX3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0csT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCOzs7R0FHRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUFlO0lBQ2hELE9BQU8sdUJBQXVCLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUFlLEVBQUUsSUFBcUI7SUFDdkUsTUFBTSxTQUFTLEdBQUcsaUNBQWlDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXRGLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMvQixrRUFBa0U7SUFDbEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNyRCxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXhCLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMifQ==
@@ -1,6 +1,6 @@
1
- import { type SimulationError } from '@aztec/circuit-types';
2
- import { type Logger } from '@aztec/foundation/log';
3
- import { type ContractDataOracle, type PxeDatabase } from '../index.js';
1
+ import type { Logger } from '@aztec/foundation/log';
2
+ import { type SimulationError } from '@aztec/stdlib/errors';
3
+ import type { ContractDataOracle, PxeDatabase } from '../index.js';
4
4
  /**
5
5
  * Adds contract and function names to a simulation error, if they
6
6
  * can be found in the PXE database
@@ -1 +1 @@
1
- {"version":3,"file":"error_enriching.d.ts","sourceRoot":"","sources":["../../src/pxe_service/error_enriching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAKvF,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAExE;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAwChG;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,eAAe,EACpB,kBAAkB,EAAE,kBAAkB,EACtC,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,MAAM,iBAyCf"}
1
+ {"version":3,"file":"error_enriching.d.ts","sourceRoot":"","sources":["../../src/pxe_service/error_enriching.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EAAE,KAAK,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAEvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEnE;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAwChG;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,eAAe,EACpB,kBAAkB,EAAE,kBAAkB,EACtC,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,MAAM,iBAyCf"}