@aztec/simulator 0.0.1-commit.d431d1c → 0.0.1-commit.e3c1de76

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 (151) hide show
  1. package/dest/private/acvm/acvm.d.ts +4 -2
  2. package/dest/private/acvm/acvm.d.ts.map +1 -1
  3. package/dest/private/acvm/acvm.js +4 -3
  4. package/dest/private/acvm_native.d.ts +5 -3
  5. package/dest/private/acvm_native.d.ts.map +1 -1
  6. package/dest/private/acvm_native.js +8 -6
  7. package/dest/private/acvm_wasm.d.ts +4 -3
  8. package/dest/private/acvm_wasm.d.ts.map +1 -1
  9. package/dest/private/acvm_wasm.js +4 -4
  10. package/dest/private/circuit_recording/circuit_recorder.d.ts +4 -3
  11. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  12. package/dest/private/circuit_recording/circuit_recorder.js +5 -3
  13. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +3 -2
  14. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  15. package/dest/private/circuit_recording/file_circuit_recorder.js +2 -2
  16. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +7 -2
  17. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
  18. package/dest/private/circuit_recording/memory_circuit_recorder.js +4 -4
  19. package/dest/private/factory.d.ts +3 -3
  20. package/dest/private/factory.d.ts.map +1 -1
  21. package/dest/private/factory.js +7 -4
  22. package/dest/public/avm/avm_context.d.ts +3 -3
  23. package/dest/public/avm/avm_context.d.ts.map +1 -1
  24. package/dest/public/avm/avm_contract_call_result.d.ts +6 -6
  25. package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
  26. package/dest/public/avm/avm_contract_call_result.js +3 -3
  27. package/dest/public/avm/avm_execution_environment.d.ts +6 -5
  28. package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
  29. package/dest/public/avm/avm_machine_state.d.ts +6 -5
  30. package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
  31. package/dest/public/avm/avm_machine_state.js +3 -2
  32. package/dest/public/avm/avm_memory_types.d.ts +1 -1
  33. package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
  34. package/dest/public/avm/avm_memory_types.js +3 -0
  35. package/dest/public/avm/avm_simulator.d.ts +3 -2
  36. package/dest/public/avm/avm_simulator.d.ts.map +1 -1
  37. package/dest/public/avm/avm_simulator.js +5 -4
  38. package/dest/public/avm/calldata.d.ts +51 -0
  39. package/dest/public/avm/calldata.d.ts.map +1 -0
  40. package/dest/public/avm/calldata.js +63 -0
  41. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +1 -1
  42. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
  43. package/dest/public/avm/fixtures/avm_simulation_tester.js +3 -2
  44. package/dest/public/avm/fixtures/initializers.d.ts +1 -1
  45. package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
  46. package/dest/public/avm/fixtures/initializers.js +2 -1
  47. package/dest/public/avm/opcodes/accrued_substate.d.ts +3 -4
  48. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  49. package/dest/public/avm/opcodes/accrued_substate.js +12 -12
  50. package/dest/public/avm/opcodes/contract.d.ts +1 -1
  51. package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
  52. package/dest/public/avm/opcodes/contract.js +4 -4
  53. package/dest/public/avm/opcodes/external_calls.d.ts +1 -1
  54. package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
  55. package/dest/public/avm/opcodes/external_calls.js +7 -7
  56. package/dest/public/avm/opcodes/memory.js +1 -1
  57. package/dest/public/avm/opcodes/storage.d.ts +13 -12
  58. package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
  59. package/dest/public/avm/opcodes/storage.js +30 -20
  60. package/dest/public/debug_fn_name.d.ts +4 -4
  61. package/dest/public/debug_fn_name.d.ts.map +1 -1
  62. package/dest/public/debug_fn_name.js +7 -5
  63. package/dest/public/executor_metrics.d.ts +1 -1
  64. package/dest/public/executor_metrics.d.ts.map +1 -1
  65. package/dest/public/executor_metrics.js +7 -2
  66. package/dest/public/fixtures/opcode_spammer.d.ts +3 -4
  67. package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -1
  68. package/dest/public/fixtures/opcode_spammer.js +30 -58
  69. package/dest/public/fuzzing/avm_simulator_bin.js +7 -4
  70. package/dest/public/public_db_sources.d.ts +4 -3
  71. package/dest/public/public_db_sources.d.ts.map +1 -1
  72. package/dest/public/public_db_sources.js +4 -4
  73. package/dest/public/public_processor/public_processor.d.ts +5 -3
  74. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  75. package/dest/public/public_processor/public_processor.js +8 -5
  76. package/dest/public/public_processor/public_processor_metrics.d.ts +2 -2
  77. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  78. package/dest/public/public_processor/public_processor_metrics.js +20 -4
  79. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +3 -2
  80. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -1
  81. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +2 -2
  82. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +5 -5
  83. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
  84. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +8 -8
  85. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +4 -4
  86. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -1
  87. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +5 -5
  88. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +4 -4
  89. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -1
  90. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +6 -6
  91. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +3 -2
  92. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -1
  93. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +2 -2
  94. package/dest/public/public_tx_simulator/factories.d.ts +3 -2
  95. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
  96. package/dest/public/public_tx_simulator/factories.js +3 -3
  97. package/dest/public/public_tx_simulator/public_tx_context.d.ts +4 -3
  98. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  99. package/dest/public/public_tx_simulator/public_tx_context.js +8 -8
  100. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +4 -3
  101. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  102. package/dest/public/public_tx_simulator/public_tx_simulator.js +9 -6
  103. package/dest/public/side_effect_trace.d.ts +4 -4
  104. package/dest/public/side_effect_trace.d.ts.map +1 -1
  105. package/dest/public/side_effect_trace.js +3 -3
  106. package/dest/public/state_manager/state_manager.d.ts +10 -4
  107. package/dest/public/state_manager/state_manager.d.ts.map +1 -1
  108. package/dest/public/state_manager/state_manager.js +12 -5
  109. package/dest/public/test_executor_metrics.d.ts +3 -2
  110. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  111. package/dest/public/test_executor_metrics.js +2 -2
  112. package/package.json +16 -16
  113. package/src/private/acvm/acvm.ts +4 -3
  114. package/src/private/acvm_native.ts +11 -5
  115. package/src/private/acvm_wasm.ts +7 -3
  116. package/src/private/circuit_recording/circuit_recorder.ts +5 -3
  117. package/src/private/circuit_recording/file_circuit_recorder.ts +7 -2
  118. package/src/private/circuit_recording/memory_circuit_recorder.ts +6 -4
  119. package/src/private/factory.ts +7 -4
  120. package/src/public/avm/avm_context.ts +2 -2
  121. package/src/public/avm/avm_contract_call_result.ts +8 -6
  122. package/src/public/avm/avm_execution_environment.ts +9 -4
  123. package/src/public/avm/avm_machine_state.ts +6 -5
  124. package/src/public/avm/avm_memory_types.ts +4 -0
  125. package/src/public/avm/avm_simulator.ts +8 -5
  126. package/src/public/avm/calldata.ts +100 -0
  127. package/src/public/avm/fixtures/avm_simulation_tester.ts +8 -2
  128. package/src/public/avm/fixtures/initializers.ts +2 -1
  129. package/src/public/avm/opcodes/accrued_substate.ts +13 -15
  130. package/src/public/avm/opcodes/contract.ts +1 -4
  131. package/src/public/avm/opcodes/external_calls.ts +8 -7
  132. package/src/public/avm/opcodes/memory.ts +1 -1
  133. package/src/public/avm/opcodes/storage.ts +28 -20
  134. package/src/public/debug_fn_name.ts +10 -8
  135. package/src/public/executor_metrics.ts +4 -1
  136. package/src/public/fixtures/opcode_spammer.ts +49 -53
  137. package/src/public/fuzzing/avm_simulator_bin.ts +11 -1
  138. package/src/public/public_db_sources.ts +15 -5
  139. package/src/public/public_processor/public_processor.ts +18 -5
  140. package/src/public/public_processor/public_processor_metrics.ts +10 -4
  141. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +6 -3
  142. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +9 -6
  143. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +6 -4
  144. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +7 -5
  145. package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +3 -1
  146. package/src/public/public_tx_simulator/factories.ts +4 -2
  147. package/src/public/public_tx_simulator/public_tx_context.ts +13 -6
  148. package/src/public/public_tx_simulator/public_tx_simulator.ts +14 -5
  149. package/src/public/side_effect_trace.ts +5 -2
  150. package/src/public/state_manager/state_manager.ts +27 -4
  151. package/src/public/test_executor_metrics.ts +3 -3
@@ -56,4 +56,4 @@ export declare class Revert extends Instruction {
56
56
  handlesPC(): boolean;
57
57
  }
