@aztec/stdlib 0.87.2 → 0.87.3-nightly.20250529
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/abi/abi.d.ts +3 -0
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +38 -0
- package/dest/avm/avm.d.ts +696 -12
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +16 -8
- package/dest/avm/avm_accumulated_data.d.ts +77 -0
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_accumulated_data.js +67 -0
- package/dest/avm/avm_circuit_public_inputs.d.ts +73 -3
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.js +19 -9
- package/dest/avm/avm_proving_request.d.ts +366 -0
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/block/body.d.ts +1 -1
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +2 -2
- package/dest/block/index.d.ts +1 -0
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +1 -0
- package/dest/block/l2_block.d.ts +3 -2
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +10 -5
- package/dest/block/l2_block_source.d.ts +9 -4
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +1 -0
- package/dest/block/proposal/committee_attestation.d.ts +34 -0
- package/dest/block/proposal/committee_attestation.d.ts.map +1 -0
- package/dest/block/proposal/committee_attestation.js +59 -0
- package/dest/block/proposal/index.d.ts +2 -0
- package/dest/block/proposal/index.d.ts.map +1 -0
- package/dest/block/proposal/index.js +1 -0
- package/dest/block/published_l2_block.d.ts +99 -69
- package/dest/block/published_l2_block.d.ts.map +1 -1
- package/dest/block/published_l2_block.js +38 -12
- package/dest/block/test/l2_tips_store_test_suite.js +1 -1
- package/dest/interfaces/archiver.js +2 -2
- package/dest/interfaces/aztec-node.js +2 -2
- package/dest/interfaces/p2p.d.ts +5 -2
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +1 -2
- package/dest/interfaces/prover-agent.d.ts +31 -6
- package/dest/interfaces/prover-agent.d.ts.map +1 -1
- package/dest/interfaces/prover-agent.js +15 -6
- package/dest/interfaces/proving-job.d.ts +370 -4
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +2 -2
- package/dest/interfaces/server_circuit_prover.d.ts +3 -2
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +1 -1
- package/dest/kernel/hints/key_validation_hint.d.ts +2 -6
- package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_hint.js +5 -7
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts +7 -7
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
- package/dest/kernel/hints/private_kernel_reset_hints.js +8 -4
- package/dest/kernel/hints/read_request_hints.d.ts +8 -8
- package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
- package/dest/kernel/index.d.ts +1 -0
- package/dest/kernel/index.d.ts.map +1 -1
- package/dest/kernel/index.js +1 -0
- package/dest/kernel/padded_side_effects.d.ts +26 -0
- package/dest/kernel/padded_side_effects.d.ts.map +1 -0
- package/dest/kernel/padded_side_effects.js +51 -0
- package/dest/kernel/private_kernel_data.d.ts +6 -25
- package/dest/kernel/private_kernel_data.d.ts.map +1 -1
- package/dest/kernel/private_kernel_data.js +8 -19
- package/dest/kernel/private_kernel_prover_output.d.ts +3 -0
- package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +7 -4
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.js +10 -6
- package/dest/kernel/private_kernel_reset_dimensions.d.ts +10 -10
- package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_dimensions.js +29 -29
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +8 -3
- package/dest/kernel/public_call_request.d.ts +54 -0
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/public_call_request.js +58 -0
- package/dest/logs/contract_class_log.d.ts +0 -4
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +0 -33
- package/dest/logs/log_with_tx_data.d.ts +3 -3
- package/dest/logs/log_with_tx_data.d.ts.map +1 -1
- package/dest/logs/log_with_tx_data.js +9 -13
- package/dest/logs/pending_tagged_log.d.ts +1 -1
- package/dest/logs/pending_tagged_log.js +1 -1
- package/dest/logs/private_log.d.ts +1 -0
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/private_log.js +3 -0
- package/dest/logs/public_log.d.ts +1 -0
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +3 -0
- package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
- package/dest/logs/tx_scoped_l2_log.js +1 -0
- package/dest/rollup/avm_proof_data.d.ts +7 -5
- package/dest/rollup/avm_proof_data.d.ts.map +1 -1
- package/dest/rollup/avm_proof_data.js +12 -4
- package/dest/rollup/base_rollup_hints.d.ts +4 -4
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.js +8 -8
- package/dest/rollup/previous_rollup_block_data.d.ts +6 -15
- package/dest/rollup/previous_rollup_block_data.d.ts.map +1 -1
- package/dest/rollup/previous_rollup_block_data.js +8 -13
- package/dest/rollup/previous_rollup_data.d.ts +6 -15
- package/dest/rollup/previous_rollup_data.d.ts.map +1 -1
- package/dest/rollup/previous_rollup_data.js +8 -13
- package/dest/rollup/private_tube_data.d.ts +3 -3
- package/dest/rollup/private_tube_data.d.ts.map +1 -1
- package/dest/rollup/private_tube_data.js +3 -3
- package/dest/rollup/public_tube_data.d.ts +3 -3
- package/dest/rollup/public_tube_data.d.ts.map +1 -1
- package/dest/rollup/public_tube_data.js +3 -3
- package/dest/rollup/root_rollup.d.ts +9 -10
- package/dest/rollup/root_rollup.d.ts.map +1 -1
- package/dest/rollup/root_rollup.js +9 -20
- package/dest/tests/factories.d.ts +2 -1
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +25 -19
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +4 -3
- package/dest/tx/private_execution_result.d.ts +6 -0
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/processed_tx.d.ts.map +1 -1
- package/dest/tx/processed_tx.js +2 -5
- package/dest/tx/profiling.d.ts +41 -0
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +4 -1
- package/dest/tx/proven_tx.d.ts +40 -18
- package/dest/tx/proven_tx.d.ts.map +1 -1
- package/dest/tx/proven_tx.js +2 -2
- package/dest/tx/tx.d.ts +10 -25
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +25 -50
- package/dest/tx/tx_effect.d.ts +1 -1
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +2 -2
- package/dest/validators/types.d.ts +4 -0
- package/dest/validators/types.d.ts.map +1 -1
- package/dest/vks/index.d.ts +1 -1
- package/dest/vks/index.d.ts.map +1 -1
- package/dest/vks/index.js +1 -1
- package/dest/vks/{vk_witness_data.d.ts → vk_data.d.ts} +8 -8
- package/dest/vks/vk_data.d.ts.map +1 -0
- package/dest/vks/{vk_witness_data.js → vk_data.js} +10 -10
- package/package.json +7 -7
- package/src/abi/abi.ts +37 -0
- package/src/avm/avm.ts +14 -0
- package/src/avm/avm_accumulated_data.ts +93 -0
- package/src/avm/avm_circuit_public_inputs.ts +22 -2
- package/src/block/body.ts +7 -2
- package/src/block/index.ts +1 -0
- package/src/block/l2_block.ts +8 -3
- package/src/block/l2_block_source.ts +9 -3
- package/src/block/proposal/committee_attestation.ts +70 -0
- package/src/block/proposal/index.ts +1 -0
- package/src/block/published_l2_block.ts +38 -24
- package/src/block/test/l2_tips_store_test_suite.ts +1 -1
- package/src/interfaces/archiver.ts +2 -2
- package/src/interfaces/aztec-node.ts +2 -2
- package/src/interfaces/p2p.ts +8 -3
- package/src/interfaces/prover-agent.ts +9 -10
- package/src/interfaces/proving-job.ts +3 -3
- package/src/interfaces/server_circuit_prover.ts +3 -2
- package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +3 -3
- package/src/kernel/hints/key_validation_hint.ts +4 -6
- package/src/kernel/hints/private_kernel_reset_hints.ts +34 -43
- package/src/kernel/hints/read_request_hints.ts +27 -15
- package/src/kernel/index.ts +1 -0
- package/src/kernel/padded_side_effects.ts +73 -0
- package/src/kernel/private_kernel_data.ts +7 -29
- package/src/kernel/private_kernel_prover_output.ts +1 -0
- package/src/kernel/private_kernel_reset_circuit_private_inputs.ts +16 -13
- package/src/kernel/private_kernel_reset_dimensions.ts +27 -27
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +10 -2
- package/src/kernel/public_call_request.ts +66 -0
- package/src/logs/contract_class_log.ts +0 -36
- package/src/logs/log_with_tx_data.ts +7 -11
- package/src/logs/pending_tagged_log.ts +1 -1
- package/src/logs/private_log.ts +4 -0
- package/src/logs/public_log.ts +4 -0
- package/src/logs/tx_scoped_l2_log.ts +1 -0
- package/src/rollup/avm_proof_data.ts +14 -7
- package/src/rollup/base_rollup_hints.ts +4 -4
- package/src/rollup/previous_rollup_block_data.ts +6 -12
- package/src/rollup/previous_rollup_data.ts +6 -12
- package/src/rollup/private_tube_data.ts +4 -4
- package/src/rollup/public_tube_data.ts +4 -4
- package/src/rollup/root_rollup.ts +6 -19
- package/src/tests/factories.ts +36 -32
- package/src/tests/mocks.ts +6 -3
- package/src/tx/private_execution_result.ts +1 -1
- package/src/tx/processed_tx.ts +4 -5
- package/src/tx/profiling.ts +6 -1
- package/src/tx/proven_tx.ts +2 -2
- package/src/tx/tx.ts +28 -54
- package/src/tx/tx_effect.ts +23 -5
- package/src/validators/types.ts +2 -0
- package/src/vks/index.ts +1 -1
- package/src/vks/{vk_witness_data.ts → vk_data.ts} +6 -6
- package/dest/vks/vk_witness_data.d.ts.map +0 -1
package/src/tx/profiling.ts
CHANGED
|
@@ -10,9 +10,14 @@ import { AbiDecodedSchema } from '../schemas/schemas.js';
|
|
|
10
10
|
type FunctionTiming = {
|
|
11
11
|
functionName: string;
|
|
12
12
|
time: number;
|
|
13
|
+
oracles?: Record<string, { times: number[] }>;
|
|
13
14
|
};
|
|
14
15
|
|
|
15
|
-
const FunctionTimingSchema = z.object({
|
|
16
|
+
const FunctionTimingSchema = z.object({
|
|
17
|
+
functionName: z.string(),
|
|
18
|
+
time: z.number(),
|
|
19
|
+
oracles: optional(z.record(z.string(), z.object({ times: z.array(z.number()) }))),
|
|
20
|
+
});
|
|
16
21
|
|
|
17
22
|
export type ProvingTimings = {
|
|
18
23
|
sync?: number;
|
package/src/tx/proven_tx.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { z } from 'zod';
|
|
|
6
6
|
import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
|
|
7
7
|
import { ClientIvcProof } from '../proofs/client_ivc_proof.js';
|
|
8
8
|
import { PrivateExecutionResult, collectSortedContractClassLogs } from './private_execution_result.js';
|
|
9
|
-
import { type ProvingTimings,
|
|
9
|
+
import { type ProvingTimings, ProvingTimingsSchema } from './profiling.js';
|
|
10
10
|
import { Tx } from './tx.js';
|
|
11
11
|
|
|
12
12
|
export class TxProvingResult {
|
|
@@ -35,7 +35,7 @@ export class TxProvingResult {
|
|
|
35
35
|
privateExecutionResult: PrivateExecutionResult.schema,
|
|
36
36
|
publicInputs: PrivateKernelTailCircuitPublicInputs.schema,
|
|
37
37
|
clientIvcProof: ClientIvcProof.schema,
|
|
38
|
-
timings: optional(
|
|
38
|
+
timings: optional(ProvingTimingsSchema),
|
|
39
39
|
})
|
|
40
40
|
.transform(TxProvingResult.from);
|
|
41
41
|
}
|
package/src/tx/tx.ts
CHANGED
|
@@ -11,7 +11,6 @@ import type { GasSettings } from '../gas/gas_settings.js';
|
|
|
11
11
|
import type { GetPublicLogsResponse } from '../interfaces/get_logs_response.js';
|
|
12
12
|
import type { L2LogsSource } from '../interfaces/l2_logs_source.js';
|
|
13
13
|
import type { PublicCallRequest } from '../kernel/index.js';
|
|
14
|
-
import type { ScopedLogHash } from '../kernel/log_hash.js';
|
|
15
14
|
import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
|
|
16
15
|
import { ContractClassLog, ContractClassLogFields } from '../logs/contract_class_log.js';
|
|
17
16
|
import { Gossipable } from '../p2p/gossipable.js';
|
|
@@ -42,9 +41,11 @@ export class Tx extends Gossipable {
|
|
|
42
41
|
*/
|
|
43
42
|
public readonly clientIvcProof: ClientIvcProof,
|
|
44
43
|
/**
|
|
45
|
-
* Contract class
|
|
44
|
+
* Contract class log fields emitted from the tx.
|
|
45
|
+
* Their order should match the order of the log hashes returned from `this.data.getNonEmptyContractClassLogsHashes`.
|
|
46
|
+
* It's checked in data_validator.ts
|
|
46
47
|
*/
|
|
47
|
-
public
|
|
48
|
+
public contractClassLogFields: ContractClassLogFields[],
|
|
48
49
|
/**
|
|
49
50
|
* An array of calldata for the enqueued public function calls and the teardown function call.
|
|
50
51
|
*/
|
|
@@ -120,7 +121,7 @@ export class Tx extends Gossipable {
|
|
|
120
121
|
return serializeToBuffer([
|
|
121
122
|
this.data,
|
|
122
123
|
this.clientIvcProof,
|
|
123
|
-
serializeArrayOfBufferableToVector(this.
|
|
124
|
+
serializeArrayOfBufferableToVector(this.contractClassLogFields, 1),
|
|
124
125
|
serializeArrayOfBufferableToVector(this.publicFunctionCalldata, 1),
|
|
125
126
|
]);
|
|
126
127
|
}
|
|
@@ -130,14 +131,14 @@ export class Tx extends Gossipable {
|
|
|
130
131
|
.object({
|
|
131
132
|
data: PrivateKernelTailCircuitPublicInputs.schema,
|
|
132
133
|
clientIvcProof: ClientIvcProof.schema,
|
|
133
|
-
|
|
134
|
+
contractClassLogFields: z.array(ContractClassLogFields.schema),
|
|
134
135
|
publicFunctionCalldata: z.array(HashedValues.schema),
|
|
135
136
|
})
|
|
136
137
|
.transform(Tx.from);
|
|
137
138
|
}
|
|
138
139
|
|
|
139
140
|
static from(fields: FieldsOf<Tx>) {
|
|
140
|
-
return new Tx(fields.data, fields.clientIvcProof, fields.
|
|
141
|
+
return new Tx(fields.data, fields.clientIvcProof, fields.contractClassLogFields, fields.publicFunctionCalldata);
|
|
141
142
|
}
|
|
142
143
|
|
|
143
144
|
/**
|
|
@@ -149,43 +150,32 @@ export class Tx extends Gossipable {
|
|
|
149
150
|
return logsSource.getPublicLogs({ txHash: await this.getTxHash() });
|
|
150
151
|
}
|
|
151
152
|
|
|
153
|
+
getContractClassLogs(): ContractClassLog[] {
|
|
154
|
+
const logHashes = this.data.getNonEmptyContractClassLogsHashes();
|
|
155
|
+
return logHashes.map((logHash, i) =>
|
|
156
|
+
ContractClassLog.from({
|
|
157
|
+
contractAddress: logHash.contractAddress,
|
|
158
|
+
fields: this.contractClassLogFields[i],
|
|
159
|
+
emittedLength: logHash.logHash.length,
|
|
160
|
+
}),
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
|
|
152
164
|
/**
|
|
153
165
|
* Gets either revertible or non revertible contract class logs emitted by this tx.
|
|
154
166
|
* @param revertible - true for revertible only logs, false for non reverible only logs.
|
|
155
167
|
* @returns The requested logs.
|
|
156
168
|
*/
|
|
157
|
-
|
|
158
|
-
// Should only be called on txs with public calls
|
|
169
|
+
getSplitContractClassLogs(revertible: boolean): ContractClassLog[] {
|
|
159
170
|
if (!this.data.forPublic) {
|
|
160
|
-
|
|
171
|
+
throw new Error('`getSplitContractClassLogs` should only be called on txs with public calls');
|
|
161
172
|
}
|
|
162
|
-
const contractClassLogsHashes = revertible
|
|
163
|
-
? this.data.forPublic.revertibleAccumulatedData.contractClassLogsHashes.filter(h => !h.isEmpty())
|
|
164
|
-
: this.data.forPublic.nonRevertibleAccumulatedData.contractClassLogsHashes.filter(h => !h.isEmpty());
|
|
165
|
-
return await this.filterContractClassLogs(contractClassLogsHashes, silo);
|
|
166
|
-
}
|
|
167
173
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
*/
|
|
174
|
-
async filterContractClassLogs(logHashes: ScopedLogHash[], silo: boolean = false): Promise<ContractClassLog[]> {
|
|
175
|
-
const contractClassLogs = [];
|
|
176
|
-
for (const fields of this.contractClassLogs) {
|
|
177
|
-
const hashedLog = await fields.hash();
|
|
178
|
-
const logHash = logHashes.find(hash => hash.value.equals(hashedLog));
|
|
179
|
-
if (logHash) {
|
|
180
|
-
const log = ContractClassLog.from({
|
|
181
|
-
contractAddress: logHash.contractAddress,
|
|
182
|
-
fields,
|
|
183
|
-
emittedLength: logHash.logHash.length,
|
|
184
|
-
});
|
|
185
|
-
contractClassLogs.push(silo ? await log.silo() : log);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
return contractClassLogs;
|
|
174
|
+
const contractClassLogs = this.getContractClassLogs();
|
|
175
|
+
const numNonRevertible = this.data.forPublic.nonRevertibleAccumulatedData.contractClassLogsHashes.filter(
|
|
176
|
+
h => !h.isEmpty(),
|
|
177
|
+
).length;
|
|
178
|
+
return revertible ? contractClassLogs.slice(numNonRevertible) : contractClassLogs.slice(0, numNonRevertible);
|
|
189
179
|
}
|
|
190
180
|
|
|
191
181
|
/**
|
|
@@ -246,7 +236,7 @@ export class Tx extends Gossipable {
|
|
|
246
236
|
return (
|
|
247
237
|
this.data.getSize() +
|
|
248
238
|
this.clientIvcProof.clientIvcProofBuffer.length +
|
|
249
|
-
arraySerializedSizeOfNonEmpty(this.
|
|
239
|
+
arraySerializedSizeOfNonEmpty(this.contractClassLogFields) +
|
|
250
240
|
this.publicFunctionCalldata.reduce((accum, cd) => accum + cd.getSize(), 0)
|
|
251
241
|
);
|
|
252
242
|
}
|
|
@@ -290,9 +280,9 @@ export class Tx extends Gossipable {
|
|
|
290
280
|
static clone(tx: Tx): Tx {
|
|
291
281
|
const publicInputs = PrivateKernelTailCircuitPublicInputs.fromBuffer(tx.data.toBuffer());
|
|
292
282
|
const clientIvcProof = ClientIvcProof.fromBuffer(tx.clientIvcProof.toBuffer());
|
|
293
|
-
const
|
|
283
|
+
const contractClassLogFields = tx.contractClassLogFields.map(p => p.clone());
|
|
294
284
|
const publicFunctionCalldata = tx.publicFunctionCalldata.map(cd => HashedValues.fromBuffer(cd.toBuffer()));
|
|
295
|
-
const clonedTx = new Tx(publicInputs, clientIvcProof,
|
|
285
|
+
const clonedTx = new Tx(publicInputs, clientIvcProof, contractClassLogFields, publicFunctionCalldata);
|
|
296
286
|
if (tx.txHash) {
|
|
297
287
|
clonedTx.setTxHash(TxHash.fromBuffer(tx.txHash.toBuffer()));
|
|
298
288
|
}
|
|
@@ -314,22 +304,6 @@ export class Tx extends Gossipable {
|
|
|
314
304
|
);
|
|
315
305
|
}
|
|
316
306
|
|
|
317
|
-
/**
|
|
318
|
-
* Filters out logs from functions that are not present in the provided kernel output.
|
|
319
|
-
*
|
|
320
|
-
* The purpose of this is to remove logs that got dropped due to a revert,
|
|
321
|
-
* in which case, we only have the kernel's hashes to go on, as opposed to
|
|
322
|
-
* this grouping by function maintained in this class.
|
|
323
|
-
*
|
|
324
|
-
* The logic therefore is to drop all FunctionLogs if any constituent hash
|
|
325
|
-
* does not appear in the provided hashes: it is impossible for part of a
|
|
326
|
-
* function to revert.
|
|
327
|
-
*/
|
|
328
|
-
// TODO: don't modify the tx object directly. The preimages should match the log hashes. When did the log hashes change?
|
|
329
|
-
public async filterRevertedLogs() {
|
|
330
|
-
this.contractClassLogs = (await this.getSplitContractClassLogs(false)).map(log => log.fields);
|
|
331
|
-
}
|
|
332
|
-
|
|
333
307
|
#combinePublicCallRequestWithCallData(request: PublicCallRequest) {
|
|
334
308
|
const calldataMap = this.getCalldataMap();
|
|
335
309
|
// Assume empty calldata if nothing is given for the hash.
|
package/src/tx/tx_effect.ts
CHANGED
|
@@ -232,15 +232,33 @@ export class TxEffect {
|
|
|
232
232
|
return thisLayer[0];
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
-
static async random(
|
|
235
|
+
static async random(
|
|
236
|
+
numPublicCallsPerTx = 3,
|
|
237
|
+
numPublicLogsPerCall = 1,
|
|
238
|
+
maxEffects: number | undefined = undefined,
|
|
239
|
+
): Promise<TxEffect> {
|
|
236
240
|
return new TxEffect(
|
|
237
241
|
RevertCode.random(),
|
|
238
242
|
TxHash.random(),
|
|
239
243
|
new Fr(Math.floor(Math.random() * 100_000)),
|
|
240
|
-
makeTuple(
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
+
makeTuple(
|
|
245
|
+
maxEffects === undefined ? MAX_NOTE_HASHES_PER_TX : Math.min(maxEffects, MAX_NOTE_HASHES_PER_TX),
|
|
246
|
+
Fr.random,
|
|
247
|
+
),
|
|
248
|
+
makeTuple(
|
|
249
|
+
maxEffects === undefined ? MAX_NULLIFIERS_PER_TX : Math.min(maxEffects, MAX_NULLIFIERS_PER_TX),
|
|
250
|
+
Fr.random,
|
|
251
|
+
),
|
|
252
|
+
makeTuple(
|
|
253
|
+
maxEffects === undefined ? MAX_L2_TO_L1_MSGS_PER_TX : Math.min(maxEffects, MAX_L2_TO_L1_MSGS_PER_TX),
|
|
254
|
+
Fr.random,
|
|
255
|
+
),
|
|
256
|
+
makeTuple(
|
|
257
|
+
maxEffects === undefined
|
|
258
|
+
? MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX
|
|
259
|
+
: Math.min(maxEffects, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX),
|
|
260
|
+
PublicDataWrite.random,
|
|
261
|
+
),
|
|
244
262
|
makeTuple(MAX_PRIVATE_LOGS_PER_TX, () => PrivateLog.random()),
|
|
245
263
|
await makeTupleAsync(numPublicCallsPerTx * numPublicLogsPerCall, async () => await PublicLog.random()),
|
|
246
264
|
await makeTupleAsync(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog.random),
|
package/src/validators/types.ts
CHANGED
package/src/vks/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './verification_key.js';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './vk_data.js';
|
|
@@ -7,26 +7,26 @@ import { bufferToHex } from '@aztec/foundation/string';
|
|
|
7
7
|
import type { UInt32 } from '../types/shared.js';
|
|
8
8
|
import { VerificationKeyData } from './verification_key.js';
|
|
9
9
|
|
|
10
|
-
export class
|
|
10
|
+
export class VkData {
|
|
11
11
|
constructor(
|
|
12
12
|
public vk: VerificationKeyData,
|
|
13
13
|
/**
|
|
14
14
|
* Index of the vk in the vk tree.
|
|
15
15
|
*/
|
|
16
|
-
public
|
|
16
|
+
public leafIndex: UInt32,
|
|
17
17
|
/**
|
|
18
18
|
* Sibling path of the vk in the vk tree.
|
|
19
19
|
*/
|
|
20
|
-
public
|
|
20
|
+
public siblingPath: Tuple<Fr, typeof VK_TREE_HEIGHT>,
|
|
21
21
|
) {}
|
|
22
22
|
|
|
23
23
|
static empty() {
|
|
24
|
-
return new
|
|
24
|
+
return new VkData(VerificationKeyData.empty(), 0, makeTuple(VK_TREE_HEIGHT, Fr.zero));
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
28
28
|
const reader = BufferReader.asReader(buffer);
|
|
29
|
-
return new
|
|
29
|
+
return new VkData(
|
|
30
30
|
reader.readObject(VerificationKeyData),
|
|
31
31
|
reader.readNumber(),
|
|
32
32
|
reader.readArray(VK_TREE_HEIGHT, Fr),
|
|
@@ -34,7 +34,7 @@ export class VkWitnessData {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
toBuffer() {
|
|
37
|
-
return serializeToBuffer(this.vk, this.
|
|
37
|
+
return serializeToBuffer(this.vk, this.leafIndex, this.siblingPath);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
toString() {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vk_witness_data.d.ts","sourceRoot":"","sources":["../../src/vks/vk_witness_data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAG1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAa,aAAa;IAEf,EAAE,EAAE,mBAAmB;IAC9B;;OAEG;IACI,OAAO,EAAE,MAAM;IACtB;;OAEG;IACI,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC;gBARxC,EAAE,EAAE,mBAAmB;IAC9B;;OAEG;IACI,OAAO,EAAE,MAAM;IACtB;;OAEG;IACI,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC;IAGjD,MAAM,CAAC,KAAK;IAIZ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAS/C,QAAQ;IAIR,QAAQ;CAGT"}
|