@aztec/simulator 0.40.1 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/dest/acvm/acvm.d.ts +2 -2
  2. package/dest/acvm/acvm.d.ts.map +1 -1
  3. package/dest/acvm/acvm.js +3 -3
  4. package/dest/acvm/oracle/oracle.d.ts +6 -2
  5. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  6. package/dest/acvm/oracle/oracle.js +31 -19
  7. package/dest/acvm/oracle/typed_oracle.d.ts +8 -11
  8. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  9. package/dest/acvm/oracle/typed_oracle.js +17 -5
  10. package/dest/acvm/serialize.js +2 -2
  11. package/dest/avm/avm_execution_environment.d.ts +4 -3
  12. package/dest/avm/avm_execution_environment.d.ts.map +1 -1
  13. package/dest/avm/avm_execution_environment.js +7 -5
  14. package/dest/avm/avm_gas.d.ts +1 -5
  15. package/dest/avm/avm_gas.d.ts.map +1 -1
  16. package/dest/avm/avm_gas.js +67 -73
  17. package/dest/avm/avm_simulator.d.ts +5 -0
  18. package/dest/avm/avm_simulator.d.ts.map +1 -1
  19. package/dest/avm/avm_simulator.js +12 -4
  20. package/dest/avm/errors.d.ts +6 -0
  21. package/dest/avm/errors.d.ts.map +1 -1
  22. package/dest/avm/errors.js +10 -1
  23. package/dest/avm/fixtures/index.d.ts +3 -0
  24. package/dest/avm/fixtures/index.d.ts.map +1 -1
  25. package/dest/avm/fixtures/index.js +15 -3
  26. package/dest/avm/index.d.ts +2 -0
  27. package/dest/avm/index.d.ts.map +1 -0
  28. package/dest/avm/index.js +2 -0
  29. package/dest/avm/journal/host_storage.d.ts +1 -1
  30. package/dest/avm/journal/host_storage.d.ts.map +1 -1
  31. package/dest/avm/journal/journal.d.ts +4 -3
  32. package/dest/avm/journal/journal.d.ts.map +1 -1
  33. package/dest/avm/journal/journal.js +10 -11
  34. package/dest/avm/journal/nullifiers.d.ts +17 -5
  35. package/dest/avm/journal/nullifiers.d.ts.map +1 -1
  36. package/dest/avm/journal/nullifiers.js +27 -10
  37. package/dest/avm/journal/public_storage.d.ts +19 -6
  38. package/dest/avm/journal/public_storage.d.ts.map +1 -1
  39. package/dest/avm/journal/public_storage.js +30 -12
  40. package/dest/avm/journal/trace.d.ts +2 -0
  41. package/dest/avm/journal/trace.d.ts.map +1 -1
  42. package/dest/avm/journal/trace.js +7 -1
  43. package/dest/avm/journal/trace_types.d.ts +1 -0
  44. package/dest/avm/journal/trace_types.d.ts.map +1 -1
  45. package/dest/avm/journal/trace_types.js +1 -1
  46. package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
  47. package/dest/avm/opcodes/accrued_substate.js +6 -7
  48. package/dest/avm/opcodes/arithmetic.d.ts +1 -7
  49. package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
  50. package/dest/avm/opcodes/arithmetic.js +1 -12
  51. package/dest/avm/opcodes/conversion.js +2 -2
  52. package/dest/avm/opcodes/external_calls.d.ts +2 -2
  53. package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
  54. package/dest/avm/opcodes/external_calls.js +25 -13
  55. package/dest/avm/opcodes/instruction.d.ts +1 -1
  56. package/dest/avm/opcodes/instruction.d.ts.map +1 -1
  57. package/dest/avm/opcodes/instruction.js +6 -4
  58. package/dest/avm/opcodes/memory.d.ts +0 -4
  59. package/dest/avm/opcodes/memory.d.ts.map +1 -1
  60. package/dest/avm/opcodes/memory.js +1 -7
  61. package/dest/avm/opcodes/storage.d.ts +0 -12
  62. package/dest/avm/opcodes/storage.d.ts.map +1 -1
  63. package/dest/avm/opcodes/storage.js +3 -18
  64. package/dest/avm/serialization/bytecode_serialization.js +2 -2
  65. package/dest/client/client_execution_context.d.ts +30 -20
  66. package/dest/client/client_execution_context.d.ts.map +1 -1
  67. package/dest/client/client_execution_context.js +59 -39
  68. package/dest/client/db_oracle.d.ts +17 -12
  69. package/dest/client/db_oracle.d.ts.map +1 -1
  70. package/dest/client/execution_note_cache.js +2 -2
  71. package/dest/client/execution_result.d.ts +17 -2
  72. package/dest/client/execution_result.d.ts.map +1 -1
  73. package/dest/client/execution_result.js +32 -4
  74. package/dest/client/private_execution.d.ts +2 -3
  75. package/dest/client/private_execution.d.ts.map +1 -1
  76. package/dest/client/private_execution.js +22 -8
  77. package/dest/client/simulator.d.ts +0 -16
  78. package/dest/client/simulator.d.ts.map +1 -1
  79. package/dest/client/simulator.js +13 -30
  80. package/dest/client/unconstrained_execution.d.ts +2 -3
  81. package/dest/client/unconstrained_execution.d.ts.map +1 -1
  82. package/dest/client/unconstrained_execution.js +5 -7
  83. package/dest/client/view_data_oracle.d.ts +12 -10
  84. package/dest/client/view_data_oracle.d.ts.map +1 -1
  85. package/dest/client/view_data_oracle.js +17 -11
  86. package/dest/common/index.d.ts +1 -0
  87. package/dest/common/index.d.ts.map +1 -1
  88. package/dest/common/index.js +2 -1
  89. package/dest/common/return_values.d.ts +11 -0
  90. package/dest/common/return_values.d.ts.map +1 -0
  91. package/dest/common/return_values.js +13 -0
  92. package/dest/index.d.ts +3 -1
  93. package/dest/index.d.ts.map +1 -1
  94. package/dest/index.js +4 -2
  95. package/dest/mocks/fixtures.d.ts +15 -10
  96. package/dest/mocks/fixtures.d.ts.map +1 -1
  97. package/dest/mocks/fixtures.js +22 -17
  98. package/dest/{simulator → providers}/acvm_native.d.ts.map +1 -1
  99. package/dest/{simulator → providers}/acvm_native.js +13 -14
  100. package/dest/providers/acvm_wasm.d.ts.map +1 -0
  101. package/dest/providers/acvm_wasm.js +15 -0
  102. package/dest/providers/index.d.ts.map +1 -0
  103. package/dest/{simulator → providers}/index.js +1 -1
  104. package/dest/{simulator → providers}/simulation_provider.d.ts.map +1 -1
  105. package/dest/{simulator → providers}/simulation_provider.js +1 -1
  106. package/dest/public/abstract_phase_manager.d.ts +43 -42
  107. package/dest/public/abstract_phase_manager.d.ts.map +1 -1
  108. package/dest/public/abstract_phase_manager.js +81 -103
  109. package/dest/public/app_logic_phase_manager.d.ts +7 -8
  110. package/dest/public/app_logic_phase_manager.d.ts.map +1 -1
  111. package/dest/public/app_logic_phase_manager.js +14 -14
  112. package/dest/public/{db.d.ts → db_interfaces.d.ts} +3 -3
  113. package/dest/public/db_interfaces.d.ts.map +1 -0
  114. package/dest/public/db_interfaces.js +2 -0
  115. package/dest/public/execution.d.ts +17 -14
  116. package/dest/public/execution.d.ts.map +1 -1
  117. package/dest/public/execution.js +1 -1
  118. package/dest/public/executor.d.ts +3 -30
  119. package/dest/public/executor.d.ts.map +1 -1
  120. package/dest/public/executor.js +32 -279
  121. package/dest/public/fee_payment.d.ts +11 -0
  122. package/dest/public/fee_payment.d.ts.map +1 -0
  123. package/dest/public/fee_payment.js +24 -0
  124. package/dest/public/hints_builder.d.ts +3 -2
  125. package/dest/public/hints_builder.d.ts.map +1 -1
  126. package/dest/public/hints_builder.js +8 -4
  127. package/dest/public/index.d.ts +4 -2
  128. package/dest/public/index.d.ts.map +1 -1
  129. package/dest/public/index.js +5 -3
  130. package/dest/public/phase_manager_factory.d.ts +1 -1
  131. package/dest/public/phase_manager_factory.d.ts.map +1 -1
  132. package/dest/public/{public_executor.d.ts → public_db_sources.d.ts} +3 -2
  133. package/dest/public/public_db_sources.d.ts.map +1 -0
  134. package/dest/public/public_db_sources.js +198 -0
  135. package/dest/public/public_kernel.js +14 -14
  136. package/dest/public/public_processor.d.ts +8 -6
  137. package/dest/public/public_processor.d.ts.map +1 -1
  138. package/dest/public/public_processor.js +48 -29
  139. package/dest/public/setup_phase_manager.d.ts +7 -9
  140. package/dest/public/setup_phase_manager.d.ts.map +1 -1
  141. package/dest/public/setup_phase_manager.js +11 -20
  142. package/dest/public/tail_phase_manager.d.ts +5 -11
  143. package/dest/public/tail_phase_manager.d.ts.map +1 -1
  144. package/dest/public/tail_phase_manager.js +16 -36
  145. package/dest/public/teardown_phase_manager.d.ts +7 -9
  146. package/dest/public/teardown_phase_manager.d.ts.map +1 -1
  147. package/dest/public/teardown_phase_manager.js +15 -21
  148. package/dest/public/transitional_adaptors.d.ts +3 -2
  149. package/dest/public/transitional_adaptors.d.ts.map +1 -1
  150. package/dest/public/transitional_adaptors.js +24 -8
  151. package/dest/public/utils.d.ts +2 -2
  152. package/dest/public/utils.d.ts.map +1 -1
  153. package/dest/public/utils.js +21 -14
  154. package/package.json +12 -9
  155. package/src/acvm/acvm.ts +0 -3
  156. package/src/acvm/oracle/oracle.ts +53 -27
  157. package/src/acvm/oracle/typed_oracle.ts +25 -16
  158. package/src/acvm/serialize.ts +1 -1
  159. package/src/avm/avm_execution_environment.ts +9 -5
  160. package/src/avm/avm_gas.ts +66 -73
  161. package/src/avm/avm_simulator.ts +14 -3
  162. package/src/avm/errors.ts +10 -0
  163. package/src/avm/fixtures/index.ts +22 -2
  164. package/src/avm/index.ts +1 -0
  165. package/src/avm/journal/host_storage.ts +1 -1
  166. package/src/avm/journal/journal.ts +15 -14
  167. package/src/avm/journal/nullifiers.ts +27 -14
  168. package/src/avm/journal/public_storage.ts +30 -16
  169. package/src/avm/journal/trace.ts +12 -0
  170. package/src/avm/journal/trace_types.ts +1 -0
  171. package/src/avm/opcodes/accrued_substate.ts +5 -6
  172. package/src/avm/opcodes/arithmetic.ts +1 -14
  173. package/src/avm/opcodes/conversion.ts +1 -1
  174. package/src/avm/opcodes/external_calls.ts +26 -10
  175. package/src/avm/opcodes/instruction.ts +5 -3
  176. package/src/avm/opcodes/memory.ts +1 -8
  177. package/src/avm/opcodes/storage.ts +3 -20
  178. package/src/avm/serialization/bytecode_serialization.ts +1 -1
  179. package/src/client/client_execution_context.ts +70 -44
  180. package/src/client/db_oracle.ts +18 -12
  181. package/src/client/execution_note_cache.ts +1 -1
  182. package/src/client/execution_result.ts +41 -3
  183. package/src/client/private_execution.ts +38 -20
  184. package/src/client/simulator.ts +11 -32
  185. package/src/client/unconstrained_execution.ts +9 -12
  186. package/src/client/view_data_oracle.ts +20 -12
  187. package/src/common/index.ts +1 -0
  188. package/src/common/return_values.ts +18 -0
  189. package/src/index.ts +3 -1
  190. package/src/mocks/fixtures.ts +31 -33
  191. package/src/{simulator → providers}/acvm_native.ts +21 -19
  192. package/src/{simulator → providers}/acvm_wasm.ts +2 -16
  193. package/src/public/abstract_phase_manager.ts +146 -207
  194. package/src/public/app_logic_phase_manager.ts +23 -39
  195. package/src/public/{db.ts → db_interfaces.ts} +2 -2
  196. package/src/public/execution.ts +17 -14
  197. package/src/public/executor.ts +51 -391
  198. package/src/public/fee_payment.ts +26 -0
  199. package/src/public/hints_builder.ts +17 -3
  200. package/src/public/index.ts +4 -2
  201. package/src/public/phase_manager_factory.ts +1 -1
  202. package/src/public/{public_executor.ts → public_db_sources.ts} +3 -2
  203. package/src/public/public_kernel.ts +24 -24
  204. package/src/public/public_processor.ts +82 -38
  205. package/src/public/setup_phase_manager.ts +20 -45
  206. package/src/public/tail_phase_manager.ts +18 -68
  207. package/src/public/teardown_phase_manager.ts +22 -41
  208. package/src/public/transitional_adaptors.ts +24 -13
  209. package/src/public/utils.ts +20 -14
  210. package/dest/client/logs_cache.d.ts +0 -33
  211. package/dest/client/logs_cache.d.ts.map +0 -1
  212. package/dest/client/logs_cache.js +0 -59
  213. package/dest/public/db.d.ts.map +0 -1
  214. package/dest/public/db.js +0 -2
  215. package/dest/public/public_execution_context.d.ts +0 -121
  216. package/dest/public/public_execution_context.d.ts.map +0 -1
  217. package/dest/public/public_execution_context.js +0 -214
  218. package/dest/public/public_executor.d.ts.map +0 -1
  219. package/dest/public/public_executor.js +0 -197
  220. package/dest/public/state_actions.d.ts +0 -39
  221. package/dest/public/state_actions.d.ts.map +0 -1
  222. package/dest/public/state_actions.js +0 -80
  223. package/dest/simulator/acvm_wasm.d.ts.map +0 -1
  224. package/dest/simulator/acvm_wasm.js +0 -22
  225. package/dest/simulator/index.d.ts.map +0 -1
  226. package/src/client/logs_cache.ts +0 -65
  227. package/src/public/public_execution_context.ts +0 -289
  228. package/src/public/state_actions.ts +0 -102
  229. /package/dest/{simulator → providers}/acvm_native.d.ts +0 -0
  230. /package/dest/{simulator → providers}/acvm_wasm.d.ts +0 -0
  231. /package/dest/{simulator → providers}/index.d.ts +0 -0
  232. /package/dest/{simulator → providers}/simulation_provider.d.ts +0 -0
  233. /package/src/{simulator → providers}/index.ts +0 -0
  234. /package/src/{simulator → providers}/simulation_provider.ts +0 -0
