@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.
Files changed (219) hide show
  1. package/dest/client.d.ts +1 -1
  2. package/dest/common/errors.d.ts +1 -7
  3. package/dest/common/errors.d.ts.map +1 -1
  4. package/dest/common/index.d.ts +1 -1
  5. package/dest/common/stats/index.d.ts +1 -1
  6. package/dest/common/stats/stats.d.ts +1 -1
  7. package/dest/private/acvm/acvm.d.ts +1 -1
  8. package/dest/private/acvm/acvm_types.d.ts +1 -1
  9. package/dest/private/acvm/deserialize.d.ts +1 -1
  10. package/dest/private/acvm/index.d.ts +1 -1
  11. package/dest/private/acvm/serialize.d.ts +1 -1
  12. package/dest/private/acvm_native.d.ts +1 -1
  13. package/dest/private/acvm_native.d.ts.map +1 -1
  14. package/dest/private/acvm_wasm.d.ts +1 -1
  15. package/dest/private/acvm_wasm.d.ts.map +1 -1
  16. package/dest/private/acvm_wasm_with_blobs.d.ts +1 -1
  17. package/dest/private/acvm_wasm_with_blobs.d.ts.map +1 -1
  18. package/dest/private/circuit_recording/circuit_recorder.d.ts +1 -1
  19. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  20. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +1 -1
  21. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  22. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +1 -1
  23. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
  24. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  25. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  26. package/dest/private/circuit_simulator.d.ts +1 -1
  27. package/dest/private/factory.d.ts +1 -1
  28. package/dest/public/avm/avm_context.d.ts +1 -1
  29. package/dest/public/avm/avm_context.d.ts.map +1 -1
  30. package/dest/public/avm/avm_contract_call_result.d.ts +1 -1
  31. package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
  32. package/dest/public/avm/avm_execution_environment.d.ts +4 -4
  33. package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
  34. package/dest/public/avm/avm_execution_environment.js +4 -7
  35. package/dest/public/avm/avm_gas.d.ts +2 -2
  36. package/dest/public/avm/avm_gas.d.ts.map +1 -1
  37. package/dest/public/avm/avm_machine_state.d.ts +1 -1
  38. package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
  39. package/dest/public/avm/avm_memory_types.d.ts +13 -13
  40. package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
  41. package/dest/public/avm/avm_simulator.d.ts +3 -2
  42. package/dest/public/avm/avm_simulator.d.ts.map +1 -1
  43. package/dest/public/avm/avm_simulator.js +2 -2
  44. package/dest/public/avm/avm_simulator_interface.d.ts +1 -1
  45. package/dest/public/avm/errors.d.ts +1 -1
  46. package/dest/public/avm/errors.d.ts.map +1 -1
  47. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +1 -1
  48. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
  49. package/dest/public/avm/fixtures/avm_simulation_tester.js +11 -2
  50. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +1 -1
  51. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
  52. package/dest/public/avm/fixtures/initializers.d.ts +1 -2
  53. package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
  54. package/dest/public/avm/fixtures/initializers.js +6 -4
  55. package/dest/public/avm/fixtures/utils.d.ts +1 -1
  56. package/dest/public/avm/index.d.ts +1 -1
  57. package/dest/public/avm/opcodes/accrued_substate.d.ts +1 -1
  58. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  59. package/dest/public/avm/opcodes/addressing_mode.d.ts +1 -1
  60. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -1
  61. package/dest/public/avm/opcodes/arithmetic.d.ts +8 -8
  62. package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
  63. package/dest/public/avm/opcodes/bitwise.d.ts +5 -5
  64. package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
  65. package/dest/public/avm/opcodes/comparators.d.ts +4 -4
  66. package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
  67. package/dest/public/avm/opcodes/contract.d.ts +1 -1
  68. package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
  69. package/dest/public/avm/opcodes/control_flow.d.ts +1 -1
  70. package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
  71. package/dest/public/avm/opcodes/conversion.d.ts +1 -1
  72. package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
  73. package/dest/public/avm/opcodes/ec_add.d.ts +2 -2
  74. package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
  75. package/dest/public/avm/opcodes/environment_getters.d.ts +1 -1
  76. package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
  77. package/dest/public/avm/opcodes/external_calls.d.ts +1 -1
  78. package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
  79. package/dest/public/avm/opcodes/hashing.d.ts +2 -2
  80. package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
  81. package/dest/public/avm/opcodes/index.d.ts +1 -1
  82. package/dest/public/avm/opcodes/instruction.d.ts +2 -2
  83. package/dest/public/avm/opcodes/instruction.d.ts.map +1 -1
  84. package/dest/public/avm/opcodes/instruction_impl.d.ts +1 -1
  85. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
  86. package/dest/public/avm/opcodes/memory.d.ts +2 -2
  87. package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
  88. package/dest/public/avm/opcodes/misc.d.ts +1 -1
  89. package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
  90. package/dest/public/avm/opcodes/misc.js +4 -4
  91. package/dest/public/avm/opcodes/storage.d.ts +3 -3
  92. package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
  93. package/dest/public/avm/revert_reason.d.ts +1 -1
  94. package/dest/public/avm/serialization/buffer_cursor.d.ts +1 -1
  95. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
  96. package/dest/public/avm/serialization/bytecode_serialization.d.ts +1 -1
  97. package/dest/public/avm/serialization/instruction_serialization.d.ts +1 -1
  98. package/dest/public/avm/test_utils.d.ts +1 -1
  99. package/dest/public/contracts_db_checkpoint.d.ts +16 -0
  100. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -0
  101. package/dest/public/contracts_db_checkpoint.js +30 -0
  102. package/dest/public/db_interfaces.d.ts +13 -1
  103. package/dest/public/db_interfaces.d.ts.map +1 -1
  104. package/dest/public/debug_fn_name.d.ts +1 -1
  105. package/dest/public/executor_metrics.d.ts +3 -2
  106. package/dest/public/executor_metrics.d.ts.map +1 -1
  107. package/dest/public/executor_metrics.js +1 -1
  108. package/dest/public/executor_metrics_interface.d.ts +3 -2
  109. package/dest/public/executor_metrics_interface.d.ts.map +1 -1
  110. package/dest/public/fixtures/amm_test.d.ts +1 -1
  111. package/dest/public/fixtures/bulk_test.d.ts +1 -1
  112. package/dest/public/fixtures/custom_bytecode_tester.d.ts +2 -2
  113. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  114. package/dest/public/fixtures/custom_bytecode_tests.d.ts +1 -1
  115. package/dest/public/fixtures/index.d.ts +1 -1
  116. package/dest/public/fixtures/minimal_public_tx.d.ts +2 -3
  117. package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -1
  118. package/dest/public/fixtures/minimal_public_tx.js +2 -2
  119. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +4 -5
  120. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  121. package/dest/public/fixtures/public_tx_simulation_tester.js +15 -11
  122. package/dest/public/fixtures/simple_contract_data_source.d.ts +1 -1
  123. package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -1
  124. package/dest/public/fixtures/token_test.d.ts +1 -1
  125. package/dest/public/fixtures/token_test.js +3 -4
  126. package/dest/public/fixtures/utils.d.ts +1 -1
  127. package/dest/public/hinting_db_sources.d.ts +10 -2
  128. package/dest/public/hinting_db_sources.d.ts.map +1 -1
  129. package/dest/public/hinting_db_sources.js +64 -11
  130. package/dest/public/index.d.ts +3 -2
  131. package/dest/public/index.d.ts.map +1 -1
  132. package/dest/public/public_db_sources.d.ts +21 -62
  133. package/dest/public/public_db_sources.d.ts.map +1 -1
  134. package/dest/public/public_db_sources.js +73 -130
  135. package/dest/public/public_errors.d.ts +1 -1
  136. package/dest/public/public_errors.d.ts.map +1 -1
  137. package/dest/public/public_processor/guarded_merkle_tree.d.ts +3 -3
  138. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  139. package/dest/public/public_processor/public_processor.d.ts +7 -14
  140. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  141. package/dest/public/public_processor/public_processor.js +27 -29
  142. package/dest/public/public_processor/public_processor_metrics.d.ts +1 -1
  143. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  144. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +30 -0
  145. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -0
  146. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +133 -0
  147. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +29 -4
  148. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
  149. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +138 -17
  150. package/dest/public/public_tx_simulator/index.d.ts +2 -1
  151. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  152. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +13 -6
  153. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -1
  154. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +5 -5
  155. package/dest/public/public_tx_simulator/public_tx_context.d.ts +5 -2
  156. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  157. package/dest/public/public_tx_simulator/public_tx_context.js +12 -4
  158. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +10 -30
  159. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  160. package/dest/public/public_tx_simulator/public_tx_simulator.js +102 -125
  161. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +2 -2
  162. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -1
  163. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +3 -3
  164. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -1
  165. package/dest/public/side_effect_errors.d.ts +1 -1
  166. package/dest/public/side_effect_errors.d.ts.map +1 -1
  167. package/dest/public/side_effect_trace.d.ts +1 -2
  168. package/dest/public/side_effect_trace.d.ts.map +1 -1
  169. package/dest/public/side_effect_trace_interface.d.ts +2 -3
  170. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  171. package/dest/public/state_manager/index.d.ts +1 -1
  172. package/dest/public/state_manager/nullifiers.d.ts +1 -1
  173. package/dest/public/state_manager/nullifiers.d.ts.map +1 -1
  174. package/dest/public/state_manager/public_storage.d.ts +1 -1
  175. package/dest/public/state_manager/public_storage.d.ts.map +1 -1
  176. package/dest/public/state_manager/state_manager.d.ts +3 -10
  177. package/dest/public/state_manager/state_manager.d.ts.map +1 -1
  178. package/dest/public/state_manager/state_manager.js +5 -4
  179. package/dest/public/test_executor_metrics.d.ts +4 -3
  180. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  181. package/dest/public/test_executor_metrics.js +5 -4
  182. package/dest/public/unique_class_ids.d.ts +1 -1
  183. package/dest/public/unique_class_ids.d.ts.map +1 -1
  184. package/dest/public/utils.d.ts +1 -1
  185. package/dest/server.d.ts +1 -1
  186. package/dest/testing.d.ts +1 -1
  187. package/package.json +21 -20
  188. package/src/public/avm/avm_execution_environment.ts +3 -5
  189. package/src/public/avm/avm_simulator.ts +3 -4
  190. package/src/public/avm/fixtures/avm_simulation_tester.ts +9 -1
  191. package/src/public/avm/fixtures/initializers.ts +6 -8
  192. package/src/public/avm/opcodes/misc.ts +4 -4
  193. package/src/public/contracts_db_checkpoint.ts +41 -0
  194. package/src/public/db_interfaces.ts +15 -0
  195. package/src/public/executor_metrics.ts +2 -1
  196. package/src/public/executor_metrics_interface.ts +2 -1
  197. package/src/public/fixtures/custom_bytecode_tester.ts +1 -1
  198. package/src/public/fixtures/minimal_public_tx.ts +3 -4
  199. package/src/public/fixtures/public_tx_simulation_tester.ts +18 -10
  200. package/src/public/fixtures/token_test.ts +3 -4
  201. package/src/public/hinting_db_sources.ts +104 -7
  202. package/src/public/index.ts +2 -6
  203. package/src/public/public_db_sources.ts +92 -171
  204. package/src/public/public_processor/guarded_merkle_tree.ts +2 -2
  205. package/src/public/public_processor/public_processor.ts +46 -36
  206. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +162 -0
  207. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +199 -21
  208. package/src/public/public_tx_simulator/index.ts +1 -0
  209. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +9 -13
  210. package/src/public/public_tx_simulator/public_tx_context.ts +8 -2
  211. package/src/public/public_tx_simulator/public_tx_simulator.ts +145 -192
  212. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +1 -2
  213. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +2 -2
  214. package/src/public/state_manager/state_manager.ts +4 -11
  215. package/src/public/test_executor_metrics.ts +7 -5
  216. package/dest/public/tx_contract_cache.d.ts +0 -41
  217. package/dest/public/tx_contract_cache.d.ts.map +0 -1
  218. package/dest/public/tx_contract_cache.js +0 -49
  219. 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 = sum(txMetrics.enqueuedCalls.map(call => call.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
- pretty += `${INDENT0}Total mana used: ${fmtNum(txMetrics.manaUsed)}\n`;
206
- const manaPerSecond = Math.round((txMetrics.manaUsed * 1000) / txMetrics.totalDurationMs);
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
- }