@aztec/pxe 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2 → 0.75.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/bin/index.d.ts +3 -0
- package/dest/bin/index.d.ts.map +1 -0
- package/dest/bin/index.js +5 -3
- package/dest/config/index.d.ts +46 -0
- package/dest/config/index.d.ts.map +1 -0
- package/dest/config/index.js +21 -18
- package/dest/config/package_info.d.ts +5 -0
- package/dest/config/package_info.d.ts.map +1 -0
- package/dest/config/package_info.js +2 -4
- package/dest/contract_data_oracle/index.d.ts +104 -0
- package/dest/contract_data_oracle/index.d.ts.map +1 -0
- package/dest/contract_data_oracle/index.js +79 -69
- package/dest/contract_data_oracle/private_functions_tree.d.ts +65 -0
- package/dest/contract_data_oracle/private_functions_tree.d.ts.map +1 -0
- package/dest/contract_data_oracle/private_functions_tree.js +50 -44
- package/dest/database/contracts/contract_artifact_db.d.ts +20 -0
- package/dest/database/contracts/contract_artifact_db.d.ts.map +1 -0
- package/dest/database/contracts/contract_artifact_db.js +2 -3
- package/dest/database/contracts/contract_instance_db.d.ts +19 -0
- package/dest/database/contracts/contract_instance_db.d.ts.map +1 -0
- package/dest/database/contracts/contract_instance_db.js +2 -3
- package/dest/database/index.d.ts +3 -0
- package/dest/database/index.d.ts.map +1 -0
- package/dest/database/index.js +1 -0
- package/dest/database/kv_pxe_database.d.ts +55 -0
- package/dest/database/kv_pxe_database.d.ts.map +1 -0
- package/dest/database/kv_pxe_database.js +259 -243
- package/dest/database/note_dao.d.ts +103 -0
- package/dest/database/note_dao.d.ts.map +1 -0
- package/dest/database/note_dao.js +43 -28
- package/dest/database/outgoing_note_dao.d.ts +73 -0
- package/dest/database/outgoing_note_dao.d.ts.map +1 -0
- package/dest/database/outgoing_note_dao.js +34 -20
- package/dest/database/pxe_database.d.ts +216 -0
- package/dest/database/pxe_database.d.ts.map +1 -0
- package/dest/database/pxe_database.js +2 -4
- package/dest/database/pxe_database_test_suite.d.ts +7 -0
- package/dest/database/pxe_database_test_suite.d.ts.map +1 -0
- package/dest/database/pxe_database_test_suite.js +151 -296
- package/dest/index.d.ts +15 -0
- package/dest/index.d.ts.map +1 -0
- package/dest/index.js +1 -0
- package/dest/kernel_oracle/index.d.ts +34 -0
- package/dest/kernel_oracle/index.d.ts.map +1 -0
- package/dest/kernel_oracle/index.js +6 -9
- package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.d.ts +28 -0
- package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -0
- package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.js +66 -68
- package/dest/kernel_prover/hints/index.d.ts +2 -0
- package/dest/kernel_prover/hints/index.d.ts.map +1 -0
- package/dest/kernel_prover/hints/index.js +1 -0
- package/dest/kernel_prover/index.d.ts +3 -0
- package/dest/kernel_prover/index.d.ts.map +1 -0
- package/dest/kernel_prover/index.js +1 -0
- package/dest/kernel_prover/kernel_prover.d.ts +38 -0
- package/dest/kernel_prover/kernel_prover.d.ts.map +1 -0
- package/dest/kernel_prover/kernel_prover.js +65 -60
- package/dest/kernel_prover/proving_data_oracle.d.ts +65 -0
- package/dest/kernel_prover/proving_data_oracle.d.ts.map +1 -0
- package/dest/kernel_prover/proving_data_oracle.js +2 -4
- package/dest/note_decryption_utils/add_public_values_to_payload.d.ts +10 -0
- package/dest/note_decryption_utils/add_public_values_to_payload.d.ts.map +1 -0
- package/dest/note_decryption_utils/add_public_values_to_payload.js +9 -8
- package/dest/pxe_http/index.d.ts +2 -0
- package/dest/pxe_http/index.d.ts.map +1 -0
- package/dest/pxe_http/index.js +1 -0
- package/dest/pxe_http/pxe_http_server.d.ts +16 -0
- package/dest/pxe_http/pxe_http_server.d.ts.map +1 -0
- package/dest/pxe_http/pxe_http_server.js +6 -8
- package/dest/pxe_service/error_enriching.d.ts +11 -0
- package/dest/pxe_service/error_enriching.d.ts.map +1 -0
- package/dest/pxe_service/error_enriching.js +13 -10
- package/dest/pxe_service/index.d.ts +4 -0
- package/dest/pxe_service/index.d.ts.map +1 -0
- package/dest/pxe_service/index.js +1 -0
- package/dest/pxe_service/pxe_service.d.ts +98 -0
- package/dest/pxe_service/pxe_service.d.ts.map +1 -0
- package/dest/pxe_service/pxe_service.js +290 -282
- package/dest/pxe_service/test/pxe_test_suite.d.ts +3 -0
- package/dest/pxe_service/test/pxe_test_suite.d.ts.map +1 -0
- package/dest/pxe_service/test/pxe_test_suite.js +27 -40
- package/dest/simulator/index.d.ts +10 -0
- package/dest/simulator/index.d.ts.map +1 -0
- package/dest/simulator/index.js +3 -1
- package/dest/simulator_oracle/index.d.ts +129 -0
- package/dest/simulator_oracle/index.d.ts.map +1 -0
- package/dest/simulator_oracle/index.js +231 -266
- package/dest/simulator_oracle/tagging_utils.d.ts +16 -0
- package/dest/simulator_oracle/tagging_utils.d.ts.map +1 -0
- package/dest/simulator_oracle/tagging_utils.js +6 -4
- package/dest/synchronizer/index.d.ts +2 -0
- package/dest/synchronizer/index.d.ts.map +1 -0
- package/dest/synchronizer/index.js +1 -0
- package/dest/synchronizer/synchronizer.d.ts +30 -0
- package/dest/synchronizer/synchronizer.d.ts.map +1 -0
- package/dest/synchronizer/synchronizer.js +42 -42
- package/dest/utils/create_pxe_service.d.ts +16 -0
- package/dest/utils/create_pxe_service.d.ts.map +1 -0
- package/dest/utils/create_pxe_service.js +9 -9
- package/package.json +15 -15
- package/src/pxe_service/pxe_service.ts +10 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { collectEnqueuedPublicFunctionCalls, collectNoteHashLeafIndexMap, collectNoteHashNullifierCounterMap, collectPublicTeardownFunctionCall, getFinalMinRevertibleSideEffectCounter } from '@aztec/circuit-types';
|
|
2
|
-
import { CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS, ClientIvcProof, Fr, PROTOCOL_CONTRACT_TREE_HEIGHT, PrivateCallData, PrivateKernelCircuitPublicInputs, PrivateKernelData, PrivateKernelInitCircuitPrivateInputs, PrivateKernelInnerCircuitPrivateInputs, PrivateKernelTailCircuitPrivateInputs, VK_TREE_HEIGHT, VerificationKeyAsFields } from '@aztec/circuits.js';
|
|
1
|
+
import { collectEnqueuedPublicFunctionCalls, collectNoteHashLeafIndexMap, collectNoteHashNullifierCounterMap, collectPublicTeardownFunctionCall, getFinalMinRevertibleSideEffectCounter, } from '@aztec/circuit-types';
|
|
2
|
+
import { CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS, ClientIvcProof, Fr, PROTOCOL_CONTRACT_TREE_HEIGHT, PrivateCallData, PrivateKernelCircuitPublicInputs, PrivateKernelData, PrivateKernelInitCircuitPrivateInputs, PrivateKernelInnerCircuitPrivateInputs, PrivateKernelTailCircuitPrivateInputs, VK_TREE_HEIGHT, VerificationKeyAsFields, } from '@aztec/circuits.js';
|
|
3
3
|
import { hashVK } from '@aztec/circuits.js/hash';
|
|
4
4
|
import { makeTuple } from '@aztec/foundation/array';
|
|
5
5
|
import { vkAsFieldsMegaHonk } from '@aztec/foundation/crypto';
|
|
@@ -8,7 +8,7 @@ import { assertLength } from '@aztec/foundation/serialize';
|
|
|
8
8
|
import { pushTestData } from '@aztec/foundation/testing';
|
|
9
9
|
import { Timer } from '@aztec/foundation/timer';
|
|
10
10
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vks';
|
|
11
|
-
import { getProtocolContractSiblingPath, isProtocolContract, protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
11
|
+
import { getProtocolContractSiblingPath, isProtocolContract, protocolContractTreeRoot, } from '@aztec/protocol-contracts';
|
|
12
12
|
import { strict as assert } from 'assert';
|
|
13
13
|
import { PrivateKernelResetPrivateInputsBuilder } from './hints/build_private_kernel_reset_private_inputs.js';
|
|
14
14
|
// TODO(#10592): Temporary workaround to check that the private logs are correctly split into non-revertible set and revertible set.
|
|
@@ -16,75 +16,67 @@ import { PrivateKernelResetPrivateInputsBuilder } from './hints/build_private_ke
|
|
|
16
16
|
function checkPrivateLogs(privateLogs, nonRevertiblePrivateLogs, revertiblePrivateLogs, splitCounter) {
|
|
17
17
|
let numNonRevertible = 0;
|
|
18
18
|
let numRevertible = 0;
|
|
19
|
-
privateLogs
|
|
19
|
+
privateLogs
|
|
20
|
+
.filter(privateLog => privateLog.inner.counter !== 0)
|
|
21
|
+
.forEach(privateLog => {
|
|
20
22
|
if (privateLog.inner.counter < splitCounter) {
|
|
21
23
|
assert(privateLog.inner.log.toBuffer().equals(nonRevertiblePrivateLogs[numNonRevertible].toBuffer()), `mismatch non-revertible private logs at index ${numNonRevertible}`);
|
|
22
24
|
numNonRevertible++;
|
|
23
|
-
}
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
24
27
|
assert(privateLog.inner.log.toBuffer().equals(revertiblePrivateLogs[numRevertible].toBuffer()), `mismatch revertible private logs at index ${numRevertible}`);
|
|
25
28
|
numRevertible++;
|
|
26
29
|
}
|
|
27
30
|
});
|
|
28
|
-
assert(nonRevertiblePrivateLogs.slice(numNonRevertible).every(
|
|
29
|
-
assert(revertiblePrivateLogs.slice(numRevertible).every(
|
|
31
|
+
assert(nonRevertiblePrivateLogs.slice(numNonRevertible).every(l => l.isEmpty()), 'Unexpected non-empty private log in non-revertible set.');
|
|
32
|
+
assert(revertiblePrivateLogs.slice(numRevertible).every(l => l.isEmpty()), 'Unexpected non-empty private log in revertible set.');
|
|
30
33
|
}
|
|
31
34
|
const NULL_PROVE_OUTPUT = {
|
|
32
35
|
publicInputs: PrivateKernelCircuitPublicInputs.empty(),
|
|
33
36
|
verificationKey: VerificationKeyAsFields.makeEmpty(CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS),
|
|
34
37
|
outputWitness: new Map(),
|
|
35
|
-
bytecode: Buffer.from([])
|
|
38
|
+
bytecode: Buffer.from([]),
|
|
36
39
|
};
|
|
37
40
|
/**
|
|
38
41
|
* The KernelProver class is responsible for generating kernel proofs.
|
|
39
42
|
* It takes a transaction request, its signature, and the simulation result as inputs, and outputs a proof
|
|
40
43
|
* along with output notes. The class interacts with a ProvingDataOracle to fetch membership witnesses and
|
|
41
44
|
* constructs private call data based on the execution results.
|
|
42
|
-
*/
|
|
43
|
-
|
|
44
|
-
proofCreator
|
|
45
|
-
fakeProofs;
|
|
46
|
-
log;
|
|
47
|
-
constructor(oracle, proofCreator, fakeProofs = false){
|
|
45
|
+
*/
|
|
46
|
+
export class KernelProver {
|
|
47
|
+
constructor(oracle, proofCreator, fakeProofs = false) {
|
|
48
48
|
this.oracle = oracle;
|
|
49
49
|
this.proofCreator = proofCreator;
|
|
50
50
|
this.fakeProofs = fakeProofs;
|
|
51
51
|
this.log = createLogger('pxe:kernel-prover');
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
profile: false,
|
|
68
|
-
dryRun: false
|
|
69
|
-
}) {
|
|
54
|
+
* Generate a proof for a given transaction request and execution result.
|
|
55
|
+
* The function iterates through the nested executions in the execution result, creates private call data,
|
|
56
|
+
* and generates a proof using the provided ProofCreator instance. It also maintains an index of new notes
|
|
57
|
+
* created during the execution and returns them as a part of the KernelProverOutput.
|
|
58
|
+
*
|
|
59
|
+
* @param txRequest - The authenticated transaction request object.
|
|
60
|
+
* @param executionResult - The execution result object containing nested executions and preimages.
|
|
61
|
+
* @param profile - Set true to profile the gate count for each circuit
|
|
62
|
+
* @param dryRun - Set true to skip the IVC proof generation (only simulation is run). Useful for profiling gate count without proof gen.
|
|
63
|
+
* @returns A Promise that resolves to a KernelProverOutput object containing proof, public inputs, and output notes.
|
|
64
|
+
* TODO(#7368) this should be refactored to not recreate the ACIR bytecode now that it operates on a program stack
|
|
65
|
+
*/
|
|
66
|
+
async prove(txRequest, executionResult, { simulate, profile, dryRun } = { simulate: false, profile: false, dryRun: false }) {
|
|
70
67
|
if (simulate && profile) {
|
|
71
68
|
throw new Error('Cannot simulate and profile at the same time');
|
|
72
69
|
}
|
|
73
70
|
simulate = simulate || this.fakeProofs;
|
|
74
71
|
const timer = new Timer();
|
|
75
72
|
const isPrivateOnlyTx = this.isPrivateOnly(executionResult);
|
|
76
|
-
const executionStack = [
|
|
77
|
-
executionResult.entrypoint
|
|
78
|
-
];
|
|
73
|
+
const executionStack = [executionResult.entrypoint];
|
|
79
74
|
let firstIteration = true;
|
|
80
75
|
let output = NULL_PROVE_OUTPUT;
|
|
81
76
|
const gateCounts = [];
|
|
82
|
-
const addGateCount = async (circuitName, bytecode)=>{
|
|
83
|
-
const gateCount = await this.proofCreator.computeGateCountForCircuit(bytecode, circuitName);
|
|
84
|
-
gateCounts.push({
|
|
85
|
-
circuitName,
|
|
86
|
-
gateCount
|
|
87
|
-
});
|
|
77
|
+
const addGateCount = async (circuitName, bytecode) => {
|
|
78
|
+
const gateCount = (await this.proofCreator.computeGateCountForCircuit(bytecode, circuitName));
|
|
79
|
+
gateCounts.push({ circuitName, gateCount });
|
|
88
80
|
this.log.info(`Tx ${txRequest.hash()}: bb gates for ${circuitName} - ${gateCount}`);
|
|
89
81
|
};
|
|
90
82
|
const noteHashLeafIndexMap = collectNoteHashLeafIndexMap(executionResult);
|
|
@@ -95,12 +87,14 @@ const NULL_PROVE_OUTPUT = {
|
|
|
95
87
|
// vector of gzipped bincode acirs
|
|
96
88
|
const acirs = [];
|
|
97
89
|
const witnessStack = [];
|
|
98
|
-
while(executionStack.length){
|
|
90
|
+
while (executionStack.length) {
|
|
99
91
|
if (!firstIteration) {
|
|
100
92
|
let resetBuilder = new PrivateKernelResetPrivateInputsBuilder(output, executionStack, noteHashNullifierCounterMap, validationRequestsSplitCounter);
|
|
101
|
-
while(resetBuilder.needsReset()){
|
|
93
|
+
while (resetBuilder.needsReset()) {
|
|
102
94
|
const privateInputs = await resetBuilder.build(this.oracle, noteHashLeafIndexMap);
|
|
103
|
-
output = simulate
|
|
95
|
+
output = simulate
|
|
96
|
+
? await this.proofCreator.simulateReset(privateInputs)
|
|
97
|
+
: await this.proofCreator.generateResetOutput(privateInputs);
|
|
104
98
|
// TODO(#7368) consider refactoring this redundant bytecode pushing
|
|
105
99
|
acirs.push(output.bytecode);
|
|
106
100
|
witnessStack.push(output.outputWitness);
|
|
@@ -111,9 +105,7 @@ const NULL_PROVE_OUTPUT = {
|
|
|
111
105
|
}
|
|
112
106
|
}
|
|
113
107
|
const currentExecution = executionStack.pop();
|
|
114
|
-
executionStack.push(...[
|
|
115
|
-
...currentExecution.nestedExecutions
|
|
116
|
-
].reverse());
|
|
108
|
+
executionStack.push(...[...currentExecution.nestedExecutions].reverse());
|
|
117
109
|
const functionName = await this.oracle.getDebugFunctionName(currentExecution.publicInputs.callContext.contractAddress, currentExecution.publicInputs.callContext.functionSelector);
|
|
118
110
|
// TODO(#7368): This used to be associated with getDebugFunctionName
|
|
119
111
|
// TODO(#7368): Is there any way to use this with client IVC proving?
|
|
@@ -127,18 +119,23 @@ const NULL_PROVE_OUTPUT = {
|
|
|
127
119
|
const proofInput = new PrivateKernelInitCircuitPrivateInputs(txRequest, await getVKTreeRoot(), protocolContractTreeRoot, privateCallData, isPrivateOnlyTx, executionResult.firstNullifier);
|
|
128
120
|
this.log.debug(`Calling private kernel init with isPrivateOnly ${isPrivateOnlyTx} and firstNullifierHint ${proofInput.firstNullifierHint}`);
|
|
129
121
|
pushTestData('private-kernel-inputs-init', proofInput);
|
|
130
|
-
output = simulate
|
|
122
|
+
output = simulate
|
|
123
|
+
? await this.proofCreator.simulateInit(proofInput)
|
|
124
|
+
: await this.proofCreator.generateInitOutput(proofInput);
|
|
131
125
|
acirs.push(output.bytecode);
|
|
132
126
|
witnessStack.push(output.outputWitness);
|
|
133
127
|
if (profile) {
|
|
134
128
|
await addGateCount('private_kernel_init', output.bytecode);
|
|
135
129
|
}
|
|
136
|
-
}
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
137
132
|
const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(output.verificationKey);
|
|
138
133
|
const previousKernelData = new PrivateKernelData(output.publicInputs, output.verificationKey, Number(previousVkMembershipWitness.leafIndex), assertLength(previousVkMembershipWitness.siblingPath, VK_TREE_HEIGHT));
|
|
139
134
|
const proofInput = new PrivateKernelInnerCircuitPrivateInputs(previousKernelData, privateCallData);
|
|
140
135
|
pushTestData('private-kernel-inputs-inner', proofInput);
|
|
141
|
-
output = simulate
|
|
136
|
+
output = simulate
|
|
137
|
+
? await this.proofCreator.simulateInner(proofInput)
|
|
138
|
+
: await this.proofCreator.generateInnerOutput(proofInput);
|
|
142
139
|
acirs.push(output.bytecode);
|
|
143
140
|
witnessStack.push(output.outputWitness);
|
|
144
141
|
if (profile) {
|
|
@@ -149,9 +146,11 @@ const NULL_PROVE_OUTPUT = {
|
|
|
149
146
|
}
|
|
150
147
|
// Reset.
|
|
151
148
|
let resetBuilder = new PrivateKernelResetPrivateInputsBuilder(output, [], noteHashNullifierCounterMap, validationRequestsSplitCounter);
|
|
152
|
-
while(resetBuilder.needsReset()){
|
|
149
|
+
while (resetBuilder.needsReset()) {
|
|
153
150
|
const privateInputs = await resetBuilder.build(this.oracle, noteHashLeafIndexMap);
|
|
154
|
-
output = simulate
|
|
151
|
+
output = simulate
|
|
152
|
+
? await this.proofCreator.simulateReset(privateInputs)
|
|
153
|
+
: await this.proofCreator.generateResetOutput(privateInputs);
|
|
155
154
|
acirs.push(output.bytecode);
|
|
156
155
|
witnessStack.push(output.outputWitness);
|
|
157
156
|
if (profile) {
|
|
@@ -165,7 +164,9 @@ const NULL_PROVE_OUTPUT = {
|
|
|
165
164
|
this.log.debug(`Calling private kernel tail with hwm ${previousKernelData.publicInputs.minRevertibleSideEffectCounter}`);
|
|
166
165
|
const privateInputs = new PrivateKernelTailCircuitPrivateInputs(previousKernelData);
|
|
167
166
|
pushTestData('private-kernel-inputs-ordering', privateInputs);
|
|
168
|
-
const tailOutput = simulate
|
|
167
|
+
const tailOutput = simulate
|
|
168
|
+
? await this.proofCreator.simulateTail(privateInputs)
|
|
169
|
+
: await this.proofCreator.generateTailOutput(privateInputs);
|
|
169
170
|
if (tailOutput.publicInputs.forPublic) {
|
|
170
171
|
const privateLogs = privateInputs.previousKernel.publicInputs.end.privateLogs;
|
|
171
172
|
const nonRevertiblePrivateLogs = tailOutput.publicInputs.forPublic.nonRevertibleAccumulatedData.privateLogs;
|
|
@@ -176,9 +177,7 @@ const NULL_PROVE_OUTPUT = {
|
|
|
176
177
|
witnessStack.push(tailOutput.outputWitness);
|
|
177
178
|
if (profile) {
|
|
178
179
|
await addGateCount('private_kernel_tail', tailOutput.bytecode);
|
|
179
|
-
tailOutput.profileResult = {
|
|
180
|
-
gateCounts
|
|
181
|
-
};
|
|
180
|
+
tailOutput.profileResult = { gateCounts };
|
|
182
181
|
}
|
|
183
182
|
if (!simulate) {
|
|
184
183
|
this.log.info(`Private kernel witness generation took ${timer.ms()}ms`);
|
|
@@ -187,7 +186,8 @@ const NULL_PROVE_OUTPUT = {
|
|
|
187
186
|
if (!dryRun && !simulate) {
|
|
188
187
|
const ivcProof = await this.proofCreator.createClientIvcProof(acirs, witnessStack);
|
|
189
188
|
tailOutput.clientIvcProof = ivcProof;
|
|
190
|
-
}
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
191
|
tailOutput.clientIvcProof = ClientIvcProof.empty();
|
|
192
192
|
}
|
|
193
193
|
return tailOutput;
|
|
@@ -202,7 +202,9 @@ const NULL_PROVE_OUTPUT = {
|
|
|
202
202
|
// TODO(#262): Use real acir hash
|
|
203
203
|
// const acirHash = keccak256(Buffer.from(bytecode, 'hex'));
|
|
204
204
|
const acirHash = Fr.fromBuffer(Buffer.alloc(32, 0));
|
|
205
|
-
const protocolContractSiblingPath = isProtocolContract(contractAddress)
|
|
205
|
+
const protocolContractSiblingPath = isProtocolContract(contractAddress)
|
|
206
|
+
? await getProtocolContractSiblingPath(contractAddress)
|
|
207
|
+
: makeTuple(PROTOCOL_CONTRACT_TREE_HEIGHT, Fr.zero);
|
|
206
208
|
return PrivateCallData.from({
|
|
207
209
|
publicInputs,
|
|
208
210
|
vk,
|
|
@@ -212,14 +214,17 @@ const NULL_PROVE_OUTPUT = {
|
|
|
212
214
|
saltedInitializationHash,
|
|
213
215
|
functionLeafMembershipWitness,
|
|
214
216
|
protocolContractSiblingPath,
|
|
215
|
-
acirHash
|
|
217
|
+
acirHash,
|
|
216
218
|
});
|
|
217
219
|
}
|
|
218
220
|
isPrivateOnly(executionResult) {
|
|
219
|
-
const isPrivateOnlyRecursive = (callResult)=>{
|
|
220
|
-
const makesPublicCalls = callResult.enqueuedPublicFunctionCalls.some(
|
|
221
|
-
|
|
221
|
+
const isPrivateOnlyRecursive = (callResult) => {
|
|
222
|
+
const makesPublicCalls = callResult.enqueuedPublicFunctionCalls.some(enqueuedCall => !enqueuedCall.isEmpty()) ||
|
|
223
|
+
!callResult.publicTeardownFunctionCall.isEmpty();
|
|
224
|
+
return (!makesPublicCalls &&
|
|
225
|
+
callResult.nestedExecutions.every(nestedExecution => isPrivateOnlyRecursive(nestedExecution)));
|
|
222
226
|
};
|
|
223
227
|
return isPrivateOnlyRecursive(executionResult.entrypoint);
|
|
224
228
|
}
|
|
225
229
|
}
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VybmVsX3Byb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXJuZWxfcHJvdmVyL2tlcm5lbF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLGtDQUFrQyxFQUNsQywyQkFBMkIsRUFDM0Isa0NBQWtDLEVBQ2xDLGlDQUFpQyxFQUNqQyxzQ0FBc0MsR0FDdkMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsNENBQTRDLEVBQzVDLGNBQWMsRUFDZCxFQUFFLEVBQ0YsNkJBQTZCLEVBQzdCLGVBQWUsRUFDZixnQ0FBZ0MsRUFDaEMsaUJBQWlCLEVBQ2pCLHFDQUFxQyxFQUNyQyxzQ0FBc0MsRUFDdEMscUNBQXFDLEVBS3JDLGNBQWMsRUFDZCx1QkFBdUIsR0FDeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDeEUsT0FBTyxFQUNMLDhCQUE4QixFQUM5QixrQkFBa0IsRUFDbEIsd0JBQXdCLEdBQ3pCLE1BQU0sMkJBQTJCLENBQUM7QUFHbkMsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFMUMsT0FBTyxFQUFFLHNDQUFzQyxF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
|
|
@@ -0,0 +1,65 @@
|
|
|
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';
|
|
4
|
+
/**
|
|
5
|
+
* Provides functionality to fetch membership witnesses for verification keys,
|
|
6
|
+
* contract addresses, and function selectors in their respective merkle trees.
|
|
7
|
+
*/
|
|
8
|
+
export interface ProvingDataOracle {
|
|
9
|
+
/** Retrieves the preimage of a contract address from the registered contract instances db. */
|
|
10
|
+
getContractAddressPreimage(address: AztecAddress): Promise<{
|
|
11
|
+
saltedInitializationHash: Fr;
|
|
12
|
+
publicKeys: PublicKeys;
|
|
13
|
+
contractClassId: Fr;
|
|
14
|
+
}>;
|
|
15
|
+
/** Retrieves the preimage of a contract class id from the contract classes db. */
|
|
16
|
+
getContractClassIdPreimage(contractClassId: Fr): Promise<{
|
|
17
|
+
artifactHash: Fr;
|
|
18
|
+
publicBytecodeCommitment: Fr;
|
|
19
|
+
privateFunctionsRoot: Fr;
|
|
20
|
+
}>;
|
|
21
|
+
/**
|
|
22
|
+
* Retrieve the function membership witness for the given contract address and function selector.
|
|
23
|
+
* The function membership witness represents a proof that the function belongs to the specified contract.
|
|
24
|
+
* Throws an error if the contract address or function selector is unknown.
|
|
25
|
+
*
|
|
26
|
+
* @param contractAddress - The contract address.
|
|
27
|
+
* @param selector - The function selector.
|
|
28
|
+
* @returns A promise that resolves with the MembershipWitness instance for the specified contract's function.
|
|
29
|
+
*/
|
|
30
|
+
getFunctionMembershipWitness(contractAddress: AztecAddress, selector: FunctionSelector): Promise<MembershipWitness<typeof FUNCTION_TREE_HEIGHT>>;
|
|
31
|
+
/**
|
|
32
|
+
* Retrieve the membership witness corresponding to a verification key.
|
|
33
|
+
* This function currently returns a random membership witness of the specified height,
|
|
34
|
+
* which is a placeholder implementation until a concrete membership witness calculation
|
|
35
|
+
* is implemented.
|
|
36
|
+
*
|
|
37
|
+
* @param vk - The VerificationKey for which the membership witness is needed.
|
|
38
|
+
* @returns A Promise that resolves to the MembershipWitness instance.
|
|
39
|
+
*/
|
|
40
|
+
getVkMembershipWitness(vk: VerificationKeyAsFields): Promise<MembershipWitness<typeof VK_TREE_HEIGHT>>;
|
|
41
|
+
/**
|
|
42
|
+
* Get the note membership witness for a note in the note hash tree at the given leaf index.
|
|
43
|
+
*
|
|
44
|
+
* @param leafIndex - The leaf index of the note in the note hash tree.
|
|
45
|
+
* @returns the MembershipWitness for the note.
|
|
46
|
+
*/
|
|
47
|
+
getNoteHashMembershipWitness(leafIndex: bigint): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT>>;
|
|
48
|
+
getNullifierMembershipWitness(nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
|
|
49
|
+
/**
|
|
50
|
+
* Get the root of the note hash tree.
|
|
51
|
+
*
|
|
52
|
+
* @returns the root of the note hash tree.
|
|
53
|
+
*/
|
|
54
|
+
getNoteHashTreeRoot(): Promise<Fr>;
|
|
55
|
+
/**
|
|
56
|
+
* Retrieves the sk_m corresponding to the pk_m.
|
|
57
|
+
* @throws If the provided public key is not associated with any of the registered accounts.
|
|
58
|
+
* @param pkM - The master public key to get secret key for.
|
|
59
|
+
* @returns A Promise that resolves to sk_m.
|
|
60
|
+
* @dev Used when feeding the sk_m to the kernel circuit for keys verification.
|
|
61
|
+
*/
|
|
62
|
+
getMasterSecretKey(masterPublicKey: Point): Promise<GrumpkinScalar>;
|
|
63
|
+
getDebugFunctionName(contractAddress: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=proving_data_oracle.d.ts.map
|
|
@@ -0,0 +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,4 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* contract addresses, and function selectors in their respective merkle trees.
|
|
4
|
-
*/ export { };
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19kYXRhX29yYWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXJuZWxfcHJvdmVyL3Byb3ZpbmdfZGF0YV9vcmFjbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type L1NotePayload, Note } from '@aztec/circuit-types';
|
|
2
|
+
import { type PxeDatabase } from '../database/pxe_database.js';
|
|
3
|
+
/**
|
|
4
|
+
* Merges privately and publicly delivered note values.
|
|
5
|
+
* @param db - PXE database used to fetch contract instance and artifact.
|
|
6
|
+
* @param payload - Payload corresponding to the note.
|
|
7
|
+
* @returns Note payload with public fields added.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getOrderedNoteItems(db: PxeDatabase, { contractAddress, noteTypeId, privateNoteValues, publicNoteValues }: L1NotePayload): Promise<Note>;
|
|
10
|
+
//# sourceMappingURL=add_public_values_to_payload.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -5,7 +5,8 @@ import { ContractNotFoundError } from '@aztec/simulator/client';
|
|
|
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
|
-
*/
|
|
8
|
+
*/
|
|
9
|
+
export async function getOrderedNoteItems(db, { contractAddress, noteTypeId, privateNoteValues, publicNoteValues }) {
|
|
9
10
|
if (publicNoteValues.length === 0) {
|
|
10
11
|
return new Note(privateNoteValues);
|
|
11
12
|
}
|
|
@@ -17,24 +18,23 @@ import { ContractNotFoundError } from '@aztec/simulator/client';
|
|
|
17
18
|
if (!artifact) {
|
|
18
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.`);
|
|
19
20
|
}
|
|
20
|
-
const noteFields = Object.values(artifact.notes).find(
|
|
21
|
+
const noteFields = Object.values(artifact.notes).find(note => note.id.equals(noteTypeId))?.fields;
|
|
21
22
|
if (!noteFields) {
|
|
22
23
|
throw new Error(`Could not find note fields for note type ${noteTypeId.toString()}.`);
|
|
23
24
|
}
|
|
24
25
|
// We sort note fields by index so that we can iterate over them in order.
|
|
25
|
-
noteFields.sort((a, b)=>a.index - b.index);
|
|
26
|
+
noteFields.sort((a, b) => a.index - b.index);
|
|
26
27
|
// Now we insert the public fields into the note based on its indices defined in the ABI.
|
|
27
|
-
const modifiedNoteItems = [
|
|
28
|
-
...privateNoteValues
|
|
29
|
-
];
|
|
28
|
+
const modifiedNoteItems = [...privateNoteValues];
|
|
30
29
|
let indexInPublicValues = 0;
|
|
31
|
-
for(let i = 0; i < noteFields.length; i++){
|
|
30
|
+
for (let i = 0; i < noteFields.length; i++) {
|
|
32
31
|
const noteField = noteFields[i];
|
|
33
32
|
if (noteField.nullable) {
|
|
34
33
|
if (i == noteFields.length - 1) {
|
|
35
34
|
// We are processing the last field so we simply insert the rest of the public fields at the end
|
|
36
35
|
modifiedNoteItems.push(...publicNoteValues.slice(indexInPublicValues));
|
|
37
|
-
}
|
|
36
|
+
}
|
|
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,3 +45,4 @@ import { ContractNotFoundError } from '@aztec/simulator/client';
|
|
|
45
45
|
}
|
|
46
46
|
return new Note(modifiedNoteItems);
|
|
47
47
|
}
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkX3B1YmxpY192YWx1ZXNfdG9fcGF5bG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub3RlX2RlY3J5cHRpb25fdXRpbHMvYWRkX3B1YmxpY192YWx1ZXNfdG9fcGF5bG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSWhFOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxtQkFBbUIsQ0FDdkMsRUFBZSxFQUNmLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBaUI7SUFFbkYsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEMsT0FBTyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUkscUJBQXFCLENBQzdCLCtCQUErQixlQUFlLENBQUMsUUFBUSxFQUFFLDRHQUE0RyxDQUN0SyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4RSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUksS0FBSyxDQUNiLDhDQUE4QyxRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSw0R0FBNEcsQ0FDOUwsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUVsRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsVUFBVSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU3Qyx5RkFBeUY7SUFDekYsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQztJQUNqRCxJQUFJLG1CQUFtQixHQUFHLENBQUMsQ0FBQztJQUM1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzNDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMvQixnR0FBZ0c7Z0JBQ2hHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7WUFDekUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQ2xFLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixHQUFHLGVBQWUsQ0FBQyxDQUFDO2dCQUNoSCxtQkFBbUIsSUFBSSxlQUFlLENBQUM7Z0JBQ3ZDLDBEQUEwRDtnQkFDMUQsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsb0JBQW9CLENBQUMsQ0FBQztZQUN4RSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDckMsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pxe_http/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
package/dest/pxe_http/index.js
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { type PXE } from '@aztec/circuit-types';
|
|
3
|
+
import http from 'http';
|
|
4
|
+
/**
|
|
5
|
+
* Wraps an instance of Private eXecution Environment (PXE) implementation to a JSON RPC HTTP interface.
|
|
6
|
+
* @returns A new instance of the HTTP server.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createPXERpcServer(pxeService: PXE): import("@aztec/foundation/json-rpc/server").SafeJsonRpcServer;
|
|
9
|
+
/**
|
|
10
|
+
* Creates an http server that forwards calls to the PXE and starts it on the given port.
|
|
11
|
+
* @param pxeService - PXE that answers queries to the created HTTP server.
|
|
12
|
+
* @param port - Port to listen in.
|
|
13
|
+
* @returns A running http server.
|
|
14
|
+
*/
|
|
15
|
+
export declare function startPXEHttpServer(pxeService: PXE, port: string | number): http.Server;
|
|
16
|
+
//# sourceMappingURL=pxe_http_server.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -4,7 +4,8 @@ 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
|
-
*/
|
|
7
|
+
*/
|
|
8
|
+
export function createPXERpcServer(pxeService) {
|
|
8
9
|
return createSafeJsonRpcServer(pxeService, PXESchema);
|
|
9
10
|
}
|
|
10
11
|
/**
|
|
@@ -12,16 +13,13 @@ import http from 'http';
|
|
|
12
13
|
* @param pxeService - PXE that answers queries to the created HTTP server.
|
|
13
14
|
* @param port - Port to listen in.
|
|
14
15
|
* @returns A running http server.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
pxeService,
|
|
19
|
-
PXESchema
|
|
20
|
-
]
|
|
21
|
-
});
|
|
16
|
+
*/
|
|
17
|
+
export function startPXEHttpServer(pxeService, port) {
|
|
18
|
+
const rpcServer = createNamespacedSafeJsonRpcServer({ pxe: [pxeService, PXESchema] });
|
|
22
19
|
const app = rpcServer.getApp();
|
|
23
20
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
24
21
|
const httpServer = http.createServer(app.callback());
|
|
25
22
|
httpServer.listen(port);
|
|
26
23
|
return httpServer;
|
|
27
24
|
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX2h0dHBfc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B4ZV9odHRwL3B4ZV9odHRwX3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0csT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCOzs7R0FHRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUFlO0lBQ2hELE9BQU8sdUJBQXVCLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUFlLEVBQUUsSUFBcUI7SUFDdkUsTUFBTSxTQUFTLEdBQUcsaUNBQWlDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXRGLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMvQixrRUFBa0U7SUFDbEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNyRCxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXhCLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMifQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
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';
|
|
4
|
+
/**
|
|
5
|
+
* Adds contract and function names to a simulation error, if they
|
|
6
|
+
* can be found in the PXE database
|
|
7
|
+
* @param err - The error to enrich.
|
|
8
|
+
*/
|
|
9
|
+
export declare function enrichSimulationError(err: SimulationError, db: PxeDatabase, logger: Logger): Promise<void>;
|
|
10
|
+
export declare function enrichPublicSimulationError(err: SimulationError, contractDataOracle: ContractDataOracle, db: PxeDatabase, logger: Logger): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=error_enriching.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -8,33 +8,34 @@ import { resolveAssertionMessageFromRevertData, resolveOpcodeLocations } from '@
|
|
|
8
8
|
* Adds contract and function names to a simulation error, if they
|
|
9
9
|
* can be found in the PXE database
|
|
10
10
|
* @param err - The error to enrich.
|
|
11
|
-
*/
|
|
11
|
+
*/
|
|
12
|
+
export async function enrichSimulationError(err, db, logger) {
|
|
12
13
|
// Maps contract addresses to the set of function names that were in error.
|
|
13
14
|
// Map and Set do reference equality for their keys instead of value equality, so we store the string
|
|
14
15
|
// representation to get e.g. different contract address objects with the same address value to match.
|
|
15
16
|
const mentionedFunctions = new Map();
|
|
16
|
-
err.getCallStack().forEach(({ contractAddress, functionName })=>{
|
|
17
|
+
err.getCallStack().forEach(({ contractAddress, functionName }) => {
|
|
17
18
|
if (!mentionedFunctions.has(contractAddress.toString())) {
|
|
18
19
|
mentionedFunctions.set(contractAddress.toString(), new Set());
|
|
19
20
|
}
|
|
20
21
|
mentionedFunctions.get(contractAddress.toString()).add(functionName?.toString() ?? '');
|
|
21
22
|
});
|
|
22
|
-
await Promise.all([
|
|
23
|
-
...mentionedFunctions.entries()
|
|
24
|
-
].map(async ([contractAddress, fnNames])=>{
|
|
23
|
+
await Promise.all([...mentionedFunctions.entries()].map(async ([contractAddress, fnNames]) => {
|
|
25
24
|
const parsedContractAddress = AztecAddress.fromString(contractAddress);
|
|
26
25
|
const contract = await db.getContract(parsedContractAddress);
|
|
27
26
|
if (contract) {
|
|
28
27
|
err.enrichWithContractName(parsedContractAddress, contract.name);
|
|
29
|
-
for (const fnName of fnNames){
|
|
30
|
-
const functionArtifact = contract.functions.find(
|
|
28
|
+
for (const fnName of fnNames) {
|
|
29
|
+
const functionArtifact = contract.functions.find(f => fnName === f.name);
|
|
31
30
|
if (functionArtifact) {
|
|
32
31
|
err.enrichWithFunctionName(parsedContractAddress, await FunctionSelector.fromNameAndParameters(functionArtifact), functionArtifact.name);
|
|
33
|
-
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
34
|
logger.warn(`Could not find function artifact in contract ${contract.name} for function '${fnName}' when enriching error callstack`);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
38
39
|
logger.warn(`Could not find contract in database for address: ${parsedContractAddress} when enriching error callstack`);
|
|
39
40
|
}
|
|
40
41
|
}));
|
|
@@ -60,10 +61,12 @@ export async function enrichPublicSimulationError(err, contractDataOracle, db, l
|
|
|
60
61
|
// Thus, we can safely assume here that the Brillig function id is `0`.
|
|
61
62
|
const parsedCallStack = resolveOpcodeLocations(noirCallStack, debugInfo, 0);
|
|
62
63
|
err.setNoirCallStack(parsedCallStack);
|
|
63
|
-
}
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
64
66
|
logger.warn(`Could not resolve noir call stack for ${originalFailingFunction.contractAddress.toString()}:${originalFailingFunction.functionName?.toString() ?? ''}: ${err}`);
|
|
65
67
|
}
|
|
66
68
|
}
|
|
67
69
|
await enrichSimulationError(err, db, logger);
|
|
68
70
|
}
|
|
69
71
|
}
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JfZW5yaWNoaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B4ZV9zZXJ2aWNlL2Vycm9yX2VucmljaGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLHlCQUF5QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl4Rzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxxQkFBcUIsQ0FBQyxHQUFvQixFQUFFLEVBQWUsRUFBRSxNQUFjO0lBQy9GLDJFQUEyRTtJQUMzRSxxR0FBcUc7SUFDckcsc0dBQXNHO0lBQ3RHLE1BQU0sa0JBQWtCLEdBQTZCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFL0QsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUU7UUFDL0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3hELGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRLEVB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pxe_service/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export * from './pxe_service.js';
|
|
2
2
|
export { enrichPublicSimulationError } from './error_enriching.js';
|
|
3
3
|
export { pxeTestSuite } from './test/pxe_test_suite.js';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHhlX3NlcnZpY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUMifQ==
|