@@ -69,4 +69,4 @@ export function checkValidStaticCall(newNoteHashes, newNullifiers, contractStora
69
69
  throw new Error('Static call cannot update the state, emit L2->L1 messages or generate logs');
70
70
  }
71
71
  }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9leGVjdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQVFMLGNBQWMsRUFDZCx1QkFBdUIsR0FHeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQXdFcEc7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsS0FBOEM7SUFFOUMsT0FBTyxXQUFXLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDO0FBQy9ELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxVQUFpQztJQUN0RSxpSEFBaUg7SUFDakgsTUFBTSx1QkFBdUIsR0FBRyxVQUFVLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ3pFLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxDQUMxQyxDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUc7UUFDZixHQUFHLHVCQUF1QjtRQUMxQixHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN0RixDQUFDO0lBQ0YsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFrQixHQUFHLENBQUMsQ0FBQyxpQkFBa0IsQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSwrQkFBK0IsQ0FBQyxVQUFpQztJQUMvRSxpSEFBaUg7SUFDakgsTUFBTSxnQ0FBZ0MsR0FBRyxVQUFVLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQzdGLHFEQUFxRCxDQUFDLE1BQU0sQ0FBQyxDQUM5RCxDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUc7UUFDZixHQUFHLGdDQUFnQztRQUNuQyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUMvRixDQUFDO0lBQ0YsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFrQixHQUFHLENBQUMsQ0FBQyxpQkFBa0IsQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsbUNBQW1DLENBQUMsSUFBeUI7SUFDcEUsT0FBTyxJQUFJLGNBQWMsQ0FDdkIsNkJBQTZCLENBQUMsSUFBSSxDQUFDLGVBQWdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUN0RSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQzdDLElBQUksQ0FBQyxpQkFBa0IsQ0FDeEIsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMscURBQXFELENBQzVELE1BQW9DO0lBRXBDLE9BQU8sSUFBSSx1QkFBdUIsQ0FDaEMsNkJBQTZCLENBQUMsTUFBTSxDQUFDLGVBQWdCLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUMxRSwwQkFBMEIsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQzNDLE1BQU0sQ0FBQyxpQkFBa0IsQ0FDMUIsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFFSCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLGFBQXlCLEVBQ3pCLGFBQTBCLEVBQzFCLDZCQUE2RCxFQUM3RCxpQkFBa0MsRUFDbEMsZUFBMEM7SUFFMUMsSUFDRSw2QkFBNkIsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUN4QyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDeEIsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ3hCLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQzVCLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDL0IsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsNEVBQTRFLENBQUMsQ0FBQztJQUNoRyxDQUFDO0FBQ0gsQ0FBQyJ9
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9leGVjdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQVVMLGNBQWMsRUFDZCx1QkFBdUIsR0FFeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQTBFcEc7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsS0FBOEM7SUFFOUMsT0FBTyxXQUFXLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDO0FBQy9ELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxVQUFpQztJQUN0RSxpSEFBaUg7SUFDakgsTUFBTSx1QkFBdUIsR0FBRyxVQUFVLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ3pFLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxDQUMxQyxDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUc7UUFDZixHQUFHLHVCQUF1QjtRQUMxQixHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN0RixDQUFDO0lBQ0YsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFrQixHQUFHLENBQUMsQ0FBQyxpQkFBa0IsQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSwrQkFBK0IsQ0FBQyxVQUFpQztJQUMvRSxpSEFBaUg7SUFDakgsTUFBTSxnQ0FBZ0MsR0FBRyxVQUFVLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQzdGLHFEQUFxRCxDQUFDLE1BQU0sQ0FBQyxDQUM5RCxDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUc7UUFDZixHQUFHLGdDQUFnQztRQUNuQyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUMvRixDQUFDO0lBQ0YsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFrQixHQUFHLENBQUMsQ0FBQyxpQkFBa0IsQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsbUNBQW1DLENBQUMsSUFBeUI7SUFDcEUsT0FBTyxJQUFJLGNBQWMsQ0FDdkIsNkJBQTZCLENBQUMsSUFBSSxDQUFDLGVBQWdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUN0RSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQzdDLElBQUksQ0FBQyxpQkFBa0IsQ0FDeEIsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMscURBQXFELENBQzVELE1BQW9DO0lBRXBDLE9BQU8sSUFBSSx1QkFBdUIsQ0FDaEMsNkJBQTZCLENBQUMsTUFBTSxDQUFDLGVBQWdCLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUMxRSwwQkFBMEIsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQzNDLE1BQU0sQ0FBQyxpQkFBa0IsQ0FDMUIsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFFSCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLGFBQXlCLEVBQ3pCLGFBQTBCLEVBQzFCLDZCQUE2RCxFQUM3RCxpQkFBa0MsRUFDbEMsZUFBMEM7SUFFMUMsSUFDRSw2QkFBNkIsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUN4QyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDeEIsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ3hCLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQzVCLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDL0IsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsNEVBQTRFLENBQUMsQ0FBQztJQUNoRyxDQUFDO0FBQ0gsQ0FBQyJ9
@@ -1,12 +1,6 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import { Fr, Gas, type GlobalVariables, type Header, type Nullifier, type TxContext } from '@aztec/circuits.js';
3
- import { type CommitmentsDB, type PublicContractsDB, type PublicStateDB } from './db.js';
1
+ import { Fr, type Gas, type GlobalVariables, type Header, type Nullifier, type TxContext } from '@aztec/circuits.js';
2
+ import { type CommitmentsDB, type PublicContractsDB, type PublicStateDB } from './db_interfaces.js';
4
3
  import { type PublicExecution, type PublicExecutionResult } from './execution.js';
