@aztec/simulator 0.86.0 → 0.87.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/common/errors.d.ts +3 -6
- package/dest/common/errors.d.ts.map +1 -1
- package/dest/common/errors.js +50 -31
- package/dest/private/acvm/acvm.d.ts +0 -2
- package/dest/private/acvm/acvm.d.ts.map +1 -1
- package/dest/private/acvm/acvm.js +2 -2
- package/dest/private/acvm/deserialize.d.ts +0 -2
- package/dest/private/acvm/deserialize.d.ts.map +1 -1
- package/dest/private/acvm/oracle/oracle.d.ts +2 -2
- package/dest/private/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/private/acvm/oracle/oracle.js +30 -33
- package/dest/private/acvm/oracle/typed_oracle.d.ts +1 -3
- package/dest/private/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/private/acvm/serialize.d.ts +8 -2
- package/dest/private/acvm/serialize.d.ts.map +1 -1
- package/dest/private/acvm/serialize.js +26 -0
- package/dest/private/index.d.ts +3 -0
- package/dest/private/index.d.ts.map +1 -1
- package/dest/private/index.js +3 -0
- package/dest/private/private_execution.d.ts.map +1 -1
- package/dest/private/private_execution.js +7 -1
- package/dest/private/providers/acvm_native.d.ts +0 -2
- package/dest/private/providers/acvm_native.d.ts.map +1 -1
- package/dest/private/providers/acvm_native.js +1 -1
- package/dest/private/providers/circuit_recording/circuit_recorder.d.ts +0 -2
- package/dest/private/providers/circuit_recording/circuit_recorder.d.ts.map +1 -1
- package/dest/private/providers/simulation_provider.d.ts.map +1 -1
- package/dest/private/providers/simulation_provider.js +14 -16
- package/dest/private/simulator.d.ts.map +1 -1
- package/dest/private/utility_execution_oracle.d.ts +0 -2
- package/dest/private/utility_execution_oracle.d.ts.map +1 -1
- package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
- package/dest/public/avm/avm_contract_call_result.js +2 -2
- package/dest/public/avm/avm_execution_environment.d.ts +2 -1
- package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/public/avm/avm_execution_environment.js +4 -2
- package/dest/public/avm/avm_gas.d.ts +0 -15
- package/dest/public/avm/avm_gas.d.ts.map +1 -1
- package/dest/public/avm/avm_gas.js +0 -18
- package/dest/public/avm/avm_memory_types.d.ts +84 -86
- package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/public/avm/avm_simulator.d.ts +1 -3
- package/dest/public/avm/avm_simulator.d.ts.map +1 -1
- package/dest/public/avm/avm_simulator.js +3 -3
- package/dest/public/avm/avm_simulator_interface.d.ts +0 -2
- package/dest/public/avm/avm_simulator_interface.d.ts.map +1 -1
- package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
- package/dest/public/avm/fixtures/initializers.js +1 -1
- package/dest/public/avm/fixtures/utils.d.ts +0 -10
- package/dest/public/avm/fixtures/utils.d.ts.map +1 -1
- package/dest/public/avm/fixtures/utils.js +0 -42
- package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/public/avm/opcodes/accrued_substate.js +7 -7
- package/dest/public/avm/opcodes/addressing_mode.d.ts +7 -6
- package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -1
- package/dest/public/avm/opcodes/addressing_mode.js +18 -15
- package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/public/avm/opcodes/arithmetic.js +1 -1
- package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
- package/dest/public/avm/opcodes/bitwise.js +2 -2
- package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
- package/dest/public/avm/opcodes/comparators.js +1 -1
- package/dest/public/avm/opcodes/contract.d.ts +1 -2
- package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
- package/dest/public/avm/opcodes/contract.js +8 -9
- package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
- package/dest/public/avm/opcodes/control_flow.js +1 -1
- package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
- package/dest/public/avm/opcodes/conversion.js +1 -1
- package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
- package/dest/public/avm/opcodes/ec_add.js +1 -1
- package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/public/avm/opcodes/environment_getters.js +1 -1
- package/dest/public/avm/opcodes/external_calls.d.ts +6 -6
- package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/public/avm/opcodes/external_calls.js +22 -22
- package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/public/avm/opcodes/hashing.js +3 -3
- package/dest/public/avm/opcodes/instruction.d.ts +0 -2
- package/dest/public/avm/opcodes/instruction.d.ts.map +1 -1
- package/dest/public/avm/opcodes/memory.d.ts +4 -4
- package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/public/avm/opcodes/memory.js +16 -16
- package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
- package/dest/public/avm/opcodes/misc.js +18 -11
- package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/public/avm/opcodes/storage.js +2 -2
- package/dest/public/avm/serialization/buffer_cursor.d.ts +0 -2
- package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
- package/dest/public/avm/serialization/bytecode_serialization.d.ts +0 -2
- package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/public/avm/serialization/instruction_serialization.d.ts +0 -2
- package/dest/public/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/public/executor_metrics.d.ts +3 -3
- package/dest/public/executor_metrics.d.ts.map +1 -1
- package/dest/public/executor_metrics.js +6 -6
- package/dest/public/executor_metrics_interface.d.ts +1 -1
- package/dest/public/executor_metrics_interface.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +3 -3
- package/dest/public/fixtures/utils.d.ts.map +1 -1
- package/dest/public/fixtures/utils.js +19 -26
- package/dest/public/hinting_db_sources.d.ts +0 -2
- package/dest/public/hinting_db_sources.d.ts.map +1 -1
- package/dest/public/hinting_db_sources.js +9 -2
- package/dest/public/public_processor/public_processor.d.ts +5 -7
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +10 -7
- package/dest/public/public_tx_simulator/apps_tests/amm_test.js +5 -5
- package/dest/public/public_tx_simulator/apps_tests/token_test.js +6 -6
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +1 -1
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +3 -3
- package/dest/public/public_tx_simulator/public_tx_context.d.ts +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.js +37 -34
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +2 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +15 -4
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +1 -1
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +2 -2
- package/dest/public/side_effect_trace.d.ts +2 -39
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +8 -32
- package/dest/public/side_effect_trace_interface.d.ts +0 -4
- package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
- package/dest/public/state_manager/nullifiers.d.ts.map +1 -1
- package/dest/public/state_manager/public_storage.d.ts.map +1 -1
- package/dest/public/state_manager/state_manager.d.ts +6 -4
- package/dest/public/state_manager/state_manager.d.ts.map +1 -1
- package/dest/public/state_manager/state_manager.js +6 -3
- package/dest/public/test_executor_metrics.d.ts +5 -4
- package/dest/public/test_executor_metrics.d.ts.map +1 -1
- package/dest/public/test_executor_metrics.js +47 -11
- package/dest/public/unique_class_ids.d.ts.map +1 -1
- package/dest/test/utils.d.ts.map +1 -1
- package/package.json +18 -17
- package/src/common/errors.ts +77 -41
- package/src/private/acvm/acvm.ts +2 -2
- package/src/private/acvm/oracle/oracle.ts +38 -31
- package/src/private/acvm/oracle/typed_oracle.ts +1 -1
- package/src/private/acvm/serialize.ts +35 -0
- package/src/private/index.ts +3 -0
- package/src/private/pick_notes.ts +4 -4
- package/src/private/private_execution.ts +8 -0
- package/src/private/providers/acvm_native.ts +6 -2
- package/src/private/providers/simulation_provider.ts +14 -16
- package/src/private/simulator.ts +4 -1
- package/src/public/avm/avm_contract_call_result.ts +2 -2
- package/src/public/avm/avm_execution_environment.ts +7 -1
- package/src/public/avm/avm_gas.ts +0 -20
- package/src/public/avm/avm_simulator.ts +3 -1
- package/src/public/avm/fixtures/initializers.ts +1 -0
- package/src/public/avm/fixtures/utils.ts +0 -66
- package/src/public/avm/opcodes/accrued_substate.ts +31 -11
- package/src/public/avm/opcodes/addressing_mode.ts +23 -20
- package/src/public/avm/opcodes/arithmetic.ts +2 -1
- package/src/public/avm/opcodes/bitwise.ts +9 -3
- package/src/public/avm/opcodes/comparators.ts +2 -1
- package/src/public/avm/opcodes/contract.ts +7 -6
- package/src/public/avm/opcodes/control_flow.ts +7 -2
- package/src/public/avm/opcodes/conversion.ts +2 -1
- package/src/public/avm/opcodes/ec_add.ts +2 -1
- package/src/public/avm/opcodes/environment_getters.ts +7 -2
- package/src/public/avm/opcodes/external_calls.ts +26 -14
- package/src/public/avm/opcodes/hashing.ts +17 -5
- package/src/public/avm/opcodes/memory.ts +33 -15
- package/src/public/avm/opcodes/misc.ts +23 -15
- package/src/public/avm/opcodes/storage.ts +9 -3
- package/src/public/avm/serialization/buffer_cursor.ts +4 -1
- package/src/public/executor_metrics.ts +11 -6
- package/src/public/executor_metrics_interface.ts +1 -1
- package/src/public/fixtures/public_tx_simulation_tester.ts +3 -2
- package/src/public/fixtures/utils.ts +21 -28
- package/src/public/hinting_db_sources.ts +17 -4
- package/src/public/public_processor/public_processor.ts +11 -5
- package/src/public/public_tx_simulator/apps_tests/amm_test.ts +5 -5
- package/src/public/public_tx_simulator/apps_tests/token_test.ts +6 -6
- package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +3 -2
- package/src/public/public_tx_simulator/public_tx_context.ts +96 -81
- package/src/public/public_tx_simulator/public_tx_simulator.ts +14 -3
- package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +10 -1
- package/src/public/side_effect_trace.ts +7 -111
- package/src/public/side_effect_trace_interface.ts +0 -4
- package/src/public/state_manager/state_manager.ts +13 -5
- package/src/public/test_executor_metrics.ts +60 -13
- package/src/public/avm/opcodes/.eslintrc.cjs +0 -8
|
@@ -11,14 +11,14 @@ export interface PublicEnqueuedCallMetrics {
|
|
|
11
11
|
fnName: string;
|
|
12
12
|
durationMs: number;
|
|
13
13
|
manaUsed: number;
|
|
14
|
-
|
|
14
|
+
totalInstructionsExecuted: number;
|
|
15
15
|
reverted: boolean;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
export interface PublicTxMetrics {
|
|
19
19
|
totalDurationMs: number;
|
|
20
20
|
manaUsed: number;
|
|
21
|
-
|
|
21
|
+
totalInstructionsExecuted: number;
|
|
22
22
|
txHashMs: number | undefined;
|
|
23
23
|
nonRevertiblePrivateInsertionsUs: number | undefined;
|
|
24
24
|
revertiblePrivateInsertionsUs: number | undefined;
|
|
@@ -59,7 +59,7 @@ export class TestExecutorMetrics implements ExecutorMetricsInterface {
|
|
|
59
59
|
this.txMetrics.set(txLabel, {
|
|
60
60
|
totalDurationMs: 0,
|
|
61
61
|
manaUsed: 0,
|
|
62
|
-
|
|
62
|
+
totalInstructionsExecuted: 0,
|
|
63
63
|
txHashMs: undefined,
|
|
64
64
|
nonRevertiblePrivateInsertionsUs: undefined,
|
|
65
65
|
revertiblePrivateInsertionsUs: undefined,
|
|
@@ -81,26 +81,36 @@ export class TestExecutorMetrics implements ExecutorMetricsInterface {
|
|
|
81
81
|
|
|
82
82
|
// add manaUsed across all enqueued calls
|
|
83
83
|
txMetrics.manaUsed = sum(txMetrics.enqueuedCalls.map(call => call.manaUsed));
|
|
84
|
-
// add
|
|
85
|
-
txMetrics.
|
|
84
|
+
// add totalInstructionsExecuted across all enqueued calls
|
|
85
|
+
txMetrics.totalInstructionsExecuted = sum(txMetrics.enqueuedCalls.map(call => call.totalInstructionsExecuted));
|
|
86
86
|
txMetrics.revertedCode = revertedCode;
|
|
87
87
|
|
|
88
88
|
this.currentTxLabel = undefined;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
recordEnqueuedCallSimulation(
|
|
92
|
-
|
|
91
|
+
recordEnqueuedCallSimulation(
|
|
92
|
+
fnName: string,
|
|
93
|
+
durationMs: number,
|
|
94
|
+
manaUsed: number,
|
|
95
|
+
totalInstructionsExecuted: number,
|
|
96
|
+
) {
|
|
97
|
+
this.#recordEnqueuedCallSimulation(fnName, durationMs, manaUsed, totalInstructionsExecuted, false);
|
|
93
98
|
}
|
|
94
99
|
|
|
95
|
-
recordEnqueuedCallSimulationFailure(
|
|
96
|
-
|
|
100
|
+
recordEnqueuedCallSimulationFailure(
|
|
101
|
+
fnName: string,
|
|
102
|
+
durationMs: number,
|
|
103
|
+
manaUsed: number,
|
|
104
|
+
totalInstructionsExecuted: number,
|
|
105
|
+
) {
|
|
106
|
+
this.#recordEnqueuedCallSimulation(fnName, durationMs, manaUsed, totalInstructionsExecuted, true);
|
|
97
107
|
}
|
|
98
108
|
|
|
99
109
|
#recordEnqueuedCallSimulation(
|
|
100
110
|
fnName: string,
|
|
101
111
|
durationMs: number,
|
|
102
112
|
manaUsed: number,
|
|
103
|
-
|
|
113
|
+
totalInstructionsExecuted: number,
|
|
104
114
|
reverted: boolean,
|
|
105
115
|
) {
|
|
106
116
|
assert(this.currentTxLabel, 'Cannot record enqueued call simulation when no tx is live');
|
|
@@ -109,7 +119,7 @@ export class TestExecutorMetrics implements ExecutorMetricsInterface {
|
|
|
109
119
|
fnName,
|
|
110
120
|
durationMs,
|
|
111
121
|
manaUsed,
|
|
112
|
-
|
|
122
|
+
totalInstructionsExecuted: totalInstructionsExecuted,
|
|
113
123
|
reverted,
|
|
114
124
|
});
|
|
115
125
|
}
|
|
@@ -168,7 +178,7 @@ export class TestExecutorMetrics implements ExecutorMetricsInterface {
|
|
|
168
178
|
filter === PublicTxMetricsFilter.TOTALS ||
|
|
169
179
|
filter === PublicTxMetricsFilter.ALL
|
|
170
180
|
) {
|
|
171
|
-
pretty += `${INDENT0}Total instructions executed: ${fmtNum(txMetrics.
|
|
181
|
+
pretty += `${INDENT0}Total instructions executed: ${fmtNum(txMetrics.totalInstructionsExecuted)}\n`;
|
|
172
182
|
}
|
|
173
183
|
if (filter === PublicTxMetricsFilter.DURATIONS || filter === PublicTxMetricsFilter.ALL) {
|
|
174
184
|
pretty += `${INDENT0}Tx hash computation: ${fmtNum(txMetrics.txHashMs!, 'ms')}\n`;
|
|
@@ -203,7 +213,7 @@ export class TestExecutorMetrics implements ExecutorMetricsInterface {
|
|
|
203
213
|
}
|
|
204
214
|
|
|
205
215
|
if (filter === PublicTxMetricsFilter.INSTRUCTIONS || filter === PublicTxMetricsFilter.ALL) {
|
|
206
|
-
pretty += `${INDENT2}Instructions executed: ${fmtNum(enqueuedCall.
|
|
216
|
+
pretty += `${INDENT2}Instructions executed: ${fmtNum(enqueuedCall.totalInstructionsExecuted)}\n`;
|
|
207
217
|
}
|
|
208
218
|
if (enqueuedCall.reverted) {
|
|
209
219
|
pretty += `${INDENT2}Reverted!\n`;
|
|
@@ -215,6 +225,43 @@ export class TestExecutorMetrics implements ExecutorMetricsInterface {
|
|
|
215
225
|
toJSON(indent = 2) {
|
|
216
226
|
return JSON.stringify(Object.fromEntries(this.txMetrics.entries()), null, indent);
|
|
217
227
|
}
|
|
228
|
+
|
|
229
|
+
toGithubActionBenchmarkJSON(indent = 2) {
|
|
230
|
+
const data = [];
|
|
231
|
+
for (const [txLabel, txMetrics] of this.txMetrics.entries()) {
|
|
232
|
+
data.push({
|
|
233
|
+
name: `${txLabel}/totalInstructionsExecuted`,
|
|
234
|
+
value: txMetrics.totalInstructionsExecuted,
|
|
235
|
+
unit: '#instructions',
|
|
236
|
+
});
|
|
237
|
+
data.push({
|
|
238
|
+
name: `${txLabel}/totalDurationMs`,
|
|
239
|
+
value: txMetrics.totalDurationMs,
|
|
240
|
+
unit: 'ms',
|
|
241
|
+
});
|
|
242
|
+
data.push({
|
|
243
|
+
name: `${txLabel}/manaUsed`,
|
|
244
|
+
value: txMetrics.manaUsed,
|
|
245
|
+
unit: 'mana',
|
|
246
|
+
});
|
|
247
|
+
data.push({
|
|
248
|
+
name: `${txLabel}/txHashMs`,
|
|
249
|
+
value: txMetrics.txHashMs,
|
|
250
|
+
unit: 'ms',
|
|
251
|
+
});
|
|
252
|
+
data.push({
|
|
253
|
+
name: `${txLabel}/nonRevertiblePrivateInsertionsUs`,
|
|
254
|
+
value: txMetrics.nonRevertiblePrivateInsertionsUs,
|
|
255
|
+
unit: 'us',
|
|
256
|
+
});
|
|
257
|
+
data.push({
|
|
258
|
+
name: `${txLabel}/revertiblePrivateInsertionsUs`,
|
|
259
|
+
value: txMetrics.revertiblePrivateInsertionsUs,
|
|
260
|
+
unit: 'us',
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
return JSON.stringify(data, null, indent);
|
|
264
|
+
}
|
|
218
265
|
}
|
|
219
266
|
|
|
220
267
|
function fmtNum(num: number, unit?: string) {
|