58
58
  export {};
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWxfY2FsbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL29wY29kZXMvZXh0ZXJuYWxfY2FsbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUVwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MsdUJBQWUsWUFBYSxTQUFRLFdBQVc7SUFhM0MsT0FBTyxDQUFDLGNBQWM7SUFDdEIsT0FBTyxDQUFDLFdBQVc7SUFDbkIsT0FBTyxDQUFDLFdBQVc7SUFDbkIsT0FBTyxDQUFDLFVBQVU7SUFDbEIsT0FBTyxDQUFDLGNBQWM7SUFDdEIsT0FBTyxDQUFDLFVBQVU7SUFoQnBCLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQVF2QztJQUVGLFlBQ1UsY0FBYyxFQUFFLE1BQU0sRUFDdEIsV0FBVyxFQUFFLE1BQU0sRUFDbkIsV0FBVyxFQUFFLE1BQU0sRUFDbkIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsY0FBYyxFQUFFLE1BQU0sRUFDdEIsVUFBVSxFQUFFLE1BQU0sRUFHM0I7SUFFWSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsaUJBMkV2QztJQUVELGFBQTZCLElBQUksSUFBSSxNQUFNLEdBQUcsWUFBWSxDQUFDO0NBQzVEO0FBRUQscUJBQWEsSUFBSyxTQUFRLFlBQVk7SUFDcEMsTUFBTSxDQUFDLElBQUksU0FBbUI7SUFDOUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFlO0lBRTdDLElBQVcsSUFBSSxXQUVkO0NBQ0Y7QUFFRCxxQkFBYSxVQUFXLFNBQVEsWUFBWTtJQUMxQyxNQUFNLENBQUMsSUFBSSxlQUF5QjtJQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQXFCO0lBRW5ELElBQVcsSUFBSSxpQkFFZDtDQUNGO0FBRUQscUJBQWEsV0FBWSxTQUFRLFdBQVc7SUFXeEMsT0FBTyxDQUFDLGNBQWM7SUFDdEIsT0FBTyxDQUFDLFNBQVM7SUFYbkIsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQWlCO0lBQ3BDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBc0I7SUFFcEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLENBSXZDO0lBRUYsWUFDVSxjQUFjLEVBQUUsTUFBTSxFQUN0QixTQUFTLEVBQUUsTUFBTSxFQUcxQjtJQUVZLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FnQnZEO0NBQ0Y7QUFFRCxxQkFBYSxNQUFPLFNBQVEsV0FBVztJQVluQyxPQUFPLENBQUMsY0FBYztJQUN0QixPQUFPLENBQUMsZ0JBQWdCO0lBQ3hCLE9BQU8sQ0FBQyxZQUFZO0lBYnRCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFZO0lBQy9CLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBaUI7SUFFL0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLENBS3ZDO0lBRUYsWUFDVSxjQUFjLEVBQUUsTUFBTSxFQUN0QixnQkFBZ0IsRUFBRSxNQUFNLEVBQ3hCLFlBQVksRUFBRSxNQUFNLEVBRzdCO0lBRVksT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWlCdkQ7SUFFZSxTQUFTLElBQUksT0FBTyxDQUVuQztDQUNGO0FBRUQscUJBQWEsTUFBTyxTQUFRLFdBQVc7SUFrQm5DLE9BQU8sQ0FBQyxjQUFjO0lBQ3RCLE9BQU8sQ0FBQyxhQUFhO0lBQ3JCLE9BQU8sQ0FBQyxZQUFZO0lBbkJ0QixNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBWTtJQUMvQixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQW1CO0lBRWpELE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUt4QztJQUNGLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUt6QztJQUVGLFlBQ1UsY0FBYyxFQUFFLE1BQU0sRUFDdEIsYUFBYSxFQUFFLE1BQU0sRUFDckIsWUFBWSxFQUFFLE1BQU0sRUFHN0I7SUFFWSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBZ0J2RDtJQUllLFNBQVMsSUFBSSxPQUFPLENBRW5DO0NBQ0YifQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWxfY2FsbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL29wY29kZXMvZXh0ZXJuYWxfY2FsbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUVwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MsdUJBQWUsWUFBYSxTQUFRLFdBQVc7SUFhM0MsT0FBTyxDQUFDLGNBQWM7SUFDdEIsT0FBTyxDQUFDLFdBQVc7SUFDbkIsT0FBTyxDQUFDLFdBQVc7SUFDbkIsT0FBTyxDQUFDLFVBQVU7SUFDbEIsT0FBTyxDQUFDLGNBQWM7SUFDdEIsT0FBTyxDQUFDLFVBQVU7SUFoQnBCLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQVF2QztJQUVGLFlBQ1UsY0FBYyxFQUFFLE1BQU0sRUFDdEIsV0FBVyxFQUFFLE1BQU0sRUFDbkIsV0FBVyxFQUFFLE1BQU0sRUFDbkIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsY0FBYyxFQUFFLE1BQU0sRUFDdEIsVUFBVSxFQUFFLE1BQU0sRUFHM0I7SUFFWSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsaUJBMkV2QztJQUVELGFBQTZCLElBQUksSUFBSSxNQUFNLEdBQUcsWUFBWSxDQUFDO0NBQzVEO0FBRUQscUJBQWEsSUFBSyxTQUFRLFlBQVk7SUFDcEMsTUFBTSxDQUFDLElBQUksU0FBbUI7SUFDOUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFlO0lBRTdDLElBQVcsSUFBSSxXQUVkO0NBQ0Y7QUFFRCxxQkFBYSxVQUFXLFNBQVEsWUFBWTtJQUMxQyxNQUFNLENBQUMsSUFBSSxlQUF5QjtJQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQXFCO0lBRW5ELElBQVcsSUFBSSxpQkFFZDtDQUNGO0FBRUQscUJBQWEsV0FBWSxTQUFRLFdBQVc7SUFXeEMsT0FBTyxDQUFDLGNBQWM7SUFDdEIsT0FBTyxDQUFDLFNBQVM7SUFYbkIsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQWlCO0lBQ3BDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBc0I7SUFFcEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLENBSXZDO0lBRUYsWUFDVSxjQUFjLEVBQUUsTUFBTSxFQUN0QixTQUFTLEVBQUUsTUFBTSxFQUcxQjtJQUVZLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FnQnZEO0NBQ0Y7QUFFRCxxQkFBYSxNQUFPLFNBQVEsV0FBVztJQVluQyxPQUFPLENBQUMsY0FBYztJQUN0QixPQUFPLENBQUMsZ0JBQWdCO0lBQ3hCLE9BQU8sQ0FBQyxZQUFZO0lBYnRCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFZO0lBQy9CLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBaUI7SUFFL0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLENBS3ZDO0lBRUYsWUFDVSxjQUFjLEVBQUUsTUFBTSxFQUN0QixnQkFBZ0IsRUFBRSxNQUFNLEVBQ3hCLFlBQVksRUFBRSxNQUFNLEVBRzdCO0lBRVksT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWlCdkQ7SUFFZSxTQUFTLElBQUksT0FBTyxDQUVuQztDQUNGO0FBRUQscUJBQWEsTUFBTyxTQUFRLFdBQVc7SUFrQm5DLE9BQU8sQ0FBQyxjQUFjO0lBQ3RCLE9BQU8sQ0FBQyxhQUFhO0lBQ3JCLE9BQU8sQ0FBQyxZQUFZO0lBbkJ0QixNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBWTtJQUMvQixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQW1CO0lBRWpELE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUt4QztJQUNGLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUt6QztJQUVGLFlBQ1UsY0FBYyxFQUFFLE1BQU0sRUFDdEIsYUFBYSxFQUFFLE1BQU0sRUFDckIsWUFBWSxFQUFFLE1BQU0sRUFHN0I7SUFFWSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBZ0J2RDtJQUllLFNBQVMsSUFBSSxPQUFPLENBRW5DO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"external_calls.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/external_calls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,uBAAe,YAAa,SAAQ,WAAW;IAa3C,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAhBpB,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAQvC;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAG3B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,iBA2EvC;IAED,aAA6B,IAAI,IAAI,MAAM,GAAG,YAAY,CAAC;CAC5D;AAED,qBAAa,IAAK,SAAQ,YAAY;IACpC,MAAM,CAAC,IAAI,SAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAe;IAE7C,IAAW,IAAI,WAEd;CACF;AAED,qBAAa,UAAW,SAAQ,YAAY;IAC1C,MAAM,CAAC,IAAI,eAAyB;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAqB;IAEnD,IAAW,IAAI,iBAEd;CACF;AAED,qBAAa,WAAY,SAAQ,WAAW;IAWxC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,SAAS;IAXnB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAiB;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAsB;IAEpD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAIvC;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EAG1B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBvD;CACF;AAED,qBAAa,MAAO,SAAQ,WAAW;IAYnC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,YAAY;IAbtB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAiB;IAE/C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EAG7B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBvD;IAEe,SAAS,IAAI,OAAO,CAEnC;CACF;AAED,qBAAa,MAAO,SAAQ,WAAW;IAkBnC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,YAAY;IAnBtB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB;IAEjD,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAKxC;IACF,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAKzC;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EAG7B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBvD;IAIe,SAAS,IAAI,OAAO,CAEnC;CACF"}
1
+ {"version":3,"file":"external_calls.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/external_calls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,uBAAe,YAAa,SAAQ,WAAW;IAa3C,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAhBpB,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAQvC;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAG3B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,iBA2EvC;IAED,aAA6B,IAAI,IAAI,MAAM,GAAG,YAAY,CAAC;CAC5D;AAED,qBAAa,IAAK,SAAQ,YAAY;IACpC,MAAM,CAAC,IAAI,SAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAe;IAE7C,IAAW,IAAI,WAEd;CACF;AAED,qBAAa,UAAW,SAAQ,YAAY;IAC1C,MAAM,CAAC,IAAI,eAAyB;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAqB;IAEnD,IAAW,IAAI,iBAEd;CACF;AAED,qBAAa,WAAY,SAAQ,WAAW;IAWxC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,SAAS;IAXnB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAiB;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAsB;IAEpD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAIvC;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EAG1B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBvD;CACF;AAED,qBAAa,MAAO,SAAQ,WAAW;IAYnC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,YAAY;IAbtB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAiB;IAE/C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EAG7B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBvD;IAEe,SAAS,IAAI,OAAO,CAEnC;CACF;AAED,qBAAa,MAAO,SAAQ,WAAW;IAkBnC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,YAAY;IAnBtB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB;IAEjD,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAKxC;IACF,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAKzC;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EAG7B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBvD;IAIe,SAAS,IAAI,OAAO,CAEnC;CACF"}
@@ -1,4 +1,5 @@
1
1
  import { TypeTag, Uint1 } from '../avm_memory_types.js';