5
- import { PublicExecutionContext } from './public_execution_context.js';
6
- /**
7
- * Execute a public function and return the execution result.
8
- */
9
- export declare function executePublicFunction(context: PublicExecutionContext, nested: boolean): Promise<PublicExecutionResult>;
10
4
  /**
11
5
  * Handles execution of public functions.
12
6
  */
@@ -16,7 +10,7 @@ export declare class PublicExecutor {
16
10
  private readonly commitmentsDb;
17
11
  private readonly header;
18
12
  constructor(stateDb: PublicStateDB, contractsDb: PublicContractsDB, commitmentsDb: CommitmentsDB, header: Header);
19
- private readonly log;
13
+ static readonly log: import("@aztec/foundation/log").Logger;
20
14
  /**
21
15
  * Executes a public execution request.
22
16
  * @param execution - The execution to run.
@@ -24,26 +18,5 @@ export declare class PublicExecutor {
24
18
  * @returns The result of the run plus all nested runs.
25
19
  */
26
20
  simulate(execution: PublicExecution, globalVariables: GlobalVariables, availableGas: Gas, txContext: TxContext, pendingNullifiers: Nullifier[], transactionFee?: Fr, sideEffectCounter?: number): Promise<PublicExecutionResult>;
27
- /**
28
- * These functions are currently housed in the temporary executor as it relies on access to
29
- * oracles like the contractsDB and this is the least intrusive way to achieve this.
30
- * When we remove this executor(tracking issue #4792) and have an interface that is compatible with the kernel circuits,
31
- * this will be moved to sequencer-client/prover.
32
- */
33
- /**
34
- * Generates a proof for an associated avm execution. This is currently only used for testing purposes,
35
- * as proof generation is not fully complete in the AVM yet.
36
- * @param execution - The execution to run.
37
- * @returns An AVM proof and the verification key.
38
- */
39
- getAvmProof(avmExecution: PublicExecution): Promise<Buffer[]>;
40
- /**
41
- * Verifies an AVM proof. This function is currently only used for testing purposes, as verification
42
- * is not fully complete in the AVM yet.
43
- * @param vk - The verification key to use.
44
- * @param proof - The proof to verify.
45
- * @returns True if the proof is valid, false otherwise.
46
- */
47
- verifyAvmProof(vk: Buffer, proof: Buffer): Promise<boolean>;
48
21
  }
