@aztec/simulator 0.61.0 → 0.63.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 (223) hide show
  1. package/dest/acvm/acvm.d.ts +2 -16
  2. package/dest/acvm/acvm.d.ts.map +1 -1
  3. package/dest/acvm/acvm.js +2 -70
  4. package/dest/acvm/oracle/oracle.d.ts +4 -3
  5. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  6. package/dest/acvm/oracle/oracle.js +11 -9
  7. package/dest/acvm/oracle/typed_oracle.d.ts +5 -4
  8. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  9. package/dest/acvm/oracle/typed_oracle.js +9 -6
  10. package/dest/avm/avm_gas.d.ts.map +1 -1
  11. package/dest/avm/avm_gas.js +4 -3
  12. package/dest/avm/avm_machine_state.d.ts +27 -8
  13. package/dest/avm/avm_machine_state.d.ts.map +1 -1
  14. package/dest/avm/avm_machine_state.js +6 -10
  15. package/dest/avm/avm_memory_types.d.ts +8 -0
  16. package/dest/avm/avm_memory_types.d.ts.map +1 -1
  17. package/dest/avm/avm_memory_types.js +5 -1
  18. package/dest/avm/avm_simulator.d.ts +2 -19
  19. package/dest/avm/avm_simulator.d.ts.map +1 -1
  20. package/dest/avm/avm_simulator.js +12 -14
  21. package/dest/avm/avm_tree.d.ts +249 -0
  22. package/dest/avm/avm_tree.d.ts.map +1 -0
  23. package/dest/avm/avm_tree.js +637 -0
  24. package/dest/avm/errors.d.ts +4 -17
  25. package/dest/avm/errors.d.ts.map +1 -1
  26. package/dest/avm/errors.js +21 -50
  27. package/dest/avm/fixtures/index.d.ts +7 -2
  28. package/dest/avm/fixtures/index.d.ts.map +1 -1
  29. package/dest/avm/fixtures/index.js +12 -12
  30. package/dest/avm/index.d.ts +1 -0
  31. package/dest/avm/index.d.ts.map +1 -1
  32. package/dest/avm/index.js +2 -1
  33. package/dest/avm/journal/journal.d.ts +43 -24
  34. package/dest/avm/journal/journal.d.ts.map +1 -1
  35. package/dest/avm/journal/journal.js +172 -39
  36. package/dest/avm/journal/nullifiers.d.ts +5 -4
  37. package/dest/avm/journal/nullifiers.d.ts.map +1 -1
  38. package/dest/avm/journal/nullifiers.js +2 -3
  39. package/dest/avm/journal/public_storage.d.ts +6 -5
  40. package/dest/avm/journal/public_storage.d.ts.map +1 -1
  41. package/dest/avm/journal/public_storage.js +1 -1
  42. package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
  43. package/dest/avm/opcodes/accrued_substate.js +4 -10
  44. package/dest/avm/opcodes/arithmetic.d.ts +4 -1
  45. package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
  46. package/dest/avm/opcodes/arithmetic.js +18 -4
  47. package/dest/avm/opcodes/bitwise.d.ts.map +1 -1
  48. package/dest/avm/opcodes/bitwise.js +1 -3
  49. package/dest/avm/opcodes/comparators.d.ts.map +1 -1
  50. package/dest/avm/opcodes/comparators.js +1 -2
  51. package/dest/avm/opcodes/contract.d.ts.map +1 -1
  52. package/dest/avm/opcodes/contract.js +2 -3
  53. package/dest/avm/opcodes/control_flow.d.ts +4 -0
  54. package/dest/avm/opcodes/control_flow.d.ts.map +1 -1
  55. package/dest/avm/opcodes/control_flow.js +26 -11
  56. package/dest/avm/opcodes/conversion.d.ts.map +1 -1
  57. package/dest/avm/opcodes/conversion.js +1 -2
  58. package/dest/avm/opcodes/ec_add.d.ts.map +1 -1
  59. package/dest/avm/opcodes/ec_add.js +5 -11
  60. package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
  61. package/dest/avm/opcodes/environment_getters.js +1 -2
  62. package/dest/avm/opcodes/external_calls.d.ts +4 -2
  63. package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
  64. package/dest/avm/opcodes/external_calls.js +38 -22
  65. package/dest/avm/opcodes/hashing.d.ts.map +1 -1
  66. package/dest/avm/opcodes/hashing.js +1 -4
  67. package/dest/avm/opcodes/instruction.d.ts +4 -0
  68. package/dest/avm/opcodes/instruction.d.ts.map +1 -1
  69. package/dest/avm/opcodes/instruction.js +7 -1
  70. package/dest/avm/opcodes/memory.d.ts.map +1 -1
  71. package/dest/avm/opcodes/memory.js +1 -7
  72. package/dest/avm/opcodes/misc.js +3 -3
  73. package/dest/avm/opcodes/multi_scalar_mul.d.ts.map +1 -1
  74. package/dest/avm/opcodes/multi_scalar_mul.js +6 -5
  75. package/dest/avm/opcodes/storage.d.ts.map +1 -1
  76. package/dest/avm/opcodes/storage.js +2 -4
  77. package/dest/avm/serialization/bytecode_serialization.d.ts +1 -6
  78. package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  79. package/dest/avm/serialization/bytecode_serialization.js +24 -20
  80. package/dest/avm/serialization/instruction_serialization.d.ts +2 -2
  81. package/dest/avm/serialization/instruction_serialization.js +2 -2
  82. package/dest/client/client_execution_context.d.ts +7 -10
  83. package/dest/client/client_execution_context.d.ts.map +1 -1
  84. package/dest/client/client_execution_context.js +19 -18
  85. package/dest/client/db_oracle.d.ts +22 -8
  86. package/dest/client/db_oracle.d.ts.map +1 -1
  87. package/dest/client/db_oracle.js +1 -1
  88. package/dest/client/private_execution.d.ts.map +1 -1
  89. package/dest/client/private_execution.js +5 -4
  90. package/dest/client/unconstrained_execution.d.ts.map +1 -1
  91. package/dest/client/unconstrained_execution.js +3 -2
  92. package/dest/client/view_data_oracle.d.ts +6 -12
  93. package/dest/client/view_data_oracle.d.ts.map +1 -1
  94. package/dest/client/view_data_oracle.js +10 -12
  95. package/dest/common/errors.d.ts +15 -2
  96. package/dest/common/errors.d.ts.map +1 -1
  97. package/dest/common/errors.js +85 -4
  98. package/dest/mocks/fixtures.d.ts +9 -28
  99. package/dest/mocks/fixtures.d.ts.map +1 -1
  100. package/dest/mocks/fixtures.js +12 -57
  101. package/dest/public/dual_side_effect_trace.d.ts +34 -26
  102. package/dest/public/dual_side_effect_trace.d.ts.map +1 -1
  103. package/dest/public/dual_side_effect_trace.js +48 -36
  104. package/dest/public/enqueued_call_side_effect_trace.d.ts +96 -33
  105. package/dest/public/enqueued_call_side_effect_trace.d.ts.map +1 -1
  106. package/dest/public/enqueued_call_side_effect_trace.js +212 -138
  107. package/dest/public/execution.d.ts +50 -17
  108. package/dest/public/execution.d.ts.map +1 -1
  109. package/dest/public/execution.js +1 -29
  110. package/dest/public/executor.d.ts +28 -11
  111. package/dest/public/executor.d.ts.map +1 -1
  112. package/dest/public/executor.js +33 -33
  113. package/dest/public/index.d.ts +4 -5
  114. package/dest/public/index.d.ts.map +1 -1
  115. package/dest/public/index.js +4 -5
  116. package/dest/public/public_db_sources.d.ts +1 -0
  117. package/dest/public/public_db_sources.d.ts.map +1 -1
  118. package/dest/public/public_db_sources.js +21 -19
  119. package/dest/public/public_processor.d.ts +7 -11
  120. package/dest/public/public_processor.d.ts.map +1 -1
  121. package/dest/public/public_processor.js +60 -42
  122. package/dest/public/public_processor_metrics.d.ts +3 -3
  123. package/dest/public/public_processor_metrics.d.ts.map +1 -1
  124. package/dest/public/public_processor_metrics.js +1 -1
  125. package/dest/public/public_tx_context.d.ts +130 -0
  126. package/dest/public/public_tx_context.d.ts.map +1 -0
  127. package/dest/public/public_tx_context.js +293 -0
  128. package/dest/public/public_tx_simulator.d.ts +36 -0
  129. package/dest/public/public_tx_simulator.d.ts.map +1 -0
  130. package/dest/public/public_tx_simulator.js +148 -0
  131. package/dest/public/side_effect_trace.d.ts +30 -15
  132. package/dest/public/side_effect_trace.d.ts.map +1 -1
  133. package/dest/public/side_effect_trace.js +70 -16
  134. package/dest/public/side_effect_trace_interface.d.ts +43 -12
  135. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  136. package/dest/public/transitional_adapters.d.ts +9 -0
  137. package/dest/public/transitional_adapters.d.ts.map +1 -0
  138. package/dest/public/transitional_adapters.js +127 -0
  139. package/dest/public/utils.d.ts +5 -0
  140. package/dest/public/utils.d.ts.map +1 -0
  141. package/dest/public/utils.js +30 -0
  142. package/dest/test/utils.d.ts +2 -2
  143. package/dest/test/utils.d.ts.map +1 -1
  144. package/dest/test/utils.js +4 -4
  145. package/package.json +12 -9
  146. package/src/acvm/acvm.ts +3 -94
  147. package/src/acvm/oracle/oracle.ts +14 -12
  148. package/src/acvm/oracle/typed_oracle.ts +10 -6
  149. package/src/avm/avm_gas.ts +3 -2
  150. package/src/avm/avm_machine_state.ts +28 -12
  151. package/src/avm/avm_memory_types.ts +5 -0
  152. package/src/avm/avm_simulator.ts +13 -16
  153. package/src/avm/avm_tree.ts +785 -0
  154. package/src/avm/errors.ts +25 -48
  155. package/src/avm/fixtures/index.ts +16 -12
  156. package/src/avm/index.ts +1 -0
  157. package/src/avm/journal/journal.ts +291 -52
  158. package/src/avm/journal/nullifiers.ts +7 -7
  159. package/src/avm/journal/public_storage.ts +5 -5
  160. package/src/avm/opcodes/accrued_substate.ts +3 -9
  161. package/src/avm/opcodes/arithmetic.ts +26 -4
  162. package/src/avm/opcodes/bitwise.ts +0 -2
  163. package/src/avm/opcodes/comparators.ts +0 -1
  164. package/src/avm/opcodes/contract.ts +1 -2
  165. package/src/avm/opcodes/control_flow.ts +29 -10
  166. package/src/avm/opcodes/conversion.ts +0 -1
  167. package/src/avm/opcodes/ec_add.ts +6 -9
  168. package/src/avm/opcodes/environment_getters.ts +0 -1
  169. package/src/avm/opcodes/external_calls.ts +39 -21
  170. package/src/avm/opcodes/hashing.ts +0 -3
  171. package/src/avm/opcodes/instruction.ts +7 -0
  172. package/src/avm/opcodes/memory.ts +0 -6
  173. package/src/avm/opcodes/misc.ts +2 -2
  174. package/src/avm/opcodes/multi_scalar_mul.ts +5 -4
  175. package/src/avm/opcodes/storage.ts +1 -3
  176. package/src/avm/serialization/bytecode_serialization.ts +31 -22
  177. package/src/avm/serialization/instruction_serialization.ts +2 -2
  178. package/src/client/client_execution_context.ts +24 -21
  179. package/src/client/db_oracle.ts +31 -8
  180. package/src/client/private_execution.ts +5 -4
  181. package/src/client/unconstrained_execution.ts +2 -1
  182. package/src/client/view_data_oracle.ts +14 -13
  183. package/src/common/errors.ts +119 -3
  184. package/src/mocks/fixtures.ts +15 -106
  185. package/src/public/dual_side_effect_trace.ts +138 -50
  186. package/src/public/enqueued_call_side_effect_trace.ts +352 -212
  187. package/src/public/execution.ts +58 -42
  188. package/src/public/executor.ts +52 -67
  189. package/src/public/index.ts +7 -5
  190. package/src/public/public_db_sources.ts +22 -19
  191. package/src/public/public_processor.ts +111 -73
  192. package/src/public/public_processor_metrics.ts +3 -3
  193. package/src/public/public_tx_context.ts +411 -0
  194. package/src/public/public_tx_simulator.ts +232 -0
  195. package/src/public/side_effect_trace.ts +154 -28
  196. package/src/public/side_effect_trace_interface.ts +92 -14
  197. package/src/public/transitional_adapters.ts +347 -0
  198. package/src/public/utils.ts +32 -0
  199. package/src/test/utils.ts +9 -2
  200. package/dest/public/enqueued_call_simulator.d.ts +0 -43
  201. package/dest/public/enqueued_call_simulator.d.ts.map +0 -1
  202. package/dest/public/enqueued_call_simulator.js +0 -156
  203. package/dest/public/enqueued_calls_processor.d.ts +0 -43
  204. package/dest/public/enqueued_calls_processor.d.ts.map +0 -1
  205. package/dest/public/enqueued_calls_processor.js +0 -209
  206. package/dest/public/hints_builder.d.ts +0 -29
  207. package/dest/public/hints_builder.d.ts.map +0 -1
  208. package/dest/public/hints_builder.js +0 -75
  209. package/dest/public/public_kernel.d.ts +0 -30
  210. package/dest/public/public_kernel.d.ts.map +0 -1
  211. package/dest/public/public_kernel.js +0 -67
  212. package/dest/public/public_kernel_circuit_simulator.d.ts +0 -25
  213. package/dest/public/public_kernel_circuit_simulator.d.ts.map +0 -1
  214. package/dest/public/public_kernel_circuit_simulator.js +0 -2
  215. package/dest/public/public_kernel_tail_simulator.d.ts +0 -15
  216. package/dest/public/public_kernel_tail_simulator.d.ts.map +0 -1
  217. package/dest/public/public_kernel_tail_simulator.js +0 -39
  218. package/src/public/enqueued_call_simulator.ts +0 -360
  219. package/src/public/enqueued_calls_processor.ts +0 -372
  220. package/src/public/hints_builder.ts +0 -168
  221. package/src/public/public_kernel.ts +0 -100
  222. package/src/public/public_kernel_circuit_simulator.ts +0 -32
  223. package/src/public/public_kernel_tail_simulator.ts +0 -97