2
+ import { CallDataMemory, ReturnDataMemory } from '../calldata.js';
2
3
  import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
3
4
  import { Addressing } from './addressing_mode.js';
4
5
  import { Instruction } from './instruction.js';
@@ -39,8 +40,7 @@ class ExternalCall extends Instruction {
39
40
  memory.checkTag(TypeTag.FIELD, addrOffset);
40
41
  memory.checkTag(TypeTag.UINT32, argsSizeOffset);
41
42
  const calldataSize = memory.get(argsSizeOffset).toNumber();
42
- // This is a DOS vector. CalldataSize is chosen by the bytecode, and can be arbitrarily large leading to a OOM here.
43
- const calldata = memory.getSlice(argsOffset, calldataSize).map((f)=>f.toFr());
43
+ const calldata = new CallDataMemory(memory, argsOffset, calldataSize);
44
44
  const callAddress = memory.getAs(addrOffset);
45
45
  // If we are already in a static call, we propagate the environment.
46
46
  const callType = context.environment.isStaticCall ? 'STATICCALL' : this.type;
@@ -61,8 +61,8 @@ class ExternalCall extends Instruction {
61
61
  const nestedCallResults = await simulator.execute();
62
62
  const success = !nestedCallResults.reverted;
63
63
  // Save return/revert data for later.
64
- const fullReturnData = nestedCallResults.output;
65
- context.machineState.nestedReturndata = fullReturnData;
64
+ const returnData = nestedCallResults.output;
65
+ context.machineState.nestedReturndata = returnData;
66
66
  // Track the success status directly
67
67
  context.machineState.nestedCallSuccess = success;
68
68
  // Account for all instructions executed in the nested call
@@ -74,7 +74,7 @@ class ExternalCall extends Instruction {
74
74
  // (in Noir code).
75
75
  if (!success) {
76
76
  context.machineState.collectedRevertInfo = {
77
- revertDataRepresentative: fullReturnData,
77
+ revertDataRepresentative: returnData.bestEffortReadAll(),
78
78
  recursiveRevertReason: nestedCallResults.revertReason
79
79
  };
80
80
  }
@@ -157,7 +157,7 @@ export class Return extends Instruction {
157
157
  const [returnSizeOffset, returnOffset] = addressing.resolve(operands, memory);
158
158
  memory.checkTag(TypeTag.UINT32, returnSizeOffset);
159
159
  const returnSize = memory.get(returnSizeOffset).toNumber();
160
- const output = memory.getSlice(returnOffset, returnSize).map((word)=>word.toFr());
160
+ const output = new ReturnDataMemory(memory, returnOffset, returnSize);
161
161
  context.machineState.return(output);
162
162
  }
163
163
  handlesPC() {
@@ -196,7 +196,7 @@ export class Revert extends Instruction {
196
196
  const [retSizeOffset, returnOffset] = addressing.resolve(operands, memory);
197
197
  memory.checkTag(TypeTag.UINT32, retSizeOffset);
198
198
  const retSize = memory.get(retSizeOffset).toNumber();
199
- const output = memory.getSlice(returnOffset, retSize).map((word)=>word.toFr());
199
+ const output = new ReturnDataMemory(memory, returnOffset, retSize);
200
200
  context.machineState.revert(output);
201
201
  }
202
202
  // We don't want to increase the PC after reverting because it breaks messages.
@@ -210,7 +210,7 @@ export class ReturndataSize extends Instruction {
210
210
  this.dstOffset
211
211
  ];
212
212
  const [dstOffset] = addressing.resolve(operands, memory);
213
- memory.set(dstOffset, new Uint32(context.machineState.nestedReturndata.length));
213
+ memory.set(dstOffset, new Uint32(context.machineState.nestedReturndata.length()));
214
214
  }
215
215
  }
216
216
  export class ReturndataCopy extends Instruction {
@@ -1,24 +1,25 @@
1
1
  import type { AvmContext } from '../avm_context.js';
2
2
  import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
3
3
  import { Instruction } from './instruction.js';
4
- declare abstract class BaseStorageInstruction extends Instruction {
5
- protected addressingMode: number;
6
- protected aOffset: number;
7
- protected bOffset: number;
8
- static readonly wireFormat: OperandType[];
9
- constructor(addressingMode: number, aOffset: number, bOffset: number);
10
- }
11
- export declare class SStore extends BaseStorageInstruction {
4
+ export declare class SStore extends Instruction {
5
+ private addressingMode;
6
+ private srcOffset;
7
+ private slotOffset;
12
8
  static readonly type: string;
13
9
  static readonly opcode = Opcode.SSTORE;
10
+ static readonly wireFormat: OperandType[];
14
11
  constructor(addressingMode: number, srcOffset: number, slotOffset: number);
15
12
  execute(context: AvmContext): Promise<void>;
16
13
  }
17
- export declare class SLoad extends BaseStorageInstruction {
14
+ export declare class SLoad extends Instruction {
15
+ private addressingMode;
16
+ private slotOffset;
17
+ private contractAddressOffset;
18
+ private dstOffset;
18
19
  static readonly type: string;
19
20
  static readonly opcode = Opcode.SLOAD;
20
- constructor(addressingMode: number, slotOffset: number, dstOffset: number);
21
+ static readonly wireFormat: OperandType[];
22
+ constructor(addressingMode: number, slotOffset: number, contractAddressOffset: number, dstOffset: number);
21
23
  execute(context: AvmContext): Promise<void>;
22
24
  }
23
- export {};
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vb3Bjb2Rlcy9zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLHVCQUFlLHNCQUF1QixTQUFRLFdBQVc7SUFVckQsU0FBUyxDQUFDLGNBQWMsRUFBRSxNQUFNO0lBQ2hDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTTtJQUN6QixTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU07SUFWM0IsZ0JBQXVCLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FLOUM7SUFFRixZQUNZLGNBQWMsRUFBRSxNQUFNLEVBQ3RCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsT0FBTyxFQUFFLE1BQU0sRUFHMUI7Q0FDRjtBQUVELHFCQUFhLE1BQU8sU0FBUSxzQkFBc0I7SUFDaEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFZO0lBQ3hDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxpQkFBaUI7SUFFdkMsWUFBWSxjQUFjLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFFeEU7SUFFWSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBMEJ2RDtDQUNGO0FBRUQscUJBQWEsS0FBTSxTQUFRLHNCQUFzQjtJQUMvQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQVc7SUFDdkMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLGdCQUFnQjtJQUV0QyxZQUFZLGNBQWMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUV4RTtJQUVZLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FldkQ7Q0FDRiJ9
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vb3Bjb2Rlcy9zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLHFCQUFhLE1BQU8sU0FBUSxXQUFXO0lBWW5DLE9BQU8sQ0FBQyxjQUFjO0lBQ3RCLE9BQU8sQ0FBQyxTQUFTO0lBQ2pCLE9BQU8sQ0FBQyxVQUFVO0lBYnBCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBWTtJQUN4QyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0saUJBQWlCO0lBRXZDLGdCQUF1QixVQUFVLEVBQUUsV0FBVyxFQUFFLENBSzlDO0lBRUYsWUFDVSxjQUFjLEVBQUUsTUFBTSxFQUN0QixTQUFTLEVBQUUsTUFBTSxFQUNqQixVQUFVLEVBQUUsTUFBTSxFQUczQjtJQUVZLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0EwQnZEO0NBQ0Y7QUFFRCxxQkFBYSxLQUFNLFNBQVEsV0FBVztJQWFsQyxPQUFPLENBQUMsY0FBYztJQUN0QixPQUFPLENBQUMsVUFBVTtJQUNsQixPQUFPLENBQUMscUJBQXFCO0lBQzdCLE9BQU8sQ0FBQyxTQUFTO0lBZm5CLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBVztJQUN2QyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sZ0JBQWdCO0lBRXRDLGdCQUF1QixVQUFVLEVBQUUsV0FBVyxFQUFFLENBTTlDO0lBRUYsWUFDVSxjQUFjLEVBQUUsTUFBTSxFQUN0QixVQUFVLEVBQUUsTUFBTSxFQUNsQixxQkFBcUIsRUFBRSxNQUFNLEVBQzdCLFNBQVMsRUFBRSxNQUFNLEVBRzFCO0lBRVksT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWlCdkQ7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,uBAAe,sBAAuB,SAAQ,WAAW;IAUrD,SAAS,CAAC,cAAc,EAAE,MAAM;IAChC,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,OAAO,EAAE,MAAM;IAV3B,gBAAuB,UAAU,EAAE,WAAW,EAAE,CAK9C;IAEF,YACY,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,qBAAa,MAAO,SAAQ,sBAAsB;IAChD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAY;IACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,iBAAiB;IAEvC,YAAY,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAExE;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BvD;CACF;AAED,qBAAa,KAAM,SAAQ,sBAAsB;IAC/C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAW;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;IAEtC,YAAY,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAExE;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAevD;CACF"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,MAAO,SAAQ,WAAW;IAYnC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAbpB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAY;IACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,iBAAiB;IAEvC,gBAAuB,UAAU,EAAE,WAAW,EAAE,CAK9C;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAG3B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BvD;CACF;AAED,qBAAa,KAAM,SAAQ,WAAW;IAalC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,SAAS;IAfnB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAW;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;IAEtC,gBAAuB,UAAU,EAAE,WAAW,EAAE,CAM9C;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,qBAAqB,EAAE,MAAM,EAC7B,SAAS,EAAE,MAAM,EAG1B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBvD;CACF"}
@@ -3,10 +3,12 @@ import { StaticCallAlterationError } from '../errors.js';
3
3
  import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
4
4
  import { Addressing } from './addressing_mode.js';
5
5
  import { Instruction } from './instruction.js';
6
- class BaseStorageInstruction extends Instruction {
6
+ export class SStore extends Instruction {
7
7
  addressingMode;
8
- aOffset;
9
- bOffset;
8
+ srcOffset;
9
+ slotOffset;
10
+ static type = 'SSTORE';
11
+ static opcode = Opcode.SSTORE;
10
12
  // Informs (de)serialization. See Instruction.deserialize.
11
13
  static wireFormat = [
12
14
  OperandType.UINT8,
@@ -14,15 +16,8 @@ class BaseStorageInstruction extends Instruction {
14
16
  OperandType.UINT16,
15
17
  OperandType.UINT16
16
18
  ];
17
- constructor(addressingMode, aOffset, bOffset){
18
- super(), this.addressingMode = addressingMode, this.aOffset = aOffset, this.bOffset = bOffset;
19
- }
20
- }
21
- export class SStore extends BaseStorageInstruction {
22
- static type = 'SSTORE';
23
- static opcode = Opcode.SSTORE;
24
19
  constructor(addressingMode, srcOffset, slotOffset){
25
- super(addressingMode, srcOffset, slotOffset);
20
+ super(), this.addressingMode = addressingMode, this.srcOffset = srcOffset, this.slotOffset = slotOffset;
26
21
  }
27
22
  async execute(context) {
28
23
  if (context.environment.isStaticCall) {
@@ -32,8 +27,8 @@ export class SStore extends BaseStorageInstruction {
32
27
  const addressing = Addressing.fromWire(this.addressingMode);
33
28
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
34
29
  const operands = [
35
- this.aOffset,
36
- this.bOffset
30
+ this.srcOffset,
31
+ this.slotOffset
37
32
  ];
38
33
  const [srcOffset, slotOffset] = addressing.resolve(operands, memory);
39
34
  // We read before tag checking since it's needed for gas cost calculation
@@ -45,24 +40,39 @@ export class SStore extends BaseStorageInstruction {
45
40
  await context.persistableState.writeStorage(context.environment.address, slot, value);
46
41
  }
47
42
  }
48
- export class SLoad extends BaseStorageInstruction {
43
+ export class SLoad extends Instruction {
44
+ addressingMode;
45
+ slotOffset;
46
+ contractAddressOffset;
47
+ dstOffset;
49
48
  static type = 'SLOAD';
50
49
  static opcode = Opcode.SLOAD;
51
- constructor(addressingMode, slotOffset, dstOffset){
52
- super(addressingMode, slotOffset, dstOffset);
50
+ // Informs (de)serialization. See Instruction.deserialize.
51
+ static wireFormat = [
52
+ OperandType.UINT8,
53
+ OperandType.UINT8,
54
+ OperandType.UINT16,
55
+ OperandType.UINT16,
56
+ OperandType.UINT16
57
+ ];
58
+ constructor(addressingMode, slotOffset, contractAddressOffset, dstOffset){
59
+ super(), this.addressingMode = addressingMode, this.slotOffset = slotOffset, this.contractAddressOffset = contractAddressOffset, this.dstOffset = dstOffset;
53
60
  }
54
61
  async execute(context) {
55
62
  const memory = context.machineState.memory;
56
63
  const addressing = Addressing.fromWire(this.addressingMode);
57
64
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
58
65
  const operands = [
59
- this.aOffset,
60
- this.bOffset
66
+ this.slotOffset,
67
+ this.contractAddressOffset,
68
+ this.dstOffset
61
69
  ];
62
- const [slotOffset, dstOffset] = addressing.resolve(operands, memory);
70
+ const [slotOffset, contractAddressOffset, dstOffset] = addressing.resolve(operands, memory);
63
71
  memory.checkTag(TypeTag.FIELD, slotOffset);
72
+ memory.checkTag(TypeTag.FIELD, contractAddressOffset);
64
73
  const slot = memory.get(slotOffset).toFr();
65
- const value = await context.persistableState.readStorage(context.environment.address, slot);
74
+ const contractAddress = memory.get(contractAddressOffset).toAztecAddress();
75
+ const value = await context.persistableState.readStorage(contractAddress, slot);
66
76
  memory.set(dstOffset, new Field(value));
67
77
  }
68
78
  }
@@ -1,8 +1,8 @@
1
- import type { Fr } from '@aztec/foundation/curves/bn254';
2
1
  import { FunctionSelector } from '@aztec/stdlib/abi';
3
2
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ import type { CallData } from './avm/calldata.js';
4
4
  import type { PublicContractsDBInterface } from './db_interfaces.js';
5
- export declare function getPublicFunctionDebugName(db: PublicContractsDBInterface, contractAddress: AztecAddress, calldata: Fr[]): Promise<string>;
5
+ export declare function getPublicFunctionDebugName(db: PublicContractsDBInterface, contractAddress: AztecAddress, calldata: CallData): Promise<string>;
6
6
  /**
7
7
  * Get the function selector and optional debug name for a public function.
8
8
  * Returns the selector and name separately, with name only populated if a debug name is available.
@@ -11,8 +11,8 @@ export declare function getPublicFunctionDebugName(db: PublicContractsDBInterfac
11
11
  * @param calldata - The calldata (selector is in calldata[0])
12
12
  * @returns An object with functionSelector (always if calldata[0] exists) and functionName (only if debug name found)
13
13
  */
14
- export declare function getPublicFunctionSelectorAndName(db: PublicContractsDBInterface, contractAddress: AztecAddress, calldata: Fr[]): Promise<{
14
+ export declare function getPublicFunctionSelectorAndName(db: PublicContractsDBInterface, contractAddress: AztecAddress, calldata: CallData): Promise<{
15
15
  functionSelector?: FunctionSelector;
16
16
  functionName?: string;
17
17
  }>;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWdfZm5fbmFtZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9kZWJ1Z19mbl9uYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWhFLE9BQU8sS0FBSyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckUsd0JBQXNCLDBCQUEwQixDQUM5QyxFQUFFLEVBQUUsMEJBQTBCLEVBQzlCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFFBQVEsRUFBRSxFQUFFLEVBQUUsR0FDYixPQUFPLENBQUMsTUFBTSxDQUFDLENBV2pCO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQixnQ0FBZ0MsQ0FDcEQsRUFBRSxFQUFFLDBCQUEwQixFQUM5QixlQUFlLEVBQUUsWUFBWSxFQUM3QixRQUFRLEVBQUUsRUFBRSxFQUFFLEdBQ2IsT0FBTyxDQUFDO0lBQUUsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztJQUFDLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUMsQ0FjekUifQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWdfZm5fbmFtZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9kZWJ1Z19mbl9uYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWhFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckUsd0JBQXNCLDBCQUEwQixDQUM5QyxFQUFFLEVBQUUsMEJBQTBCLEVBQzlCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFFBQVEsRUFBRSxRQUFRLEdBQ2pCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FZakI7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQXNCLGdDQUFnQyxDQUNwRCxFQUFFLEVBQUUsMEJBQTBCLEVBQzlCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFFBQVEsRUFBRSxRQUFRLEdBQ2pCLE9BQU8sQ0FBQztJQUFFLGdCQUFnQixDQUFDLEVBQUUsZ0JBQWdCLENBQUM7SUFBQyxZQUFZLENBQUMsRUFBRSxNQUFNLENBQUE7Q0FBRSxDQUFDLENBZXpFIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"debug_fn_name.d.ts","sourceRoot":"","sources":["../../src/public/debug_fn_name.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAErE,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,0BAA0B,EAC9B,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,EAAE,EAAE,GACb,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED;;;;;;;GAOG;AACH,wBAAsB,gCAAgC,CACpD,EAAE,EAAE,0BAA0B,EAC9B,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,EAAE,EAAE,GACb,OAAO,CAAC;IAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAczE"}
1
+ {"version":3,"file":"debug_fn_name.d.ts","sourceRoot":"","sources":["../../src/public/debug_fn_name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAErE,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,0BAA0B,EAC9B,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED;;;;;;;GAOG;AACH,wBAAsB,gCAAgC,CACpD,EAAE,EAAE,0BAA0B,EAC9B,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC;IAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAezE"}
@@ -1,11 +1,12 @@
1
1
  import { FunctionSelector } from '@aztec/stdlib/abi';
2
2
  export async function getPublicFunctionDebugName(db, contractAddress, calldata) {
3
3
  // Public function is dispatched and therefore the target function is passed in the first argument.
4
- if (!calldata[0]) {
4
+ const selectorField = calldata.read(0);
5
+ if (!selectorField) {
5
6
  return `<calldata[0] undefined> (Contract Address: ${contractAddress})`;
6
7
  }
7
- const fallbackName = `<calldata[0]:${calldata[0].toString()}> (Contract Address: ${contractAddress})`;
8
- const selector = FunctionSelector.fromFieldOrUndefined(calldata[0]);
8
+ const fallbackName = `<calldata[0]:${selectorField.toString()}> (Contract Address: ${contractAddress})`;
9
+ const selector = FunctionSelector.fromFieldOrUndefined(selectorField);
9
10
  if (!selector) {
10
11
  return fallbackName;
11
12
  }
@@ -20,10 +21,11 @@ export async function getPublicFunctionDebugName(db, contractAddress, calldata)
20
21
  * @returns An object with functionSelector (always if calldata[0] exists) and functionName (only if debug name found)
21
22
  */ export async function getPublicFunctionSelectorAndName(db, contractAddress, calldata) {
22
23
  // Public function is dispatched and therefore the target function is passed in the first argument.
23
- if (!calldata[0]) {
24
+ const selectorField = calldata.read(0);
25
+ if (!selectorField) {
24
26
  return {};
25
27
  }
26
- const selector = FunctionSelector.fromFieldOrUndefined(calldata[0]);
28
+ const selector = FunctionSelector.fromFieldOrUndefined(selectorField);
27
29
  if (!selector) {
28
30
  return {};
29
31
  }
@@ -18,4 +18,4 @@ export declare class ExecutorMetrics implements ExecutorMetricsInterface {
18
18
  recordEnqueuedCallSimulationFailure(_fnName: string, _durationMs: number, _manaUsed: number, _totalInstructionsExecuted: number): void;
19
19
  recordPrivateEffectsInsertion(durationUs: number, type: 'revertible' | 'non-revertible'): void;
20
20
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3JfbWV0cmljcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9leGVjdXRvcl9tZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFJTCxLQUFLLGVBQWUsRUFDcEIsS0FBSyxNQUFNLEVBRVosTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhGLHFCQUFhLGVBQWdCLFlBQVcsd0JBQXdCO0lBQzlELFNBQWdCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDL0IsT0FBTyxDQUFDLE9BQU8sQ0FBZ0I7SUFDL0IsT0FBTyxDQUFDLFVBQVUsQ0FBWTtJQUM5QixPQUFPLENBQUMsYUFBYSxDQUFZO0lBQ2pDLE9BQU8sQ0FBQyxRQUFRLENBQVk7SUFDNUIsT0FBTyxDQUFDLHlCQUF5QixDQUFZO0lBQzdDLE9BQU8sQ0FBQyxTQUFTLENBQVk7SUFDN0IsT0FBTyxDQUFDLHdCQUF3QixDQUFZO0lBRTVDLFlBQVksTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLFNBQW1CLEVBaUIzRDtJQUVELDBCQUEwQixDQUFDLFFBQVEsRUFBRSxNQUFNLFFBRTFDO0lBRUQseUJBQXlCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLEVBQUUsVUFBVSxRQUV6RjtJQUVELDRCQUE0QixDQUMxQixNQUFNLEVBQUUsTUFBTSxFQUNkLFVBQVUsRUFBRSxNQUFNLEVBQ2xCLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLHlCQUF5QixFQUFFLE1BQU0sUUFxQmxDO0lBRUQsbUNBQW1DLENBQ2pDLE9BQU8sRUFBRSxNQUFNLEVBQ2YsV0FBVyxFQUFFLE1BQU0sRUFDbkIsU0FBUyxFQUFFLE1BQU0sRUFDakIsMEJBQTBCLEVBQUUsTUFBTSxRQUtuQztJQUVELDZCQUE2QixDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksR0FBRyxnQkFBZ0IsUUFJdEY7Q0FDRiJ9
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3JfbWV0cmljcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9leGVjdXRvcl9tZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFJTCxLQUFLLGVBQWUsRUFDcEIsS0FBSyxNQUFNLEVBR1osTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhGLHFCQUFhLGVBQWdCLFlBQVcsd0JBQXdCO0lBQzlELFNBQWdCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDL0IsT0FBTyxDQUFDLE9BQU8sQ0FBZ0I7SUFDL0IsT0FBTyxDQUFDLFVBQVUsQ0FBWTtJQUM5QixPQUFPLENBQUMsYUFBYSxDQUFZO0lBQ2pDLE9BQU8sQ0FBQyxRQUFRLENBQVk7SUFDNUIsT0FBTyxDQUFDLHlCQUF5QixDQUFZO0lBQzdDLE9BQU8sQ0FBQyxTQUFTLENBQVk7SUFDN0IsT0FBTyxDQUFDLHdCQUF3QixDQUFZO0lBRTVDLFlBQVksTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLFNBQW1CLEVBbUIzRDtJQUVELDBCQUEwQixDQUFDLFFBQVEsRUFBRSxNQUFNLFFBRTFDO0lBRUQseUJBQXlCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLEVBQUUsVUFBVSxRQUV6RjtJQUVELDRCQUE0QixDQUMxQixNQUFNLEVBQUUsTUFBTSxFQUNkLFVBQVUsRUFBRSxNQUFNLEVBQ2xCLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLHlCQUF5QixFQUFFLE1BQU0sUUFxQmxDO0lBRUQsbUNBQW1DLENBQ2pDLE9BQU8sRUFBRSxNQUFNLEVBQ2YsV0FBVyxFQUFFLE1BQU0sRUFDbkIsU0FBUyxFQUFFLE1BQU0sRUFDakIsMEJBQTBCLEVBQUUsTUFBTSxRQUtuQztJQUVELDZCQUE2QixDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksR0FBRyxnQkFBZ0IsUUFJdEY7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"executor_metrics.d.ts","sourceRoot":"","sources":["../../src/public/executor_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,MAAM,EAEZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAEhF,qBAAa,eAAgB,YAAW,wBAAwB;IAC9D,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,yBAAyB,CAAY;IAC7C,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,wBAAwB,CAAY;IAE5C,YAAY,MAAM,EAAE,eAAe,EAAE,IAAI,SAAmB,EAiB3D;IAED,0BAA0B,CAAC,QAAQ,EAAE,MAAM,QAE1C;IAED,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,UAAU,QAEzF;IAED,4BAA4B,CAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,yBAAyB,EAAE,MAAM,QAqBlC;IAED,mCAAmC,CACjC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,0BAA0B,EAAE,MAAM,QAKnC;IAED,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,gBAAgB,QAItF;CACF"}
1
+ {"version":3,"file":"executor_metrics.d.ts","sourceRoot":"","sources":["../../src/public/executor_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAEhF,qBAAa,eAAgB,YAAW,wBAAwB;IAC9D,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,yBAAyB,CAAY;IAC7C,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,wBAAwB,CAAY;IAE5C,YAAY,MAAM,EAAE,eAAe,EAAE,IAAI,SAAmB,EAmB3D;IAED,0BAA0B,CAAC,QAAQ,EAAE,MAAM,QAE1C;IAED,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,UAAU,QAEzF;IAED,4BAA4B,CAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,yBAAyB,EAAE,MAAM,QAqBlC;IAED,mCAAmC,CACjC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,0BAA0B,EAAE,MAAM,QAKnC;IAED,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,gBAAgB,QAItF;CACF"}
@@ -1,4 +1,4 @@
1
- import { Attributes, Metrics } from '@aztec/telemetry-client';
1
+ import { Attributes, Metrics, createUpDownCounterWithDefault } from '@aztec/telemetry-client';
2
2
  export class ExecutorMetrics {
3
3
  tracer;
4
4
  fnCount;
@@ -11,7 +11,12 @@ export class ExecutorMetrics {
11
11
  constructor(client, name = 'PublicExecutor'){
12
12
  this.tracer = client.getTracer(name);
13
13
  const meter = client.getMeter(name);
14
- this.fnCount = meter.createUpDownCounter(Metrics.PUBLIC_EXECUTOR_SIMULATION_COUNT);
14
+ this.fnCount = createUpDownCounterWithDefault(meter, Metrics.PUBLIC_EXECUTOR_SIMULATION_COUNT, {
15
+ [Attributes.OK]: [
16
+ true,
17
+ false
18
+ ]
19
+ });
15
20
  this.fnDuration = meter.createHistogram(Metrics.PUBLIC_EXECUTOR_SIMULATION_DURATION);
16
21
  this.manaPerSecond = meter.createHistogram(Metrics.PUBLIC_EXECUTOR_SIMULATION_MANA_PER_SECOND);
17
22
  this.manaUsed = meter.createHistogram(Metrics.PUBLIC_EXECUTOR_SIMULATION_MANA_USED);
@@ -58,9 +58,8 @@ export interface SpamConfigsForOpcode {
58
58
  */
59
59
  export declare const WARM_NOTE_HASH: Fr;
60
60
  export declare const WARM_L1_TO_L2_MSG: Fr;
61
- /** Warm nullifier constants - uses a fixed address since NULLIFIEREXISTS takes address as parameter */
62
- export declare const WARM_NULLIFIER: Fr;
63
- export declare const WARM_NULLIFIER_ADDRESS: AztecAddress;
61
+ /** Warm nullifier constant - a pre-siloed nullifier value inserted directly into the tree */
62
+ export declare const WARM_SILOED_NULLIFIER: Fr;
64
63
  /** Warm storage constants - storage is inserted for the deployed contract's address */
65
64
  export declare const WARM_STORAGE_SLOT: Fr;
66
65
  export declare const WARM_STORAGE_VALUE: Fr;
@@ -120,4 +119,4 @@ export declare function createOpcodeSpamBytecode(config: SpamConfig): Buffer;
120
119
  export declare function createSideEffectSpamBytecode(config: SpamConfig): Buffer;
121
120
  export declare function testOpcodeSpamCase(tester: PublicTxSimulationTester, config: SpamConfig, expectToBeTrue?: (x: boolean) => void): Promise<PublicTxResult>;
122
121
  export {};
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2RlX3NwYW1tZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvZml4dHVyZXMvb3Bjb2RlX3NwYW1tZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0tBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQTJDLEtBQUssY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFLakYsT0FBTyxFQUFTLEtBQUssV0FBVyxFQUFnRCxNQUFNLDRCQUE0QixDQUFDO0FBa0RuSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFM0UsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQU1qRjs7R0FFRztBQUNILFVBQVUsUUFBUTtJQUNoQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsS0FBSyxFQUFFLFdBQVcsQ0FBQztDQUNwQjtBQUVEOzs7R0FHRztBQUNILEtBQUssU0FBUyxHQUFHLFFBQVEsR0FBRyxDQUFDLE1BQU0sVUFBVSxFQUFFLENBQUMsQ0FBQztBQUVqRDs7R0FFRztBQUNILE1BQU0sV0FBVyxVQUFVO0lBQ3pCLGlDQUFpQztJQUNqQyxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFFbkIsc0RBQXNEO0lBQ3RELGtCQUFrQixFQUFFLE1BQU0sVUFBVSxFQUFFLENBQUM7SUFFdkMsMkRBQTJEO0lBQzNELG1CQUFtQixDQUFDLEVBQUUsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUV6Qzs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBRWYsc0VBQXNFO0lBQ3RFLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUVmLDBEQUEwRDtJQUMxRCxpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sQ0FBQztDQUM3QjtBQUVEOzs7R0FHRztBQUNILE1BQU0sV0FBVyxvQkFBb0I7SUFDbkMsa0NBQWtDO0lBQ2xDLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFFZixxREFBcUQ7SUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO0NBQ3ZCO0FBTUQ7OztHQUdHO0FBQ0gsZUFBTyxNQUFNLGNBQWMsSUFBc0IsQ0FBQztBQUNsRCxlQUFPLE1BQU0saUJBQWlCLElBQThCLENBQUM7QUFFN0QsdUdBQXVHO0FBQ3ZHLGVBQU8sTUFBTSxjQUFjLElBQTBCLENBQUM7QUFDdEQsZUFBTyxNQUFNLHNCQUFzQixjQUFrQyxDQUFDO0FBRXRFLHVGQUF1RjtBQUN2RixlQUFPLE1BQU0saUJBQWlCLElBQTBCLENBQUM7QUFDekQsZUFBTyxNQUFNLGtCQUFrQixJQUEwQixDQUFDO0FBRTFEOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0seUJBQXlCLEtBQUssQ0FBQztBQUM1QyxlQUFPLE1BQU0sNEJBQTRCLEtBQUssQ0FBQztBQUUvQzs7Ozs7Ozs7O0dBU0c7QUFDSCx3QkFBc0IscUJBQXFCLENBQ3pDLFdBQVcsRUFBRSx5QkFBeUIsRUFDdEMsZUFBZSxFQUFFLFlBQVksR0FDNUIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWVmO0FBbUdEOztHQUVHO0FBQ0gsZUFBTyxNQUFNLG9CQUFvQixFQUFFLFVBMEJsQyxDQUFDO0FBa0NGOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0sWUFBWSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBNDhCOUQsQ0FBQztBQUVGOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsd0JBQWdCLHVCQUF1QixDQUFDLG1CQUFtQixHQUFFLE1BQWlCLEdBQUcsb0JBQW9CLEVBQUUsQ0FzQnRHO0FBNEZEOzs7R0FHRztBQUNILHdCQUFnQix3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsVUFBVSxHQUFHLE1BQU0sQ0FlbkU7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0IsNEJBQTRCLENBQUMsTUFBTSxFQUFFLFVBQVUsR0FBRyxNQUFNLENBbUJ2RTtBQTRERCx3QkFBc0Isa0JBQWtCLENBQ3RDLE1BQU0sRUFBRSx3QkFBd0IsRUFDaEMsTUFBTSxFQUFFLFVBQVUsRUFDbEIsY0FBYyxHQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sS0FBSyxJQUFlLEdBQzlDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FLekIifQ==
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2RlX3NwYW1tZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvZml4dHVyZXMvb3Bjb2RlX3NwYW1tZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0tBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQTJDLEtBQUssY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFLakYsT0FBTyxFQUFTLEtBQUssV0FBVyxFQUFnRCxNQUFNLDRCQUE0QixDQUFDO0FBa0RuSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFM0UsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQU1qRjs7R0FFRztBQUNILFVBQVUsUUFBUTtJQUNoQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsS0FBSyxFQUFFLFdBQVcsQ0FBQztDQUNwQjtBQUVEOzs7R0FHRztBQUNILEtBQUssU0FBUyxHQUFHLFFBQVEsR0FBRyxDQUFDLE1BQU0sVUFBVSxFQUFFLENBQUMsQ0FBQztBQUVqRDs7R0FFRztBQUNILE1BQU0sV0FBVyxVQUFVO0lBQ3pCLGlDQUFpQztJQUNqQyxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFFbkIsc0RBQXNEO0lBQ3RELGtCQUFrQixFQUFFLE1BQU0sVUFBVSxFQUFFLENBQUM7SUFFdkMsMkRBQTJEO0lBQzNELG1CQUFtQixDQUFDLEVBQUUsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUV6Qzs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBRWYsc0VBQXNFO0lBQ3RFLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUVmLDBEQUEwRDtJQUMxRCxpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sQ0FBQztDQUM3QjtBQUVEOzs7R0FHRztBQUNILE1BQU0sV0FBVyxvQkFBb0I7SUFDbkMsa0NBQWtDO0lBQ2xDLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFFZixxREFBcUQ7SUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO0NBQ3ZCO0FBTUQ7OztHQUdHO0FBQ0gsZUFBTyxNQUFNLGNBQWMsSUFBc0IsQ0FBQztBQUNsRCxlQUFPLE1BQU0saUJBQWlCLElBQThCLENBQUM7QUFFN0QsNkZBQTZGO0FBQzdGLGVBQU8sTUFBTSxxQkFBcUIsSUFBMEIsQ0FBQztBQUU3RCx1RkFBdUY7QUFDdkYsZUFBTyxNQUFNLGlCQUFpQixJQUEwQixDQUFDO0FBQ3pELGVBQU8sTUFBTSxrQkFBa0IsSUFBMEIsQ0FBQztBQUUxRDs7OztHQUlHO0FBQ0gsZUFBTyxNQUFNLHlCQUF5QixLQUFLLENBQUM7QUFDNUMsZUFBTyxNQUFNLDRCQUE0QixLQUFLLENBQUM7QUFFL0M7Ozs7Ozs7OztHQVNHO0FBQ0gsd0JBQXNCLHFCQUFxQixDQUN6QyxXQUFXLEVBQUUseUJBQXlCLEVBQ3RDLGVBQWUsRUFBRSxZQUFZLEdBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FjZjtBQW1HRDs7R0FFRztBQUNILGVBQU8sTUFBTSxvQkFBb0IsRUFBRSxVQTBCbEMsQ0FBQztBQWtDRjs7OztHQUlHO0FBQ0gsZUFBTyxNQUFNLFlBQVksRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQTA4QjlELENBQUM7QUFFRjs7Ozs7Ozs7Ozs7R0FXRztBQUNILHdCQUFnQix1QkFBdUIsQ0FBQyxtQkFBbUIsR0FBRSxNQUFpQixHQUFHLG9CQUFvQixFQUFFLENBc0J0RztBQTRGRDs7O0dBR0c7QUFDSCx3QkFBZ0Isd0JBQXdCLENBQUMsTUFBTSxFQUFFLFVBQVUsR0FBRyxNQUFNLENBZW5FO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLDRCQUE0QixDQUFDLE1BQU0sRUFBRSxVQUFVLEdBQUcsTUFBTSxDQW1CdkU7QUE0REQsd0JBQXNCLGtCQUFrQixDQUN0QyxNQUFNLEVBQUUsd0JBQXdCLEVBQ2hDLE1BQU0sRUFBRSxVQUFVLEVBQ2xCLGNBQWMsR0FBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEtBQUssSUFBZSxHQUM5QyxPQUFPLENBQUMsY0FBYyxDQUFDLENBS3pCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"opcode_spammer.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/opcode_spammer.ts"],"names":[],"mappings":"AAkKA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAA2C,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAKjF,OAAO,EAAS,KAAK,WAAW,EAAgD,MAAM,4BAA4B,CAAC;AAkDnH,OAAO,EAAE,MAAM,EAAE,MAAM,mDAAmD,CAAC;AAE3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAMjF;;GAEG;AACH,UAAU,QAAQ;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,WAAW,CAAC;CACpB;AAED;;;GAGG;AACH,KAAK,SAAS,GAAG,QAAQ,GAAG,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iCAAiC;IACjC,KAAK,EAAE,SAAS,EAAE,CAAC;IAEnB,sDAAsD;IACtD,kBAAkB,EAAE,MAAM,UAAU,EAAE,CAAC;IAEvC,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,MAAM,UAAU,EAAE,CAAC;IAEzC;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IAEf,qDAAqD;IACrD,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAMD;;;GAGG;AACH,eAAO,MAAM,cAAc,IAAsB,CAAC;AAClD,eAAO,MAAM,iBAAiB,IAA8B,CAAC;AAE7D,uGAAuG;AACvG,eAAO,MAAM,cAAc,IAA0B,CAAC;AACtD,eAAO,MAAM,sBAAsB,cAAkC,CAAC;AAEtE,uFAAuF;AACvF,eAAO,MAAM,iBAAiB,IAA0B,CAAC;AACzD,eAAO,MAAM,kBAAkB,IAA0B,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,yBAAyB,EACtC,eAAe,EAAE,YAAY,GAC5B,OAAO,CAAC,IAAI,CAAC,CAef;AAmGD;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,UA0BlC,CAAC;AAkCF;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CA48B9D,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,mBAAmB,GAAE,MAAiB,GAAG,oBAAoB,EAAE,CAsBtG;AA4FD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAenE;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAmBvE;AA4DD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,wBAAwB,EAChC,MAAM,EAAE,UAAU,EAClB,cAAc,GAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAe,GAC9C,OAAO,CAAC,cAAc,CAAC,CAKzB"}
1
+ {"version":3,"file":"opcode_spammer.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/opcode_spammer.ts"],"names":[],"mappings":"AAkKA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAA2C,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAKjF,OAAO,EAAS,KAAK,WAAW,EAAgD,MAAM,4BAA4B,CAAC;AAkDnH,OAAO,EAAE,MAAM,EAAE,MAAM,mDAAmD,CAAC;AAE3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAMjF;;GAEG;AACH,UAAU,QAAQ;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,WAAW,CAAC;CACpB;AAED;;;GAGG;AACH,KAAK,SAAS,GAAG,QAAQ,GAAG,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iCAAiC;IACjC,KAAK,EAAE,SAAS,EAAE,CAAC;IAEnB,sDAAsD;IACtD,kBAAkB,EAAE,MAAM,UAAU,EAAE,CAAC;IAEvC,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,MAAM,UAAU,EAAE,CAAC;IAEzC;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IAEf,qDAAqD;IACrD,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAMD;;;GAGG;AACH,eAAO,MAAM,cAAc,IAAsB,CAAC;AAClD,eAAO,MAAM,iBAAiB,IAA8B,CAAC;AAE7D,6FAA6F;AAC7F,eAAO,MAAM,qBAAqB,IAA0B,CAAC;AAE7D,uFAAuF;AACvF,eAAO,MAAM,iBAAiB,IAA0B,CAAC;AACzD,eAAO,MAAM,kBAAkB,IAA0B,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,yBAAyB,EACtC,eAAe,EAAE,YAAY,GAC5B,OAAO,CAAC,IAAI,CAAC,CAcf;AAmGD;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,UA0BlC,CAAC;AAkCF;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CA08B9D,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,mBAAmB,GAAE,MAAiB,GAAG,oBAAoB,EAAE,CAsBtG;AA4FD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAenE;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAmBvE;AA4DD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,wBAAwB,EAChC,MAAM,EAAE,UAAU,EAClB,cAAc,GAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAe,GAC9C,OAAO,CAAC,cAAc,CAAC,CAKzB"}
@@ -152,8 +152,7 @@ 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 { AztecAddress } from '@aztec/stdlib/aztec-address';
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';
@@ -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 constants - uses a fixed address since NULLIFIEREXISTS takes address as parameter */ export const WARM_NULLIFIER = new Fr(0xdeadbeef0001n);
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
- siloedNullifier.toBuffer()
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);
@@ -897,10 +894,14 @@ const STATIC_CALL_CONFIG = {
897
894
  {
898
895
  offset: 0,
899
896
  value: new Field(Fr.random())
900
- }
897
+ },
898
+ ()=>[
899
+ // Get current contract address into offset 1
900
+ new GetEnvVar(/*addressing_mode=*/ 0, /*dstOffset=*/ 1, /*varEnum=*/ 0).as(Opcode.GETENVVAR_16, GetEnvVar.wireFormat16)
901
+ ]
901
902
  ],
902
903
  targetInstructions: ()=>[
903
- new SLoad(/*addressing_mode=*/ 0, /*slotOffset=*/ 0, /*dstOffset=*/ 1)
904
+ new SLoad(/*addressing_mode=*/ 0, /*slotOffset=*/ 0, /*contractAddressOffset=*/ 1, /*dstOffset=*/ 2)
904
905
  ]
905
906
  },
906
907
  {
@@ -910,15 +911,19 @@ const STATIC_CALL_CONFIG = {
910
911
  {
911
912
  offset: 0,
912
913
  value: new Field(WARM_STORAGE_SLOT)
913
- }
914
+ },
915
+ ()=>[
916
+ // Get current contract address into offset 1
917
+ new GetEnvVar(/*addressing_mode=*/ 0, /*dstOffset=*/ 1, /*varEnum=*/ 0).as(Opcode.GETENVVAR_16, GetEnvVar.wireFormat16)
918
+ ]
914
919
  ],
915
920
  targetInstructions: ()=>[
916
- new SLoad(/*addressing_mode=*/ 0, /*slotOffset=*/ 0, /*dstOffset=*/ 1)
921
+ new SLoad(/*addressing_mode=*/ 0, /*slotOffset=*/ 0, /*contractAddressOffset=*/ 1, /*dstOffset=*/ 2)
917
922
  ]
918
923
  },
919
924
  {
920
925
  label: 'Warm read (SSTORE first, unique slot per SLOAD)',
921
- // Memory layout: slot (incremented), value, constant 1, revertSize, loaded value
926
+ // Memory layout: slot (incremented), value, constant 1, contract address (from GETENVVAR), revertSize, loaded value
922
927
  setup: [
923
928
  {
924
929
  offset: 0,
@@ -932,18 +937,22 @@ const STATIC_CALL_CONFIG = {
932
937
  offset: 2,
933
938
  value: new Field(1n)
934
939
  },
940
+ ()=>[
941
+ // Get current contract address into offset 3
942
+ new GetEnvVar(/*addressing_mode=*/ 0, /*dstOffset=*/ 3, /*varEnum=*/ 0).as(Opcode.GETENVVAR_16, GetEnvVar.wireFormat16)
943
+ ],
935
944
  {
936
- offset: 3,
945
+ offset: 4,
937
946
  value: new Uint32(0n)
938
947
  }
939
948
  ],
940
949
  targetInstructions: ()=>[
941
950
  new SStore(/*addressing_mode=*/ 0, /*srcOffset=*/ 1, /*slotOffset=*/ 0),
942
- new SLoad(/*addressing_mode=*/ 0, /*slotOffset=*/ 0, /*dstOffset=*/ 4),
951
+ new SLoad(/*addressing_mode=*/ 0, /*slotOffset=*/ 0, /*contractAddressOffset=*/ 3, /*dstOffset=*/ 5),
943
952
  new Add(/*addressing_mode=*/ 0, /*aOffset=*/ 0, /*bOffset=*/ 2, /*dstOffset=*/ 0).as(Opcode.ADD_8, Add.wireFormat8)
944
953
  ],
945
954
  cleanupInstructions: ()=>[
946
- new Revert(/*addressing_mode=*/ 0, /*retSizeOffset=*/ 3, /*returnOffset=*/ 0).as(Opcode.REVERT_8, Revert.wireFormat8)
955
+ new Revert(/*addressing_mode=*/ 0, /*retSizeOffset=*/ 4, /*returnOffset=*/ 0).as(Opcode.REVERT_8, Revert.wireFormat8)
947
956
  ],
948
957
  limit: MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX
949
958
  }
@@ -988,67 +997,30 @@ const STATIC_CALL_CONFIG = {
988
997
  [Opcode.NULLIFIEREXISTS]: [
989
998
  {
990
999
  label: 'Non-existent nullifier',
1000
+ // NULLIFIEREXISTS now takes a siloed nullifier directly (no address parameter)
991
1001
  setup: [
992
1002
  {
993
1003
  offset: 0,
994
1004
  value: new Field(Fr.random())
995
- },
996
- {
997
- offset: 1,
998
- value: new Field(Fr.random())
999
1005
  }
1000
1006
  ],
1001
1007
  targetInstructions: ()=>[
1002
- new NullifierExists(/*addressing_mode=*/ 0, /*nullifierOffset=*/ 0, /*addressOffset=*/ 1, /*existsOffset=*/ 2)
1008
+ new NullifierExists(/*addressing_mode=*/ 0, /*siloedNullifierOffset=*/ 0, /*existsOffset=*/ 1)
1003
1009
  ]
1004
1010
  },
1005
1011
  {
1006
1012
  label: 'Existing nullifier (warm - from tree)',
1007
- // Uses pre-inserted nullifier from insertWarmTreeEntries()
1013
+ // Uses pre-inserted siloed nullifier from insertWarmTreeEntries()
1014
+ // NULLIFIEREXISTS now takes a siloed nullifier directly
1008
1015
  setup: [
1009
1016
  {
1010
1017
  offset: 0,
1011
- value: new Field(WARM_NULLIFIER)
1012
- },
1013
- {
1014
- offset: 1,
1015
- value: new Field(WARM_NULLIFIER_ADDRESS.toField())
1018
+ value: new Field(WARM_SILOED_NULLIFIER)
1016
1019
  }
1017
1020
  ],
1018
1021
  targetInstructions: ()=>[
1019
- new NullifierExists(/*addressing_mode=*/ 0, /*nullifierOffset=*/ 0, /*addressOffset=*/ 1, /*existsOffset=*/ 2)
1022
+ new NullifierExists(/*addressing_mode=*/ 0, /*siloedNullifierOffset=*/ 0, /*existsOffset=*/ 1)
1020
1023
  ]
1021
- },
1022
- {
1023
- label: 'Existing nullifier (warm - EMITNULLIFIER first)',
1024
- // Memory layout: nullifier (incremented), constant 1, current address (from GETENVVAR), revertSize, exists result
1025
- setup: [
1026
- {
1027
- offset: 0,
1028
- value: new Field(Fr.random())
1029
- },
1030
- {
1031
- offset: 1,
1032
- value: new Field(1n)
1033
- },
1034
- ()=>[
1035
- // Get current contract address into offset 2
1036
- new GetEnvVar(/*addressing_mode=*/ 0, /*dstOffset=*/ 2, /*varEnum=*/ 0).as(Opcode.GETENVVAR_16, GetEnvVar.wireFormat16)
1037
- ],
1038
- {
1039
- offset: 3,
1040
- value: new Uint32(0n)
1041
- }
1042
- ],
1043
- targetInstructions: ()=>[
1044
- new EmitNullifier(/*addressing_mode=*/ 0, /*nullifierOffset=*/ 0),
1045
- new NullifierExists(/*addressing_mode=*/ 0, /*nullifierOffset=*/ 0, /*addressOffset=*/ 2, /*existsOffset=*/ 4),
1046
- new Add(/*addressing_mode=*/ 0, /*aOffset=*/ 0, /*bOffset=*/ 1, /*dstOffset=*/ 0).as(Opcode.ADD_8, Add.wireFormat8)
1047
- ],
1048
- cleanupInstructions: ()=>[
1049
- new Revert(/*addressing_mode=*/ 0, /*retSizeOffset=*/ 3, /*returnOffset=*/ 0).as(Opcode.REVERT_8, Revert.wireFormat8)
1050
- ],
1051
- limit: MAX_NULLIFIERS_PER_TX - 1
1052
1024
  }
1053
1025
  ],
1054
1026
  [Opcode.L1TOL2MSGEXISTS]: [
@@ -1,5 +1,5 @@
1
1
  import { EthAddress } from '@aztec/foundation/eth-address';
2
- import { deserializeFromMessagePack, serializeWithMessagePack } from '@aztec/stdlib/avm';
2
+ import { PublicTxEffect, deserializeFromMessagePack, serializeWithMessagePack } from '@aztec/stdlib/avm';
3
3
  import { TreeSnapshots } from '@aztec/stdlib/tx';
4
4
  import { NativeWorldStateService } from '@aztec/world-state';
5
5
  import { createInterface } from 'readline';
@@ -54,7 +54,8 @@ async function simulateWithFuzzer(dataDir, mapSizeKb, txHint, globals, rawContra
54
54
  reverted: !result.revertCode.isOK(),
55
55
  output,
56
56
  revertReason: result.findRevertReason()?.message,
57
- publicInputs: result.publicInputs
57
+ publicInputs: result.publicInputs,
58
+ publicTxEffect: result.publicTxEffect
58
59
  };
59
60
  }
60
61
  async function execute(base64Line) {
@@ -70,7 +71,8 @@ async function execute(base64Line) {
70
71
  reverted: result.reverted,
71
72
  output: result.output,
72
73
  revertReason: result.revertReason ?? '',
73
- endTreeSnapshots: result.publicInputs.endTreeSnapshots
74
+ endTreeSnapshots: result.publicInputs.endTreeSnapshots,
75
+ publicTxEffect: result.publicTxEffect
74
76
  });
75
77
  const base64Response = resultBuffer.toString('base64') + '\n';
76
78
  await writeOutput(base64Response);
@@ -80,7 +82,8 @@ async function execute(base64Line) {
80
82
  reverted: true,
81
83
  output: [],
82
84
  revertReason: `Unexpected Error ${error.message}`,
83
- endTreeSnapshots: TreeSnapshots.empty()
85
+ endTreeSnapshots: TreeSnapshots.empty(),
86
+ publicTxEffect: PublicTxEffect.empty()
84
87
  });
85
88
  await writeOutput(errorResult.toString('base64') + '\n');
86
89
  }