@aztec/pxe 0.24.0 → 0.26.2
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.
- package/dest/config/index.js +2 -2
- package/dest/database/deferred_note_dao.d.ts +4 -4
- package/dest/database/deferred_note_dao.d.ts.map +1 -1
- package/dest/database/deferred_note_dao.js +5 -5
- package/dest/database/pxe_database_test_suite.js +4 -4
- package/dest/kernel_oracle/index.d.ts +1 -0
- package/dest/kernel_oracle/index.d.ts.map +1 -1
- package/dest/kernel_oracle/index.js +4 -1
- package/dest/kernel_prover/hints_builder.d.ts +36 -0
- package/dest/kernel_prover/hints_builder.d.ts.map +1 -0
- package/dest/kernel_prover/hints_builder.js +115 -0
- package/dest/kernel_prover/kernel_prover.d.ts +2 -24
- package/dest/kernel_prover/kernel_prover.d.ts.map +1 -1
- package/dest/kernel_prover/kernel_prover.js +26 -97
- package/dest/kernel_prover/proof_creator.d.ts +1 -1
- package/dest/kernel_prover/proof_creator.js +3 -3
- package/dest/kernel_prover/proving_data_oracle.d.ts +2 -0
- package/dest/kernel_prover/proving_data_oracle.d.ts.map +1 -1
- package/dest/note_processor/note_processor.d.ts.map +1 -1
- package/dest/note_processor/note_processor.js +14 -13
- package/dest/note_processor/produce_note_dao.d.ts +2 -2
- package/dest/note_processor/produce_note_dao.d.ts.map +1 -1
- package/dest/note_processor/produce_note_dao.js +5 -5
- package/dest/pxe_http/pxe_http_server.d.ts.map +1 -1
- package/dest/pxe_http/pxe_http_server.js +7 -6
- package/dest/pxe_service/create_pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/create_pxe_service.js +3 -2
- package/dest/pxe_service/pxe_service.d.ts +5 -3
- package/dest/pxe_service/pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/pxe_service.js +47 -40
- package/dest/pxe_service/test/pxe_test_suite.d.ts.map +1 -1
- package/dest/pxe_service/test/pxe_test_suite.js +3 -3
- package/dest/simulator_oracle/index.d.ts +7 -4
- package/dest/simulator_oracle/index.d.ts.map +1 -1
- package/dest/simulator_oracle/index.js +17 -8
- package/dest/synchronizer/synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/synchronizer.js +14 -42
- package/package.json +13 -13
- package/src/config/index.ts +1 -1
- package/src/database/deferred_note_dao.ts +3 -3
- package/src/database/pxe_database_test_suite.ts +3 -3
- package/src/kernel_oracle/index.ts +4 -0
- package/src/kernel_prover/hints_builder.ts +170 -0
- package/src/kernel_prover/kernel_prover.ts +56 -135
- package/src/kernel_prover/proof_creator.ts +3 -3
- package/src/kernel_prover/proving_data_oracle.ts +3 -0
- package/src/note_processor/note_processor.ts +15 -22
- package/src/note_processor/produce_note_dao.ts +4 -4
- package/src/pxe_http/pxe_http_server.ts +7 -5
- package/src/pxe_service/create_pxe_service.ts +2 -1
- package/src/pxe_service/pxe_service.ts +70 -57
- package/src/pxe_service/test/pxe_test_suite.ts +8 -6
- package/src/simulator_oracle/index.ts +19 -7
- package/src/synchronizer/synchronizer.ts +14 -56
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { CallRequest, Fr,
|
|
1
|
+
import { CallRequest, Fr, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, NoteHashReadRequestMembershipWitness, PrivateCallData, PrivateKernelInitCircuitPrivateInputs, PrivateKernelInnerCircuitPrivateInputs, PrivateKernelInnerCircuitPublicInputs, PrivateKernelInnerData, PrivateKernelTailCircuitPrivateInputs, VK_TREE_HEIGHT, VerificationKey, makeEmptyProof, } from '@aztec/circuits.js';
|
|
2
2
|
import { makeTuple } from '@aztec/foundation/array';
|
|
3
3
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
4
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
4
5
|
import { assertLength, mapTuple } from '@aztec/foundation/serialize';
|
|
5
6
|
import { pushTestData } from '@aztec/foundation/testing';
|
|
7
|
+
import { HintsBuilder } from './hints_builder.js';
|
|
6
8
|
import { KernelProofCreator } from './proof_creator.js';
|
|
7
9
|
/**
|
|
8
10
|
* The KernelProver class is responsible for generating kernel proofs.
|
|
@@ -14,6 +16,8 @@ export class KernelProver {
|
|
|
14
16
|
constructor(oracle, proofCreator = new KernelProofCreator()) {
|
|
15
17
|
this.oracle = oracle;
|
|
16
18
|
this.proofCreator = proofCreator;
|
|
19
|
+
this.log = createDebugLogger('aztec:kernel-prover');
|
|
20
|
+
this.hintsBuilder = new HintsBuilder(oracle);
|
|
17
21
|
}
|
|
18
22
|
/**
|
|
19
23
|
* Generate a proof for a given transaction request and execution result.
|
|
@@ -37,12 +41,12 @@ export class KernelProver {
|
|
|
37
41
|
while (executionStack.length) {
|
|
38
42
|
const currentExecution = executionStack.pop();
|
|
39
43
|
executionStack.push(...currentExecution.nestedExecutions);
|
|
40
|
-
const privateCallRequests = currentExecution.nestedExecutions.map(result => result.callStackItem.toCallRequest());
|
|
44
|
+
const privateCallRequests = currentExecution.nestedExecutions.map(result => result.callStackItem.toCallRequest(currentExecution.callStackItem.publicInputs.callContext));
|
|
41
45
|
const publicCallRequests = currentExecution.enqueuedPublicFunctionCalls.map(result => result.toCallRequest());
|
|
42
46
|
// Start with the partially filled in read request witnesses from the simulator
|
|
43
47
|
// and fill the non-transient ones in with sibling paths via oracle.
|
|
44
|
-
const
|
|
45
|
-
for (let rr = 0; rr <
|
|
48
|
+
const noteHashReadRequestMembershipWitnesses = currentExecution.noteHashReadRequestPartialWitnesses;
|
|
49
|
+
for (let rr = 0; rr < noteHashReadRequestMembershipWitnesses.length; rr++) {
|
|
46
50
|
// Pretty sure this check was forever broken. I made some changes to Fr and this started triggering.
|
|
47
51
|
// The conditional makes no sense to me anyway.
|
|
48
52
|
// if (currentExecution.callStackItem.publicInputs.readRequests[rr] == Fr.ZERO) {
|
|
@@ -50,7 +54,7 @@ export class KernelProver {
|
|
|
50
54
|
// 'Number of read requests output from Noir circuit does not match number of read request commitment indices output from simulator.',
|
|
51
55
|
// );
|
|
52
56
|
// }
|
|
53
|
-
const rrWitness =
|
|
57
|
+
const rrWitness = noteHashReadRequestMembershipWitnesses[rr];
|
|
54
58
|
if (!rrWitness.isTransient) {
|
|
55
59
|
// Non-transient reads must contain full membership witness with sibling path from commitment to root.
|
|
56
60
|
// Get regular membership witness to fill in sibling path in the read request witness.
|
|
@@ -59,10 +63,10 @@ export class KernelProver {
|
|
|
59
63
|
}
|
|
60
64
|
}
|
|
61
65
|
// fill in witnesses for remaining/empty read requests
|
|
62
|
-
|
|
66
|
+
noteHashReadRequestMembershipWitnesses.push(...Array(MAX_NOTE_HASH_READ_REQUESTS_PER_CALL - noteHashReadRequestMembershipWitnesses.length)
|
|
63
67
|
.fill(0)
|
|
64
|
-
.map(() =>
|
|
65
|
-
const privateCallData = await this.createPrivateCallData(currentExecution, privateCallRequests, publicCallRequests,
|
|
68
|
+
.map(() => NoteHashReadRequestMembershipWitness.empty(BigInt(0))));
|
|
69
|
+
const privateCallData = await this.createPrivateCallData(currentExecution, privateCallRequests, publicCallRequests, noteHashReadRequestMembershipWitnesses);
|
|
66
70
|
if (firstIteration) {
|
|
67
71
|
const proofInput = new PrivateKernelInitCircuitPrivateInputs(txRequest, privateCallData);
|
|
68
72
|
pushTestData('private-kernel-inputs-init', proofInput);
|
|
@@ -83,36 +87,22 @@ export class KernelProver {
|
|
|
83
87
|
}
|
|
84
88
|
const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(previousVerificationKey);
|
|
85
89
|
const previousKernelData = new PrivateKernelInnerData(output.publicInputs, output.proof, previousVerificationKey, Number(previousVkMembershipWitness.leafIndex), assertLength(previousVkMembershipWitness.siblingPath, VK_TREE_HEIGHT));
|
|
86
|
-
const [
|
|
87
|
-
const [sortedNullifiers, sortedNullifiersIndexes] = this.sortSideEffects(output.publicInputs.end.newNullifiers);
|
|
88
|
-
const
|
|
89
|
-
const
|
|
90
|
-
const
|
|
91
|
-
const
|
|
90
|
+
const [sortedNoteHashes, sortedNoteHashesIndexes] = this.hintsBuilder.sortSideEffects(output.publicInputs.end.newNoteHashes);
|
|
91
|
+
const [sortedNullifiers, sortedNullifiersIndexes] = this.hintsBuilder.sortSideEffects(output.publicInputs.end.newNullifiers);
|
|
92
|
+
const readNoteHashHints = this.hintsBuilder.getNoteHashReadRequestHints(output.publicInputs.end.noteHashReadRequests, sortedNoteHashes);
|
|
93
|
+
const nullifierReadRequestResetHints = await this.hintsBuilder.getNullifierReadRequestResetHints(output.publicInputs.end.nullifierReadRequests, output.publicInputs.end.newNullifiers);
|
|
94
|
+
const nullifierNoteHashHints = this.hintsBuilder.getNullifierHints(mapTuple(sortedNullifiers, n => n.noteHash), sortedNoteHashes);
|
|
95
|
+
const masterNullifierSecretKeys = await this.hintsBuilder.getMasterNullifierSecretKeys(output.publicInputs.end.nullifierKeyValidationRequests);
|
|
96
|
+
this.log.debug(`Calling private kernel tail with hwm ${previousKernelData.publicInputs.minRevertibleSideEffectCounter}`);
|
|
97
|
+
const privateInputs = new PrivateKernelTailCircuitPrivateInputs(previousKernelData, sortedNoteHashes, sortedNoteHashesIndexes, readNoteHashHints, sortedNullifiers, sortedNullifiersIndexes, nullifierReadRequestResetHints, nullifierNoteHashHints, masterNullifierSecretKeys);
|
|
92
98
|
pushTestData('private-kernel-inputs-ordering', privateInputs);
|
|
93
99
|
const outputFinal = await this.proofCreator.createProofTail(privateInputs);
|
|
94
100
|
// Only return the notes whose commitment is in the commitments of the final proof.
|
|
95
|
-
const finalNewCommitments = outputFinal.publicInputs.end.
|
|
101
|
+
const finalNewCommitments = outputFinal.publicInputs.end.newNoteHashes;
|
|
96
102
|
const outputNotes = finalNewCommitments.map(c => newNotes[c.value.toString()]).filter(c => !!c);
|
|
97
103
|
return { ...outputFinal, outputNotes };
|
|
98
104
|
}
|
|
99
|
-
|
|
100
|
-
const sorted = sideEffects
|
|
101
|
-
.map((sideEffect, index) => ({ sideEffect, index }))
|
|
102
|
-
.sort((a, b) => {
|
|
103
|
-
// Empty ones go to the right
|
|
104
|
-
if (a.sideEffect.isEmpty()) {
|
|
105
|
-
return 1;
|
|
106
|
-
}
|
|
107
|
-
return Number(a.sideEffect.counter.toBigInt() - b.sideEffect.counter.toBigInt());
|
|
108
|
-
});
|
|
109
|
-
const originalToSorted = sorted.map(() => 0);
|
|
110
|
-
sorted.forEach(({ index }, i) => {
|
|
111
|
-
originalToSorted[index] = i;
|
|
112
|
-
});
|
|
113
|
-
return [sorted.map(({ sideEffect }) => sideEffect), originalToSorted];
|
|
114
|
-
}
|
|
115
|
-
async createPrivateCallData({ callStackItem, vk }, privateCallRequests, publicCallRequests, readRequestMembershipWitnesses) {
|
|
105
|
+
async createPrivateCallData({ callStackItem, vk }, privateCallRequests, publicCallRequests, noteHashReadRequestMembershipWitnesses) {
|
|
116
106
|
const { contractAddress, functionData, publicInputs } = callStackItem;
|
|
117
107
|
const { portalContractAddress } = publicInputs.callContext;
|
|
118
108
|
// Pad with empty items to reach max/const length expected by circuit.
|
|
@@ -137,7 +127,7 @@ export class KernelProver {
|
|
|
137
127
|
contractClassPublicBytecodeCommitment,
|
|
138
128
|
saltedInitializationHash,
|
|
139
129
|
functionLeafMembershipWitness,
|
|
140
|
-
|
|
130
|
+
noteHashReadRequestMembershipWitnesses: makeTuple(MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, i => noteHashReadRequestMembershipWitnesses[i], 0),
|
|
141
131
|
portalContractAddress: portalContractAddress.toField(),
|
|
142
132
|
acirHash,
|
|
143
133
|
});
|
|
@@ -155,73 +145,12 @@ export class KernelProver {
|
|
|
155
145
|
const { callStackItem: { publicInputs }, newNotes, } = executionResult;
|
|
156
146
|
const contractAddress = publicInputs.callContext.storageContractAddress;
|
|
157
147
|
// Assuming that for each new commitment there's an output note added to the execution result.
|
|
158
|
-
const
|
|
148
|
+
const newNoteHashes = await this.proofCreator.getSiloedCommitments(publicInputs);
|
|
159
149
|
return newNotes.map((data, i) => ({
|
|
160
150
|
contractAddress,
|
|
161
151
|
data,
|
|
162
|
-
commitment:
|
|
152
|
+
commitment: newNoteHashes[i],
|
|
163
153
|
}));
|
|
164
154
|
}
|
|
165
|
-
/**
|
|
166
|
-
* Performs the matching between an array of read request and an array of commitments. This produces
|
|
167
|
-
* hints for the private kernel ordering circuit to efficiently match a read request with the corresponding
|
|
168
|
-
* commitment.
|
|
169
|
-
*
|
|
170
|
-
* @param readRequests - The array of read requests.
|
|
171
|
-
* @param commitments - The array of commitments.
|
|
172
|
-
* @returns An array of hints where each element is the index of the commitment in commitments array
|
|
173
|
-
* corresponding to the read request. In other words we have readRequests[i] == commitments[hints[i]].
|
|
174
|
-
*/
|
|
175
|
-
getReadRequestHints(readRequests, commitments) {
|
|
176
|
-
const hints = makeTuple(MAX_READ_REQUESTS_PER_TX, Fr.zero);
|
|
177
|
-
for (let i = 0; i < MAX_READ_REQUESTS_PER_TX && !readRequests[i].isEmpty(); i++) {
|
|
178
|
-
const equalToRR = (cmt) => cmt.value.equals(readRequests[i].value);
|
|
179
|
-
const result = commitments.findIndex(equalToRR);
|
|
180
|
-
if (result == -1) {
|
|
181
|
-
throw new Error(`The read request at index ${i} with value ${readRequests[i].toString()} does not match to any commitment.`);
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
hints[i] = new Fr(result);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
return hints;
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Performs the matching between an array of nullified commitments and an array of commitments. This produces
|
|
191
|
-
* hints for the private kernel ordering circuit to efficiently match a nullifier with the corresponding
|
|
192
|
-
* commitment.
|
|
193
|
-
*
|
|
194
|
-
* @param nullifiedCommitments - The array of nullified commitments.
|
|
195
|
-
* @param commitments - The array of commitments.
|
|
196
|
-
* @returns An array of hints where each element is the index of the commitment in commitments array
|
|
197
|
-
* corresponding to the nullified commitments. In other words we have nullifiedCommitments[i] == commitments[hints[i]].
|
|
198
|
-
*/
|
|
199
|
-
getNullifierHints(nullifiedCommitments, commitments) {
|
|
200
|
-
const hints = makeTuple(MAX_NEW_NULLIFIERS_PER_TX, Fr.zero);
|
|
201
|
-
for (let i = 0; i < MAX_NEW_NULLIFIERS_PER_TX; i++) {
|
|
202
|
-
if (!nullifiedCommitments[i].isZero()) {
|
|
203
|
-
const equalToCommitment = (cmt) => cmt.value.equals(nullifiedCommitments[i]);
|
|
204
|
-
const result = commitments.findIndex(equalToCommitment);
|
|
205
|
-
if (result == -1) {
|
|
206
|
-
throw new Error(`The nullified commitment at index ${i} with value ${nullifiedCommitments[i].toString()} does not match to any commitment.`);
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
hints[i] = new Fr(result);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
return hints;
|
|
214
|
-
}
|
|
215
|
-
async getMasterNullifierSecretKeys(nullifierKeyValidationRequests) {
|
|
216
|
-
const keys = makeTuple(MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_TX, GrumpkinScalar.zero);
|
|
217
|
-
for (let i = 0; i < nullifierKeyValidationRequests.length; ++i) {
|
|
218
|
-
const request = nullifierKeyValidationRequests[i];
|
|
219
|
-
if (request.isEmpty()) {
|
|
220
|
-
break;
|
|
221
|
-
}
|
|
222
|
-
keys[i] = await this.oracle.getMasterNullifierSecretKey(request.publicKey);
|
|
223
|
-
}
|
|
224
|
-
return keys;
|
|
225
|
-
}
|
|
226
155
|
}
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VybmVsX3Byb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXJuZWxfcHJvdmVyL2tlcm5lbF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFdBQVcsRUFDWCxFQUFFLEVBQ0YsY0FBYyxFQUVkLHlCQUF5QixFQUN6Qiw0Q0FBNEMsRUFDNUMsc0NBQXNDLEVBQ3RDLHFDQUFxQyxFQUNyQywwQkFBMEIsRUFDMUIsd0JBQXdCLEVBRXhCLGVBQWUsRUFDZixxQ0FBcUMsRUFDckMsc0NBQXNDLEVBQ3RDLHFDQUFxQyxFQUNyQyxzQkFBc0IsRUFDdEIscUNBQXFDLEVBQ3JDLDRCQUE0QixFQUs1QixjQUFjLEVBQ2QsZUFBZSxFQUNmLGNBQWMsR0FDZixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFTLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHekQsT0FBTyxFQUFFLGtCQUFrQixFQUErQyxNQUFNLG9CQUFvQixDQUFDO0FBa0NyRzs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQW9CLE1BQXlCLEVBQVUsZUFBNkIsSUFBSSxrQkFBa0IsRUFBRTtRQUF4RixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUF5QztJQUFHLENBQUM7SUFFaEg7Ozs7Ozs7OztPQVNHO0lBQ0gsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFvQixFQUFFLGVBQWdDO1FBQ2hFLE1BQU0sY0FBYyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQWdELEVBQUUsQ0FBQztR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
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VybmVsX3Byb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXJuZWxfcHJvdmVyL2tlcm5lbF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFdBQVcsRUFDWCxFQUFFLEVBR0Ysb0NBQW9DLEVBQ3BDLHNDQUFzQyxFQUN0QyxxQ0FBcUMsRUFDckMsb0NBQW9DLEVBQ3BDLGVBQWUsRUFDZixxQ0FBcUMsRUFDckMsc0NBQXNDLEVBQ3RDLHFDQUFxQyxFQUNyQyxzQkFBc0IsRUFDdEIscUNBQXFDLEVBSXJDLGNBQWMsRUFDZCxlQUFlLEVBQ2YsY0FBYyxHQUNmLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUd6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUErQyxNQUFNLG9CQUFvQixDQUFDO0FBa0NyRzs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBSXZCLFlBQW9CLE1BQXlCLEVBQVUsZUFBNkIsSUFBSSxrQkFBa0IsRUFBRTtRQUF4RixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUF5QztRQUhwRyxRQUFHLEdBQUcsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUlyRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9D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
|
|
@@ -36,7 +36,7 @@ export interface ProofCreator {
|
|
|
36
36
|
/**
|
|
37
37
|
* Computes the siloed commitments for a given set of public inputs.
|
|
38
38
|
*
|
|
39
|
-
* @param publicInputs - The public inputs containing the contract address and new
|
|
39
|
+
* @param publicInputs - The public inputs containing the contract address and new note hashes to be used in generating siloed note hashes.
|
|
40
40
|
* @returns An array of Fr (finite field) elements representing the siloed commitments.
|
|
41
41
|
*/
|
|
42
42
|
getSiloedCommitments(publicInputs: PrivateCircuitPublicInputs): Promise<Fr[]>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { makeEmptyProof, } from '@aztec/circuits.js';
|
|
2
|
-
import {
|
|
2
|
+
import { siloNoteHash } from '@aztec/circuits.js/hash';
|
|
3
3
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { elapsed } from '@aztec/foundation/timer';
|
|
5
5
|
import { executeInit, executeInner, executeTail } from '@aztec/noir-protocol-circuits-types';
|
|
@@ -16,7 +16,7 @@ export class KernelProofCreator {
|
|
|
16
16
|
}
|
|
17
17
|
getSiloedCommitments(publicInputs) {
|
|
18
18
|
const contractAddress = publicInputs.callContext.storageContractAddress;
|
|
19
|
-
return Promise.resolve(publicInputs.
|
|
19
|
+
return Promise.resolve(publicInputs.newNoteHashes.map(commitment => siloNoteHash(contractAddress, commitment.value)));
|
|
20
20
|
}
|
|
21
21
|
async createProofInit(privateInputs) {
|
|
22
22
|
const [duration, result] = await elapsed(() => executeInit(privateInputs));
|
|
@@ -67,4 +67,4 @@ export class KernelProofCreator {
|
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvb2ZfY3JlYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXJuZWxfcHJvdmVyL3Byb29mX2NyZWF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQVFMLGNBQWMsR0FDZixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFzRTdGOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFBb0IsTUFBTSxpQkFBaUIsQ0FBQyw0QkFBNEIsQ0FBQztRQUFyRCxRQUFHLEdBQUgsR0FBRyxDQUFrRDtJQUFHLENBQUM7SUFFdEUsb0JBQW9CLENBQUMsWUFBd0M7UUFDbEUsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQztRQUV4RSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQ3BCLFlBQVksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDOUYsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsZUFBZSxDQUFDLGFBQW9EO1FBQy9FLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsRUFBRTtZQUN4QyxTQUFTLEVBQUUsb0JBQW9CO1lBQy9CLFdBQVcsRUFBRSxxQkFBcUI7WUFDbEMsUUFBUTtZQUNSLFNBQVMsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTTtZQUMxQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07U0FDSixDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sS0FBSyxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBRS9CLE9BQU87WUFDTCxZQUFZLEVBQUUsTUFBTTtZQUNwQixLQUFLLEVBQUUsS0FBSztTQUNiLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLGdCQUFnQixDQUFDLGFBQXFEO1FBQ2pGLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsRUFBRTtZQUN6QyxTQUFTLEVBQUUsb0JBQW9CO1lBQy9CLFdBQVcsRUFBRSxzQkFBc0I7WUFDbkMsUUFBUTtZQUNSLFNBQVMsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTTtZQUMxQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07U0FDSixDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sS0FBSyxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBRS9CLE9BQU87WUFDTCxZQUFZLEVBQUUsTUFBTTtZQUNwQixLQUFLLEVBQUUsS0FBSztTQUNiLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLGVBQWUsQ0FBQyxhQUFvRDtRQUMvRSxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxHQUFHLENBQUMsbUNBQW1DLEVBQUU7WUFDNUMsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixXQUFXLEVBQUUseUJBQXlCO1lBQ3RDLFFBQVE7WUFDUixTQUFTLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07WUFDMUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNO1NBQ0osQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsNkNBQTZDLENBQUMsQ0FBQztRQUN4RCxNQUFNLEtBQUssR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUUvQixPQUFPO1lBQ0wsWUFBWSxFQUFFLE1BQU07WUFDcEIsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGIn0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { NullifierMembershipWitness } from '@aztec/circuit-types';
|
|
1
2
|
import { FUNCTION_TREE_HEIGHT, Fr, FunctionSelector, GrumpkinPrivateKey, MembershipWitness, NOTE_HASH_TREE_HEIGHT, Point, VK_TREE_HEIGHT, VerificationKey } from '@aztec/circuits.js';
|
|
2
3
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
3
4
|
/**
|
|
@@ -44,6 +45,7 @@ export interface ProvingDataOracle {
|
|
|
44
45
|
* @returns the MembershipWitness for the note.
|
|
45
46
|
*/
|
|
46
47
|
getNoteMembershipWitness(leafIndex: bigint): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT>>;
|
|
48
|
+
getNullifierMembershipWitness(blockNumber: number, nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
|
|
47
49
|
/**
|
|
48
50
|
* Get the root of the note hash tree.
|
|
49
51
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proving_data_oracle.d.ts","sourceRoot":"","sources":["../../src/kernel_prover/proving_data_oracle.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,EAAE,EACF,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,EACL,cAAc,EACd,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,8FAA8F;IAC9F,0BAA0B,CACxB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC;QAAE,wBAAwB,EAAE,EAAE,CAAC;QAAC,cAAc,EAAE,EAAE,CAAC;QAAC,eAAe,EAAE,EAAE,CAAA;KAAE,CAAC,CAAC;IAEtF,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,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC;IAE/F;;;;;OAKG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC;IAEtG;;;;OAIG;IACH,mBAAmB,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IAEnC;;;;;OAKG;IACH,2BAA2B,CAAC,kBAAkB,EAAE,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACrF"}
|
|
1
|
+
{"version":3,"file":"proving_data_oracle.d.ts","sourceRoot":"","sources":["../../src/kernel_prover/proving_data_oracle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,oBAAoB,EACpB,EAAE,EACF,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,EACL,cAAc,EACd,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,8FAA8F;IAC9F,0BAA0B,CACxB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC;QAAE,wBAAwB,EAAE,EAAE,CAAC;QAAC,cAAc,EAAE,EAAE,CAAC;QAAC,eAAe,EAAE,EAAE,CAAA;KAAE,CAAC,CAAC;IAEtF,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,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC;IAE/F;;;;;OAKG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC;IAEtG,6BAA6B,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAAC;IAEnH;;;;OAIG;IACH,mBAAmB,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IAEnC;;;;;OAKG;IACH,2BAA2B,CAAC,kBAAkB,EAAE,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACrF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note_processor.d.ts","sourceRoot":"","sources":["../../src/note_processor/note_processor.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"note_processor.d.ts","sourceRoot":"","sources":["../../src/note_processor/note_processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAiB,cAAc,EAAE,aAAa,EAAc,MAAM,sBAAsB,CAAC;AACrH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAoD,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAIjG,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGhD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAkBlD;;;GAGG;AACH,qBAAa,aAAa;IAQtB;;OAEG;aACa,SAAS,EAAE,SAAS;IACpC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,GAAG;IAhBb,mEAAmE;IACnE,SAAgB,KAAK,EAAE,KAAK,CAAe;IAE3C,4CAA4C;IAC5C,SAAgB,KAAK,EAAE,kBAAkB,CAAwE;;IAG/G;;OAEG;IACa,SAAS,EAAE,SAAS,EAC5B,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,SAAS,EACf,aAAa,GAAE,MAA6B,EAC5C,SAAS,2CAAuC,EAChD,GAAG,8CAA4C;IAGzD;;;;;;OAMG;IACU,cAAc;IAK3B;;OAEG;IACH,IAAW,MAAM;;MAEhB;IAED,OAAO,CAAC,gBAAgB;IAIxB;;;;;;;;;OASG;IACU,OAAO,CAAC,eAAe,EAAE,cAAc,EAAE,EAAE,oBAAoB,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkG7G;;;;;;;;OAQG;YACW,qBAAqB;IA0BnC;;;;OAIG;YACW,oBAAoB;IAalC;;;;;;;;OAQG;IACU,mBAAmB,CAAC,gBAAgB,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CA4B1F"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { L1NotePayload, TaggedNote } from '@aztec/circuit-types';
|
|
2
|
+
import { INITIAL_L2_BLOCK_NUM, MAX_NEW_NOTE_HASHES_PER_TX } from '@aztec/circuits.js';
|
|
3
3
|
import { Grumpkin } from '@aztec/circuits.js/barretenberg';
|
|
4
4
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
5
5
|
import { Timer } from '@aztec/foundation/timer';
|
|
@@ -84,21 +84,22 @@ export class NoteProcessor {
|
|
|
84
84
|
// Iterate over all the encrypted logs and try decrypting them. If successful, store the note.
|
|
85
85
|
for (let indexOfTxInABlock = 0; indexOfTxInABlock < txLogs.length; ++indexOfTxInABlock) {
|
|
86
86
|
this.stats.txs++;
|
|
87
|
-
const dataStartIndexForTx = dataEndIndexForBlock - (txLogs.length - indexOfTxInABlock) *
|
|
88
|
-
const
|
|
87
|
+
const dataStartIndexForTx = dataEndIndexForBlock - (txLogs.length - indexOfTxInABlock) * MAX_NEW_NOTE_HASHES_PER_TX;
|
|
88
|
+
const newNoteHashes = block.body.txEffects[indexOfTxInABlock].noteHashes;
|
|
89
89
|
// Note: Each tx generates a `TxL2Logs` object and for this reason we can rely on its index corresponding
|
|
90
90
|
// to the index of a tx in a block.
|
|
91
91
|
const txFunctionLogs = txLogs[indexOfTxInABlock].functionLogs;
|
|
92
92
|
const excludedIndices = new Set();
|
|
93
93
|
for (const functionLogs of txFunctionLogs) {
|
|
94
|
-
for (const
|
|
94
|
+
for (const log of functionLogs.logs) {
|
|
95
95
|
this.stats.seen++;
|
|
96
|
-
const
|
|
97
|
-
if (
|
|
96
|
+
const taggedNote = TaggedNote.fromEncryptedBuffer(log, privateKey, curve);
|
|
97
|
+
if (taggedNote?.notePayload) {
|
|
98
|
+
const { notePayload: payload } = taggedNote;
|
|
98
99
|
// We have successfully decrypted the data.
|
|
99
100
|
const txHash = blockContext.getTxHash(indexOfTxInABlock);
|
|
100
101
|
try {
|
|
101
|
-
const noteDao = await produceNoteDao(this.simulator, this.publicKey, payload, txHash,
|
|
102
|
+
const noteDao = await produceNoteDao(this.simulator, this.publicKey, payload, txHash, newNoteHashes, dataStartIndexForTx, excludedIndices);
|
|
102
103
|
noteDaos.push(noteDao);
|
|
103
104
|
this.stats.decrypted++;
|
|
104
105
|
}
|
|
@@ -106,7 +107,7 @@ export class NoteProcessor {
|
|
|
106
107
|
if (e instanceof ContractNotFoundError) {
|
|
107
108
|
this.stats.deferred++;
|
|
108
109
|
this.log.warn(e.message);
|
|
109
|
-
const deferredNoteDao = new DeferredNoteDao(this.publicKey, payload.note, payload.contractAddress, payload.storageSlot, payload.noteTypeId, txHash,
|
|
110
|
+
const deferredNoteDao = new DeferredNoteDao(this.publicKey, payload.note, payload.contractAddress, payload.storageSlot, payload.noteTypeId, txHash, newNoteHashes, dataStartIndexForTx);
|
|
110
111
|
deferredNoteDaos.push(deferredNoteDao);
|
|
111
112
|
}
|
|
112
113
|
else {
|
|
@@ -146,7 +147,7 @@ export class NoteProcessor {
|
|
|
146
147
|
this.log(`Added note for contract ${noteDao.contractAddress} at slot ${noteDao.storageSlot} with nullifier ${noteDao.siloedNullifier.toString()}`);
|
|
147
148
|
});
|
|
148
149
|
}
|
|
149
|
-
const newNullifiers = blocksAndNotes.flatMap(b => b.blockContext.block.
|
|
150
|
+
const newNullifiers = blocksAndNotes.flatMap(b => b.blockContext.block.body.txEffects.flatMap(txEffect => txEffect.nullifiers));
|
|
150
151
|
const removedNotes = await this.db.removeNullifiedNotes(newNullifiers, this.publicKey);
|
|
151
152
|
removedNotes.forEach(noteDao => {
|
|
152
153
|
this.log(`Removed note for contract ${noteDao.contractAddress} at slot ${noteDao.storageSlot} with nullifier ${noteDao.siloedNullifier.toString()}`);
|
|
@@ -178,10 +179,10 @@ export class NoteProcessor {
|
|
|
178
179
|
const excludedIndices = new Set();
|
|
179
180
|
const noteDaos = [];
|
|
180
181
|
for (const deferredNote of deferredNoteDaos) {
|
|
181
|
-
const { note, contractAddress, storageSlot, noteTypeId, txHash,
|
|
182
|
+
const { note, contractAddress, storageSlot, noteTypeId, txHash, newNoteHashes, dataStartIndexForTx } = deferredNote;
|
|
182
183
|
const payload = new L1NotePayload(note, contractAddress, storageSlot, noteTypeId);
|
|
183
184
|
try {
|
|
184
|
-
const noteDao = await produceNoteDao(this.simulator, this.publicKey, payload, txHash,
|
|
185
|
+
const noteDao = await produceNoteDao(this.simulator, this.publicKey, payload, txHash, newNoteHashes, dataStartIndexForTx, excludedIndices);
|
|
185
186
|
noteDaos.push(noteDao);
|
|
186
187
|
this.stats.decrypted++;
|
|
187
188
|
}
|
|
@@ -193,4 +194,4 @@ export class NoteProcessor {
|
|
|
193
194
|
return noteDaos;
|
|
194
195
|
}
|
|
195
196
|
}
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZV9wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90ZV9wcm9jZXNzb3Ivbm90ZV9wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixhQUFhLEVBQWlDLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSwwQkFBMEIsRUFBYSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWdCdkQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFPeEI7SUFDRTs7T0FFRztJQUNhLFNBQW9CLEVBQzVCLFFBQWtCLEVBQ2xCLEVBQWUsRUFDZixJQUFlLEVBQ2YsZ0JBQXdCLG9CQUFvQixFQUM1QyxZQUFZLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQ2hELE1BQU0saUJBQWlCLENBQUMsc0JBQXNCLENBQUM7UUFOdkMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUM1QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFXO1FBQ2Ysa0JBQWEsR0FBYixhQUFhLENBQStCO1FBQzVDLGNBQVMsR0FB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
|
|
@@ -11,11 +11,11 @@ import { NoteDao } from '../database/note_dao.js';
|
|
|
11
11
|
* @param publicKey - The public counterpart to the private key to be used in note decryption.
|
|
12
12
|
* @param payload - An instance of l1NotePayload.
|
|
13
13
|
* @param txHash - The hash of the transaction that created the note. Equivalent to the first nullifier of the transaction.
|
|
14
|
-
* @param
|
|
14
|
+
* @param newNoteHashes - New note hashes in this transaction, one of which belongs to this note.
|
|
15
15
|
* @param dataStartIndexForTx - The next available leaf index for the note hash tree for this transaction.
|
|
16
16
|
* @param excludedIndices - Indices that have been assigned a note in the same tx. Notes in a tx can have the same l1NotePayload, we need to find a different index for each replicate.
|
|
17
17
|
* @param simulator - An instance of AcirSimulator.
|
|
18
18
|
* @returns an instance of NoteDao, or throws. inserts the index of the note into the excludedIndices set.
|
|
19
19
|
*/
|
|
20
|
-
export declare function produceNoteDao(simulator: AcirSimulator, publicKey: PublicKey, payload: L1NotePayload, txHash: TxHash,
|
|
20
|
+
export declare function produceNoteDao(simulator: AcirSimulator, publicKey: PublicKey, payload: L1NotePayload, txHash: TxHash, newNoteHashes: Fr[], dataStartIndexForTx: number, excludedIndices: Set<number>): Promise<NoteDao>;
|
|
21
21
|
//# sourceMappingURL=produce_note_dao.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"produce_note_dao.d.ts","sourceRoot":"","sources":["../../src/note_processor/produce_note_dao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,EACd,
|
|
1
|
+
{"version":3,"file":"produce_note_dao.d.ts","sourceRoot":"","sources":["../../src/note_processor/produce_note_dao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,EAAE,EAAE,EACnB,mBAAmB,EAAE,MAAM,EAC3B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,GAC3B,OAAO,CAAC,OAAO,CAAC,CAsBlB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Fr } from '@aztec/circuits.js';
|
|
2
|
-
import { computeCommitmentNonce, siloNullifier } from '@aztec/circuits.js/
|
|
2
|
+
import { computeCommitmentNonce, siloNullifier } from '@aztec/circuits.js/hash';
|
|
3
3
|
import { NoteDao } from '../database/note_dao.js';
|
|
4
4
|
/**
|
|
5
5
|
* Decodes a note from a transaction that we know was intended for us.
|
|
@@ -10,14 +10,14 @@ import { NoteDao } from '../database/note_dao.js';
|
|
|
10
10
|
* @param publicKey - The public counterpart to the private key to be used in note decryption.
|
|
11
11
|
* @param payload - An instance of l1NotePayload.
|
|
12
12
|
* @param txHash - The hash of the transaction that created the note. Equivalent to the first nullifier of the transaction.
|
|
13
|
-
* @param
|
|
13
|
+
* @param newNoteHashes - New note hashes in this transaction, one of which belongs to this note.
|
|
14
14
|
* @param dataStartIndexForTx - The next available leaf index for the note hash tree for this transaction.
|
|
15
15
|
* @param excludedIndices - Indices that have been assigned a note in the same tx. Notes in a tx can have the same l1NotePayload, we need to find a different index for each replicate.
|
|
16
16
|
* @param simulator - An instance of AcirSimulator.
|
|
17
17
|
* @returns an instance of NoteDao, or throws. inserts the index of the note into the excludedIndices set.
|
|
18
18
|
*/
|
|
19
|
-
export async function produceNoteDao(simulator, publicKey, payload, txHash,
|
|
20
|
-
const { commitmentIndex, nonce, innerNoteHash, siloedNullifier } = await findNoteIndexAndNullifier(simulator,
|
|
19
|
+
export async function produceNoteDao(simulator, publicKey, payload, txHash, newNoteHashes, dataStartIndexForTx, excludedIndices) {
|
|
20
|
+
const { commitmentIndex, nonce, innerNoteHash, siloedNullifier } = await findNoteIndexAndNullifier(simulator, newNoteHashes, txHash, payload, excludedIndices);
|
|
21
21
|
const index = BigInt(dataStartIndexForTx + commitmentIndex);
|
|
22
22
|
excludedIndices?.add(commitmentIndex);
|
|
23
23
|
return new NoteDao(payload.note, payload.contractAddress, payload.storageSlot, payload.noteTypeId, txHash, nonce, innerNoteHash, siloedNullifier, index, publicKey);
|
|
@@ -89,4 +89,4 @@ https://github.com/AztecProtocol/aztec-packages/issues/1641`;
|
|
|
89
89
|
siloedNullifier: siloNullifier(contractAddress, innerNullifier),
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjZV9ub3RlX2Rhby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub3RlX3Byb2Nlc3Nvci9wcm9kdWNlX25vdGVfZGFvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQWEsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHaEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWxEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLFNBQXdCLEVBQ3hCLFNBQW9CLEVBQ3BCLE9BQXNCLEVBQ3RCLE1BQWMsRUFDZCxhQUFtQixFQUNuQixtQkFBMkIsRUFDM0IsZUFBNEI7SUFFNUIsTUFBTSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxHQUFHLE1BQU0seUJBQXlCLENBQ2hHLFNBQVMsRUFDVCxhQUFhLEVBQ2IsTUFBTSxFQUNOLE9BQU8sRUFDUCxlQUFlLENBQ2hCLENBQUM7SUFDRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsbUJBQW1CLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFDNUQsZUFBZSxFQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN0QyxPQUFPLElBQUksT0FBTyxDQUNoQixPQUFPLENBQUMsSUFBSSxFQUNaLE9BQU8sQ0FBQyxlQUFlLEVBQ3ZCLE9BQU8sQ0FBQyxXQUFXLEVBQ25CLE9BQU8sQ0FBQyxVQUFVLEVBQ2xCLE1BQU0sRUFDTixLQUFLLEVBQ0wsYUFBYSxFQUNiLGVBQWUsRUFDZixLQUFLLEVBQ0wsU0FBUyxDQUNWLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxLQUFLLFVBQVUseUJBQXlCLENBQ3RDLFNBQXdCLEVBQ3hCLFdBQWlCLEVBQ2pCLE1BQWMsRUFDZCxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBaUIsRUFDakUsZUFBNEI7SUFFNUIsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLElBQUksS0FBcUIsQ0FBQztJQUMxQixJQUFJLGFBQTZCLENBQUM7SUFDbEMsSUFBSSxjQUE4QixDQUFDO0lBQ25DLElBQUksb0JBQW9DLENBQUM7SUFDekMsSUFBSSxjQUE4QixDQUFDO0lBQ25DLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFFeEQsT0FBTyxlQUFlLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLGVBQWUsRUFBRSxDQUFDO1FBQy9ELElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQ3pDLFNBQVM7UUFDWCxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hELElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMvQixNQUFNO1FBQ1IsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLHNCQUFzQixDQUFDLGNBQWMsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUM5RSxDQUFDLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUU7WUFDdEUsTUFBTSxTQUFTLENBQUMsMkJBQTJCLENBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztZQUM1QyxLQUFLLEdBQUcsYUFBYSxDQUFDO1lBQ3RCLE1BQU07UUFDUixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLElBQUksV0FBVyxDQUFDO1FBQ2hCLElBQUksY0FBYyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLFdBQVcsR0FBRyxpREFBaUQsQ0FBQztRQUNsRSxDQUFDO2FBQU0sQ0FBQztZQUNOLFdBQVcsR0FBRzs7Ozs7RUFLbEIsY0FBYyxDQUFDLFFBQVEsRUFBRTs7Ozs7OzREQU1pQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxPQUFPO1FBQ0wsZUFBZTtRQUNmLEtBQUs7UUFDTCxhQUFhLEVBQUUsYUFBYztRQUM3QixlQUFlLEVBQUUsYUFBYSxDQUFDLGVBQWUsRUFBRSxjQUFlLENBQUM7S0FDakUsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pxe_http_server.d.ts","sourceRoot":"","sources":["../../src/pxe_http/pxe_http_server.ts"],"names":[],"mappings":";AAAA,OAAO,EAYL,GAAG,
|
|
1
|
+
{"version":3,"file":"pxe_http_server.d.ts","sourceRoot":"","sources":["../../src/pxe_http/pxe_http_server.ts"],"names":[],"mappings":";AAAA,OAAO,EAYL,GAAG,EAMJ,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,aAAa,EAAiC,MAAM,mCAAmC,CAAC;AAEjG,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,GAAG,aAAa,CA0BjE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAStF"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { AuthWitness, CompleteAddress, ContractData, ExtendedContractData, ExtendedNote, ExtendedUnencryptedL2Log, L2Block, L2BlockL2Logs,
|
|
1
|
+
import { AuthWitness, CompleteAddress, ContractData, ExtendedContractData, ExtendedNote, ExtendedUnencryptedL2Log, L2Block, L2BlockL2Logs, LogId, Note, NullifierMembershipWitness, Tx, TxEffect, TxExecutionRequest, TxHash, TxReceipt, } from '@aztec/circuit-types';
|
|
2
2
|
import { FunctionSelector } from '@aztec/circuits.js';
|
|
3
3
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
4
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
5
|
import { Fr, GrumpkinScalar, Point } from '@aztec/foundation/fields';
|
|
6
|
-
import { JsonRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
6
|
+
import { JsonRpcServer, createNamespacedJsonRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
7
7
|
import http from 'http';
|
|
8
8
|
/**
|
|
9
9
|
* Wraps an instance of Private eXecution Environment (PXE) implementation to a JSON RPC HTTP interface.
|
|
@@ -27,9 +27,9 @@ export function createPXERpcServer(pxeService) {
|
|
|
27
27
|
ExtendedNote,
|
|
28
28
|
AuthWitness,
|
|
29
29
|
L2Block,
|
|
30
|
-
|
|
30
|
+
TxEffect,
|
|
31
31
|
LogId,
|
|
32
|
-
}, { Tx, TxReceipt, L2BlockL2Logs }, ['start', 'stop']);
|
|
32
|
+
}, { Tx, TxReceipt, L2BlockL2Logs, NullifierMembershipWitness }, ['start', 'stop']);
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* Creates an http server that forwards calls to the PXE and starts it on the given port.
|
|
@@ -38,10 +38,11 @@ export function createPXERpcServer(pxeService) {
|
|
|
38
38
|
* @returns A running http server.
|
|
39
39
|
*/
|
|
40
40
|
export function startPXEHttpServer(pxeService, port) {
|
|
41
|
-
const
|
|
41
|
+
const pxeServer = createPXERpcServer(pxeService);
|
|
42
|
+
const rpcServer = createNamespacedJsonRpcServer([{ pxe: pxeServer }]);
|
|
42
43
|
const app = rpcServer.getApp();
|
|
43
44
|
const httpServer = http.createServer(app.callback());
|
|
44
45
|
httpServer.listen(port);
|
|
45
46
|
return httpServer;
|
|
46
47
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX2h0dHBfc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B4ZV9odHRwL3B4ZV9odHRwX3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGVBQWUsRUFDZixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLFlBQVksRUFDWix3QkFBd0IsRUFDeEIsT0FBTyxFQUNQLGFBQWEsRUFDYixLQUFLLEVBQ0wsSUFBSSxFQUNKLDBCQUEwQixFQUUxQixFQUFFLEVBQ0YsUUFBUSxFQUNSLGtCQUFrQixFQUNsQixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakcsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCOzs7R0FHRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUFlO0lBQ2hELE9BQU8sSUFBSSxhQUFhLENBQ3RCLFVBQVUsRUFDVjtRQUNFLGVBQWU7UUFDZixZQUFZO1FBQ1osa0JBQWtCO1FBQ2xCLFlBQVk7UUFDWixvQkFBb0I7UUFDcEIsd0JBQXdCO1FBQ3hCLGdCQUFnQjtRQUNoQixNQUFNO1FBQ04sVUFBVTtRQUNWLEtBQUs7UUFDTCxFQUFFO1FBQ0YsY0FBYztRQUNkLElBQUk7UUFDSixZQUFZO1FBQ1osV0FBVztRQUNYLE9BQU87UUFDUCxRQUFRO1FBQ1IsS0FBSztLQUNOLEVBQ0QsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSwwQkFBMEIsRUFBRSxFQUM1RCxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FDbEIsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUFlLEVBQUUsSUFBcUI7SUFDdkUsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakQsTUFBTSxTQUFTLEdBQUcsNkJBQTZCLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFdEUsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQy9CLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDckQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV4QixPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_pxe_service.d.ts","sourceRoot":"","sources":["../../src/pxe_service/create_pxe_service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"create_pxe_service.d.ts","sourceRoot":"","sources":["../../src/pxe_service/create_pxe_service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAWjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,EACxB,YAAY,GAAE,MAAM,GAAG,OAAO,GAAG,SAAqB,uBAwBvD"}
|
|
@@ -3,6 +3,7 @@ import { TestKeyStore } from '@aztec/key-store';
|
|
|
3
3
|
import { AztecLmdbStore } from '@aztec/kv-store/lmdb';
|
|
4
4
|
import { initStoreForRollup } from '@aztec/kv-store/utils';
|
|
5
5
|
import { getCanonicalClassRegisterer } from '@aztec/protocol-contracts/class-registerer';
|
|
6
|
+
import { getCanonicalGasToken } from '@aztec/protocol-contracts/gas-token';
|
|
6
7
|
import { getCanonicalInstanceDeployer } from '@aztec/protocol-contracts/instance-deployer';
|
|
7
8
|
import { join } from 'path';
|
|
8
9
|
import { KVPxeDatabase } from '../database/kv_pxe_database.js';
|
|
@@ -29,8 +30,8 @@ export async function createPXEService(aztecNode, config, useLogSuffix = undefin
|
|
|
29
30
|
const keyStore = new TestKeyStore(new Grumpkin(), await initStoreForRollup(AztecLmdbStore.open(keyStorePath), l1Contracts.rollupAddress));
|
|
30
31
|
const db = new KVPxeDatabase(await initStoreForRollup(AztecLmdbStore.open(pxeDbPath), l1Contracts.rollupAddress));
|
|
31
32
|
const server = new PXEService(keyStore, aztecNode, db, config, logSuffix);
|
|
32
|
-
await server.addContracts([getCanonicalClassRegisterer(), getCanonicalInstanceDeployer()]);
|
|
33
|
+
await server.addContracts([getCanonicalClassRegisterer(), getCanonicalInstanceDeployer(), getCanonicalGasToken()]);
|
|
33
34
|
await server.start();
|
|
34
35
|
return server;
|
|
35
36
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX3B4ZV9zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B4ZV9zZXJ2aWNlL2NyZWF0ZV9weGVfc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUUzRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUM7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsU0FBb0IsRUFDcEIsTUFBd0IsRUFDeEIsZUFBNkMsU0FBUztJQUV0RCxNQUFNLFNBQVMsR0FDYixPQUFPLFlBQVksS0FBSyxTQUFTO1FBQy9CLENBQUMsQ0FBQyxZQUFZO1lBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDLFNBQVM7UUFDYixDQUFDLENBQUMsWUFBWSxDQUFDO0lBRW5CLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDNUYsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNwRyxNQUFNLFdBQVcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBRTdELE1BQU0sUUFBUSxHQUFHLElBQUksWUFBWSxDQUMvQixJQUFJLFFBQVEsRUFBRSxFQUNkLE1BQU0sa0JBQWtCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQ3ZGLENBQUM7SUFDRixNQUFNLEVBQUUsR0FBRyxJQUFJLGFBQWEsQ0FBQyxNQUFNLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFFbEgsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLDJCQUEyQixFQUFFLEVBQUUsNEJBQTRCLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVuSCxNQUFNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIn0=
|