@@ -11,6 +11,9 @@ export declare abstract class AvmExecutionError extends Error {
11
11
  export declare class NoBytecodeForContractError extends AvmExecutionError {
12
12
  constructor(contractAddress: AztecAddress);
13
13
  }
14
+ export declare class ArithmeticError extends AvmExecutionError {
15
+ constructor(message: string);
16
+ }
14
17
  /**
15
18
  * Error is thrown when the program counter goes to an invalid location.
16
19
  * There is no instruction at the provided pc
@@ -42,15 +45,6 @@ export declare class OutOfGasError extends AvmExecutionError {
42
45
  export declare class StaticCallAlterationError extends InstructionExecutionError {
43
46
  constructor();
44
47
  }
45
- /**
46
- * Error thrown to propagate a nested call's revert.
47
- * @param message - the error's message
48
- * @param nestedError - the revert reason of the nested call
49
- */
50
- export declare class RethrownError extends AvmExecutionError {
51
- nestedError: AvmRevertReason;
52
- constructor(message: string, nestedError: AvmRevertReason);
53
- }
54
48
  /**
55
49
  * Meaningfully named alias for ExecutionError when used in the context of the AVM.
56
50
  * Maintains a recursive structure reflecting the AVM's external callstack/errorstack, where
@@ -60,8 +54,7 @@ export declare class AvmRevertReason extends ExecutionError {
60
54
  constructor(message: string, failingFunction: FailingFunction, noirCallStack: NoirCallStack, options?: ErrorOptions);
61
55
  }
62
56
  /**
63
- * Create a "revert reason" error for an exceptional halt,
64
- * creating the recursive structure if the halt was a RethrownError.
57
+ * Create a "revert reason" error for an exceptional halt.
65
58
  *
66
59
  * @param haltingError - the lower-level error causing the exceptional halt
67
60
  * @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
@@ -74,10 +67,4 @@ export declare function revertReasonFromExceptionalHalt(haltingError: AvmExecuti
74
67
  * @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
75
68
  */
76
69
  export declare function revertReasonFromExplicitRevert(revertData: Fr[], context: AvmContext): AvmRevertReason;
77
- /**
78
- * Interpret revert data as a message string.
79
- *
80
- * @param revertData - output data of an explicit REVERT instruction
81
- */
82
- export declare function decodeRevertDataAsMessage(revertData: Fr[]): string;
83
70
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/avm/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,KAAK,YAAY,EAAE,EAAE,EAA8C,MAAM,oBAAoB,CAAC;AAEvG,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,8BAAsB,iBAAkB,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,eAAe,EAAE,YAAY;CAI1C;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAIpC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,iBAAiB;gBAClD,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;WACpC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;WAI7E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;gBAI5D,OAAO,EAAE,MAAM;CAI5B;AAED,oCAAoC;AACpC,qBAAa,aAAc,SAAQ,iBAAiB;gBACtC,UAAU,EAAE,MAAM,EAAE;CAIjC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,yBAAyB;;CAKvE;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;IACd,WAAW,EAAE,eAAe;gBAApD,OAAO,EAAE,MAAM,EAAS,WAAW,EAAE,eAAe;CAIjE;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,cAAc;gBACrC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,YAAY;CAGpH;AA6BD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,GAAG,eAAe,CAIrH;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,eAAe,CAGrG;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,EAAE,EAAE,GAAG,MAAM,CAalE"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/avm/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,KAAK,YAAY,EAAE,EAAE,EAA8C,MAAM,oBAAoB,CAAC;AAEvG,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,8BAAsB,iBAAkB,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,eAAe,EAAE,YAAY;CAI1C;AAED,qBAAa,eAAgB,SAAQ,iBAAiB;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAIpC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,iBAAiB;gBAClD,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;WACpC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;WAI7E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;gBAI5D,OAAO,EAAE,MAAM;CAI5B;AAED,oCAAoC;AACpC,qBAAa,aAAc,SAAQ,iBAAiB;gBACtC,UAAU,EAAE,MAAM,EAAE;CAIjC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,yBAAyB;;CAKvE;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,cAAc;gBACrC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,YAAY;CAGpH;AAmCD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,GAAG,eAAe,CAErH;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,eAAe,CAErG"}
@@ -15,6 +15,12 @@ export class NoBytecodeForContractError extends AvmExecutionError {
15
15
  this.name = 'NoBytecodeFoundInterpreterError';
16
16
  }
