@aztec/simulator 0.0.1-commit.0b941701 → 0.0.1-commit.0dc957cde
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/README.md +4 -4
- package/dest/private/acvm/acvm.d.ts +4 -2
- package/dest/private/acvm/acvm.d.ts.map +1 -1
- package/dest/private/acvm/acvm.js +4 -3
- package/dest/private/acvm_native.d.ts +5 -3
- package/dest/private/acvm_native.d.ts.map +1 -1
- package/dest/private/acvm_native.js +8 -6
- package/dest/private/acvm_wasm.d.ts +4 -3
- package/dest/private/acvm_wasm.d.ts.map +1 -1
- package/dest/private/acvm_wasm.js +4 -4
- package/dest/private/circuit_recording/circuit_recorder.d.ts +4 -3
- package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
- package/dest/private/circuit_recording/circuit_recorder.js +7 -5
- package/dest/private/circuit_recording/file_circuit_recorder.d.ts +3 -2
- package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
- package/dest/private/circuit_recording/file_circuit_recorder.js +2 -2
- package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +7 -2
- package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
- package/dest/private/circuit_recording/memory_circuit_recorder.js +4 -4
- package/dest/private/factory.d.ts +3 -3
- package/dest/private/factory.d.ts.map +1 -1
- package/dest/private/factory.js +7 -4
- package/dest/public/avm/avm_gas.js +3 -3
- package/dest/public/avm/avm_simulator.js +1 -1
- package/dest/public/avm/calldata.d.ts +1 -1
- package/dest/public/avm/calldata.d.ts.map +1 -1
- package/dest/public/avm/calldata.js +3 -2
- package/dest/public/avm/fixtures/account_proof_fetcher.d.ts +2 -0
- package/dest/public/avm/fixtures/account_proof_fetcher.d.ts.map +1 -0
- package/dest/public/avm/fixtures/account_proof_fetcher.js +152 -0
- package/dest/public/avm/opcodes/accrued_substate.d.ts +4 -5
- package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/public/avm/opcodes/accrued_substate.js +11 -16
- package/dest/public/avm/serialization/bytecode_serialization.js +3 -3
- package/dest/public/avm/serialization/instruction_serialization.d.ts +2 -2
- package/dest/public/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/public/avm/serialization/instruction_serialization.js +1 -1
- package/dest/public/contracts_db_checkpoint.d.ts +2 -2
- package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
- package/dest/public/contracts_db_checkpoint.js +1 -1
- package/dest/public/executor_metrics.d.ts +1 -1
- package/dest/public/executor_metrics.d.ts.map +1 -1
- package/dest/public/executor_metrics.js +7 -2
- package/dest/public/fixtures/amm_test.js +2 -2
- package/dest/public/fixtures/bulk_test.d.ts +1 -1
- package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
- package/dest/public/fixtures/bulk_test.js +4 -4
- package/dest/public/fixtures/custom_bytecode_tests.d.ts +3 -1
- package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -1
- package/dest/public/fixtures/custom_bytecode_tests.js +61 -1
- package/dest/public/fixtures/opcode_spammer.d.ts +3 -4
- package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -1
- package/dest/public/fixtures/opcode_spammer.js +16 -56
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +6 -5
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +37 -10
- package/dest/public/fixtures/utils.d.ts +2 -2
- package/dest/public/fixtures/utils.d.ts.map +1 -1
- package/dest/public/fixtures/utils.js +10 -10
- package/dest/public/hinting_db_sources.d.ts +5 -5
- package/dest/public/hinting_db_sources.d.ts.map +1 -1
- package/dest/public/hinting_db_sources.js +7 -6
- package/dest/public/public_db_sources.d.ts +6 -5
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +14 -14
- package/dest/public/public_processor/guarded_merkle_tree.d.ts +5 -5
- package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
- package/dest/public/public_processor/guarded_merkle_tree.js +5 -5
- package/dest/public/public_processor/public_processor.d.ts +8 -4
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +60 -47
- package/dest/public/public_processor/public_processor_metrics.d.ts +2 -2
- package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor_metrics.js +20 -4
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +3 -2
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +4 -3
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +5 -5
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +10 -11
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +4 -4
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +7 -7
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +4 -4
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +6 -6
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +3 -2
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +2 -2
- package/dest/public/public_tx_simulator/factories.d.ts +3 -2
- package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/factories.js +4 -4
- package/dest/public/public_tx_simulator/public_tx_context.d.ts +10 -5
- package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.js +16 -18
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +9 -4
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +19 -12
- package/dest/public/side_effect_trace.d.ts +4 -4
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +3 -3
- package/dest/public/state_manager/state_manager.d.ts +10 -4
- package/dest/public/state_manager/state_manager.d.ts.map +1 -1
- package/dest/public/state_manager/state_manager.js +12 -5
- package/dest/public/test_executor_metrics.d.ts +8 -2
- package/dest/public/test_executor_metrics.d.ts.map +1 -1
- package/dest/public/test_executor_metrics.js +24 -2
- package/package.json +15 -16
- package/src/private/acvm/acvm.ts +4 -3
- package/src/private/acvm_native.ts +11 -5
- package/src/private/acvm_wasm.ts +7 -3
- package/src/private/circuit_recording/circuit_recorder.ts +7 -5
- package/src/private/circuit_recording/file_circuit_recorder.ts +7 -2
- package/src/private/circuit_recording/memory_circuit_recorder.ts +6 -4
- package/src/private/factory.ts +7 -4
- package/src/public/avm/avm_gas.ts +2 -2
- package/src/public/avm/avm_simulator.ts +1 -1
- package/src/public/avm/calldata.ts +3 -2
- package/src/public/avm/fixtures/account_proof.json +553 -0
- package/src/public/avm/fixtures/account_proof_fetcher.ts +166 -0
- package/src/public/avm/opcodes/accrued_substate.ts +10 -19
- package/src/public/avm/opcodes/external_calls.ts +1 -1
- package/src/public/avm/serialization/bytecode_serialization.ts +2 -2
- package/src/public/avm/serialization/instruction_serialization.ts +1 -1
- package/src/public/contracts_db_checkpoint.ts +1 -1
- package/src/public/executor_metrics.ts +4 -1
- package/src/public/fixtures/amm_test.ts +2 -2
- package/src/public/fixtures/bulk_test.ts +2 -4
- package/src/public/fixtures/custom_bytecode_tests.ts +139 -1
- package/src/public/fixtures/opcode_spammer.ts +18 -55
- package/src/public/fixtures/public_tx_simulation_tester.ts +47 -6
- package/src/public/fixtures/utils.ts +17 -12
- package/src/public/fuzzing/avm_fuzzer_simulator.ts +1 -1
- package/src/public/hinting_db_sources.ts +9 -7
- package/src/public/public_db_sources.ts +27 -19
- package/src/public/public_processor/guarded_merkle_tree.ts +6 -6
- package/src/public/public_processor/public_processor.ts +86 -60
- package/src/public/public_processor/public_processor_metrics.ts +10 -4
- package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +8 -4
- package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +10 -8
- package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +7 -5
- package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +7 -5
- package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +3 -1
- package/src/public/public_tx_simulator/factories.ts +6 -3
- package/src/public/public_tx_simulator/public_tx_context.ts +21 -16
- package/src/public/public_tx_simulator/public_tx_simulator.ts +20 -12
- package/src/public/side_effect_trace.ts +5 -2
- package/src/public/state_manager/state_manager.ts +27 -4
- package/src/public/test_executor_metrics.ts +27 -3
|
@@ -143,7 +143,7 @@
|
|
|
143
143
|
* - `EMITNOTEHASH`: max 64 per TX
|
|
144
144
|
* - `EMITNULLIFIER`: max 63 per TX (one reserved for TX nullifier)
|
|
145
145
|
* - `SENDL2TOL1MSG`: max 8 per TX
|
|
146
|
-
* - `
|
|
146
|
+
* - `EMITPUBLICLOG`: limited by total log payload size
|
|
147
147
|
*
|
|
148
148
|
* By having the inner contract REVERT after emitting side effects, those effects are discarded, allowing the outer contract to call it again. This enables thousands of opcode executions per TX instead of just the limit.
|
|
149
149
|
*
|
|
@@ -152,12 +152,11 @@ import { Grumpkin } from '@aztec/foundation/crypto/grumpkin';
|
|
|
152
152
|
import { randomBigInt } from '@aztec/foundation/crypto/random';
|
|
153
153
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
154
154
|
import { PublicDataWrite } from '@aztec/stdlib/avm';
|
|
155
|
-
import {
|
|
156
|
-
import { computePublicDataTreeLeafSlot, siloNullifier } from '@aztec/stdlib/hash';
|
|
155
|
+
import { computePublicDataTreeLeafSlot } from '@aztec/stdlib/hash';
|
|
157
156
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
158
157
|
import assert from 'assert';
|
|
159
158
|
import { Field, TaggedMemory, TypeTag, Uint1, Uint32, Uint64 } from '../avm/avm_memory_types.js';
|
|
160
|
-
import { Add, And, Call, CalldataCopy, Cast, DebugLog, Div, EcAdd, EmitNoteHash, EmitNullifier,
|
|
159
|
+
import { Add, And, Call, CalldataCopy, Cast, DebugLog, Div, EcAdd, EmitNoteHash, EmitNullifier, EmitPublicLog, Eq, FieldDiv, GetContractInstance, GetEnvVar, InternalCall, InternalReturn, Jump, JumpI, KeccakF1600, L1ToL2MessageExists, Lt, Lte, Mov, Mul, Not, NoteHashExists, NullifierExists, Or, Poseidon2, Return, ReturndataCopy, ReturndataSize, Revert, SLoad, SStore, SendL2ToL1Message, Set, Sha256Compression, Shl, Shr, StaticCall, Sub, SuccessCopy, ToRadixBE, Xor } from '../avm/opcodes/index.js';
|
|
161
160
|
import { encodeToBytecode } from '../avm/serialization/bytecode_serialization.js';
|
|
162
161
|
import { Opcode } from '../avm/serialization/instruction_serialization.js';
|
|
163
162
|
import { deployCustomBytecode, executeCustomBytecode } from './custom_bytecode_tester.js';
|
|
@@ -169,8 +168,7 @@ import { deployCustomBytecode, executeCustomBytecode } from './custom_bytecode_t
|
|
|
169
168
|
* before running the spammer so that existence checks can find them.
|
|
170
169
|
*/ export const WARM_NOTE_HASH = new Fr(0xdeadbeefn);
|
|
171
170
|
export const WARM_L1_TO_L2_MSG = new Fr(0xcafebabedeadbeefn);
|
|
172
|
-
/** Warm nullifier
|
|
173
|
-
export const WARM_NULLIFIER_ADDRESS = AztecAddress.fromNumber(0xbeef);
|
|
171
|
+
/** Warm nullifier constant - a pre-siloed nullifier value inserted directly into the tree */ export const WARM_SILOED_NULLIFIER = new Fr(0xdeadbeef0001n);
|
|
174
172
|
/** Warm storage constants - storage is inserted for the deployed contract's address */ export const WARM_STORAGE_SLOT = new Fr(0xdeadbeef0002n);
|
|
175
173
|
export const WARM_STORAGE_VALUE = new Fr(0xcafebabe0003n);
|
|
176
174
|
/**
|
|
@@ -197,10 +195,9 @@ export const WARM_L1_TO_L2_MSG_LEAF_INDEX = 0n;
|
|
|
197
195
|
await merkleTrees.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, [
|
|
198
196
|
WARM_L1_TO_L2_MSG
|
|
199
197
|
]);
|
|
200
|
-
// Insert siloed nullifier into nullifier tree
|
|
201
|
-
const siloedNullifier = await siloNullifier(WARM_NULLIFIER_ADDRESS, WARM_NULLIFIER);
|
|
198
|
+
// Insert siloed nullifier into nullifier tree (already siloed - used directly by NULLIFIEREXISTS)
|
|
202
199
|
await merkleTrees.sequentialInsert(MerkleTreeId.NULLIFIER_TREE, [
|
|
203
|
-
|
|
200
|
+
WARM_SILOED_NULLIFIER.toBuffer()
|
|
204
201
|
]);
|
|
205
202
|
// Insert storage value into public data tree
|
|
206
203
|
const leafSlot = await computePublicDataTreeLeafSlot(contractAddress, WARM_STORAGE_SLOT);
|
|
@@ -1000,67 +997,30 @@ const STATIC_CALL_CONFIG = {
|
|
|
1000
997
|
[Opcode.NULLIFIEREXISTS]: [
|
|
1001
998
|
{
|
|
1002
999
|
label: 'Non-existent nullifier',
|
|
1000
|
+
// NULLIFIEREXISTS now takes a siloed nullifier directly (no address parameter)
|
|
1003
1001
|
setup: [
|
|
1004
1002
|
{
|
|
1005
1003
|
offset: 0,
|
|
1006
1004
|
value: new Field(Fr.random())
|
|
1007
|
-
},
|
|
1008
|
-
{
|
|
1009
|
-
offset: 1,
|
|
1010
|
-
value: new Field(Fr.random())
|
|
1011
1005
|
}
|
|
1012
1006
|
],
|
|
1013
1007
|
targetInstructions: ()=>[
|
|
1014
|
-
new NullifierExists(/*addressing_mode=*/ 0, /*
|
|
1008
|
+
new NullifierExists(/*addressing_mode=*/ 0, /*siloedNullifierOffset=*/ 0, /*existsOffset=*/ 1)
|
|
1015
1009
|
]
|
|
1016
1010
|
},
|
|
1017
1011
|
{
|
|
1018
1012
|
label: 'Existing nullifier (warm - from tree)',
|
|
1019
|
-
// Uses pre-inserted nullifier from insertWarmTreeEntries()
|
|
1013
|
+
// Uses pre-inserted siloed nullifier from insertWarmTreeEntries()
|
|
1014
|
+
// NULLIFIEREXISTS now takes a siloed nullifier directly
|
|
1020
1015
|
setup: [
|
|
1021
1016
|
{
|
|
1022
1017
|
offset: 0,
|
|
1023
|
-
value: new Field(
|
|
1024
|
-
},
|
|
1025
|
-
{
|
|
1026
|
-
offset: 1,
|
|
1027
|
-
value: new Field(WARM_NULLIFIER_ADDRESS.toField())
|
|
1018
|
+
value: new Field(WARM_SILOED_NULLIFIER)
|
|
1028
1019
|
}
|
|
1029
1020
|
],
|
|
1030
1021
|
targetInstructions: ()=>[
|
|
1031
|
-
new NullifierExists(/*addressing_mode=*/ 0, /*
|
|
1022
|
+
new NullifierExists(/*addressing_mode=*/ 0, /*siloedNullifierOffset=*/ 0, /*existsOffset=*/ 1)
|
|
1032
1023
|
]
|
|
1033
|
-
},
|
|
1034
|
-
{
|
|
1035
|
-
label: 'Existing nullifier (warm - EMITNULLIFIER first)',
|
|
1036
|
-
// Memory layout: nullifier (incremented), constant 1, current address (from GETENVVAR), revertSize, exists result
|
|
1037
|
-
setup: [
|
|
1038
|
-
{
|
|
1039
|
-
offset: 0,
|
|
1040
|
-
value: new Field(Fr.random())
|
|
1041
|
-
},
|
|
1042
|
-
{
|
|
1043
|
-
offset: 1,
|
|
1044
|
-
value: new Field(1n)
|
|
1045
|
-
},
|
|
1046
|
-
()=>[
|
|
1047
|
-
// Get current contract address into offset 2
|
|
1048
|
-
new GetEnvVar(/*addressing_mode=*/ 0, /*dstOffset=*/ 2, /*varEnum=*/ 0).as(Opcode.GETENVVAR_16, GetEnvVar.wireFormat16)
|
|
1049
|
-
],
|
|
1050
|
-
{
|
|
1051
|
-
offset: 3,
|
|
1052
|
-
value: new Uint32(0n)
|
|
1053
|
-
}
|
|
1054
|
-
],
|
|
1055
|
-
targetInstructions: ()=>[
|
|
1056
|
-
new EmitNullifier(/*addressing_mode=*/ 0, /*nullifierOffset=*/ 0),
|
|
1057
|
-
new NullifierExists(/*addressing_mode=*/ 0, /*nullifierOffset=*/ 0, /*addressOffset=*/ 2, /*existsOffset=*/ 4),
|
|
1058
|
-
new Add(/*addressing_mode=*/ 0, /*aOffset=*/ 0, /*bOffset=*/ 1, /*dstOffset=*/ 0).as(Opcode.ADD_8, Add.wireFormat8)
|
|
1059
|
-
],
|
|
1060
|
-
cleanupInstructions: ()=>[
|
|
1061
|
-
new Revert(/*addressing_mode=*/ 0, /*retSizeOffset=*/ 3, /*returnOffset=*/ 0).as(Opcode.REVERT_8, Revert.wireFormat8)
|
|
1062
|
-
],
|
|
1063
|
-
limit: MAX_NULLIFIERS_PER_TX - 1
|
|
1064
1024
|
}
|
|
1065
1025
|
],
|
|
1066
1026
|
[Opcode.L1TOL2MSGEXISTS]: [
|
|
@@ -1247,8 +1207,8 @@ const STATIC_CALL_CONFIG = {
|
|
|
1247
1207
|
limit: MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX
|
|
1248
1208
|
}
|
|
1249
1209
|
],
|
|
1250
|
-
//
|
|
1251
|
-
[Opcode.
|
|
1210
|
+
// EMITPUBLICLOG - two configs: minimal (many small logs) and max-size (one large log)
|
|
1211
|
+
[Opcode.EMITPUBLICLOG]: [
|
|
1252
1212
|
{
|
|
1253
1213
|
label: 'Many empty logs, revert, repeat',
|
|
1254
1214
|
setup: [
|
|
@@ -1262,7 +1222,7 @@ const STATIC_CALL_CONFIG = {
|
|
|
1262
1222
|
}
|
|
1263
1223
|
],
|
|
1264
1224
|
targetInstructions: ()=>[
|
|
1265
|
-
new
|
|
1225
|
+
new EmitPublicLog(/*addressing_mode=*/ 0, /*logSizeOffset=*/ 0, /*logOffset=*/ 1)
|
|
1266
1226
|
],
|
|
1267
1227
|
cleanupInstructions: ()=>[
|
|
1268
1228
|
new Revert(/*addressing_mode=*/ 0, /*retSizeOffset=*/ 1, /*returnOffset=*/ 0).as(Opcode.REVERT_8, Revert.wireFormat8)
|
|
@@ -1284,7 +1244,7 @@ const STATIC_CALL_CONFIG = {
|
|
|
1284
1244
|
}
|
|
1285
1245
|
],
|
|
1286
1246
|
targetInstructions: ()=>[
|
|
1287
|
-
new
|
|
1247
|
+
new EmitPublicLog(/*addressing_mode=*/ 0, /*logSizeOffset=*/ 0, /*logOffset=*/ 2)
|
|
1288
1248
|
],
|
|
1289
1249
|
cleanupInstructions: ()=>[
|
|
1290
1250
|
new Revert(/*addressing_mode=*/ 0, /*retSizeOffset=*/ 1, /*returnOffset=*/ 0).as(Opcode.REVERT_8, Revert.wireFormat8)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ContractArtifact } from '@aztec/stdlib/abi';
|
|
2
2
|
import { PublicSimulatorConfig, type PublicTxResult } from '@aztec/stdlib/avm';
|
|
3
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
|
+
import { Gas } from '@aztec/stdlib/gas';
|
|
4
5
|
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
5
6
|
import { GlobalVariables, type Tx } from '@aztec/stdlib/tx';
|
|
6
7
|
import { NativeWorldStateService } from '@aztec/world-state';
|
|
@@ -36,15 +37,15 @@ export declare class PublicTxSimulationTester extends BaseAvmSimulationTester {
|
|
|
36
37
|
constructor(merkleTree: MerkleTreeWriteOperations, contractDataSource: SimpleContractDataSource, globals?: GlobalVariables, metrics?: TestExecutorMetrics, simulatorFactory?: MeasuredSimulatorFactory, config?: PublicSimulatorConfig);
|
|
37
38
|
static create(worldStateService: NativeWorldStateService, globals?: GlobalVariables, metrics?: TestExecutorMetrics, useCppSimulator?: boolean, config?: PublicSimulatorConfig): Promise<PublicTxSimulationTester>;
|
|
38
39
|
setMetricsPrefix(prefix: string): void;
|
|
39
|
-
createTx(sender: AztecAddress, setupCalls?: TestEnqueuedCall[], appCalls?: TestEnqueuedCall[], teardownCall?: TestEnqueuedCall, feePayer?: AztecAddress, privateInsertions?: TestPrivateInsertions): Promise<Tx>;
|
|
40
|
-
simulateTx(sender: AztecAddress, setupCalls?: TestEnqueuedCall[], appCalls?: TestEnqueuedCall[], teardownCall?: TestEnqueuedCall, feePayer?: AztecAddress, privateInsertions?: TestPrivateInsertions, txLabel?: string): Promise<PublicTxResult>;
|
|
40
|
+
createTx(sender: AztecAddress, setupCalls?: TestEnqueuedCall[], appCalls?: TestEnqueuedCall[], teardownCall?: TestEnqueuedCall, feePayer?: AztecAddress, privateInsertions?: TestPrivateInsertions, gasLimits?: Gas): Promise<Tx>;
|
|
41
|
+
simulateTx(sender: AztecAddress, setupCalls?: TestEnqueuedCall[], appCalls?: TestEnqueuedCall[], teardownCall?: TestEnqueuedCall, feePayer?: AztecAddress, privateInsertions?: TestPrivateInsertions, txLabel?: string, gasLimits?: Gas): Promise<PublicTxResult>;
|
|
41
42
|
/**
|
|
42
43
|
* Just simulate the transaction and return the result.
|
|
43
44
|
*
|
|
44
45
|
* This wrapper around simulation allows for easy labeling of a TX
|
|
45
46
|
* which is especially useful when reporting benchmarks or metrics.
|
|
46
47
|
*/
|
|
47
|
-
simulateTxWithLabel(txLabel: string, sender: AztecAddress, setupCalls?: TestEnqueuedCall[], appCalls?: TestEnqueuedCall[], teardownCall?: TestEnqueuedCall, feePayer?: AztecAddress, privateInsertions?: TestPrivateInsertions): Promise<PublicTxResult>;
|
|
48
|
+
simulateTxWithLabel(txLabel: string, sender: AztecAddress, setupCalls?: TestEnqueuedCall[], appCalls?: TestEnqueuedCall[], teardownCall?: TestEnqueuedCall, feePayer?: AztecAddress, privateInsertions?: TestPrivateInsertions, gasLimits?: Gas): Promise<PublicTxResult>;
|
|
48
49
|
/**
|
|
49
50
|
* Execute a transaction and return the result.
|
|
50
51
|
*
|
|
@@ -52,7 +53,7 @@ export declare class PublicTxSimulationTester extends BaseAvmSimulationTester {
|
|
|
52
53
|
* to do more work (like prove and verify) while still reusing existing
|
|
53
54
|
* test fixtures (like amm_test). That is why it is not named "simulate*".
|
|
54
55
|
*/
|
|
55
|
-
executeTxWithLabel(txLabel: string, sender: AztecAddress, setupCalls?: TestEnqueuedCall[], appCalls?: TestEnqueuedCall[], teardownCall?: TestEnqueuedCall, feePayer?: AztecAddress, privateInsertions?: TestPrivateInsertions): Promise<PublicTxResult>;
|
|
56
|
+
executeTxWithLabel(txLabel: string, sender: AztecAddress, setupCalls?: TestEnqueuedCall[], appCalls?: TestEnqueuedCall[], teardownCall?: TestEnqueuedCall, feePayer?: AztecAddress, privateInsertions?: TestPrivateInsertions, gasLimits?: Gas): Promise<PublicTxResult>;
|
|
56
57
|
prettyPrintMetrics(): void;
|
|
57
58
|
/**
|
|
58
59
|
* Cancel the current simulation if one is in progress.
|
|
@@ -69,4 +70,4 @@ export declare class PublicTxSimulationTester extends BaseAvmSimulationTester {
|
|
|
69
70
|
getSimulator(): MeasuredPublicTxSimulatorInterface;
|
|
70
71
|
}
|
|
71
72
|
export declare function defaultGlobals(): GlobalVariables;
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3R4X3NpbXVsYXRpb25fdGVzdGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL2ZpeHR1cmVzL3B1YmxpY190eF9zaW11bGF0aW9uX3Rlc3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBbUIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQWtFLEdBQUcsRUFBVyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pILE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakYsT0FBTyxFQUFFLGVBQWUsRUFBaUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQU94RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc1RCxPQUFPLEtBQUssRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2xILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxLQUFLLHFCQUFxQixFQUEwQixNQUFNLFlBQVksQ0FBQztBQUloRixNQUFNLE1BQU0sZ0JBQWdCLEdBQUc7SUFDN0IsTUFBTSxDQUFDLEVBQUUsWUFBWSxDQUFDO0lBQ3RCLE9BQU8sRUFBRSxZQUFZLENBQUM7SUFDdEIsTUFBTSxD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_tx_simulation_tester.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/public_tx_simulation_tester.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAAmB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"public_tx_simulation_tester.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/public_tx_simulation_tester.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PUBLIC_TX_L2_GAS_OVERHEAD, TX_DA_GAS_OVERHEAD } from '@aztec/constants';
|
|
2
2
|
import { asyncMap } from '@aztec/foundation/async-map';
|
|
3
3
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
4
4
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
5
|
import { encodeArguments } from '@aztec/stdlib/abi';
|
|
6
6
|
import { PublicSimulatorConfig } from '@aztec/stdlib/avm';
|
|
7
|
-
import { Gas, GasFees } from '@aztec/stdlib/gas';
|
|
7
|
+
import { FALLBACK_TEARDOWN_DA_GAS_LIMIT, FALLBACK_TEARDOWN_L2_GAS_LIMIT, Gas, GasFees } from '@aztec/stdlib/gas';
|
|
8
8
|
import { PublicCallRequest } from '@aztec/stdlib/kernel';
|
|
9
9
|
import { GlobalVariables, PublicCallRequestWithCalldata } from '@aztec/stdlib/tx';
|
|
10
10
|
import { BaseAvmSimulationTester } from '../avm/fixtures/base_avm_simulation_tester.js';
|
|
@@ -57,15 +57,15 @@ const defaultConfig = PublicSimulatorConfig.from({
|
|
|
57
57
|
new Fr(420000 + this.txCount)
|
|
58
58
|
]
|
|
59
59
|
}
|
|
60
|
-
}) {
|
|
60
|
+
}, gasLimits) {
|
|
61
61
|
const setupCallRequests = await asyncMap(setupCalls, (call)=>this.#createPubicCallRequestForCall(call, call.sender ?? sender));
|
|
62
62
|
const appCallRequests = await asyncMap(appCalls, (call)=>this.#createPubicCallRequestForCall(call, call.sender ?? sender));
|
|
63
63
|
const teardownCallRequest = teardownCall ? await this.#createPubicCallRequestForCall(teardownCall, teardownCall.sender ?? sender) : undefined;
|
|
64
64
|
this.txCount++;
|
|
65
|
-
return createTxForPublicCalls(privateInsertions, setupCallRequests, appCallRequests, teardownCallRequest, feePayer, /*gasUsedByPrivate*/ teardownCall ? new Gas(
|
|
65
|
+
return createTxForPublicCalls(privateInsertions, setupCallRequests, appCallRequests, teardownCallRequest, feePayer, /*gasUsedByPrivate*/ teardownCall ? new Gas(FALLBACK_TEARDOWN_DA_GAS_LIMIT + TX_DA_GAS_OVERHEAD, FALLBACK_TEARDOWN_L2_GAS_LIMIT + PUBLIC_TX_L2_GAS_OVERHEAD) : new Gas(TX_DA_GAS_OVERHEAD, PUBLIC_TX_L2_GAS_OVERHEAD), defaultGlobals(), gasLimits);
|
|
66
66
|
}
|
|
67
|
-
async simulateTx(sender, setupCalls = [], appCalls = [], teardownCall, feePayer = sender, /* need some unique first nullifier for note-nonce computations */ privateInsertions, txLabel = 'unlabeledTx') {
|
|
68
|
-
const tx = await this.createTx(sender, setupCalls, appCalls, teardownCall, feePayer, privateInsertions);
|
|
67
|
+
async simulateTx(sender, setupCalls = [], appCalls = [], teardownCall, feePayer = sender, /* need some unique first nullifier for note-nonce computations */ privateInsertions, txLabel = 'unlabeledTx', gasLimits) {
|
|
68
|
+
const tx = await this.createTx(sender, setupCalls, appCalls, teardownCall, feePayer, privateInsertions, gasLimits);
|
|
69
69
|
await this.setFeePayerBalance(feePayer);
|
|
70
70
|
const txLabelWithCount = `${txLabel}/${this.txCount - 1}`;
|
|
71
71
|
const fullTxLabel = this.metricsPrefix ? `${this.metricsPrefix}/${txLabelWithCount}` : txLabelWithCount;
|
|
@@ -73,6 +73,13 @@ const defaultConfig = PublicSimulatorConfig.from({
|
|
|
73
73
|
throw new Error('No simulator configured. Pass a simulatorFactory to the constructor or use PublicTxSimulationTester.create()');
|
|
74
74
|
}
|
|
75
75
|
const avmResult = await this.simulator.simulate(tx, fullTxLabel);
|
|
76
|
+
await this.#recordBytecodeSizes(fullTxLabel, [
|
|
77
|
+
...setupCalls,
|
|
78
|
+
...appCalls,
|
|
79
|
+
...teardownCall ? [
|
|
80
|
+
teardownCall
|
|
81
|
+
] : []
|
|
82
|
+
]);
|
|
76
83
|
// Something like this is often useful for debugging:
|
|
77
84
|
//if (avmResult.revertReason) {
|
|
78
85
|
// // resolve / enrich revert reason
|
|
@@ -90,8 +97,8 @@ const defaultConfig = PublicSimulatorConfig.from({
|
|
|
90
97
|
*
|
|
91
98
|
* This wrapper around simulation allows for easy labeling of a TX
|
|
92
99
|
* which is especially useful when reporting benchmarks or metrics.
|
|
93
|
-
*/ async simulateTxWithLabel(txLabel, sender, setupCalls, appCalls, teardownCall, feePayer, privateInsertions) {
|
|
94
|
-
return await this.simulateTx(sender, setupCalls, appCalls, teardownCall, feePayer, privateInsertions, txLabel);
|
|
100
|
+
*/ async simulateTxWithLabel(txLabel, sender, setupCalls, appCalls, teardownCall, feePayer, privateInsertions, gasLimits) {
|
|
101
|
+
return await this.simulateTx(sender, setupCalls, appCalls, teardownCall, feePayer, privateInsertions, txLabel, gasLimits);
|
|
95
102
|
}
|
|
96
103
|
/**
|
|
97
104
|
* Execute a transaction and return the result.
|
|
@@ -99,8 +106,8 @@ const defaultConfig = PublicSimulatorConfig.from({
|
|
|
99
106
|
* This function can be (it is) overridden by a subclass (AvmProvingTester)
|
|
100
107
|
* to do more work (like prove and verify) while still reusing existing
|
|
101
108
|
* test fixtures (like amm_test). That is why it is not named "simulate*".
|
|
102
|
-
*/ async executeTxWithLabel(txLabel, sender, setupCalls, appCalls, teardownCall, feePayer, privateInsertions) {
|
|
103
|
-
return await this.simulateTxWithLabel(txLabel, sender, setupCalls, appCalls, teardownCall, feePayer, privateInsertions);
|
|
109
|
+
*/ async executeTxWithLabel(txLabel, sender, setupCalls, appCalls, teardownCall, feePayer, privateInsertions, gasLimits) {
|
|
110
|
+
return await this.simulateTxWithLabel(txLabel, sender, setupCalls, appCalls, teardownCall, feePayer, privateInsertions, gasLimits);
|
|
104
111
|
}
|
|
105
112
|
prettyPrintMetrics() {
|
|
106
113
|
this.metrics.prettyPrint();
|
|
@@ -149,6 +156,26 @@ const defaultConfig = PublicSimulatorConfig.from({
|
|
|
149
156
|
const request = await PublicCallRequest.fromCalldata(sender, address, isStaticCall, calldata);
|
|
150
157
|
return new PublicCallRequestWithCalldata(request, calldata);
|
|
151
158
|
}
|
|
159
|
+
// WARNING: Deduplicates by artifact name, so two different artifacts with the same name
|
|
160
|
+
// in a single tx would only record the first one's bytecode size.
|
|
161
|
+
async #recordBytecodeSizes(txLabel, calls) {
|
|
162
|
+
const seenArtifactNames = new Set();
|
|
163
|
+
for (const call of calls){
|
|
164
|
+
const artifact = await this.contractDataSource.getContractArtifact(call.address);
|
|
165
|
+
if (!artifact || seenArtifactNames.has(artifact.name)) {
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
seenArtifactNames.add(artifact.name);
|
|
169
|
+
const instance = await this.contractDataSource.getContract(call.address);
|
|
170
|
+
if (!instance) {
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
const contractClass = await this.contractDataSource.getContractClass(instance.currentContractClassId);
|
|
174
|
+
if (contractClass) {
|
|
175
|
+
this.metrics.recordBytecodeSize(txLabel, artifact.name, contractClass.packedBytecode.length);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
152
179
|
}
|
|
153
180
|
export function defaultGlobals() {
|
|
154
181
|
const globals = GlobalVariables.empty();
|
|
@@ -19,8 +19,8 @@ export type TestPrivateInsertions = {
|
|
|
19
19
|
/**
|
|
20
20
|
* Craft a carrier transaction for some public calls for simulation by PublicTxSimulator.
|
|
21
21
|
*/
|
|
22
|
-
export declare function createTxForPublicCalls(privateInsertions: TestPrivateInsertions, setupCallRequests: PublicCallRequestWithCalldata[], appCallRequests: PublicCallRequestWithCalldata[], teardownCallRequest?: PublicCallRequestWithCalldata, feePayer?: AztecAddress, gasUsedByPrivate?: Gas, globals?: GlobalVariables): Promise<Tx>;
|
|
22
|
+
export declare function createTxForPublicCalls(privateInsertions: TestPrivateInsertions, setupCallRequests: PublicCallRequestWithCalldata[], appCallRequests: PublicCallRequestWithCalldata[], teardownCallRequest?: PublicCallRequestWithCalldata, feePayer?: AztecAddress, gasUsedByPrivate?: Gas, globals?: GlobalVariables, gasLimits?: Gas): Promise<Tx>;
|
|
23
23
|
export declare function createTxForPrivateOnly(feePayer?: AztecAddress, gasUsedByPrivate?: Gas): Promise<Tx>;
|
|
24
24
|
export declare function addNewContractClassToTx(tx: Tx, contractClass: ContractClassPublic, skipNullifierInsertion?: boolean): Promise<void>;
|
|
25
25
|
export declare function addNewContractInstanceToTx(tx: Tx, contractInstance: ContractInstanceWithAddress, skipNullifierInsertion?: boolean): Promise<void>;
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvZml4dHVyZXMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9GLE9BQU8sRUFHTCxHQUFHLEVBR0osTUFBTSxtQkFBbUIsQ0FBQztBQVUzQixPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5FLE9BQU8sRUFFTCxlQUFlLEVBRWYsNkJBQTZCLEVBQzdCLEVBQUUsRUFHSCxNQUFNLGtCQUFrQixDQUFDO0FBSTFCLE1BQU0sTUFBTSxxQkFBcUIsR0FBRztJQUNsQyxVQUFVLENBQUMsRUFBRTtRQUNYLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2xCLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2xCLFVBQVUsQ0FBQyxFQUFFLG1CQUFtQixFQUFFLENBQUM7S0FDcEMsQ0FBQztJQUNGLGFBQWEsQ0FBQyxFQUFFO1FBQ2QsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDbEIsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDbEIsVUFBVSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztLQUNwQyxDQUFDO0NBQ0gsQ0FBQztBQUVGOztHQUVHO0FBQ0gsd0JBQXNCLHNCQUFzQixDQUMxQyxpQkFBaUIsRUFBRSxxQkFBcUIsRUFDeEMsaUJBQWlCLEVBQUUsNkJBQTZCLEVBQUUsRUFDbEQsZUFBZSxFQUFFLDZCQUE2QixFQUFFLEVBQ2hELG1CQUFtQixDQUFDLEVBQUUsNkJBQTZCLEVBQ25ELFFBQVEsZUFBc0IsRUFDOUIsZ0JBQWdCLEdBQUUsR0FBaUIsRUFDbkMsT0FBTyxHQUFFLGVBQXlDLEVBQ2xELFNBQVMsQ0FBQyxFQUFFLEdBQUcsR0FDZCxPQUFPLENBQUMsRUFBRSxDQUFDLENBOEZiO0FBRUQsd0JBQXNCLHNCQUFzQixDQUMxQyxRQUFRLGVBQXNCLEVBQzlCLGdCQUFnQixHQUFFLEdBQXFCLEdBQ3RDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0EwQmI7QUFFRCx3QkFBc0IsdUJBQXVCLENBQzNDLEVBQUUsRUFBRSxFQUFFLEVBQ04sYUFBYSxFQUFFLG1CQUFtQixFQUNsQyxzQkFBc0IsVUFBUSxpQkE2Qi9CO0FBRUQsd0JBQXNCLDBCQUEwQixDQUM5QyxFQUFFLEVBQUUsRUFBRSxFQUNOLGdCQUFnQixFQUFFLDJCQUEyQixFQUM3QyxzQkFBc0IsVUFBUSxpQkEwQy9CIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/utils.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAGL,GAAG,EAGJ,MAAM,mBAAmB,CAAC;AAU3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAEL,eAAe,EAEf,6BAA6B,EAC7B,EAAE,EAGH,MAAM,kBAAkB,CAAC;AAI1B,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,CAAC,EAAE;QACX,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;KACpC,CAAC;IACF,aAAa,CAAC,EAAE;QACd,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;KACpC,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,iBAAiB,EAAE,qBAAqB,EACxC,iBAAiB,EAAE,6BAA6B,EAAE,EAClD,eAAe,EAAE,6BAA6B,EAAE,EAChD,mBAAmB,CAAC,EAAE,6BAA6B,EACnD,QAAQ,eAAsB,EAC9B,gBAAgB,GAAE,GAAiB,EACnC,OAAO,GAAE,eAAyC,EAClD,SAAS,CAAC,EAAE,GAAG,GACd,OAAO,CAAC,EAAE,CAAC,CA8Fb;AAED,wBAAsB,sBAAsB,CAC1C,QAAQ,eAAsB,EAC9B,gBAAgB,GAAE,GAAqB,GACtC,OAAO,CAAC,EAAE,CAAC,CA0Bb;AAED,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,EAAE,EACN,aAAa,EAAE,mBAAmB,EAClC,sBAAsB,UAAQ,iBA6B/B;AAED,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,EAAE,EACN,gBAAgB,EAAE,2BAA2B,EAC7C,sBAAsB,UAAQ,iBA0C/B"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { CONTRACT_CLASS_PUBLISHED_MAGIC_VALUE, CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS, CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS,
|
|
1
|
+
import { CONTRACT_CLASS_PUBLISHED_MAGIC_VALUE, CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS, CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS, MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT, MAX_PROCESSABLE_L2_GAS, PRIVATE_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
|
|
2
2
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import { CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG } from '@aztec/protocol-contracts';
|
|
5
5
|
import { bufferAsFields } from '@aztec/stdlib/abi';
|
|
6
6
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
|
-
import { Gas, GasFees, GasSettings } from '@aztec/stdlib/gas';
|
|
7
|
+
import { FALLBACK_TEARDOWN_DA_GAS_LIMIT, FALLBACK_TEARDOWN_L2_GAS_LIMIT, Gas, GasFees, GasSettings } from '@aztec/stdlib/gas';
|
|
8
8
|
import { siloNullifier } from '@aztec/stdlib/hash';
|
|
9
9
|
import { LogHash, PartialPrivateTailPublicInputsForPublic, PartialPrivateTailPublicInputsForRollup, PrivateKernelTailCircuitPublicInputs, countAccumulatedItems } from '@aztec/stdlib/kernel';
|
|
10
10
|
import { ContractClassLogFields, PrivateLog } from '@aztec/stdlib/logs';
|
|
@@ -13,10 +13,10 @@ import { BlockHeader, GlobalVariables, HashedValues, Tx, TxConstantData, TxConte
|
|
|
13
13
|
import { strict as assert } from 'assert';
|
|
14
14
|
/**
|
|
15
15
|
* Craft a carrier transaction for some public calls for simulation by PublicTxSimulator.
|
|
16
|
-
*/ export async function createTxForPublicCalls(privateInsertions, setupCallRequests, appCallRequests, teardownCallRequest, feePayer = AztecAddress.zero(), gasUsedByPrivate = Gas.empty(), globals = GlobalVariables.empty()) {
|
|
16
|
+
*/ export async function createTxForPublicCalls(privateInsertions, setupCallRequests, appCallRequests, teardownCallRequest, feePayer = AztecAddress.zero(), gasUsedByPrivate = Gas.empty(), globals = GlobalVariables.empty(), gasLimits) {
|
|
17
17
|
assert(setupCallRequests.length > 0 || appCallRequests.length > 0 || teardownCallRequest !== undefined, "Can't create public tx with no enqueued calls");
|
|
18
18
|
// use max limits
|
|
19
|
-
|
|
19
|
+
gasLimits = gasLimits ?? new Gas(MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT, MAX_PROCESSABLE_L2_GAS);
|
|
20
20
|
const forPublic = PartialPrivateTailPublicInputsForPublic.empty();
|
|
21
21
|
// Non revertible private insertions
|
|
22
22
|
if (!privateInsertions.nonRevertible?.nullifiers?.length) {
|
|
@@ -69,15 +69,15 @@ import { strict as assert } from 'assert';
|
|
|
69
69
|
forPublic.publicTeardownCallRequest = teardownCallRequest.request;
|
|
70
70
|
}
|
|
71
71
|
const maxFeesPerGas = feePayer.isZero() ? GasFees.empty() : new GasFees(10, 10);
|
|
72
|
-
const teardownGasLimits = teardownCallRequest ? new Gas(
|
|
72
|
+
const teardownGasLimits = teardownCallRequest ? new Gas(FALLBACK_TEARDOWN_DA_GAS_LIMIT, FALLBACK_TEARDOWN_L2_GAS_LIMIT) : Gas.empty();
|
|
73
73
|
const gasSettings = new GasSettings(gasLimits, teardownGasLimits, maxFeesPerGas, GasFees.empty());
|
|
74
74
|
const txContext = new TxContext(Fr.zero(), Fr.zero(), gasSettings);
|
|
75
75
|
const header = BlockHeader.empty({
|
|
76
76
|
globalVariables: globals
|
|
77
77
|
});
|
|
78
78
|
const constantData = new TxConstantData(header, txContext, Fr.zero(), Fr.zero());
|
|
79
|
-
const
|
|
80
|
-
const txData = new PrivateKernelTailCircuitPublicInputs(constantData, /*gasUsed=*/ gasUsedByPrivate, feePayer,
|
|
79
|
+
const expirationTimestamp = 0n; // Not used in the simulator.
|
|
80
|
+
const txData = new PrivateKernelTailCircuitPublicInputs(constantData, /*gasUsed=*/ gasUsedByPrivate, feePayer, expirationTimestamp, forPublic);
|
|
81
81
|
const calldata = [
|
|
82
82
|
...setupCallRequests,
|
|
83
83
|
...appCallRequests,
|
|
@@ -94,14 +94,14 @@ import { strict as assert } from 'assert';
|
|
|
94
94
|
}
|
|
95
95
|
export async function createTxForPrivateOnly(feePayer = AztecAddress.zero(), gasUsedByPrivate = new Gas(10, 10)) {
|
|
96
96
|
// use max limits
|
|
97
|
-
const gasLimits = new Gas(
|
|
97
|
+
const gasLimits = new Gas(MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT, MAX_PROCESSABLE_L2_GAS);
|
|
98
98
|
const forRollup = PartialPrivateTailPublicInputsForRollup.empty();
|
|
99
99
|
const maxFeesPerGas = feePayer.isZero() ? GasFees.empty() : new GasFees(10, 10);
|
|
100
100
|
const gasSettings = new GasSettings(gasLimits, Gas.empty(), maxFeesPerGas, GasFees.empty());
|
|
101
101
|
const txContext = new TxContext(Fr.zero(), Fr.zero(), gasSettings);
|
|
102
102
|
const constantData = new TxConstantData(BlockHeader.empty(), txContext, Fr.zero(), Fr.zero());
|
|
103
|
-
const
|
|
104
|
-
const txData = new PrivateKernelTailCircuitPublicInputs(constantData, /*gasUsed=*/ gasUsedByPrivate, feePayer,
|
|
103
|
+
const expirationTimestamp = 0n; // Not used in the simulator.
|
|
104
|
+
const txData = new PrivateKernelTailCircuitPublicInputs(constantData, /*gasUsed=*/ gasUsedByPrivate, feePayer, expirationTimestamp, /*forPublic=*/ undefined, forRollup);
|
|
105
105
|
return await Tx.create({
|
|
106
106
|
data: txData,
|
|
107
107
|
chonkProof: ChonkProof.empty(),
|
|
@@ -51,9 +51,9 @@ export declare class HintingMerkleWriteOperations implements MerkleTreeWriteOper
|
|
|
51
51
|
getLeafValue<ID extends MerkleTreeId>(treeId: ID, index: bigint): Promise<MerkleTreeLeafType<typeof treeId> | undefined>;
|
|
52
52
|
sequentialInsert<TreeHeight extends number, ID extends IndexedTreeId>(treeId: ID, leaves: Buffer[]): Promise<SequentialInsertionResult<TreeHeight>>;
|
|
53
53
|
appendLeaves<ID extends MerkleTreeId>(treeId: ID, leaves: MerkleTreeLeafType<ID>[]): Promise<void>;
|
|
54
|
-
createCheckpoint(): Promise<
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
createCheckpoint(): Promise<number>;
|
|
55
|
+
commitAllCheckpointsTo(_depth: number): Promise<void>;
|
|
56
|
+
revertAllCheckpointsTo(_depth: number): Promise<void>;
|
|
57
57
|
commitCheckpoint(): Promise<void>;
|
|
58
58
|
revertCheckpoint(): Promise<void>;
|
|
59
59
|
private getHintKey;
|
|
@@ -68,7 +68,7 @@ export declare class HintingMerkleWriteOperations implements MerkleTreeWriteOper
|
|
|
68
68
|
updateArchive(header: any): Promise<void>;
|
|
69
69
|
batchInsert<TreeHeight extends number, SubtreeSiblingPathHeight extends number, ID extends IndexedTreeId>(treeId: ID, leaves: Buffer[], subtreeHeight: number): Promise<BatchInsertionResult<TreeHeight, SubtreeSiblingPathHeight>>;
|
|
70
70
|
close(): Promise<void>;
|
|
71
|
-
[Symbol.
|
|
71
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
72
72
|
findLeafIndices<ID extends MerkleTreeId>(treeId: ID, values: MerkleTreeLeafType<ID>[]): Promise<(bigint | undefined)[]>;
|
|
73
73
|
findSiblingPaths<ID extends MerkleTreeId>(treeId: ID, values: MerkleTreeLeafType<ID>[]): Promise<({
|
|
74
74
|
path: SiblingPath<TreeHeights[ID]>;
|
|
@@ -77,4 +77,4 @@ export declare class HintingMerkleWriteOperations implements MerkleTreeWriteOper
|
|
|
77
77
|
findLeafIndicesAfter<ID extends MerkleTreeId>(treeId: ID, values: MerkleTreeLeafType<ID>[], startIndex: bigint): Promise<(bigint | undefined)[]>;
|
|
78
78
|
getBlockNumbersForLeafIndices<ID extends MerkleTreeId>(treeId: ID, leafIndices: bigint[]): Promise<(BlockNumber | undefined)[]>;
|
|
79
79
|
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludGluZ19kYl9zb3VyY2VzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2hpbnRpbmdfZGJfc291cmNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEYsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBV0wsS0FBSyxpQkFBaUIsRUFTdkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9GLE9BQU8sRUFFTCxLQUFLLG9CQUFvQixFQUN6QixLQUFLLGFBQWEsRUFDbEIsWUFBWSxFQUNaLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUsseUJBQXlCLEVBSzlCLEtBQUsseUJBQXlCLEVBQzlCLEtBQUssV0FBVyxFQUdqQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJcEUsT0FBTyxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRTs7R0FFRztBQUNILHFCQUFhLHdCQUF5QixZQUFXLDBCQUEwQjtJQVF2RSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7SUFDbkIsT0FBTyxDQUFDLEtBQUs7SUFSZixPQUFPLENB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hinting_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/hinting_db_sources.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hinting_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/hinting_db_sources.ts"],"names":[],"mappings":"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"}
|
|
@@ -98,7 +98,7 @@ import { strict as assert } from 'assert';
|
|
|
98
98
|
return this.checkpointStack[this.checkpointStack.length - 1];
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
-
_computedKey = Symbol.
|
|
101
|
+
_computedKey = Symbol.asyncDispose;
|
|
102
102
|
/**
|
|
103
103
|
* A low-level merkle DB that collects hints.
|
|
104
104
|
*/ export class HintingMerkleWriteOperations {
|
|
@@ -235,17 +235,18 @@ _computedKey = Symbol.dispose;
|
|
|
235
235
|
const actionCounter = this.checkpointActionCounter++;
|
|
236
236
|
const oldCheckpointId = this.getCurrentCheckpointId();
|
|
237
237
|
const treesStateHash = await this.getTreesStateHash();
|
|
238
|
-
await this.db.createCheckpoint();
|
|
238
|
+
const depth = await this.db.createCheckpoint();
|
|
239
239
|
this.checkpointStack.push(this.nextCheckpointId++);
|
|
240
240
|
const newCheckpointId = this.getCurrentCheckpointId();
|
|
241
241
|
this.hints.createCheckpointHints.push(new AvmCreateCheckpointHint(actionCounter, oldCheckpointId, newCheckpointId));
|
|
242
242
|
HintingMerkleWriteOperations.log.trace(`[createCheckpoint:${actionCounter}] Checkpoint evolved ${oldCheckpointId} -> ${newCheckpointId} at trees state ${treesStateHash}.`);
|
|
243
|
+
return depth;
|
|
243
244
|
}
|
|
244
|
-
|
|
245
|
-
throw new Error('
|
|
245
|
+
commitAllCheckpointsTo(_depth) {
|
|
246
|
+
throw new Error('commitAllCheckpointsTo is not supported in HintingMerkleWriteOperations.');
|
|
246
247
|
}
|
|
247
|
-
|
|
248
|
-
throw new Error('
|
|
248
|
+
revertAllCheckpointsTo(_depth) {
|
|
249
|
+
throw new Error('revertAllCheckpointsTo is not supported in HintingMerkleWriteOperations.');
|
|
249
250
|
}
|
|
250
251
|
async commitCheckpoint() {
|
|
251
252
|
const actionCounter = this.checkpointActionCounter++;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import { type LoggerBindings } from '@aztec/foundation/log';
|
|
2
3
|
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
3
4
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
5
|
import { type ContractClassPublic, type ContractDataSource, type ContractDeploymentData, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
@@ -15,9 +16,9 @@ export declare class PublicContractsDB implements PublicContractsDBInterface {
|
|
|
15
16
|
private dataSource;
|
|
16
17
|
private contractStateStack;
|
|
17
18
|
private log;
|
|
18
|
-
constructor(dataSource: ContractDataSource);
|
|
19
|
-
addContracts(contractDeploymentData: ContractDeploymentData):
|
|
20
|
-
addNewContracts(tx: Tx):
|
|
19
|
+
constructor(dataSource: ContractDataSource, bindings?: LoggerBindings);
|
|
20
|
+
addContracts(contractDeploymentData: ContractDeploymentData): void;
|
|
21
|
+
addNewContracts(tx: Tx): void;
|
|
21
22
|
/**
|
|
22
23
|
* Creates a new checkpoint, copying the current state for upcoming modifications,
|
|
23
24
|
* and enabling rollbacks to current state in case of a revert.
|
|
@@ -62,7 +63,7 @@ export declare class PublicContractsDB implements PublicContractsDBInterface {
|
|
|
62
63
|
export declare class PublicTreesDB implements PublicStateDBInterface {
|
|
63
64
|
private readonly db;
|
|
64
65
|
private logger;
|
|
65
|
-
constructor(db: MerkleTreeWriteOperations);
|
|
66
|
+
constructor(db: MerkleTreeWriteOperations, bindings?: LoggerBindings);
|
|
66
67
|
storageRead(contract: AztecAddress, slot: Fr): Promise<Fr>;
|
|
67
68
|
storageWrite(contract: AztecAddress, slot: Fr, newValue: Fr): Promise<void>;
|
|
68
69
|
getL1ToL2LeafValue(leafIndex: bigint): Promise<Fr>;
|
|
@@ -76,4 +77,4 @@ export declare class PublicTreesDB implements PublicStateDBInterface {
|
|
|
76
77
|
revertCheckpoint(): Promise<void>;
|
|
77
78
|
getTreeSnapshots(): Promise<TreeSnapshots>;
|
|
78
79
|
}
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2RiX3NvdXJjZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX2RiX3NvdXJjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUl2RixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFFTCxLQUFLLG1CQUFtQixFQUN4QixLQUFLLGtCQUFrQixFQUN2QixLQUFLLHNCQUFzQixFQUMzQixLQUFLLDJCQUEyQixFQUVqQyxNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakYsT0FBTyxFQUNMLFlBQVksRUFLYixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUtsRCxPQUFPLEtBQUssRUFBRSwwQkFBMEIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRzdGOzs7R0FHRztBQUNILHFCQUFhLGlCQUFrQixZQUFXLDBCQUEwQjtJQU1oRSxPQUFPLENBQUMsVUFBVTtJQUxwQixPQUFPLENBQUMsa0JBQWtCLENBQTBEO0lBRXBGLE9BQU8sQ0FBQyxHQUFHLENBQVM7SUFFcEIsWUFDVSxVQUFVLEVBQUUsa0JBQWtCLEVBQ3RDLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFHMUI7SUFFTSxZQUFZLENBQUMsc0JBQXNCLEVBQUUsc0JB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/public_db_sources.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"public_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/public_db_sources.ts"],"names":[],"mappings":"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"}
|