49
22
  //# sourceMappingURL=executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/public/executor.ts"],"names":[],"mappings":";AACA,OAAO,EACL,EAAE,EACF,GAAG,EACH,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,SAAS,EAEd,KAAK,SAAS,EACf,MAAM,oBAAoB,CAAC;AAiB5B,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAwB,MAAM,gBAAgB,CAAC;AACxG,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAGvE;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,qBAAqB,CAAC,CAgBhC;AAuND;;GAEG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAHN,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,iBAAiB,EAC9B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM;IAGjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAwD;IAC5E;;;;;OAKG;IACU,QAAQ,CACnB,SAAS,EAAE,eAAe,EAC1B,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,GAAG,EACjB,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,SAAS,EAAE,EAC9B,cAAc,GAAE,EAAY,EAC5B,iBAAiB,GAAE,MAAU,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAmCjC;;;;;OAKG;IAEH;;;;;OAKG;IACU,WAAW,CAAC,YAAY,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgE1E;;;;;;OAMG;IACG,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAgClE"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/public/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,KAAK,GAAG,EAAE,KAAK,eAAe,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAQrH,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpG,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAwB,MAAM,gBAAgB,CAAC;AAGxG;;GAEG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAHN,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,iBAAiB,EAC9B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM;IAGjC,MAAM,CAAC,QAAQ,CAAC,GAAG,yCAAwD;IAE3E;;;;;OAKG;IACU,QAAQ,CACnB,SAAS,EAAE,eAAe,EAC1B,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,GAAG,EACjB,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,SAAS,EAAE,EAC9B,cAAc,GAAE,EAAY,EAC5B,iBAAiB,GAAE,MAAU,GAC5B,OAAO,CAAC,qBAAqB,CAAC;CAkElC"}