17
17
  }
18
+ export class ArithmeticError extends AvmExecutionError {
19
+ constructor(message) {
20
+ super(message);
21
+ this.name = 'ArithmeticError';
22
+ }
23
+ }
18
24
  /**
19
25
  * Error is thrown when the program counter goes to an invalid location.
20
26
  * There is no instruction at the provided pc
@@ -65,18 +71,6 @@ export class StaticCallAlterationError extends InstructionExecutionError {
65
71
  this.name = 'StaticCallAlterationError';
66
72
  }
67
73
  }
68
- /**
69
- * Error thrown to propagate a nested call's revert.
70
- * @param message - the error's message
71
- * @param nestedError - the revert reason of the nested call
72
- */
73
- export class RethrownError extends AvmExecutionError {
74
- constructor(message, nestedError) {
75
- super(message);
76
- this.nestedError = nestedError;
77
- this.name = 'RethrownError';
78
- }
79
- }
80
74
  /**
81
75
  * Meaningfully named alias for ExecutionError when used in the context of the AVM.
82
76
  * Maintains a recursive structure reflecting the AVM's external callstack/errorstack, where
@@ -87,22 +81,24 @@ export class AvmRevertReason extends ExecutionError {
87
81
  super(message, failingFunction, noirCallStack, options);
88
82
  }
89
83
  }
90
- /**
91
- * Helper to create a "revert reason" error optionally with a nested error cause.
92
- *
93
- * @param message - the error message
94
- * @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
95
- * @param nestedError - the error that caused this one (if this is not the root-cause itself)
96
- */
97
- function createRevertReason(message, context, nestedError) {
84
+ function createRevertReason(message, revertData, context) {
98
85
  // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Properly fix this.
99
86
  // If the function selector is the public dispatch selector, we need to extract the actual function selector from the calldata.
100
87
  // We should remove this because the AVM (or public protocol) shouldn't be aware of the public dispatch calling convention.
101
88
  let functionSelector = context.environment.functionSelector;
102
- const internalCallStack = context.machineState.internalCallStack;
89
+ // We drop the returnPc information.
90
+ const internalCallStack = context.machineState.internalCallStack.map(entry => entry.callPc);
103
91
  if (functionSelector.toField().equals(new Fr(PUBLIC_DISPATCH_SELECTOR)) && context.environment.calldata.length > 0) {
104
92
  functionSelector = FunctionSelector.fromField(context.environment.calldata[0]);
105
93
  }
94
+ // If we are reverting due to the same error that we have been tracking, we use the nested error as the cause.
95
+ let nestedError = undefined;
96
+ const revertDataEquals = (a, b) => a.length === b.length && a.every((v, i) => v.equals(b[i]));
97
+ if (context.machineState.collectedRevertInfo &&
98
+ revertDataEquals(context.machineState.collectedRevertInfo.revertDataRepresentative, revertData)) {
99
+ nestedError = context.machineState.collectedRevertInfo.recursiveRevertReason;
100
+ message = context.machineState.collectedRevertInfo.recursiveRevertReason.message;
101
+ }
106
102
  return new AvmRevertReason(message,
107
103
  /*failingFunction=*/ {
108
104
  contractAddress: context.environment.address,
@@ -112,16 +108,13 @@ function createRevertReason(message, context, nestedError) {
112
108
  /*options=*/ { cause: nestedError });
113
109
  }
114
110
  /**
115
- * Create a "revert reason" error for an exceptional halt,
116
- * creating the recursive structure if the halt was a RethrownError.
111
+ * Create a "revert reason" error for an exceptional halt.
117
112
  *
118
113
  * @param haltingError - the lower-level error causing the exceptional halt
119
114
  * @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
120
115
  */
121
116
  export function revertReasonFromExceptionalHalt(haltingError, context) {
122
- // A RethrownError has a nested/child AvmRevertReason
123
- const nestedError = haltingError instanceof RethrownError ? haltingError.nestedError : undefined;
124
- return createRevertReason(haltingError.message, context, nestedError);
117
+ return createRevertReason(haltingError.message, [], context);
125
118
  }
126
119
  /**
127
120
  * Create a "revert reason" error for an explicit revert (a root cause).
@@ -130,28 +123,6 @@ export function revertReasonFromExceptionalHalt(haltingError, context) {
130
123
  * @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
131
124
  */
132
125
  export function revertReasonFromExplicitRevert(revertData, context) {
133
- const revertMessage = decodeRevertDataAsMessage(revertData);
134
- return createRevertReason(revertMessage, context);
135
- }
136
- /**
137
- * Interpret revert data as a message string.
138
- *
139
- * @param revertData - output data of an explicit REVERT instruction
140
- */
141
- export function decodeRevertDataAsMessage(revertData) {
142
- if (revertData.length === 0) {
143
- return 'Assertion failed';
144
- }
145
- else {
146
- try {
147
- // We remove the first element which is the 'error selector'.
148
- const revertOutput = revertData.slice(1);
149
- // Try to interpret the output as a text string.
150
- return 'Assertion failed: ' + String.fromCharCode(...revertOutput.map(fr => fr.toNumber()));
151
- }
152
- catch (e) {
153
- return 'Assertion failed: <cannot interpret as string>';
154
- }
155
- }
126
+ return createRevertReason('Assertion failed: ', revertData, context);
156
127
  }
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F2bS9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFxQixFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHckQ7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLEtBQUs7SUFDbkQsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGlCQUFpQjtJQUMvRCxZQUFZLGVBQTZCO1FBQ3ZDLEtBQUssQ0FBQyx5QkFBeUIsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsSUFBSSxHQUFHLGlDQUFpQyxDQUFDO0lBQ2hELENBQUM7Q0FDRjtBQUVEOzs7R0FHRztBQUNILE1BQU0sT0FBTywwQkFBMkIsU0FBUSxpQkFBaUI7SUFDL0QsWUFBWSxFQUFVLEVBQUUsR0FBVztRQUNqQyxLQUFLLENBQUMsMkJBQTJCLEVBQUUsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxJQUFJLEdBQUcsNEJBQTRCLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsaUJBQWlCO0lBQzlELFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLDJCQUEyQixDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBaUI7SUFDM0MsTUFBTSxDQUFDLFNBQVMs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
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F2bS9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFxQixFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHckQ7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLEtBQUs7SUFDbkQsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGlCQUFpQjtJQUMvRCxZQUFZLGVBQTZCO1FBQ3ZDLEtBQUssQ0FBQyx5QkFBeUIsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsSUFBSSxHQUFHLGlDQUFpQyxDQUFDO0lBQ2hELENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxlQUFnQixTQUFRLGlCQUFpQjtJQUNwRCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsaUJBQWlCO0lBQy9ELFlBQVksRUFBVSxFQUFFLEdBQVc7UUFDakMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsSUFBSSxHQUFHLDRCQUE0QixDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGlCQUFpQjtJQUM5RCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFD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
@@ -1,7 +1,9 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference types="node" resolution-mode="require"/>
3
+ import { type MerkleTreeWriteOperations } from '@aztec/circuit-types';
3
4
  import { GlobalVariables } from '@aztec/circuits.js';
4
- import { FunctionSelector } from '@aztec/foundation/abi';
5
+ import { type FunctionArtifact, FunctionSelector } from '@aztec/foundation/abi';
6
+ import { Fr } from '@aztec/foundation/fields';
5
7
  import { type WorldStateDB } from '../../index.js';
6
8
  import { type PublicSideEffectTraceInterface } from '../../public/side_effect_trace_interface.js';
7
9
  import { AvmContext } from '../avm_context.js';
@@ -26,6 +28,8 @@ export declare function initPersistableStateManager(overrides?: {
26
28
  trace?: PublicSideEffectTraceInterface;
27
29
  publicStorage?: PublicStorage;
28
30
  nullifiers?: NullifierManager;
31
+ doMerkleOperations?: boolean;
32
+ merkleTrees?: MerkleTreeWriteOperations;
29
33
  }): AvmPersistableStateManager;
30
34
  /**
31
35
  * Create an empty instance of the Execution Environment where all values are zero, unless overridden in the overrides object
@@ -48,6 +52,7 @@ export declare function randomMemoryUint32s(length: number): Uint32[];
48
52
  export declare function randomMemoryUint64s(length: number): Uint64[];
49
53
  export declare function randomMemoryFields(length: number): Field[];
50
54
  export declare function getAvmTestContractFunctionSelector(functionName: string): FunctionSelector;
55
+ export declare function getAvmTestContractArtifact(functionName: string): FunctionArtifact;
51
56
  export declare function getAvmTestContractBytecode(functionName: string): Buffer;
52
- export declare function resolveAvmTestContractAssertionMessage(functionName: string, revertReason: AvmRevertReason): string | undefined;
57
+ export declare function resolveAvmTestContractAssertionMessage(functionName: string, revertReason: AvmRevertReason, output: Fr[]): string | undefined;
53
58
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/avm/fixtures/index.ts"],"names":[],"mappings":";;AACA,OAAO,EAAW,eAAe,EAAgC,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAA4B,MAAM,uBAAuB,CAAC;AAUnF,OAAO,EAAE,KAAK,YAAY,EAA+C,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,CAAC,EAAE;IACtC,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;IAC9C,GAAG,CAAC,EAAE,uBAAuB,CAAC;IAC9B,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,GAAG,UAAU,CAMb;AAED,+DAA+D;AAC/D,wBAAgB,2BAA2B,CAAC,SAAS,CAAC,EAAE;IACtD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,KAAK,CAAC,EAAE,8BAA8B,CAAC;IACvC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B,GAAG,0BAA0B,CAQ7B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,uBAAuB,CAW9G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAWzF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAKtF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,GAAG,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAEzD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAE1D;AAED,wBAAgB,kCAAkC,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB,CAKzF;AAED,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAOvE;AAED,wBAAgB,sCAAsC,CACpD,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,eAAe,GAC5B,MAAM,GAAG,SAAS,CAiBpB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/avm/fixtures/index.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,yBAAyB,EAA6B,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAW,eAAe,EAAgC,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,KAAK,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGhF,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAO9C,OAAO,EAAE,KAAK,YAAY,EAA6D,MAAM,gBAAgB,CAAC;AAC9G,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,CAAC,EAAE;IACtC,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;IAC9C,GAAG,CAAC,EAAE,uBAAuB,CAAC;IAC9B,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,GAAG,UAAU,CAMb;AAED,+DAA+D;AAC/D,wBAAgB,2BAA2B,CAAC,SAAS,CAAC,EAAE;IACtD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,KAAK,CAAC,EAAE,8BAA8B,CAAC;IACvC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,yBAAyB,CAAC;CACzC,GAAG,0BAA0B,CAU7B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,uBAAuB,CAW9G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAWzF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAKtF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,GAAG,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAEzD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAE1D;AAED,wBAAgB,kCAAkC,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB,CAKzF;AAED,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB,CAOjF;AAED,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAGvE;AAED,wBAAgB,sCAAsC,CACpD,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,eAAe,EAC7B,MAAM,EAAE,EAAE,EAAE,GACX,MAAM,GAAG,SAAS,CAWpB"}
@@ -1,6 +1,6 @@
1
1
  import { isNoirCallStackUnresolved } from '@aztec/circuit-types';
2
2
  import { GasFees, GlobalVariables, MAX_L2_GAS_PER_ENQUEUED_CALL } from '@aztec/circuits.js';
3
- import { FunctionSelector, getFunctionDebugMetadata } from '@aztec/foundation/abi';
3
+ import { FunctionSelector } from '@aztec/foundation/abi';
4
4
  import { AztecAddress } from '@aztec/foundation/aztec-address';
5
5
  import { EthAddress } from '@aztec/foundation/eth-address';
6
6
  import { Fr } from '@aztec/foundation/fields';
@@ -8,7 +8,7 @@ import { AvmTestContractArtifact } from '@aztec/noir-contracts.js';
8
8
  import { strict as assert } from 'assert';
9
9
  import { mock } from 'jest-mock-extended';
10
10
  import merge from 'lodash.merge';
11
- import { resolveAssertionMessage, traverseCauseChain } from '../../index.js';
11
+ import { resolveAssertionMessageFromRevertData, traverseCauseChain } from '../../index.js';
12
12
  import { AvmContext } from '../avm_context.js';
13
13
  import { AvmExecutionEnvironment } from '../avm_execution_environment.js';
14
14
  import { AvmMachineState } from '../avm_machine_state.js';
@@ -25,7 +25,7 @@ export function initContext(overrides) {
25
25
  /** Creates an empty state manager with mocked host storage. */
26
26
  export function initPersistableStateManager(overrides) {
27
27
  const worldStateDB = overrides?.worldStateDB || mock();
28
- return new AvmPersistableStateManager(worldStateDB, overrides?.trace || mock(), overrides?.publicStorage || new PublicStorage(worldStateDB), overrides?.nullifiers || new NullifierManager(worldStateDB));
28
+ return new AvmPersistableStateManager(worldStateDB, overrides?.trace || mock(), overrides?.publicStorage || new PublicStorage(worldStateDB), overrides?.nullifiers || new NullifierManager(worldStateDB), overrides?.doMerkleOperations || false, overrides?.merkleTrees || mock());
29
29
  }
30
30
  /**
31
31
  * Create an empty instance of the Execution Environment where all values are zero, unless overridden in the overrides object
@@ -72,23 +72,23 @@ export function getAvmTestContractFunctionSelector(functionName) {
72
72
  const params = artifact.parameters;
73
73
  return FunctionSelector.fromNameAndParameters(artifact.name, params);
74
74
  }
75
- export function getAvmTestContractBytecode(functionName) {
75
+ export function getAvmTestContractArtifact(functionName) {
76
76
  const artifact = AvmTestContractArtifact.functions.find(f => f.name === functionName);
77
77
  assert(!!artifact?.bytecode, `No bytecode found for function ${functionName}. Try re-running bootstrap.sh on the repository root.`);
78
+ return artifact;
79
+ }
80
+ export function getAvmTestContractBytecode(functionName) {
81
+ const artifact = getAvmTestContractArtifact(functionName);
78
82
  return artifact.bytecode;
79
83
  }
80
- export function resolveAvmTestContractAssertionMessage(functionName, revertReason) {
81
- const functionArtifact = AvmTestContractArtifact.functions.find(f => f.name === functionName);
84
+ export function resolveAvmTestContractAssertionMessage(functionName, revertReason, output) {
82
85
  traverseCauseChain(revertReason, cause => {
83
86
  revertReason = cause;
84
87
  });
88
+ const functionArtifact = AvmTestContractArtifact.functions.find(f => f.name === functionName);
85
89
  if (!functionArtifact || !revertReason.noirCallStack || !isNoirCallStackUnresolved(revertReason.noirCallStack)) {
86
90
  return undefined;
87
91
  }
88
- const debugMetadata = getFunctionDebugMetadata(AvmTestContractArtifact, functionArtifact);
89
- if (!debugMetadata) {
90
- return undefined;
91
- }
92
- return resolveAssertionMessage(revertReason.noirCallStack, debugMetadata);
92
+ return resolveAssertionMessageFromRevertData(output, functionArtifact);
93
93
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL2ZpeHR1cmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUVqQyxPQUFPLEVBQXFCLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkUsT0FB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
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL2ZpeHR1cmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0MseUJBQXlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVGLE9BQU8sRUFBeUIsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBRWpDLE9BQU8sRUFBcUIscUNBQXFDLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JB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
@@ -1,2 +1,3 @@
1
1
  export * from './avm_simulator.js';
2
+ export * from './journal/index.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/avm/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/avm/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
package/dest/avm/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './avm_simulator.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXZtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMifQ==
2
+ export * from './journal/index.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXZtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQyJ9
@@ -1,7 +1,9 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference types="node" resolution-mode="require"/>
3
- import { AztecAddress, type Gas, SerializableContractInstance } from '@aztec/circuits.js';
3
+ import { type IndexedTreeId, type MerkleTreeWriteOperations } from '@aztec/circuit-types';
4
+ import { type AztecAddress, type Gas, type PublicCallRequest, SerializableContractInstance } from '@aztec/circuits.js';
4
5
  import { Fr } from '@aztec/foundation/fields';
6
+ import { type IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
5
7
  import { type WorldStateDB } from '../../public/public_db_sources.js';
6
8
  import { type PublicSideEffectTraceInterface } from '../../public/side_effect_trace_interface.js';
7
9
  import { type AvmContractCallResult } from '../avm_contract_call_result.js';
@@ -21,21 +23,26 @@ export declare class AvmPersistableStateManager {
21
23
  /** Reference to node storage */
22
24
  private readonly worldStateDB;
23
25
  /** Side effect trace */
24
- private readonly trace;
26
+ readonly trace: PublicSideEffectTraceInterface;
25
27
  /** Public storage, including cached writes */
26
- readonly publicStorage: PublicStorage;
28
+ private readonly publicStorage;
27
29
  /** Nullifier set, including cached/recently-emitted nullifiers */
28
30
  private readonly nullifiers;
31
+ private readonly doMerkleOperations;
29
32
  private readonly log;
33
+ /** Interface to perform merkle tree operations */
34
+ merkleTrees: MerkleTreeWriteOperations;
35
+ /** Make sure a forked state is never merged twice. */
36
+ private alreadyMergedIntoParent;
30
37
  constructor(
31
38
  /** Reference to node storage */
32
39
  worldStateDB: WorldStateDB,
33
40
  /** Side effect trace */
34
41
  trace: PublicSideEffectTraceInterface,
35
42
  /** Public storage, including cached writes */
36
- publicStorage: PublicStorage,
43
+ publicStorage?: PublicStorage,
37
44
  /** Nullifier set, including cached/recently-emitted nullifiers */
38
- nullifiers: NullifierManager);
45
+ nullifiers?: NullifierManager, doMerkleOperations?: boolean, merkleTrees?: MerkleTreeWriteOperations);
39
46
  /**
40
47
  * Create a new state manager with some preloaded pending siloed nullifiers
41
48
  */
@@ -44,6 +51,20 @@ export declare class AvmPersistableStateManager {
44
51
  * Create a new state manager forked from this one
45
52
  */
46
53
  fork(): AvmPersistableStateManager;
54
+ /**
55
+ * Accept forked world state modifications & traced side effects / hints
56
+ */
57
+ merge(forkedState: AvmPersistableStateManager): void;
58
+ /**
59
+ * Reject forked world state modifications & traced side effects, keep traced hints
60
+ */
61
+ reject(forkedState: AvmPersistableStateManager): void;
62
+ /**
63
+ * Commit cached storage writes to the DB.
64
+ * Keeps public storage up to date from tx to tx within a block.
65
+ */
66
+ commitStorageWritesToDB(): Promise<void>;
67
+ private _merge;
47
68
  /**
48
69
  * Write to public storage, journal/trace the write.
49
70
  *
@@ -51,7 +72,7 @@ export declare class AvmPersistableStateManager {
51
72
  * @param slot - the slot in the contract's storage being written to
52
73
  * @param value - the value being written to the slot
53
74
  */
54
- writeStorage(contractAddress: Fr, slot: Fr, value: Fr): void;
75
+ writeStorage(contractAddress: AztecAddress, slot: Fr, value: Fr): Promise<void>;
55
76
  /**
56
77
  * Read from public storage, trace the read.
57
78
  *
@@ -59,7 +80,7 @@ export declare class AvmPersistableStateManager {
59
80
  * @param slot - the slot in the contract's storage being read from
60
81
  * @returns the latest value written to slot, or 0 if never written to before
61
82
  */
62
- readStorage(contractAddress: Fr, slot: Fr): Promise<Fr>;
83
+ readStorage(contractAddress: AztecAddress, slot: Fr): Promise<Fr>;
63
84
  /**
64
85
  * Read from public storage, don't trace the read.
65
86
  *
@@ -67,7 +88,7 @@ export declare class AvmPersistableStateManager {
67
88
  * @param slot - the slot in the contract's storage being read from
68
89
  * @returns the latest value written to slot, or 0 if never written to before
69
90
  */
70
- peekStorage(contractAddress: Fr, slot: Fr): Promise<Fr>;
91
+ peekStorage(contractAddress: AztecAddress, slot: Fr): Promise<Fr>;
71
92
  /**
72
93
  * Check if a note hash exists at the given leaf index, trace the check.
73
94
  *
@@ -76,63 +97,61 @@ export declare class AvmPersistableStateManager {
76
97
  * @param leafIndex - the leaf index being checked
77
98
  * @returns true if the note hash exists at the given leaf index, false otherwise
78
99
  */
79
- checkNoteHashExists(contractAddress: Fr, noteHash: Fr, leafIndex: Fr): Promise<boolean>;
100
+ checkNoteHashExists(contractAddress: AztecAddress, noteHash: Fr, leafIndex: Fr): Promise<boolean>;
80
101
  /**
81
102
  * Write a note hash, trace the write.
82
103
  * @param noteHash - the unsiloed note hash to write
83
104
  */
84
- writeNoteHash(contractAddress: Fr, noteHash: Fr): void;
105
+ writeNoteHash(contractAddress: AztecAddress, noteHash: Fr): Promise<void>;
85
106
  /**
86
107
  * Check if a nullifier exists, trace the check.
87
108
  * @param contractAddress - address of the contract that the nullifier is associated with
88
109
  * @param nullifier - the unsiloed nullifier to check
89
110
  * @returns exists - whether the nullifier exists in the nullifier set
90
111
  */
91
- checkNullifierExists(contractAddress: Fr, nullifier: Fr): Promise<boolean>;
112
+ checkNullifierExists(contractAddress: AztecAddress, nullifier: Fr): Promise<boolean>;
92
113
  /**
93
114
  * Write a nullifier to the nullifier set, trace the write.
94
115
  * @param contractAddress - address of the contract that the nullifier is associated with
95
116
  * @param nullifier - the unsiloed nullifier to write
96
117
  */
97
- writeNullifier(contractAddress: Fr, nullifier: Fr): Promise<void>;
118
+ writeNullifier(contractAddress: AztecAddress, nullifier: Fr): Promise<void>;
98
119
  /**
99
120
  * Check if an L1 to L2 message exists, trace the check.
100
121
  * @param msgHash - the message hash to check existence of
101
122
  * @param msgLeafIndex - the message leaf index to use in the check
102
123
  * @returns exists - whether the message exists in the L1 to L2 Messages tree
103
124
  */
104
- checkL1ToL2MessageExists(contractAddress: Fr, msgHash: Fr, msgLeafIndex: Fr): Promise<boolean>;
125
+ checkL1ToL2MessageExists(contractAddress: AztecAddress, msgHash: Fr, msgLeafIndex: Fr): Promise<boolean>;
105
126
  /**
106
127
  * Write an L2 to L1 message.
107
128
  * @param contractAddress - L2 contract address that created this message
108
129
  * @param recipient - L1 contract address to send the message to.
109
130
  * @param content - Message content.
110
131
  */
111
- writeL2ToL1Message(contractAddress: Fr, recipient: Fr, content: Fr): void;
132
+ writeL2ToL1Message(contractAddress: AztecAddress, recipient: Fr, content: Fr): void;
112
133
  /**
113
134
  * Write an unencrypted log
114
135
  * @param contractAddress - address of the contract that emitted the log
115
136
  * @param event - log event selector
116
137
  * @param log - log contents
117
138
  */
118
- writeUnencryptedLog(contractAddress: Fr, log: Fr[]): void;
139
+ writeUnencryptedLog(contractAddress: AztecAddress, log: Fr[]): void;
119
140
  /**
120
141
  * Get a contract instance.
121
142
  * @param contractAddress - address of the contract instance to retrieve.
122
143
  * @returns the contract instance or undefined if it does not exist.
123
144
  */
124
- getContractInstance(contractAddress: Fr): Promise<SerializableContractInstance | undefined>;
125
- /**
126
- * Accept nested world state modifications
127
- */
128
- acceptNestedCallState(nestedState: AvmPersistableStateManager): void;
145
+ getContractInstance(contractAddress: AztecAddress): Promise<SerializableContractInstance | undefined>;
129
146
  /**
130
147
  * Get a contract's bytecode from the contracts DB, also trace the contract class and instance
131
148
  */
132
149
  getBytecode(contractAddress: AztecAddress): Promise<Buffer | undefined>;
133
- /**
134
- * Accept the nested call's state and trace the nested call
135
- */
136
- processNestedCall(nestedState: AvmPersistableStateManager, nestedEnvironment: AvmExecutionEnvironment, startGasLeft: Gas, endGasLeft: Gas, bytecode: Buffer, avmCallResults: AvmContractCallResult): Promise<void>;
150
+ traceNestedCall(forkedState: AvmPersistableStateManager, nestedEnvironment: AvmExecutionEnvironment, startGasLeft: Gas, endGasLeft: Gas, bytecode: Buffer, avmCallResults: AvmContractCallResult): Promise<void>;
151
+ traceEnqueuedCall(publicCallRequest: PublicCallRequest, calldata: Fr[], reverted: boolean): void;
137
152
  }
153
+ /**
154
+ * Get leaf if present, low leaf if absent
155
+ */
156
+ export declare function getLeafOrLowLeaf<TreePreimageType extends IndexedTreeLeafPreimage>(treeId: IndexedTreeId, key: bigint, merkleTrees: MerkleTreeWriteOperations): Promise<readonly [bigint, TreePreimageType, Fr[], boolean]>;
138
157
  //# sourceMappingURL=journal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../../src/avm/journal/journal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../../src/avm/journal/journal.ts"],"names":[],"mappings":"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"}