@aztec/simulator 0.0.1-commit.b655e406 → 0.0.1-commit.fce3e4f
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/client.d.ts +1 -1
- package/dest/common/errors.d.ts +1 -7
- package/dest/common/errors.d.ts.map +1 -1
- package/dest/common/index.d.ts +1 -1
- package/dest/common/stats/index.d.ts +1 -1
- package/dest/common/stats/stats.d.ts +1 -1
- package/dest/private/acvm/acvm.d.ts +1 -1
- package/dest/private/acvm/acvm_types.d.ts +1 -1
- package/dest/private/acvm/deserialize.d.ts +1 -1
- package/dest/private/acvm/index.d.ts +1 -1
- package/dest/private/acvm/serialize.d.ts +1 -1
- package/dest/private/acvm_native.d.ts +1 -1
- package/dest/private/acvm_native.d.ts.map +1 -1
- package/dest/private/acvm_wasm.d.ts +1 -1
- package/dest/private/acvm_wasm.d.ts.map +1 -1
- package/dest/private/acvm_wasm_with_blobs.d.ts +1 -1
- package/dest/private/acvm_wasm_with_blobs.d.ts.map +1 -1
- package/dest/private/circuit_recording/circuit_recorder.d.ts +1 -1
- package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
- package/dest/private/circuit_recording/file_circuit_recorder.d.ts +1 -1
- package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
- package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +1 -1
- package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
- package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
- package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
- package/dest/private/circuit_simulator.d.ts +1 -1
- package/dest/private/factory.d.ts +1 -1
- package/dest/public/avm/avm_context.d.ts +1 -1
- package/dest/public/avm/avm_context.d.ts.map +1 -1
- package/dest/public/avm/avm_contract_call_result.d.ts +1 -1
- package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
- package/dest/public/avm/avm_execution_environment.d.ts +4 -4
- package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/public/avm/avm_execution_environment.js +4 -7
- package/dest/public/avm/avm_gas.d.ts +2 -2
- package/dest/public/avm/avm_gas.d.ts.map +1 -1
- package/dest/public/avm/avm_machine_state.d.ts +1 -1
- package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
- package/dest/public/avm/avm_memory_types.d.ts +13 -13
- package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/public/avm/avm_simulator.d.ts +3 -2
- package/dest/public/avm/avm_simulator.d.ts.map +1 -1
- package/dest/public/avm/avm_simulator.js +2 -2
- package/dest/public/avm/avm_simulator_interface.d.ts +1 -1
- package/dest/public/avm/errors.d.ts +1 -1
- package/dest/public/avm/errors.d.ts.map +1 -1
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +1 -1
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
- package/dest/public/avm/fixtures/avm_simulation_tester.js +11 -2
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +1 -1
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
- package/dest/public/avm/fixtures/initializers.d.ts +1 -2
- package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
- package/dest/public/avm/fixtures/initializers.js +6 -4
- package/dest/public/avm/fixtures/utils.d.ts +1 -1
- package/dest/public/avm/index.d.ts +1 -1
- package/dest/public/avm/opcodes/accrued_substate.d.ts +1 -1
- package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/public/avm/opcodes/addressing_mode.d.ts +1 -1
- package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -1
- package/dest/public/avm/opcodes/arithmetic.d.ts +8 -8
- package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/public/avm/opcodes/bitwise.d.ts +5 -5
- package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
- package/dest/public/avm/opcodes/comparators.d.ts +4 -4
- package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
- package/dest/public/avm/opcodes/contract.d.ts +1 -1
- package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
- package/dest/public/avm/opcodes/control_flow.d.ts +1 -1
- package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
- package/dest/public/avm/opcodes/conversion.d.ts +1 -1
- package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
- package/dest/public/avm/opcodes/ec_add.d.ts +2 -2
- package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
- package/dest/public/avm/opcodes/environment_getters.d.ts +1 -1
- package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/public/avm/opcodes/external_calls.d.ts +1 -1
- package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/public/avm/opcodes/hashing.d.ts +2 -2
- package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/public/avm/opcodes/index.d.ts +1 -1
- package/dest/public/avm/opcodes/instruction.d.ts +2 -2
- package/dest/public/avm/opcodes/instruction.d.ts.map +1 -1
- package/dest/public/avm/opcodes/instruction_impl.d.ts +1 -1
- package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
- package/dest/public/avm/opcodes/memory.d.ts +2 -2
- package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/public/avm/opcodes/misc.d.ts +1 -1
- package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
- package/dest/public/avm/opcodes/misc.js +4 -4
- package/dest/public/avm/opcodes/storage.d.ts +3 -3
- package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/public/avm/revert_reason.d.ts +1 -1
- package/dest/public/avm/serialization/buffer_cursor.d.ts +1 -1
- package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
- package/dest/public/avm/serialization/bytecode_serialization.d.ts +1 -1
- package/dest/public/avm/serialization/instruction_serialization.d.ts +1 -1
- package/dest/public/avm/test_utils.d.ts +1 -1
- package/dest/public/contracts_db_checkpoint.d.ts +16 -0
- package/dest/public/contracts_db_checkpoint.d.ts.map +1 -0
- package/dest/public/contracts_db_checkpoint.js +30 -0
- package/dest/public/db_interfaces.d.ts +13 -1
- package/dest/public/db_interfaces.d.ts.map +1 -1
- package/dest/public/debug_fn_name.d.ts +1 -1
- package/dest/public/executor_metrics.d.ts +3 -2
- package/dest/public/executor_metrics.d.ts.map +1 -1
- package/dest/public/executor_metrics.js +1 -1
- package/dest/public/executor_metrics_interface.d.ts +3 -2
- package/dest/public/executor_metrics_interface.d.ts.map +1 -1
- package/dest/public/fixtures/amm_test.d.ts +1 -1
- package/dest/public/fixtures/bulk_test.d.ts +1 -1
- package/dest/public/fixtures/custom_bytecode_tester.d.ts +2 -2
- package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
- package/dest/public/fixtures/custom_bytecode_tests.d.ts +1 -1
- package/dest/public/fixtures/index.d.ts +1 -1
- package/dest/public/fixtures/minimal_public_tx.d.ts +2 -3
- package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -1
- package/dest/public/fixtures/minimal_public_tx.js +2 -2
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +4 -5
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +15 -11
- package/dest/public/fixtures/simple_contract_data_source.d.ts +1 -1
- package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -1
- package/dest/public/fixtures/token_test.d.ts +1 -1
- package/dest/public/fixtures/token_test.js +3 -4
- package/dest/public/fixtures/utils.d.ts +1 -1
- package/dest/public/hinting_db_sources.d.ts +10 -2
- package/dest/public/hinting_db_sources.d.ts.map +1 -1
- package/dest/public/hinting_db_sources.js +64 -11
- package/dest/public/index.d.ts +3 -2
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/public_db_sources.d.ts +21 -62
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +73 -130
- package/dest/public/public_errors.d.ts +1 -1
- package/dest/public/public_errors.d.ts.map +1 -1
- package/dest/public/public_processor/guarded_merkle_tree.d.ts +3 -3
- package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.d.ts +7 -14
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +27 -29
- package/dest/public/public_processor/public_processor_metrics.d.ts +1 -1
- package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +30 -0
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +133 -0
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +29 -4
- 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 +138 -17
- package/dest/public/public_tx_simulator/index.d.ts +2 -1
- package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +13 -6
- 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 +5 -5
- package/dest/public/public_tx_simulator/public_tx_context.d.ts +5 -2
- package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.js +12 -4
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +10 -30
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +102 -125
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +2 -2
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +3 -3
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -1
- package/dest/public/side_effect_errors.d.ts +1 -1
- package/dest/public/side_effect_errors.d.ts.map +1 -1
- package/dest/public/side_effect_trace.d.ts +1 -2
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace_interface.d.ts +2 -3
- package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
- package/dest/public/state_manager/index.d.ts +1 -1
- package/dest/public/state_manager/nullifiers.d.ts +1 -1
- package/dest/public/state_manager/nullifiers.d.ts.map +1 -1
- package/dest/public/state_manager/public_storage.d.ts +1 -1
- package/dest/public/state_manager/public_storage.d.ts.map +1 -1
- package/dest/public/state_manager/state_manager.d.ts +3 -10
- package/dest/public/state_manager/state_manager.d.ts.map +1 -1
- package/dest/public/state_manager/state_manager.js +5 -4
- package/dest/public/test_executor_metrics.d.ts +4 -3
- package/dest/public/test_executor_metrics.d.ts.map +1 -1
- package/dest/public/test_executor_metrics.js +5 -4
- package/dest/public/unique_class_ids.d.ts +1 -1
- package/dest/public/unique_class_ids.d.ts.map +1 -1
- package/dest/public/utils.d.ts +1 -1
- package/dest/server.d.ts +1 -1
- package/dest/testing.d.ts +1 -1
- package/package.json +21 -20
- package/src/public/avm/avm_execution_environment.ts +3 -5
- package/src/public/avm/avm_simulator.ts +3 -4
- package/src/public/avm/fixtures/avm_simulation_tester.ts +9 -1
- package/src/public/avm/fixtures/initializers.ts +6 -8
- package/src/public/avm/opcodes/misc.ts +4 -4
- package/src/public/contracts_db_checkpoint.ts +41 -0
- package/src/public/db_interfaces.ts +15 -0
- package/src/public/executor_metrics.ts +2 -1
- package/src/public/executor_metrics_interface.ts +2 -1
- package/src/public/fixtures/custom_bytecode_tester.ts +1 -1
- package/src/public/fixtures/minimal_public_tx.ts +3 -4
- package/src/public/fixtures/public_tx_simulation_tester.ts +18 -10
- package/src/public/fixtures/token_test.ts +3 -4
- package/src/public/hinting_db_sources.ts +104 -7
- package/src/public/index.ts +2 -6
- package/src/public/public_db_sources.ts +92 -171
- package/src/public/public_processor/guarded_merkle_tree.ts +2 -2
- package/src/public/public_processor/public_processor.ts +46 -36
- package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +162 -0
- package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +199 -21
- package/src/public/public_tx_simulator/index.ts +1 -0
- package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +9 -13
- package/src/public/public_tx_simulator/public_tx_context.ts +8 -2
- package/src/public/public_tx_simulator/public_tx_simulator.ts +145 -192
- package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +1 -2
- package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +2 -2
- package/src/public/state_manager/state_manager.ts +4 -11
- package/src/public/test_executor_metrics.ts +7 -5
- package/dest/public/tx_contract_cache.d.ts +0 -41
- package/dest/public/tx_contract_cache.d.ts.map +0 -1
- package/dest/public/tx_contract_cache.js +0 -49
- package/src/public/tx_contract_cache.ts +0 -69
|
@@ -2,6 +2,7 @@ import { sum } from '@aztec/foundation/collection';
|
|
|
2
2
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
3
3
|
import { Timer } from '@aztec/foundation/timer';
|
|
4
4
|
import type { RevertCode } from '@aztec/stdlib/avm';
|
|
5
|
+
import type { GasUsed } from '@aztec/stdlib/gas';
|
|
5
6
|
|
|
6
7
|
import { strict as assert } from 'assert';
|
|
7
8
|
|
|
@@ -18,7 +19,7 @@ export interface PublicEnqueuedCallMetrics {
|
|
|
18
19
|
export interface PublicTxMetrics {
|
|
19
20
|
// TS simulation
|
|
20
21
|
totalDurationMs: number;
|
|
21
|
-
manaUsed: number;
|
|
22
|
+
manaUsed: number | undefined;
|
|
22
23
|
totalInstructionsExecuted: number;
|
|
23
24
|
nonRevertiblePrivateInsertionsUs: number | undefined;
|
|
24
25
|
revertiblePrivateInsertionsUs: number | undefined;
|
|
@@ -99,7 +100,7 @@ export class TestExecutorMetrics implements ExecutorMetricsInterface {
|
|
|
99
100
|
this.txTimer = new Timer();
|
|
100
101
|
}
|
|
101
102
|
|
|
102
|
-
stopRecordingTxSimulation(txLabel: string, revertedCode?: RevertCode) {
|
|
103
|
+
stopRecordingTxSimulation(txLabel: string, gasUsed?: GasUsed, revertedCode?: RevertCode) {
|
|
103
104
|
assert(this.currentTxLabel === txLabel, 'Cannot stop recording metrics for tx when another is live');
|
|
104
105
|
|
|
105
106
|
const txMetrics = this.txMetrics.get(txLabel)!;
|
|
@@ -109,7 +110,7 @@ export class TestExecutorMetrics implements ExecutorMetricsInterface {
|
|
|
109
110
|
this.logger.debug(`Public TX simulation of ${txLabel} took ${txMetrics.totalDurationMs}ms`);
|
|
110
111
|
|
|
111
112
|
// add manaUsed across all enqueued calls
|
|
112
|
-
txMetrics.manaUsed =
|
|
113
|
+
txMetrics.manaUsed = gasUsed?.publicGas.l2Gas;
|
|
113
114
|
// add totalInstructionsExecuted across all enqueued calls
|
|
114
115
|
txMetrics.totalInstructionsExecuted = sum(txMetrics.enqueuedCalls.map(call => call.totalInstructionsExecuted));
|
|
115
116
|
txMetrics.revertedCode = revertedCode;
|
|
@@ -202,8 +203,9 @@ export class TestExecutorMetrics implements ExecutorMetricsInterface {
|
|
|
202
203
|
pretty += `${INDENT0}Total duration: ${fmtNum(txMetrics.totalDurationMs, 'ms')}\n`;
|
|
203
204
|
}
|
|
204
205
|
if (filter === PublicTxMetricsFilter.TOTALS || filter === PublicTxMetricsFilter.ALL) {
|
|
205
|
-
|
|
206
|
-
|
|
206
|
+
const manaUsed = txMetrics.manaUsed || 0;
|
|
207
|
+
pretty += `${INDENT0}Total mana used: ${fmtNum(manaUsed)}\n`;
|
|
208
|
+
const manaPerSecond = Math.round((manaUsed * 1000) / txMetrics.totalDurationMs);
|
|
207
209
|
pretty += `${INDENT0}Mana per second: ${fmtNum(manaPerSecond)}\n`;
|
|
208
210
|
}
|
|
209
211
|
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import type { Fr } from '@aztec/foundation/fields';
|
|
2
|
-
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
-
import type { ContractClassPublic, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
4
|
-
/**
|
|
5
|
-
* A cache for contract classes and instances for a single transaction.
|
|
6
|
-
* Useful for tracking/retrieving contracts for a tx while leaving
|
|
7
|
-
* the option to clear them if the tx is reverted.
|
|
8
|
-
*/
|
|
9
|
-
export declare class TxContractCache {
|
|
10
|
-
private instanceCache;
|
|
11
|
-
private classCache;
|
|
12
|
-
/**
|
|
13
|
-
* Add a contract instance to the cache
|
|
14
|
-
*/
|
|
15
|
-
addInstance(address: AztecAddress, instance: ContractInstanceWithAddress): void;
|
|
16
|
-
/**
|
|
17
|
-
* Add a contract class to the cache
|
|
18
|
-
*/
|
|
19
|
-
addClass(classId: Fr, contractClass: ContractClassPublic): void;
|
|
20
|
-
/**
|
|
21
|
-
* Get a contract instance from the cache
|
|
22
|
-
*/
|
|
23
|
-
getInstance(address: AztecAddress): ContractInstanceWithAddress | undefined;
|
|
24
|
-
/**
|
|
25
|
-
* Get a contract class from the cache
|
|
26
|
-
*/
|
|
27
|
-
getClass(classId: Fr): ContractClassPublic | undefined;
|
|
28
|
-
/**
|
|
29
|
-
* Check if the cache has a contract class
|
|
30
|
-
*/
|
|
31
|
-
hasClass(classId: Fr): boolean;
|
|
32
|
-
/**
|
|
33
|
-
* Clear all entries from the cache
|
|
34
|
-
*/
|
|
35
|
-
clear(): void;
|
|
36
|
-
/**
|
|
37
|
-
* Merge another cache into this one
|
|
38
|
-
*/
|
|
39
|
-
mergeFrom(other: TxContractCache): void;
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=tx_contract_cache.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tx_contract_cache.d.ts","sourceRoot":"","sources":["../../src/public/tx_contract_cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE/F;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAkD;IACvE,OAAO,CAAC,UAAU,CAA0C;IAE5D;;OAEG;IACI,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,2BAA2B,GAAG,IAAI;IAItF;;OAEG;IACI,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,mBAAmB,GAAG,IAAI;IAItE;;OAEG;IACI,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,2BAA2B,GAAG,SAAS;IAIlF;;OAEG;IACI,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,mBAAmB,GAAG,SAAS;IAI7D;;OAEG;IACI,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO;IAIrC;;OAEG;IACI,KAAK,IAAI,IAAI;IAKpB;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;CAS/C"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A cache for contract classes and instances for a single transaction.
|
|
3
|
-
* Useful for tracking/retrieving contracts for a tx while leaving
|
|
4
|
-
* the option to clear them if the tx is reverted.
|
|
5
|
-
*/ export class TxContractCache {
|
|
6
|
-
instanceCache = new Map();
|
|
7
|
-
classCache = new Map();
|
|
8
|
-
/**
|
|
9
|
-
* Add a contract instance to the cache
|
|
10
|
-
*/ addInstance(address, instance) {
|
|
11
|
-
this.instanceCache.set(address.toString(), instance);
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Add a contract class to the cache
|
|
15
|
-
*/ addClass(classId, contractClass) {
|
|
16
|
-
this.classCache.set(classId.toString(), contractClass);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Get a contract instance from the cache
|
|
20
|
-
*/ getInstance(address) {
|
|
21
|
-
return this.instanceCache.get(address.toString());
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Get a contract class from the cache
|
|
25
|
-
*/ getClass(classId) {
|
|
26
|
-
return this.classCache.get(classId.toString());
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Check if the cache has a contract class
|
|
30
|
-
*/ hasClass(classId) {
|
|
31
|
-
return this.classCache.has(classId.toString());
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Clear all entries from the cache
|
|
35
|
-
*/ clear() {
|
|
36
|
-
this.instanceCache.clear();
|
|
37
|
-
this.classCache.clear();
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Merge another cache into this one
|
|
41
|
-
*/ mergeFrom(other) {
|
|
42
|
-
other.instanceCache.forEach((value, key)=>{
|
|
43
|
-
this.instanceCache.set(key, value);
|
|
44
|
-
});
|
|
45
|
-
other.classCache.forEach((value, key)=>{
|
|
46
|
-
this.classCache.set(key, value);
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import type { Fr } from '@aztec/foundation/fields';
|
|
2
|
-
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
-
import type { ContractClassPublic, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* A cache for contract classes and instances for a single transaction.
|
|
7
|
-
* Useful for tracking/retrieving contracts for a tx while leaving
|
|
8
|
-
* the option to clear them if the tx is reverted.
|
|
9
|
-
*/
|
|
10
|
-
export class TxContractCache {
|
|
11
|
-
private instanceCache = new Map<string, ContractInstanceWithAddress>();
|
|
12
|
-
private classCache = new Map<string, ContractClassPublic>();
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Add a contract instance to the cache
|
|
16
|
-
*/
|
|
17
|
-
public addInstance(address: AztecAddress, instance: ContractInstanceWithAddress): void {
|
|
18
|
-
this.instanceCache.set(address.toString(), instance);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Add a contract class to the cache
|
|
23
|
-
*/
|
|
24
|
-
public addClass(classId: Fr, contractClass: ContractClassPublic): void {
|
|
25
|
-
this.classCache.set(classId.toString(), contractClass);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Get a contract instance from the cache
|
|
30
|
-
*/
|
|
31
|
-
public getInstance(address: AztecAddress): ContractInstanceWithAddress | undefined {
|
|
32
|
-
return this.instanceCache.get(address.toString());
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Get a contract class from the cache
|
|
37
|
-
*/
|
|
38
|
-
public getClass(classId: Fr): ContractClassPublic | undefined {
|
|
39
|
-
return this.classCache.get(classId.toString());
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Check if the cache has a contract class
|
|
44
|
-
*/
|
|
45
|
-
public hasClass(classId: Fr): boolean {
|
|
46
|
-
return this.classCache.has(classId.toString());
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Clear all entries from the cache
|
|
51
|
-
*/
|
|
52
|
-
public clear(): void {
|
|
53
|
-
this.instanceCache.clear();
|
|
54
|
-
this.classCache.clear();
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Merge another cache into this one
|
|
59
|
-
*/
|
|
60
|
-
public mergeFrom(other: TxContractCache): void {
|
|
61
|
-
other.instanceCache.forEach((value, key) => {
|
|
62
|
-
this.instanceCache.set(key, value);
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
other.classCache.forEach((value, key) => {
|
|
66
|
-
this.classCache.set(key, value);
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
}
|