@@ -1,183 +1,12 @@
1
- import { UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
2
- import { Fr, Gas, PublicCircuitPublicInputs, } from '@aztec/circuits.js';
1
+ import { Fr } from '@aztec/circuits.js';
3
2
  import { createDebugLogger } from '@aztec/foundation/log';
4
- import { spawn } from 'child_process';
5
- import fs from 'fs/promises';
6
- import path from 'path';
7
- import { Oracle, acvm, extractCallStack, witnessMapToFields } from '../acvm/index.js';
8
3
  import { AvmContext } from '../avm/avm_context.js';
9
4
  import { AvmMachineState } from '../avm/avm_machine_state.js';
10
5
  import { AvmSimulator } from '../avm/avm_simulator.js';
11
6
  import { HostStorage } from '../avm/journal/host_storage.js';
12
7
  import { AvmPersistableStateManager } from '../avm/journal/index.js';
13
- import { AcirSimulator } from '../client/simulator.js';
14
- import { ExecutionError, createSimulationError } from '../common/errors.js';
15
- import { SideEffectCounter } from '../common/index.js';
16
- import { PackedValuesCache } from '../common/packed_values_cache.js';
17
8
  import { checkValidStaticCall } from './execution.js';
18
- import { PublicExecutionContext } from './public_execution_context.js';
19
- import { convertAvmResultsToPxResult, createAvmExecutionEnvironment, isAvmBytecode } from './transitional_adaptors.js';
20
- /**
21
- * Execute a public function and return the execution result.
22
- */
23
- export async function executePublicFunction(context, nested) {
24
- const bytecode = await context.contractsDb.getBytecode(context.execution.contractAddress, context.execution.functionData.selector);
25
- if (!bytecode) {
26
- throw new Error(`Bytecode not found for ${context.execution.contractAddress}:${context.execution.functionData.selector}`);
27
- }
28
- if (isAvmBytecode(bytecode)) {
29
- return await executeTopLevelPublicFunctionAvm(context, bytecode);
30
- }
31
- else {
32
- return await executePublicFunctionAcvm(context, bytecode, nested);
33
- }
34
- }
35
- /**
36
- * Execute a top-level public function call (the first call in an enqueued-call/execution-request) in the AVM.
37
- * Translate the results back to the PublicExecutionResult format.
38
- */
39
- async function executeTopLevelPublicFunctionAvm(executionContext, bytecode) {
40
- const address = executionContext.execution.contractAddress;
41
- const selector = executionContext.execution.functionData.selector;
42
- const startGas = executionContext.availableGas;
43
- const log = createDebugLogger('aztec:simulator:public_execution');
44
- log.verbose(`[AVM] Executing public external function ${address.toString()}:${selector}.`);
45
- // Temporary code to construct the AVM context
46
- // These data structures will permeate across the simulator when the public executor is phased out
47
- const hostStorage = new HostStorage(executionContext.stateDb, executionContext.contractsDb, executionContext.commitmentsDb);
48
- // TODO(6207): add sideEffectCounter to persistableState construction
49
- // or modify the PersistableStateManager to manage rollbacks across enqueued-calls and transactions.
50
- const worldStateJournal = new AvmPersistableStateManager(hostStorage);
51
- const startSideEffectCounter = executionContext.execution.callContext.sideEffectCounter;
52
- for (const nullifier of executionContext.pendingNullifiers) {
53
- worldStateJournal.nullifiers.cache.appendSiloed(nullifier.value);
54
- }
55
- worldStateJournal.trace.accessCounter = startSideEffectCounter;
56
- const executionEnv = createAvmExecutionEnvironment(executionContext.execution, executionContext.header, executionContext.globalVariables, executionContext.gasSettings, executionContext.transactionFee);
57
- const machineState = new AvmMachineState(startGas);
58
- const avmContext = new AvmContext(worldStateJournal, executionEnv, machineState);
59
- const simulator = new AvmSimulator(avmContext);
60
- const avmResult = await simulator.executeBytecode(bytecode);
61
- // Commit the journals state to the DBs since this is a top-level execution.
62
- // Observe that this will write all the state changes to the DBs, not only the latest for each slot.
63
- // However, the underlying DB keep a cache and will only write the latest state to disk.
64
- await avmContext.persistableState.publicStorage.commitToDB();
65
- log.verbose(`[AVM] ${address.toString()}:${selector} returned, reverted: ${avmResult.reverted}, reason: ${avmResult.revertReason}.`);
66
- return convertAvmResultsToPxResult(avmResult, startSideEffectCounter, executionContext.execution, startGas, avmContext);
67
- }
68
- async function executePublicFunctionAcvm(context, acir, nested) {
69
- const execution = context.execution;
70
- const { contractAddress, functionData } = execution;
71
- const selector = functionData.selector;
72
- const log = createDebugLogger('aztec:simulator:public_execution');
73
- log.verbose(`[ACVM] Executing public external function ${contractAddress.toString()}:${selector}.`);
74
- const initialWitness = context.getInitialWitness();
75
- const acvmCallback = new Oracle(context);
76
- const { partialWitness, returnWitnessMap, reverted, revertReason } = await (async () => {
77
- try {
78
- const result = await acvm(await AcirSimulator.getSolver(), acir, initialWitness, acvmCallback);
79
- return {
80
- partialWitness: result.partialWitness,
81
- returnWitnessMap: result.returnWitness,
82
- reverted: false,
83
- revertReason: undefined,
84
- };
85
- }
86
- catch (err_) {
87
- const err = err_;
88
- const ee = new ExecutionError(err.message, {
89
- contractAddress,
90
- functionSelector: selector,
91
- }, extractCallStack(err), { cause: err });
92
- if (nested) {
93
- // If we're nested, throw the error so the parent can handle it
94
- throw ee;
95
- }
96
- else {
97
- return {
98
- partialWitness: undefined,
99
- returnWitnessMap: undefined,
100
- reverted: true,
101
- revertReason: createSimulationError(ee),
102
- };
103
- }
104
- }
105
- })();
106
- if (reverted) {
107
- return {
108
- execution,
109
- returnValues: [],
110
- newNoteHashes: [],
111
- newL2ToL1Messages: [],
112
- // TODO (side effects) get these values in the revert case from the vm
113
- startSideEffectCounter: Fr.ZERO,
114
- endSideEffectCounter: Fr.ZERO,
115
- newNullifiers: [],
116
- nullifierReadRequests: [],
117
- nullifierNonExistentReadRequests: [],
118
- contractStorageReads: [],
119
- contractStorageUpdateRequests: [],
120
- nestedExecutions: [],
121
- unencryptedLogsHashes: [],
122
- unencryptedLogs: UnencryptedFunctionL2Logs.empty(),
123
- unencryptedLogPreimagesLength: new Fr(4n), // empty logs have len 4
124
- allUnencryptedLogs: UnencryptedFunctionL2Logs.empty(),
125
- reverted,
126
- revertReason,
127
- startGasLeft: context.availableGas,
128
- endGasLeft: Gas.empty(),
129
- transactionFee: context.transactionFee,
130
- };
131
- }
132
- if (!partialWitness) {
133
- throw new Error('No partial witness returned from ACVM');
134
- }
135
- const returnWitness = witnessMapToFields(returnWitnessMap);
136
- const { returnsHash, nullifierReadRequests: nullifierReadRequestsPadded, nullifierNonExistentReadRequests: nullifierNonExistentReadRequestsPadded, newL2ToL1Msgs, newNoteHashes: newNoteHashesPadded, newNullifiers: newNullifiersPadded, startSideEffectCounter, endSideEffectCounter, unencryptedLogsHashes: unencryptedLogsHashesPadded, unencryptedLogPreimagesLength, } = PublicCircuitPublicInputs.fromFields(returnWitness);
137
- const returnValues = await context.unpackReturns(returnsHash);
138
- const nullifierReadRequests = nullifierReadRequestsPadded.filter(v => !v.isEmpty());
139
- const nullifierNonExistentReadRequests = nullifierNonExistentReadRequestsPadded.filter(v => !v.isEmpty());
140
- const newL2ToL1Messages = newL2ToL1Msgs.filter(v => !v.isEmpty());
141
- const newNoteHashes = newNoteHashesPadded.filter(v => !v.isEmpty());
142
- const newNullifiers = newNullifiersPadded.filter(v => !v.isEmpty());
143
- const unencryptedLogsHashes = unencryptedLogsHashesPadded.filter(v => !v.isEmpty());
144
- const { contractStorageReads, contractStorageUpdateRequests } = context.getStorageActionData();
145
- log.debug(`Contract storage reads: ${contractStorageReads
146
- .map(r => r.toFriendlyJSON() + ` - sec: ${r.sideEffectCounter}`)
147
- .join(', ')}`);
148
- log.debug(`Contract storage update requests: ${contractStorageUpdateRequests
149
- .map(r => r.toFriendlyJSON() + ` - sec: ${r.sideEffectCounter}`)
150
- .join(', ')}`);
151
- const nestedExecutions = context.getNestedExecutions();
152
- const unencryptedLogs = context.getUnencryptedLogs();
153
- const allUnencryptedLogs = context.getAllUnencryptedLogs();
154
- // TODO(palla/gas): We should be loading these values from the returned PublicCircuitPublicInputs
155
- const startGasLeft = context.availableGas;
156
- const endGasLeft = context.availableGas; // No gas consumption in non-AVM
157
- return {
158
- execution,
159
- newNoteHashes,
160
- newL2ToL1Messages,
161
- newNullifiers,
162
- startSideEffectCounter,
163
- endSideEffectCounter,
164
- nullifierReadRequests,
165
- nullifierNonExistentReadRequests,
166
- contractStorageReads,
167
- contractStorageUpdateRequests,
168
- returnValues,
169
- nestedExecutions,
170
- unencryptedLogsHashes,
171
- unencryptedLogs,
172
- unencryptedLogPreimagesLength,
173
- allUnencryptedLogs,
174
- reverted: false,
175
- revertReason: undefined,
176
- startGasLeft,
177
- endGasLeft,
178
- transactionFee: context.transactionFee,
179
- };
180
- }
9
+ import { convertAvmResultsToPxResult, createAvmExecutionEnvironment } from './transitional_adaptors.js';
181
10
  /**
182
11
  * Handles execution of public functions.
183
12
  */
@@ -187,7 +16,6 @@ export class PublicExecutor {
187
16
  this.contractsDb = contractsDb;
188
17
  this.commitmentsDb = commitmentsDb;
189
18
  this.header = header;
190
- this.log = createDebugLogger('aztec:simulator:public_executor');
191
19
  }
192
20
  /**
193
21
  * Executes a public execution request.
@@ -196,113 +24,38 @@ export class PublicExecutor {
196
24
  * @returns The result of the run plus all nested runs.
197
25
  */
198
26
  async simulate(execution, globalVariables, availableGas, txContext, pendingNullifiers, transactionFee = Fr.ZERO, sideEffectCounter = 0) {
199
- // Functions can request to pack arguments before calling other functions.
200
- // We use this cache to hold the packed arguments.
201
- const packedArgs = PackedValuesCache.create([]);
202
- const context = new PublicExecutionContext(execution, this.header, globalVariables, packedArgs, new SideEffectCounter(sideEffectCounter), this.stateDb, this.contractsDb, this.commitmentsDb, availableGas, transactionFee, txContext.gasSettings, pendingNullifiers);
203
- const executionResult = await executePublicFunction(context, /*nested=*/ false);
204
- if (executionResult.execution.callContext.isStaticCall) {
27
+ const address = execution.contractAddress;
28
+ const selector = execution.functionSelector;
29
+ const startGas = availableGas;
30
+ PublicExecutor.log.verbose(`[AVM] Executing public external function ${address.toString()}:${selector}.`);
31
+ // Temporary code to construct the AVM context
32
+ // These data structures will permeate across the simulator when the public executor is phased out
33
+ const hostStorage = new HostStorage(this.stateDb, this.contractsDb, this.commitmentsDb);
34
+ const startSideEffectCounter = sideEffectCounter;
35
+ const worldStateJournal = new AvmPersistableStateManager(hostStorage);
36
+ for (const nullifier of pendingNullifiers) {
37
+ worldStateJournal.nullifiers.cache.appendSiloed(nullifier.value);
38
+ }
39
+ // All the subsequent side effects will have a counter larger than the call's start counter.
40
+ worldStateJournal.trace.accessCounter = startSideEffectCounter + 1;
41
+ const executionEnv = createAvmExecutionEnvironment(execution, this.header, globalVariables, txContext.gasSettings, transactionFee);
42
+ const machineState = new AvmMachineState(startGas);
43
+ const avmContext = new AvmContext(worldStateJournal, executionEnv, machineState);
44
+ const simulator = new AvmSimulator(avmContext);
45
+ const avmResult = await simulator.execute();
46
+ // Commit the journals state to the DBs since this is a top-level execution.
47
+ // Observe that this will write all the state changes to the DBs, not only the latest for each slot.
48
+ // However, the underlying DB keep a cache and will only write the latest state to disk.
49
+ await avmContext.persistableState.publicStorage.commitToDB();
50
+ PublicExecutor.log.verbose(`[AVM] ${address.toString()}:${selector} returned, reverted: ${avmResult.reverted}, reason: ${avmResult.revertReason}.`);
51
+ const executionResult = convertAvmResultsToPxResult(avmResult, startSideEffectCounter, execution, startGas, avmContext, simulator.getBytecode());
52
+ // TODO(https://github.com/AztecProtocol/aztec-packages/issues/5818): is this really needed?
53
+ // should already be handled in simulation.
54
+ if (execution.callContext.isStaticCall) {
205
55
  checkValidStaticCall(executionResult.newNoteHashes, executionResult.newNullifiers, executionResult.contractStorageUpdateRequests, executionResult.newL2ToL1Messages, executionResult.unencryptedLogs);
206
56
  }
207
57
  return executionResult;
208
58
  }
209
- /**
210
- * These functions are currently housed in the temporary executor as it relies on access to
211
- * oracles like the contractsDB and this is the least intrusive way to achieve this.
212
- * When we remove this executor(tracking issue #4792) and have an interface that is compatible with the kernel circuits,
213
- * this will be moved to sequencer-client/prover.
214
- */
215
- /**
216
- * Generates a proof for an associated avm execution. This is currently only used for testing purposes,
217
- * as proof generation is not fully complete in the AVM yet.
218
- * @param execution - The execution to run.
219
- * @returns An AVM proof and the verification key.
220
- */
221
- async getAvmProof(avmExecution) {
222
- // The paths for the barretenberg binary and the write path are hardcoded for now.
223
- const bbPath = path.resolve('../../barretenberg/cpp');
224
- const artifactsPath = path.resolve('target');
225
- // Create the directory if it does not exist
226
- await fs.rm(artifactsPath, { recursive: true, force: true });
227
- await fs.mkdir(artifactsPath, { recursive: true });
228
- const calldataPath = path.join(artifactsPath, 'calldata.bin');
229
- const bytecodePath = path.join(artifactsPath, 'avm_bytecode.bin');
230
- const proofPath = path.join(artifactsPath, 'proof');
231
- const { args, functionData, contractAddress } = avmExecution;
232
- const bytecode = await this.contractsDb.getBytecode(contractAddress, functionData.selector);
233
- // Write call data and bytecode to files.
234
- await fs.writeFile(calldataPath, args.map(c => c.toBuffer()));
235
- await fs.writeFile(bytecodePath, bytecode);
236
- const bbExec = path.join(bbPath, 'build', 'bin', 'bb');
237
- const bbArgs = ['avm_prove', '-b', bytecodePath, '-d', calldataPath, '-o', proofPath];
238
- this.log.debug(`calling '${bbExec} ${bbArgs.join(' ')}'`);
239
- const bbBinary = spawn(bbExec, bbArgs);
240
- // The binary writes the proof and the verification key to the write path.
241
- return new Promise((resolve, reject) => {
242
- let stdout = '';
243
- let stderr = '';
244
- bbBinary.on('close', () => {
245
- this.log.verbose(`Proof generation complete. Reading proof and vk from ${proofPath}.`);
246
- return resolve(Promise.all([fs.readFile(proofPath), fs.readFile(path.join(artifactsPath, 'vk'))]));
247
- });
248
- // Catch stdout.
249
- bbBinary.stdout.on('data', (data) => {
250
- stdout += data.toString();
251
- });
252
- bbBinary.stdout.on('end', () => {
253
- if (stdout.length > 0) {
254
- this.log.debug(`stdout: ${stdout}`);
255
- }
256
- });
257
- // Catch stderr.
258
- bbBinary.stderr.on('data', (data) => {
259
- stderr += data.toString();
260
- });
261
- bbBinary.stderr.on('end', () => {
262
- if (stderr.length > 0) {
263
- this.log.warn(`stderr: ${stderr}`);
264
- }
265
- });
266
- // Catch and propagate errors from spawning
267
- bbBinary.on('error', err => {
268
- reject(err);
269
- });
270
- });
271
- }
272
- /**
273
- * Verifies an AVM proof. This function is currently only used for testing purposes, as verification
274
- * is not fully complete in the AVM yet.
275
- * @param vk - The verification key to use.
276
- * @param proof - The proof to verify.
277
- * @returns True if the proof is valid, false otherwise.
278
- */
279
- async verifyAvmProof(vk, proof) {
280
- // The relative paths for the barretenberg binary and the write path are hardcoded for now.
281
- const bbPath = path.resolve('../../barretenberg/cpp');
282
- const artifactsPath = path.resolve('./target');
283
- const vkPath = path.join(artifactsPath, 'vk');
284
- const proofPath = path.join(artifactsPath, 'proof');
285
- // Write the verification key and the proof to files.
286
- await fs.writeFile(vkPath, vk);
287
- await fs.writeFile(proofPath, proof);
288
- const bbExec = path.join(bbPath, 'build', 'bin', 'bb');
289
- const bbArgs = ['avm_verify', '-p', proofPath];
290
- this.log.debug(`calling '${bbPath} ${bbArgs.join(' ')}'`);
291
- const bbBinary = spawn(bbExec, bbArgs);
292
- // The binary prints to stdout 1 if the proof is valid and 0 if it is not.
293
- return new Promise((resolve, reject) => {
294
- let result = Buffer.alloc(0);
295
- bbBinary.stdout.on('data', data => {
296
- result += data;
297
- });
298
- bbBinary.on('close', () => {
299
- resolve(result.toString() === '1');
300
- });
301
- // Catch and propagate errors from spawning
302
- bbBinary.on('error', err => {
303
- reject(err);
304
- });
305
- });
306
- }
307
59
  }
308
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2V4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxFQUFFLEVBQ0YsR0FBRyxFQUlILHlCQUF5QixHQUUxQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXJFLE9BQU8sRUFBb0Qsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FB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
60
+ PublicExecutor.log = createDebugLogger('aztec:simulator:public_executor');
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2V4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQStFLE1BQU0sb0JBQW9CLENBQUM7QUFDckgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXJFLE9BQU8sRUFBb0Qsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV4Rzs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQ21CLE9BQXNCLEVBQ3RCLFdBQThCLEVBQzlCLGFBQTRCLEVBQzVCLE1BQWM7UUFIZCxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQzlCLENBQUM7SUFJSjs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxRQUFRLENBQ25CLFNBQTBCLEVBQzFCLGVBQWdDLEVBQ2hDLFlBQWlCLEVBQ2pCLFNBQW9CLEVBQ3BCLGlCQUE4QixFQUM5QixpQkFBcUIsRUFBRSxDQUFDLElBQUksRUFDNUIsb0JBQTRCLENBQUM7UUFFN0IsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLGVB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
@@ -0,0 +1,11 @@
1
+ import { AztecAddress } from '@aztec/foundation/aztec-address';
2
+ import { Fr } from '@aztec/foundation/fields';
3
+ /**
4
+ * Computes the storage slot within the gas token contract for the balance of the fee payer.
5
+ */
6
+ export declare function computeFeePayerBalanceStorageSlot(feePayer: AztecAddress): Fr;
7
+ /**
8
+ * Computes the leaf slot in the public data tree for the balance of the fee payer in the gas token.
9
+ */
10
+ export declare function computeFeePayerBalanceLeafSlot(feePayer: AztecAddress): Fr;
11
+ //# sourceMappingURL=fee_payment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee_payment.d.ts","sourceRoot":"","sources":["../../src/public/fee_payment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAK9C;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,YAAY,MAEvE;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,YAAY,GAAG,EAAE,CAOzE"}
@@ -0,0 +1,24 @@
1
+ import { GAS_TOKEN_ADDRESS } from '@aztec/circuits.js';
2
+ import { computePublicDataTreeLeafSlot } from '@aztec/circuits.js/hash';
3
+ import { AztecAddress } from '@aztec/foundation/aztec-address';
4
+ import { Fr } from '@aztec/foundation/fields';
5
+ import { GasTokenArtifact } from '@aztec/protocol-contracts/gas-token';
6
+ import { computeSlotForMapping } from '../utils.js';
7
+ /**
8
+ * Computes the storage slot within the gas token contract for the balance of the fee payer.
9
+ */
10
+ export function computeFeePayerBalanceStorageSlot(feePayer) {
11
+ return computeSlotForMapping(GasTokenArtifact.storageLayout.balances.slot, feePayer);
12
+ }
13
+ /**
14
+ * Computes the leaf slot in the public data tree for the balance of the fee payer in the gas token.
15
+ */
16
+ export function computeFeePayerBalanceLeafSlot(feePayer) {
17
+ if (feePayer.isZero()) {
18
+ return Fr.ZERO;
19
+ }
20
+ const gasToken = AztecAddress.fromBigInt(GAS_TOKEN_ADDRESS);
21
+ const balanceSlot = computeFeePayerBalanceStorageSlot(feePayer);
22
+ return computePublicDataTreeLeafSlot(gasToken, balanceSlot);
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX3BheW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2ZlZV9wYXltZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGlDQUFpQyxDQUFDLFFBQXNCO0lBQ3RFLE9BQU8scUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDdkYsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLDhCQUE4QixDQUFDLFFBQXNCO0lBQ25FLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDdEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ2pCLENBQUM7SUFDRCxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDNUQsTUFBTSxXQUFXLEdBQUcsaUNBQWlDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEUsT0FBTyw2QkFBNkIsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDOUQsQ0FBQyJ9
@@ -1,12 +1,13 @@
1
- import { type Fr, type MAX_NEW_NULLIFIERS_PER_TX, type MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_TX, type MAX_NULLIFIER_READ_REQUESTS_PER_TX, type MAX_PUBLIC_DATA_HINTS, type MAX_PUBLIC_DATA_READS_PER_TX, type MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MembershipWitness, type Nullifier, type PublicDataHint, type PublicDataRead, type PublicDataTreeLeafPreimage, type PublicDataUpdateRequest, type ScopedReadRequest } from '@aztec/circuits.js';
1
+ import { type Fr, type MAX_NEW_NULLIFIERS_PER_TX, type MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, type MAX_PUBLIC_DATA_HINTS, type MAX_PUBLIC_DATA_READS_PER_TX, type MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MembershipWitness, type Nullifier, type PublicDataHint, type PublicDataRead, type PublicDataTreeLeafPreimage, type PublicDataUpdateRequest, type ScopedReadRequest } from '@aztec/circuits.js';
2
2
  import { type Tuple } from '@aztec/foundation/serialize';
3
3
  import { type MerkleTreeOperations } from '@aztec/world-state';
4
4
  export declare class HintsBuilder {
5
5
  private db;
6
6
  constructor(db: MerkleTreeOperations);
7
- getNullifierReadRequestHints(nullifierReadRequests: Tuple<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>, pendingNullifiers: Tuple<Nullifier, typeof MAX_NEW_NULLIFIERS_PER_TX>): Promise<import("@aztec/circuits.js").NullifierReadRequestHints>;
7
+ getNullifierReadRequestHints(nullifierReadRequests: Tuple<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>, pendingNullifiers: Tuple<Nullifier, typeof MAX_NEW_NULLIFIERS_PER_TX>): Promise<import("@aztec/circuits.js").NullifierReadRequestHints<128, 128>>;
8
8
  getNullifierNonExistentReadRequestHints(nullifierNonExistentReadRequests: Tuple<ScopedReadRequest, typeof MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_TX>, pendingNullifiers: Tuple<Nullifier, typeof MAX_NEW_NULLIFIERS_PER_TX>): Promise<import("@aztec/circuits.js").NullifierNonExistentReadRequestHints>;
9
9
  getPublicDataHints(publicDataReads: Tuple<PublicDataRead, typeof MAX_PUBLIC_DATA_READS_PER_TX>, publicDataUpdateRequests: Tuple<PublicDataUpdateRequest, typeof MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX>): Promise<[PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint, PublicDataHint]>;
10
+ getPublicDataHint(dataAction: PublicDataRead | PublicDataUpdateRequest | bigint): Promise<PublicDataHint>;
10
11
  getPublicDataReadRequestHints(publicDataReads: Tuple<PublicDataRead, typeof MAX_PUBLIC_DATA_READS_PER_TX>, publicDataUpdateRequests: Tuple<PublicDataUpdateRequest, typeof MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX>, publicDataHints: Tuple<PublicDataHint, typeof MAX_PUBLIC_DATA_HINTS>): import("@aztec/circuits.js").PublicDataReadRequestHints;
11
12
  getNullifierMembershipWitness(nullifier: Fr): Promise<{
12
13
  membershipWitness: MembershipWitness<20>;
@@ -1 +1 @@
1
- {"version":3,"file":"hints_builder.d.ts","sourceRoot":"","sources":["../../src/public/hints_builder.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EAAE,EACP,KAAK,yBAAyB,EAC9B,KAAK,+CAA+C,EACpD,KAAK,kCAAkC,EACvC,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,sCAAsC,EAC3C,iBAAiB,EAEjB,KAAK,SAAS,EAEd,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EAKvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEnF,qBAAa,YAAY;IACX,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,oBAAoB;IAE5C,4BAA4B,CAC1B,qBAAqB,EAAE,KAAK,CAAC,iBAAiB,EAAE,OAAO,kCAAkC,CAAC,EAC1F,iBAAiB,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,yBAAyB,CAAC;IAKvE,uCAAuC,CACrC,gCAAgC,EAAE,KAAK,CAAC,iBAAiB,EAAE,OAAO,+CAA+C,CAAC,EAClH,iBAAiB,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,yBAAyB,CAAC;IAKvE,kBAAkB,CAChB,eAAe,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,4BAA4B,CAAC,EAC3E,wBAAwB,EAAE,KAAK,CAAC,uBAAuB,EAAE,OAAO,sCAAsC,CAAC;IAKzG,6BAA6B,CAC3B,eAAe,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,4BAA4B,CAAC,EAC3E,wBAAwB,EAAE,KAAK,CAAC,uBAAuB,EAAE,OAAO,sCAAsC,CAAC,EACvG,eAAe,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,qBAAqB,CAAC;IAKhE,6BAA6B,CAAC,SAAS,EAAE,EAAE;;;;IAa3C,gCAAgC,CAAC,SAAS,EAAE,EAAE;;;;IAkB9C,wCAAwC,CAAC,QAAQ,EAAE,MAAM;;;;YAcjD,gCAAgC;CAe/C"}
1
+ {"version":3,"file":"hints_builder.d.ts","sourceRoot":"","sources":["../../src/public/hints_builder.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EAAE,EACP,KAAK,yBAAyB,EAC9B,KAAK,+CAA+C,EACpD,kCAAkC,EAClC,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,sCAAsC,EAC3C,iBAAiB,EAEjB,KAAK,SAAS,EAEd,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EAMvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEnF,qBAAa,YAAY;IACX,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,oBAAoB;IAEtC,4BAA4B,CAChC,qBAAqB,EAAE,KAAK,CAAC,iBAAiB,EAAE,OAAO,kCAAkC,CAAC,EAC1F,iBAAiB,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,yBAAyB,CAAC;IAavE,uCAAuC,CACrC,gCAAgC,EAAE,KAAK,CAAC,iBAAiB,EAAE,OAAO,+CAA+C,CAAC,EAClH,iBAAiB,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,yBAAyB,CAAC;IAKvE,kBAAkB,CAChB,eAAe,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,4BAA4B,CAAC,EAC3E,wBAAwB,EAAE,KAAK,CAAC,uBAAuB,EAAE,OAAO,sCAAsC,CAAC;IAKzG,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,uBAAuB,GAAG,MAAM;IAK/E,6BAA6B,CAC3B,eAAe,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,4BAA4B,CAAC,EAC3E,wBAAwB,EAAE,KAAK,CAAC,uBAAuB,EAAE,OAAO,sCAAsC,CAAC,EACvG,eAAe,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,qBAAqB,CAAC;IAKhE,6BAA6B,CAAC,SAAS,EAAE,EAAE;;;;IAa3C,gCAAgC,CAAC,SAAS,EAAE,EAAE;;;;IAkB9C,wCAAwC,CAAC,QAAQ,EAAE,MAAM;;;;YAcjD,gCAAgC;CAe/C"}
@@ -1,11 +1,11 @@
1
1
  import { MerkleTreeId } from '@aztec/circuit-types';
2
- import { MembershipWitness, NULLIFIER_TREE_HEIGHT, PUBLIC_DATA_TREE_HEIGHT, buildNullifierNonExistentReadRequestHints, buildPublicDataHints, buildPublicDataReadRequestHints, buildSiloedNullifierReadRequestHints, } from '@aztec/circuits.js';
2
+ import { MAX_NULLIFIER_READ_REQUESTS_PER_TX, MembershipWitness, NULLIFIER_TREE_HEIGHT, PUBLIC_DATA_TREE_HEIGHT, buildNullifierNonExistentReadRequestHints, buildPublicDataHint, buildPublicDataHints, buildPublicDataReadRequestHints, buildSiloedNullifierReadRequestHints, } from '@aztec/circuits.js';
3
3
  export class HintsBuilder {
4
4
  constructor(db) {
5
5
  this.db = db;
6
6
  }
7
- getNullifierReadRequestHints(nullifierReadRequests, pendingNullifiers) {
8
- return buildSiloedNullifierReadRequestHints(this, nullifierReadRequests, pendingNullifiers);
7
+ async getNullifierReadRequestHints(nullifierReadRequests, pendingNullifiers) {
8
+ return (await buildSiloedNullifierReadRequestHints(this, nullifierReadRequests, pendingNullifiers, MAX_NULLIFIER_READ_REQUESTS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX)).hints;
9
9
  }
10
10
  getNullifierNonExistentReadRequestHints(nullifierNonExistentReadRequests, pendingNullifiers) {
11
11
  return buildNullifierNonExistentReadRequestHints(this, nullifierNonExistentReadRequests, pendingNullifiers);
@@ -13,6 +13,10 @@ export class HintsBuilder {
13
13
  getPublicDataHints(publicDataReads, publicDataUpdateRequests) {
14
14
  return buildPublicDataHints(this, publicDataReads, publicDataUpdateRequests);
15
15
  }
16
+ getPublicDataHint(dataAction) {
17
+ const slot = typeof dataAction === 'bigint' ? dataAction : dataAction.leafSlot.toBigInt();
18
+ return buildPublicDataHint(this, slot);
19
+ }
16
20
  getPublicDataReadRequestHints(publicDataReads, publicDataUpdateRequests, publicDataHints) {
17
21
  return buildPublicDataReadRequestHints(publicDataReads, publicDataUpdateRequests, publicDataHints);
18
22
  }
@@ -53,4 +57,4 @@ export class HintsBuilder {
53
57
  return { membershipWitness, leafPreimage };
54
58
  }
55
59
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludHNfYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvaGludHNfYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQVFMLGlCQUFpQixFQUNqQixxQkFBcUIsRUFFckIsdUJBQXVCLEVBTXZCLHlDQUF5QyxFQUN6QyxvQkFBb0IsRUFDcEIsK0JBQStCLEVBQy9CLG9DQUFvQyxHQUNyQyxNQUFNLG9CQUFvQixDQUFDO0FBSTVCLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQW9CLEVBQXdCO1FBQXhCLE9BQUUsR0FBRixFQUFFLENBQXNCO0lBQUcsQ0FBQztJQUVoRCw0QkFBNEIsQ0FDMUIscUJBQTBGLEVBQzFGLGlCQUFxRTtRQUVyRSxPQUFPLG9DQUFvQyxDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCx1Q0FBdUMsQ0FDckMsZ0NBQWtILEVBQ2xILGlCQUFxRTtRQUVyRSxPQUFPLHlDQUF5QyxDQUFDLElBQUksRUFBRSxnQ0FBZ0MsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFRCxrQkFBa0IsQ0FDaEIsZUFBMkUsRUFDM0Usd0JBQXVHO1FBRXZHLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCw2QkFBNkIsQ0FDM0IsZUFBMkUsRUFDM0Usd0JBQXVHLEVBQ3ZHLGVBQW9FO1FBRXBFLE9BQU8sK0JBQStCLENBQUMsZUFBZSxFQUFFLHdCQUF3QixFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxLQUFLLENBQUMsNkJBQTZCLENBQUMsU0FBYTtRQUMvQyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsYUFB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
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludHNfYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvaGludHNfYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUlMLGtDQUFrQyxFQUlsQyxpQkFBaUIsRUFDakIscUJBQXFCLEVBRXJCLHVCQUF1QixFQU12Qix5Q0FBeUMsRUFDekMsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQiwrQkFBK0IsRUFDL0Isb0NBQW9DLEdBQ3JDLE1BQU0sb0JBQW9CLENBQUM7QUFJNUIsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFBb0IsRUFBd0I7UUFBeEIsT0FBRSxHQUFGLEVBQUUsQ0FBc0I7SUFBRyxDQUFDO0lBRWhELEtBQUssQ0FBQyw0QkFBNEIsQ0FDaEMscUJBQTBGLEVBQzFGLGlCQUFxRTtRQUVyRSxPQUFPLENBQ0wsTUFBTSxvQ0FBb0MsQ0FDeEMsSUFBSSxFQUNKLHFCQUFxQixFQUNyQixpQkFBaUIsRUFDakIsa0NBQWtDLEVBQ2xDLGtDQUFrQyxDQUNuQyxDQUNGLENBQUMsS0FBSyxDQUFDO0lBQ1YsQ0FBQztJQUVELHVDQUF1QyxDQUNyQyxnQ0FBa0gsRUFDbEgsaUJBQXFFO1FBRXJFLE9BQU8seUNBQXlDLENBQUMsSUFBSSxFQUFFLGdDQUFnQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVELGtCQUFrQixDQUNoQixlQUEyRSxFQUMzRSx3QkFBdUc7UUFFdkcsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELGlCQUFpQixDQUFDLFVBQTZEO1FBQzdFLE1BQU0sSUFBSSxHQUFHLE9BQU8sVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFB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
@@ -1,9 +1,11 @@
1
- export * from './db.js';
1
+ export * from './db_interfaces.js';
2
2
  export { type PublicExecution, type PublicExecutionResult, isPublicExecutionResult, collectPublicDataReads, collectPublicDataUpdateRequests, } from './execution.js';
3
3
  export { PublicExecutor } from './executor.js';
4
4
  export { PublicProcessor, PublicProcessorFactory } from './public_processor.js';
5
- export * from './public_executor.js';
5
+ export * from './public_db_sources.js';
6
6
  export * from './abstract_phase_manager.js';
7
7
  export * from './public_kernel_circuit_simulator.js';
8
8
  export * from './public_kernel.js';
9
+ export { HintsBuilder } from './hints_builder.js';
10
+ export * from './fee_payment.js';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/public/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAChF,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AACrD,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/public/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAChF,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AACrD,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,cAAc,kBAAkB,CAAC"}
@@ -1,9 +1,11 @@
1
- export * from './db.js';
1
+ export * from './db_interfaces.js';
2
2
  export { isPublicExecutionResult, collectPublicDataReads, collectPublicDataUpdateRequests, } from './execution.js';
3
3
  export { PublicExecutor } from './executor.js';
4
4
  export { PublicProcessor, PublicProcessorFactory } from './public_processor.js';
5
- export * from './public_executor.js';
5
+ export * from './public_db_sources.js';
6
6
  export * from './abstract_phase_manager.js';
7
7
  export * from './public_kernel_circuit_simulator.js';
8
8
  export * from './public_kernel.js';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLCtCQUErQixHQUNoQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hGLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsb0JBQW9CLENBQUMifQ==
9
+ export { HintsBuilder } from './hints_builder.js';
10
+ export * from './fee_payment.js';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsT0FBTyxFQUdMLHVCQUF1QixFQUN2QixzQkFBc0IsRUFDdEIsK0JBQStCLEdBQ2hDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEYsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsY0FBYyxrQkFBa0IsQ0FBQyJ9
@@ -3,7 +3,7 @@ import { type GlobalVariables, type Header, type PublicKernelCircuitPublicInputs
3
3
  import { type PublicExecutor, type PublicStateDB } from '@aztec/simulator';
4
4
  import { type MerkleTreeOperations } from '@aztec/world-state';
5
5
  import { type AbstractPhaseManager, PublicKernelPhase } from './abstract_phase_manager.js';
6
- import { type ContractsDataSourcePublicDB } from './public_executor.js';
6
+ import { type ContractsDataSourcePublicDB } from './public_db_sources.js';
7
7
  import { type PublicKernelCircuitSimulator } from './public_kernel_circuit_simulator.js';
8
8
  export declare class PhaseDidNotChangeError extends Error {
9
9
  constructor(phase: PublicKernelPhase);