@aztec/pxe 0.76.4 → 0.77.0-testnet-ignition.21

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 -6
  46. package/dest/kernel_prover/kernel_prover.d.ts.map +1 -1
  47. package/dest/kernel_prover/kernel_prover.js +98 -81
  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 +279 -333
  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 +18 -19
  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 +89 -69
  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 +121 -224
  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,68 +21,73 @@ 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 }) {
66
- if (simulate && profile) {
67
- throw new Error('Cannot simulate and profile at the same time');
68
- }
69
- simulate = simulate || this.fakeProofs;
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
+ * @returns A Promise that resolves to a KernelProverOutput object containing proof, public inputs, and output notes.
68
+ * TODO(#7368) this should be refactored to not recreate the ACIR bytecode now that it operates on a program stack
69
+ */ async prove(txRequest, executionResult, { simulate, skipFeeEnforcement, profile } = {
70
+ simulate: false,
71
+ skipFeeEnforcement: false,
72
+ profile: false
73
+ }) {
74
+ const skipProofGeneration = this.fakeProofs || simulate;
75
+ const generateWitnesses = !skipProofGeneration || profile;
70
76
  const timer = new Timer();
71
77
  const isPrivateOnlyTx = this.isPrivateOnly(executionResult);
72
- const executionStack = [executionResult.entrypoint];
78
+ const executionStack = [
79
+ executionResult.entrypoint
80
+ ];
73
81
  let firstIteration = true;
74
82
  let output = NULL_PROVE_OUTPUT;
75
83
  const gateCounts = [];
76
- const addGateCount = async (circuitName, bytecode) => {
77
- const gateCount = (await this.proofCreator.computeGateCountForCircuit(bytecode, circuitName));
78
- gateCounts.push({ circuitName, gateCount });
79
- this.log.info(`Tx ${txRequest.hash()}: bb gates for ${circuitName} - ${gateCount}`);
84
+ const addGateCount = async (circuitName, bytecode)=>{
85
+ const gateCount = await this.proofCreator.computeGateCountForCircuit(bytecode, circuitName);
86
+ gateCounts.push({
87
+ circuitName,
88
+ gateCount
89
+ });
90
+ this.log.debug(`Gate count for ${circuitName} - ${gateCount}`);
80
91
  };
81
92
  const noteHashLeafIndexMap = collectNoteHashLeafIndexMap(executionResult);
82
93
  const noteHashNullifierCounterMap = collectNoteHashNullifierCounterMap(executionResult);
@@ -86,14 +97,12 @@ export class KernelProver {
86
97
  // vector of gzipped bincode acirs
87
98
  const acirs = [];
88
99
  const witnessStack = [];
89
- while (executionStack.length) {
100
+ while(executionStack.length){
90
101
  if (!firstIteration) {
91
102
  let resetBuilder = new PrivateKernelResetPrivateInputsBuilder(output, executionStack, noteHashNullifierCounterMap, validationRequestsSplitCounter);
92
- while (resetBuilder.needsReset()) {
103
+ while(resetBuilder.needsReset()){
93
104
  const privateInputs = await resetBuilder.build(this.oracle, noteHashLeafIndexMap);
94
- output = simulate
95
- ? await this.proofCreator.simulateReset(privateInputs)
96
- : await this.proofCreator.generateResetOutput(privateInputs);
105
+ output = generateWitnesses ? await this.proofCreator.generateResetOutput(privateInputs) : await this.proofCreator.simulateReset(privateInputs);
97
106
  // TODO(#7368) consider refactoring this redundant bytecode pushing
98
107
  acirs.push(output.bytecode);
99
108
  witnessStack.push(output.outputWitness);
@@ -104,7 +113,9 @@ export class KernelProver {
104
113
  }
105
114
  }
106
115
  const currentExecution = executionStack.pop();
107
- executionStack.push(...[...currentExecution.nestedExecutions].reverse());
116
+ executionStack.push(...[
117
+ ...currentExecution.nestedExecutions
118
+ ].reverse());
108
119
  const functionName = await this.oracle.getDebugFunctionName(currentExecution.publicInputs.callContext.contractAddress, currentExecution.publicInputs.callContext.functionSelector);
109
120
  // TODO(#7368): This used to be associated with getDebugFunctionName
110
121
  // TODO(#7368): Is there any way to use this with client IVC proving?
@@ -118,23 +129,18 @@ export class KernelProver {
118
129
  const proofInput = new PrivateKernelInitCircuitPrivateInputs(txRequest, getVKTreeRoot(), protocolContractTreeRoot, privateCallData, isPrivateOnlyTx, executionResult.firstNullifier);
119
130
  this.log.debug(`Calling private kernel init with isPrivateOnly ${isPrivateOnlyTx} and firstNullifierHint ${proofInput.firstNullifierHint}`);
120
131
  pushTestData('private-kernel-inputs-init', proofInput);
121
- output = simulate
122
- ? await this.proofCreator.simulateInit(proofInput)
123
- : await this.proofCreator.generateInitOutput(proofInput);
132
+ output = generateWitnesses ? await this.proofCreator.generateInitOutput(proofInput) : await this.proofCreator.simulateInit(proofInput);
124
133
  acirs.push(output.bytecode);
125
134
  witnessStack.push(output.outputWitness);
126
135
  if (profile) {
127
136
  await addGateCount('private_kernel_init', output.bytecode);
128
137
  }
129
- }
130
- else {
138
+ } else {
131
139
  const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(output.verificationKey);
132
140
  const previousKernelData = new PrivateKernelData(output.publicInputs, output.verificationKey, Number(previousVkMembershipWitness.leafIndex), assertLength(previousVkMembershipWitness.siblingPath, VK_TREE_HEIGHT));
133
141
  const proofInput = new PrivateKernelInnerCircuitPrivateInputs(previousKernelData, privateCallData);
134
142
  pushTestData('private-kernel-inputs-inner', proofInput);
135
- output = simulate
136
- ? await this.proofCreator.simulateInner(proofInput)
137
- : await this.proofCreator.generateInnerOutput(proofInput);
143
+ output = generateWitnesses ? await this.proofCreator.generateInnerOutput(proofInput) : await this.proofCreator.simulateInner(proofInput);
138
144
  acirs.push(output.bytecode);
139
145
  witnessStack.push(output.outputWitness);
140
146
  if (profile) {
@@ -145,11 +151,9 @@ export class KernelProver {
145
151
  }
146
152
  // Reset.
147
153
  let resetBuilder = new PrivateKernelResetPrivateInputsBuilder(output, [], noteHashNullifierCounterMap, validationRequestsSplitCounter);
148
- while (resetBuilder.needsReset()) {
154
+ while(resetBuilder.needsReset()){
149
155
  const privateInputs = await resetBuilder.build(this.oracle, noteHashLeafIndexMap);
150
- output = simulate
151
- ? await this.proofCreator.simulateReset(privateInputs)
152
- : await this.proofCreator.generateResetOutput(privateInputs);
156
+ output = generateWitnesses ? await this.proofCreator.generateResetOutput(privateInputs) : await this.proofCreator.simulateReset(privateInputs);
153
157
  acirs.push(output.bytecode);
154
158
  witnessStack.push(output.outputWitness);
155
159
  if (profile) {
@@ -157,15 +161,19 @@ export class KernelProver {
157
161
  }
158
162
  resetBuilder = new PrivateKernelResetPrivateInputsBuilder(output, [], noteHashNullifierCounterMap, validationRequestsSplitCounter);
159
163
  }
164
+ if (output.publicInputs.feePayer.isZero() && skipFeeEnforcement) {
165
+ if (!skipProofGeneration) {
166
+ throw new Error('Fee payment must be enforced when creating real proof.');
167
+ }
168
+ output.publicInputs.feePayer = new AztecAddress(Fr.MAX_FIELD_VALUE);
169
+ }
160
170
  // Private tail.
161
171
  const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(output.verificationKey);
162
172
  const previousKernelData = new PrivateKernelData(output.publicInputs, output.verificationKey, Number(previousVkMembershipWitness.leafIndex), assertLength(previousVkMembershipWitness.siblingPath, VK_TREE_HEIGHT));
163
173
  this.log.debug(`Calling private kernel tail with hwm ${previousKernelData.publicInputs.minRevertibleSideEffectCounter}`);
164
174
  const privateInputs = new PrivateKernelTailCircuitPrivateInputs(previousKernelData);
165
175
  pushTestData('private-kernel-inputs-ordering', privateInputs);
166
- const tailOutput = simulate
167
- ? await this.proofCreator.simulateTail(privateInputs)
168
- : await this.proofCreator.generateTailOutput(privateInputs);
176
+ const tailOutput = generateWitnesses ? await this.proofCreator.generateTailOutput(privateInputs) : await this.proofCreator.simulateTail(privateInputs);
169
177
  if (tailOutput.publicInputs.forPublic) {
170
178
  const privateLogs = privateInputs.previousKernel.publicInputs.end.privateLogs;
171
179
  const nonRevertiblePrivateLogs = tailOutput.publicInputs.forPublic.nonRevertibleAccumulatedData.privateLogs;
@@ -176,17 +184,18 @@ export class KernelProver {
176
184
  witnessStack.push(tailOutput.outputWitness);
177
185
  if (profile) {
178
186
  await addGateCount('private_kernel_tail', tailOutput.bytecode);
179
- tailOutput.profileResult = { gateCounts };
187
+ tailOutput.profileResult = {
188
+ gateCounts
189
+ };
180
190
  }
181
- if (!simulate) {
191
+ if (generateWitnesses) {
182
192
  this.log.info(`Private kernel witness generation took ${timer.ms()}ms`);
183
193
  }
184
194
  // TODO(#7368) how do we 'bincode' encode these inputs?
185
- if (!dryRun && !simulate) {
195
+ if (!skipProofGeneration) {
186
196
  const ivcProof = await this.proofCreator.createClientIvcProof(acirs, witnessStack);
187
197
  tailOutput.clientIvcProof = ivcProof;
188
- }
189
- else {
198
+ } else {
190
199
  tailOutput.clientIvcProof = ClientIvcProof.random();
191
200
  }
192
201
  return tailOutput;
@@ -195,34 +204,42 @@ export class KernelProver {
195
204
  const { contractAddress, functionSelector } = publicInputs.callContext;
196
205
  const vkAsFields = await vkAsFieldsMegaHonk(vkAsBuffer);
197
206
  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);
207
+ const { currentContractClassId, publicKeys, saltedInitializationHash } = await this.oracle.getContractAddressPreimage(contractAddress);
208
+ const functionLeafMembershipWitness = await this.oracle.getFunctionMembershipWitness(currentContractClassId, functionSelector);
209
+ const { artifactHash: contractClassArtifactHash, publicBytecodeCommitment: contractClassPublicBytecodeCommitment } = await this.oracle.getContractClassIdPreimage(currentContractClassId);
201
210
  // TODO(#262): Use real acir hash
202
211
  // const acirHash = keccak256(Buffer.from(bytecode, 'hex'));
203
212
  const acirHash = Fr.fromBuffer(Buffer.alloc(32, 0));
204
- const { lowLeaf: protocolContractLeaf, witness: protocolContractMembershipWitness } = await getProtocolContractLeafAndMembershipWitness(contractAddress);
213
+ // 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.
214
+ // This would only be equal to contractAddress if the currentClassId is equal to the original class id (no update happened).
215
+ const computedAddress = await computeContractAddressFromInstance({
216
+ originalContractClassId: currentContractClassId,
217
+ saltedInitializationHash,
218
+ publicKeys
219
+ });
220
+ const { lowLeaf: protocolContractLeaf, witness: protocolContractMembershipWitness } = await getProtocolContractLeafAndMembershipWitness(contractAddress, computedAddress);
221
+ const updatedClassIdHints = await this.oracle.getUpdatedClassIdHints(contractAddress);
205
222
  return PrivateCallData.from({
206
223
  publicInputs,
207
224
  vk,
208
- publicKeys,
209
- contractClassArtifactHash,
210
- contractClassPublicBytecodeCommitment,
211
- saltedInitializationHash,
212
- functionLeafMembershipWitness,
213
- protocolContractMembershipWitness,
214
- protocolContractLeaf,
215
- acirHash,
225
+ verificationKeyHints: PrivateVerificationKeyHints.from({
226
+ publicKeys,
227
+ contractClassArtifactHash,
228
+ contractClassPublicBytecodeCommitment,
229
+ saltedInitializationHash,
230
+ functionLeafMembershipWitness,
231
+ protocolContractMembershipWitness,
232
+ protocolContractLeaf,
233
+ acirHash,
234
+ updatedClassIdHints
235
+ })
216
236
  });
217
237
  }
218
238
  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)));
239
+ const isPrivateOnlyRecursive = (callResult)=>{
240
+ const makesPublicCalls = callResult.enqueuedPublicFunctionCalls.some((enqueuedCall)=>!enqueuedCall.isEmpty()) || !callResult.publicTeardownFunctionCall.isEmpty();
241
+ return !makesPublicCalls && callResult.nestedExecutions.every((nestedExecution)=>isPrivateOnlyRecursive(nestedExecution));
224
242
  };
225
243
  return isPrivateOnlyRecursive(executionResult.entrypoint);
226
244
  }
227
245
  }
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VybmVsX3Byb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXJuZWxfcHJvdmVyL2tlcm5lbF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLGtDQUFrQyxFQUNsQywyQkFBMkIsRUFDM0Isa0NBQWtDLEVBQ2xDLGlDQUFpQyxFQUNqQyxzQ0FBc0MsR0FDdkMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsNENBQTRDLEVBQzVDLGNBQWMsRUFDZCxFQUFFLEVBQ0YsZUFBZSxFQUNmLGdDQUFnQyxFQUNoQyxpQkFBaUIsRUFDakIscUNBQXFDLEVBQ3JDLHNDQUFzQyxFQUN0QyxxQ0FBcUMsRUFLckMsY0FBYyxFQUNkLHVCQUF1QixHQUN4QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSwyQ0FBMkMsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR2xILE9BQU8sRUFBRSxNQUFNLElBQUksTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBRzlHLG9JQUFvSTtBQUNwSSw2RUFBNkU7QUFDN0UsU0FBUyxnQkFBZ0IsQ0FDdkIsV0FBbUMsRUFDbkMsd0JBQXNDLEVBQ3RDLHFCQUFtQyxFQUNuQyxZQUFvQjtJQUVwQixJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUN6QixJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7SUFDdEIsV0FBVztTQUNSLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQztTQUNwRCxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDcEIsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxZQUFZLEVBQUUsQ0FBQztZQUM1QyxNQUFNLENBQ0osVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDN0YsaURBQWlELGdCQUFnQixFQUFFLENBQ3BFLENBQUM7WUFDRixnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxDQUNKLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUN2Riw2Q0FBNkMsYUFBYSxFQUFFLENBQzdELENBQUM7WUFDRixhQUFhLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxNQUFNLENBQ0osd0JBQXdCLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQ3hFLHlEQUF5RCxDQUMxRCxDQUFDO0lBQ0YsTUFBTSxDQUNKLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsRUFDbEUscURBQXFELENBQ3RELENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxpQkFBaUIsR0FBa0U7SUFDdkYsWUFBWSxFQUFFLGdDQUFnQyxDQUFDLEtBQUssRUFBRTtJQUN0RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsU0FBUyxDQUFDLDRDQUE0QyxDQUFDO0lBQ2hHLGFBQWEsRUFBRSxJQUFJLEdBQUcsRUFBRTtJQUN4QixRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Q0FDMUIsQ0FBQztBQVFGOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFHdkIsWUFDVSxNQUF5QixFQUN6QixZQUFpQyxFQUNqQyxhQUFhLEtBQUs7UUFGbEIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQVE7UUFMcEIsUUFBRyxHQUFHLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBTTdDLENBQUM7SUFFSjs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxLQUFLLENBQUMsS0FBSyxDQUNULFNBQW9CLEVBQ3BCLGVBQXVDLEVBQ3ZDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEtBQW9CLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7UUFFakcsSUFBSSxRQUFRLElBQUksT0FBTyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFFRCxRQUFRLEdBQUcsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFdkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUUxQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTVELE1BQU0sY0FBYyxHQUFHLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELElBQUksY0FBYyxHQUFHLElBQUksQ0FBQztRQUUxQixJQUFJLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQztRQUUvQixNQUFNLFVBQVUsR0FBaUQsRUFBRSxDQUFDO1FBQ3BFLE1BQU0sWUFBWSxHQUFHLEtBQUssRUFBRSxXQUFtQixFQUFFLFFBQWdCLEVBQUUsRUFBRTtZQUNuRSxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQVcsQ0FBQztZQUN4RyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFFNUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxTQUFTLENBQUMsSUFBSSxFQUFFLGtCQUFrQixXQUFXLE1BQU0sU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN0RixDQUFDLENBQUM7UUFFRixNQUFNLG9CQUFvQixHQUFHLDJCQUEyQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sMkJBQTJCLEdBQUcsa0NBQWtDLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEYsTUFBTSx1QkFBdUIsR0FBRyxrQ0FBa0MsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwRixNQUFNLGNBQWMsR0FDbEIsdUJBQXVCLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RHLE1BQU0sOEJBQThCLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxzQ0FBc0MsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BILGtDQUFrQztRQUNsQyxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7UUFDM0IsTUFBTSxZQUFZLEdBQWlCLEVBQUUsQ0FBQztRQUV0QyxPQUFPLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3BCLElBQUksWUFBWSxHQUFHLElBQUksc0NBQXNDLENBQzNELE1BQU0sRUFDTixjQUFjLEVBQ2QsMkJBQTJCLEVBQzNCLDhCQUE4QixDQUMvQixDQUFDO2dCQUNGLE9BQU8sWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7b0JBQ2pDLE1BQU0sYUFBYSxHQUFHLE1BQU0sWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLG9CQUFvQixDQUFDLENBQUM7b0JBQ2xGLE1BQU0sR0FBRyxRQUFRO3dCQUNmLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQzt3QkFDdEQsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDL0QsbUVBQW1FO29CQUNuRSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDNUIsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQ3hDLElBQUksT0FBTyxFQUFFLENBQUM7d0JBQ1osTUFBTSxZQUFZLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUM5RCxDQUFDO29CQUVELFlBQVksR0FBRyxJQUFJLHNDQUFzQyxDQUN2RCxNQUFNLEVBQ04sY0FBYyxFQUNkLDJCQUEyQixFQUMzQiw4QkFBOEIsQ0FDL0IsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQztZQUVELE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxDQUFDLEdBQUcsRUFBRyxDQUFDO1lBRS9DLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBRXpFLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FDekQsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQ3pELGdCQUFnQixDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQzNELENBQUM7WUFFRixvRUFBb0U7WUFDcEUscUVBQXFFO1lBQ3JFLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEMsWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNuRCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE1BQU0sWUFBWSxDQUFDLFlBQXNCLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEUsQ0FBQztZQUVELE1BQU0sZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFFM0UsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxVQUFVLEdBQUcsSUFBSSxxQ0FBcUMsQ0FDMUQsU0FBUyxFQUNULGFBQWEsRUFBRSxFQUNmLHdCQUF3QixFQUN4QixlQUFlLEVBQ2YsZUFBZSxFQUNmLGVBQWUsQ0FBQyxjQUFjLENBQy9CLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQ1osa0RBQWtELGVBQWUsMkJBQTJCLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxDQUM1SCxDQUFDO2dCQUVGLFlBQVksQ0FBQyw0QkFBNEIsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFFdkQsTUFBTSxHQUFHLFFBQVE7b0JBQ2YsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDO29CQUNsRCxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUUzRCxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUIsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3hDLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1osTUFBTSxZQUFZLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM3RCxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sMkJBQTJCLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDckcsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGlCQUFpQixDQUM5QyxNQUFNLENBQUMsWUFBWSxFQUNuQixNQUFNLENBQUMsZUFBZSxFQUN0QixNQUFNLENBQUMsMkJBQTJCLENBQUMsU0FBUyxDQUFDLEVBQzdDLFlBQVksQ0FBNEIsMkJBQTJCLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUNqRyxDQUFDO2dCQUNGLE1BQU0sVUFBVSxHQUFHLElBQUksc0NBQXNDLENBQUMsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLENBQUM7Z0JBRW5HLFlBQVksQ0FBQyw2QkFBNkIsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFFeEQsTUFBTSxHQUFHLFFBQVE7b0JBQ2YsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO29CQUNuRCxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUU1RCxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUIsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3hDLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1osTUFBTSxZQUFZLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDO1lBQ0gsQ0FBQztZQUNELGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQztRQUVELFNBQVM7UUFDVCxJQUFJLFlBQVksR0FBRyxJQUFJLHNDQUFzQyxDQUMzRCxNQUFNLEVBQ04sRUFBRSxFQUNGLDJCQUEyQixFQUMzQiw4QkFBOEIsQ0FDL0IsQ0FBQztRQUNGLE9BQU8sWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakMsTUFBTSxhQUFhLEdBQUcsTUFBTSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztZQUNsRixNQUFNLEdBQUcsUUFBUTtnQkFDZixDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7Z0JBQ3RELENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFL0QsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUIsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDeEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixNQUFNLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUQsQ0FBQztZQUVELFlBQVksR0FBRyxJQUFJLHNDQUFzQyxDQUN2RCxNQUFNLEVBQ04sRUFBRSxFQUNGLDJCQUEyQixFQUMzQiw4QkFBOEIsQ0FDL0IsQ0FBQztRQUNKLENBQUM7UUFFRCxnQkFBZ0I7UUFDaEIsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3JHLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxpQkFBaUIsQ0FDOUMsTUFBTSxDQUFDLFlBQVksRUFDbkIsTUFBTSxDQUFDLGVBQWUsRUFDdEIsTUFBTSxDQUFDLDJCQUEyQixDQUFDLFNBQVMsQ0FBQyxFQUM3QyxZQUFZLENBQTRCLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FDakcsQ0FBQztRQUVGLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUNaLHdDQUF3QyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsOEJBQThCLEVBQUUsQ0FDekcsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFHLElBQUkscUNBQXFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVwRixZQUFZLENBQUMsZ0NBQWdDLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFOUQsTUFBTSxVQUFVLEdBQUcsUUFBUTtZQUN6QixDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUM7WUFDckQsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5RCxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEMsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztZQUM5RSxNQUFNLHdCQUF3QixHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLDRCQUE0QixDQUFDLFdBQVcsQ0FBQztZQUM1RyxNQUFNLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLHlCQUF5QixDQUFDLFdBQVcsQ0FBQztZQUN0RyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsd0JBQXdCLEVBQUUscUJBQXFCLEVBQUUsOEJBQThCLENBQUMsQ0FBQztRQUNqSCxDQUFDO1FBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE1BQU0sWUFBWSxDQUFDLHFCQUFxQixFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvRCxVQUFVLENBQUMsYUFBYSxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDNUMsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLDBDQUEwQyxLQUFLLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFFRCx1REFBdUQ7UUFDdkQsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDbkYsVUFBVSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUM7UUFDdkMsQ0FBQzthQUFNLENBQUM7WUFDTixVQUFVLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0RCxDQUFDO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVPLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUE4QjtRQUM5RixNQUFNLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUV2RSxNQUFNLFVBQVUsR0FBRyxNQUFNLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sRUFBRSxHQUFHLElBQUksdUJBQXVCLENBQUMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFN0UsTUFBTSw2QkFBNkIsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsNEJBQTRCLENBQ2xGLGVBQWUsRUFDZixnQkFBZ0IsQ0FDakIsQ0FBQztRQUNGLE1BQU0sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLHdCQUF3QixFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUM1RyxlQUFlLENBQ2hCLENBQUM7UUFDRixNQUFNLEVBQUUsWUFBWSxFQUFFLHlCQUF5QixFQUFFLHdCQUF3QixFQUFFLHFDQUFxQyxFQUFFLEdBQ2hILE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVoRSxpQ0FBaUM7UUFDakMsNERBQTREO1FBQzVELE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwRCxNQUFNLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxHQUNqRixNQUFNLDJDQUEyQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXJFLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQztZQUMxQixZQUFZO1lBQ1osRUFBRTtZQUNGLFVBQVU7WUFDVix5QkFBeUI7WUFDekIscUNBQXFDO1lBQ3JDLHdCQUF3QjtZQUN4Qiw2QkFBNkI7WUFDN0IsaUNBQWlDO1lBQ2pDLG9CQUFvQjtZQUNwQixRQUFRO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGFBQWEsQ0FBQyxlQUF1QztRQUMzRCxNQUFNLHNCQUFzQixHQUFHLENBQUMsVUFBc0MsRUFBVyxFQUFFO1lBQ2pGLE1BQU0sZ0JBQWdCLEdBQ3BCLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDcEYsQ0FBQyxVQUFVLENBQUMsMEJBQTBCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkQsT0FBTyxDQUNMLENBQUMsZ0JBQWdCO2dCQUNqQixVQUFVLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FDOUYsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUNGLE9BQU8sc0JBQXNCLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRiJ9
@@ -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"}