@aztec/simulator 0.37.0 → 0.39.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 (181) hide show
  1. package/dest/acvm/acvm.d.ts +1 -1
  2. package/dest/acvm/acvm.d.ts.map +1 -1
  3. package/dest/acvm/acvm.js +2 -2
  4. package/dest/acvm/oracle/oracle.d.ts +6 -5
  5. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  6. package/dest/acvm/oracle/oracle.js +26 -30
  7. package/dest/acvm/oracle/typed_oracle.d.ts +5 -5
  8. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  9. package/dest/acvm/oracle/typed_oracle.js +9 -9
  10. package/dest/avm/avm_execution_environment.d.ts +4 -3
  11. package/dest/avm/avm_execution_environment.d.ts.map +1 -1
  12. package/dest/avm/avm_execution_environment.js +17 -11
  13. package/dest/avm/avm_gas.d.ts.map +1 -1
  14. package/dest/avm/avm_gas.js +4 -1
  15. package/dest/avm/avm_machine_state.d.ts +5 -8
  16. package/dest/avm/avm_machine_state.d.ts.map +1 -1
  17. package/dest/avm/avm_machine_state.js +10 -22
  18. package/dest/avm/avm_memory_types.d.ts +1 -1
  19. package/dest/avm/avm_memory_types.d.ts.map +1 -1
  20. package/dest/avm/avm_message_call_result.d.ts +5 -8
  21. package/dest/avm/avm_message_call_result.d.ts.map +1 -1
  22. package/dest/avm/avm_message_call_result.js +1 -4
  23. package/dest/avm/avm_simulator.d.ts.map +1 -1
  24. package/dest/avm/avm_simulator.js +19 -13
  25. package/dest/avm/errors.d.ts +43 -2
  26. package/dest/avm/errors.d.ts.map +1 -1
  27. package/dest/avm/errors.js +86 -4
  28. package/dest/avm/journal/journal.d.ts +20 -1
  29. package/dest/avm/journal/journal.d.ts.map +1 -1
  30. package/dest/avm/journal/journal.js +70 -9
  31. package/dest/avm/journal/nullifiers.d.ts +3 -1
  32. package/dest/avm/journal/nullifiers.d.ts.map +1 -1
  33. package/dest/avm/journal/nullifiers.js +14 -6
  34. package/dest/avm/journal/public_storage.d.ts +10 -1
  35. package/dest/avm/journal/public_storage.d.ts.map +1 -1
  36. package/dest/avm/journal/public_storage.js +17 -2
  37. package/dest/avm/journal/trace.d.ts +1 -4
  38. package/dest/avm/journal/trace.d.ts.map +1 -1
  39. package/dest/avm/journal/trace.js +4 -5
  40. package/dest/avm/journal/trace_types.d.ts +1 -0
  41. package/dest/avm/journal/trace_types.d.ts.map +1 -1
  42. package/dest/avm/journal/trace_types.js +1 -1
  43. package/dest/avm/opcodes/bitwise.d.ts +4 -1
  44. package/dest/avm/opcodes/bitwise.d.ts.map +1 -1
  45. package/dest/avm/opcodes/bitwise.js +14 -2
  46. package/dest/avm/opcodes/conversion.d.ts +16 -0
  47. package/dest/avm/opcodes/conversion.d.ts.map +1 -0
  48. package/dest/avm/opcodes/conversion.js +48 -0
  49. package/dest/avm/opcodes/environment_getters.d.ts +16 -12
  50. package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
  51. package/dest/avm/opcodes/environment_getters.js +19 -48
  52. package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
  53. package/dest/avm/opcodes/external_calls.js +24 -13
  54. package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  55. package/dest/avm/serialization/bytecode_serialization.js +6 -2
  56. package/dest/avm/serialization/instruction_serialization.d.ts +40 -38
  57. package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
  58. package/dest/avm/serialization/instruction_serialization.js +42 -39
  59. package/dest/client/client_execution_context.d.ts +59 -19
  60. package/dest/client/client_execution_context.d.ts.map +1 -1
  61. package/dest/client/client_execution_context.js +97 -45
  62. package/dest/client/db_oracle.d.ts +4 -11
  63. package/dest/client/db_oracle.d.ts.map +1 -1
  64. package/dest/client/execution_result.d.ts +22 -15
  65. package/dest/client/execution_result.d.ts.map +1 -1
  66. package/dest/client/execution_result.js +59 -13
  67. package/dest/client/logs_cache.d.ts +33 -0
  68. package/dest/client/logs_cache.d.ts.map +1 -0
  69. package/dest/client/logs_cache.js +59 -0
  70. package/dest/client/private_execution.d.ts +2 -2
  71. package/dest/client/private_execution.d.ts.map +1 -1
  72. package/dest/client/private_execution.js +5 -7
  73. package/dest/client/simulator.d.ts +4 -34
  74. package/dest/client/simulator.d.ts.map +1 -1
  75. package/dest/client/simulator.js +5 -43
  76. package/dest/client/unconstrained_execution.d.ts +2 -2
  77. package/dest/client/unconstrained_execution.d.ts.map +1 -1
  78. package/dest/client/unconstrained_execution.js +1 -1
  79. package/dest/client/view_data_oracle.d.ts +0 -7
  80. package/dest/client/view_data_oracle.d.ts.map +1 -1
  81. package/dest/client/view_data_oracle.js +1 -10
  82. package/dest/common/errors.d.ts +5 -0
  83. package/dest/common/errors.d.ts.map +1 -1
  84. package/dest/common/errors.js +6 -1
  85. package/dest/index.d.ts +1 -0
  86. package/dest/index.d.ts.map +1 -1
  87. package/dest/index.js +2 -1
  88. package/dest/mocks/fixtures.d.ts.map +1 -1
  89. package/dest/mocks/fixtures.js +3 -1
  90. package/dest/public/abstract_phase_manager.d.ts +10 -4
  91. package/dest/public/abstract_phase_manager.d.ts.map +1 -1
  92. package/dest/public/abstract_phase_manager.js +50 -19
  93. package/dest/public/app_logic_phase_manager.d.ts +1 -0
  94. package/dest/public/app_logic_phase_manager.d.ts.map +1 -1
  95. package/dest/public/app_logic_phase_manager.js +3 -3
  96. package/dest/public/execution.d.ts +9 -0
  97. package/dest/public/execution.d.ts.map +1 -1
  98. package/dest/public/execution.js +1 -1
  99. package/dest/public/executor.d.ts +2 -2
  100. package/dest/public/executor.d.ts.map +1 -1
  101. package/dest/public/executor.js +34 -17
  102. package/dest/public/hints_builder.d.ts +3 -3
  103. package/dest/public/hints_builder.d.ts.map +1 -1
  104. package/dest/public/hints_builder.js +3 -3
  105. package/dest/public/public_execution_context.d.ts +10 -4
  106. package/dest/public/public_execution_context.d.ts.map +1 -1
  107. package/dest/public/public_execution_context.js +19 -6
  108. package/dest/public/public_processor.d.ts.map +1 -1
  109. package/dest/public/public_processor.js +5 -3
  110. package/dest/public/setup_phase_manager.d.ts +1 -0
  111. package/dest/public/setup_phase_manager.d.ts.map +1 -1
  112. package/dest/public/setup_phase_manager.js +3 -2
  113. package/dest/public/tail_phase_manager.d.ts +1 -1
  114. package/dest/public/tail_phase_manager.d.ts.map +1 -1
  115. package/dest/public/tail_phase_manager.js +4 -26
  116. package/dest/public/teardown_phase_manager.d.ts +1 -0
  117. package/dest/public/teardown_phase_manager.d.ts.map +1 -1
  118. package/dest/public/teardown_phase_manager.js +3 -2
  119. package/dest/public/transitional_adaptors.d.ts +4 -17
  120. package/dest/public/transitional_adaptors.d.ts.map +1 -1
  121. package/dest/public/transitional_adaptors.js +27 -119
  122. package/dest/rollup/index.d.ts +2 -0
  123. package/dest/rollup/index.d.ts.map +1 -0
  124. package/dest/rollup/index.js +2 -0
  125. package/dest/rollup/rollup.d.ts +77 -0
  126. package/dest/rollup/rollup.d.ts.map +1 -0
  127. package/dest/rollup/rollup.js +78 -0
  128. package/dest/stats/index.d.ts +2 -0
  129. package/dest/stats/index.d.ts.map +1 -0
  130. package/dest/stats/index.js +2 -0
  131. package/dest/stats/stats.d.ts +4 -0
  132. package/dest/stats/stats.d.ts.map +1 -0
  133. package/dest/stats/stats.js +11 -0
  134. package/package.json +8 -8
  135. package/src/acvm/acvm.ts +2 -2
  136. package/src/acvm/oracle/oracle.ts +62 -36
  137. package/src/acvm/oracle/typed_oracle.ts +19 -11
  138. package/src/avm/avm_execution_environment.ts +34 -42
  139. package/src/avm/avm_gas.ts +3 -0
  140. package/src/avm/avm_machine_state.ts +14 -25
  141. package/src/avm/avm_memory_types.ts +1 -1
  142. package/src/avm/avm_message_call_result.ts +3 -14
  143. package/src/avm/avm_simulator.ts +24 -12
  144. package/src/avm/errors.ts +94 -4
  145. package/src/avm/journal/journal.ts +134 -9
  146. package/src/avm/journal/nullifiers.ts +19 -8
  147. package/src/avm/journal/public_storage.ts +23 -2
  148. package/src/avm/journal/trace.ts +3 -4
  149. package/src/avm/journal/trace_types.ts +1 -0
  150. package/src/avm/opcodes/bitwise.ts +18 -7
  151. package/src/avm/opcodes/conversion.ts +59 -0
  152. package/src/avm/opcodes/environment_getters.ts +21 -65
  153. package/src/avm/opcodes/external_calls.ts +32 -16
  154. package/src/avm/serialization/bytecode_serialization.ts +5 -0
  155. package/src/avm/serialization/instruction_serialization.ts +3 -0
  156. package/src/client/client_execution_context.ts +142 -46
  157. package/src/client/db_oracle.ts +4 -18
  158. package/src/client/execution_result.ts +75 -25
  159. package/src/client/logs_cache.ts +65 -0
  160. package/src/client/private_execution.ts +6 -10
  161. package/src/client/simulator.ts +8 -84
  162. package/src/client/unconstrained_execution.ts +2 -2
  163. package/src/client/view_data_oracle.ts +0 -10
  164. package/src/common/errors.ts +5 -0
  165. package/src/index.ts +1 -0
  166. package/src/mocks/fixtures.ts +2 -0
  167. package/src/public/abstract_phase_manager.ts +59 -23
  168. package/src/public/app_logic_phase_manager.ts +2 -1
  169. package/src/public/execution.ts +9 -0
  170. package/src/public/executor.ts +47 -14
  171. package/src/public/hints_builder.ts +5 -5
  172. package/src/public/public_execution_context.ts +18 -4
  173. package/src/public/public_processor.ts +8 -2
  174. package/src/public/setup_phase_manager.ts +16 -8
  175. package/src/public/tail_phase_manager.ts +8 -35
  176. package/src/public/teardown_phase_manager.ts +16 -8
  177. package/src/public/transitional_adaptors.ts +39 -177
  178. package/src/rollup/index.ts +1 -0
  179. package/src/rollup/rollup.ts +160 -0
  180. package/src/stats/index.ts +1 -0
  181. package/src/stats/stats.ts +20 -0
@@ -1,3 +1,4 @@
1
+ import { TypeTag } from '../avm_memory_types.js';
1
2
  import { Opcode } from '../serialization/instruction_serialization.js';
2
3
  import { ThreeOperandInstruction, TwoOperandInstruction } from './instruction_impl.js';
3
4
  class ThreeOperandBitwiseInstruction extends ThreeOperandInstruction {
@@ -5,7 +6,7 @@ class ThreeOperandBitwiseInstruction extends ThreeOperandInstruction {
5
6
  const memoryOperations = { reads: 2, writes: 1, indirect: this.indirect };
6
7
  const memory = context.machineState.memory.track(this.type);
7
8
  context.machineState.consumeGas(this.gasCost(memoryOperations));
8
- memory.checkTags(this.inTag, this.aOffset, this.bOffset);
9
+ this.checkTags(memory, this.inTag, this.aOffset, this.bOffset);
9
10
  const a = memory.getAs(this.aOffset);
10
11
  const b = memory.getAs(this.bOffset);
11
12
  const res = this.compute(a, b);
@@ -13,6 +14,9 @@ class ThreeOperandBitwiseInstruction extends ThreeOperandInstruction {
13
14
  memory.assert(memoryOperations);
14
15
  context.machineState.incrementPc();
15
16
  }
17
+ checkTags(memory, inTag, aOffset, bOffset) {
18
+ memory.checkTags(inTag, aOffset, bOffset);
19
+ }
16
20
  }
17
21
  export class And extends ThreeOperandBitwiseInstruction {
18
22
  compute(a, b) {
@@ -39,6 +43,10 @@ export class Shl extends ThreeOperandBitwiseInstruction {
39
43
  compute(a, b) {
40
44
  return a.shl(b);
41
45
  }
46
+ checkTags(memory, inTag, aOffset, bOffset) {
47
+ memory.checkTag(inTag, aOffset);
48
+ memory.checkTag(TypeTag.UINT8, bOffset);
49
+ }
42
50
  }
43
51
  Shl.type = 'SHL';
44
52
  Shl.opcode = Opcode.SHL;
@@ -46,6 +54,10 @@ export class Shr extends ThreeOperandBitwiseInstruction {
46
54
  compute(a, b) {
47
55
  return a.shr(b);
48
56
  }
57
+ checkTags(memory, inTag, aOffset, bOffset) {
58
+ memory.checkTag(inTag, aOffset);
59
+ memory.checkTag(TypeTag.UINT8, bOffset);
60
+ }
49
61
  }
50
62
  Shr.type = 'SHR';
51
63
  Shr.opcode = Opcode.SHR;
@@ -67,4 +79,4 @@ export class Not extends TwoOperandInstruction {
67
79
  }
68
80
  Not.type = 'NOT';
69
81
  Not.opcode = Opcode.NOT;
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0d2lzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9iaXR3aXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RixNQUFlLDhCQUErQixTQUFRLHVCQUF1QjtJQUNwRSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQW1CO1FBQ3RDLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6RCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFnQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBZ0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXBELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FB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
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0d2lzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9iaXR3aXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBa0QsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXZGLE1BQWUsOEJBQStCLFNBQVEsdUJBQXVCO0lBQ3BFLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDdEMsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFFaEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvRCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFnQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBZ0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXBELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9C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
@@ -0,0 +1,16 @@
1
+ import { type AvmContext } from '../avm_context.js';
2
+ import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
3
+ import { Instruction } from './instruction.js';
4
+ export declare class ToRadixLE extends Instruction {
5
+ private indirect;
6
+ private srcOffset;
7
+ private dstOffset;
8
+ private radix;
9
+ private numLimbs;
10
+ static type: string;
11
+ static readonly opcode: Opcode;
12
+ static readonly wireFormat: OperandType[];
13
+ constructor(indirect: number, srcOffset: number, dstOffset: number, radix: number, numLimbs: number);
14
+ execute(context: AvmContext): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=conversion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversion.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/conversion.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,SAAU,SAAQ,WAAW;IAetC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,QAAQ;IAlBlB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAe;IAClC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAoB;IAGlD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAOvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM;IAMb,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBzD"}
@@ -0,0 +1,48 @@
1
+ import { strict as assert } from 'assert';
2
+ import { TypeTag, Uint8 } from '../avm_memory_types.js';
3
+ import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
4
+ import { Addressing } from './addressing_mode.js';
5
+ import { Instruction } from './instruction.js';
6
+ export class ToRadixLE extends Instruction {
7
+ constructor(indirect, srcOffset, dstOffset, radix, numLimbs) {
8
+ assert(radix <= 256, 'Radix cannot be greater than 256');
9
+ super();
10
+ this.indirect = indirect;
11
+ this.srcOffset = srcOffset;
12
+ this.dstOffset = dstOffset;
13
+ this.radix = radix;
14
+ this.numLimbs = numLimbs;
15
+ }
16
+ async execute(context) {
17
+ const memory = context.machineState.memory.track(this.type);
18
+ const [srcOffset, dstOffset] = Addressing.fromWire(this.indirect).resolve([this.srcOffset, this.dstOffset], memory);
19
+ const memoryOperations = { reads: 1, writes: this.numLimbs, indirect: this.indirect };
20
+ context.machineState.consumeGas(this.gasCost(memoryOperations));
21
+ // The radix gadget only takes in a Field
22
+ memory.checkTag(TypeTag.FIELD, srcOffset);
23
+ let value = memory.get(srcOffset).toBigInt();
24
+ const radixBN = BigInt(this.radix);
25
+ const limbArray = [];
26
+ for (let i = 0; i < this.numLimbs; i++) {
27
+ const limb = value % radixBN;
28
+ limbArray.push(limb);
29
+ value /= radixBN;
30
+ }
31
+ const res = [...limbArray].map(byte => new Uint8(byte));
32
+ memory.setSlice(dstOffset, res);
33
+ memory.assert(memoryOperations);
34
+ context.machineState.incrementPc();
35
+ }
36
+ }
37
+ ToRadixLE.type = 'TORADIXLE';
38
+ ToRadixLE.opcode = Opcode.TORADIXLE;
39
+ // Informs (de)serialization. See Instruction.deserialize.
40
+ ToRadixLE.wireFormat = [
41
+ OperandType.UINT8, // Opcode
42
+ OperandType.UINT8, // Indirect
43
+ OperandType.UINT32, // src memory address
44
+ OperandType.UINT32, // dst memory address
45
+ OperandType.UINT32, // radix (immediate)
46
+ OperandType.UINT32, // number of limbs (Immediate)
47
+ ];
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9jb252ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLElBQUksTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE1BQU0sT0FBTyxTQUFVLFNBQVEsV0FBVztJQWN4QyxZQUNVLFFBQWdCLEVBQ2hCLFNBQWlCLEVBQ2pCLFNBQWlCLEVBQ2pCLEtBQWEsRUFDYixRQUFnQjtRQUV4QixNQUFNLENBQUMsS0FBSyxJQUFJLEdBQUcsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ3pELEtBQUssRUFBRSxDQUFDO1FBUEEsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGFBQVEsR0FBUixRQUFRLENBQVE7SUFJMUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDdEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BILE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEYsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFFaEUseUNBQXlDO1FBQ3pDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUUxQyxJQUFJLEtBQUssR0FBVyxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JELE1BQU0sT0FBTyxHQUFXLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBRXJCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDdkMsTUFBTSxJQUFJLEdBQUcsS0FBSyxHQUFHLE9BQU8sQ0FBQztZQUM3QixTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JCLEtBQUssSUFBSSxPQUFPLENBQUM7UUFDbkIsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWhDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNoQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7O0FBaERNLGNBQUksR0FBVyxXQUFXLENBQUM7QUFDbEIsZ0JBQU0sR0FBVyxNQUFNLENBQUMsU0FBUyxDQUFDO0FBRWxELDBEQUEwRDtBQUMxQyxvQkFBVSxHQUFrQjtJQUMxQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVM7SUFDNUIsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXO0lBQzlCLFdBQVcsQ0FBQyxNQUFNLEVBQUUscUJBQXFCO0lBQ3pDLFdBQVcsQ0FBQyxNQUFNLEVBQUUscUJBQXFCO0lBQ3pDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CO0lBQ3hDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsOEJBQThCO0NBQ25ELENBQUMifQ==
@@ -1,57 +1,61 @@
1
- import { type Fr } from '@aztec/circuits.js';
2
1
  import type { AvmContext } from '../avm_context.js';
3
2
  import type { AvmExecutionEnvironment } from '../avm_execution_environment.js';
4
- import { type MemoryValue } from '../avm_memory_types.js';
3
+ import { Field, type MemoryValue, Uint64 } from '../avm_memory_types.js';
5
4
  import { Opcode } from '../serialization/instruction_serialization.js';
6
5
  import { GetterInstruction } from './instruction_impl.js';
7
6
  declare abstract class EnvironmentGetterInstruction extends GetterInstruction {
8
7
  protected getValue(context: AvmContext): MemoryValue;
9
- protected abstract getEnvironmentValue(env: AvmExecutionEnvironment): Fr | number | bigint;
8
+ protected abstract getEnvironmentValue(env: AvmExecutionEnvironment): MemoryValue;
10
9
  }
11
10
  export declare class Address extends EnvironmentGetterInstruction {
12
11
  static type: string;
13
12
  static readonly opcode: Opcode;
14
- protected getEnvironmentValue(env: AvmExecutionEnvironment): import("@aztec/circuits.js").AztecAddress;
13
+ protected getEnvironmentValue(env: AvmExecutionEnvironment): Field;
15
14
  }
16
15
  export declare class StorageAddress extends EnvironmentGetterInstruction {
17
16
  static type: string;
18
17
  static readonly opcode: Opcode;
19
- protected getEnvironmentValue(env: AvmExecutionEnvironment): import("@aztec/circuits.js").AztecAddress;
18
+ protected getEnvironmentValue(env: AvmExecutionEnvironment): Field;
20
19
  }
21
20
  export declare class Sender extends EnvironmentGetterInstruction {
22
21
  static type: string;
23
22
  static readonly opcode: Opcode;
24
- protected getEnvironmentValue(env: AvmExecutionEnvironment): import("@aztec/circuits.js").AztecAddress;
23
+ protected getEnvironmentValue(env: AvmExecutionEnvironment): Field;
25
24
  }
26
25
  export declare class FeePerL2Gas extends EnvironmentGetterInstruction {
27
26
  static type: string;
28
27
  static readonly opcode: Opcode;
29
- protected getEnvironmentValue(env: AvmExecutionEnvironment): Fr;
28
+ protected getEnvironmentValue(env: AvmExecutionEnvironment): Field;
30
29
  }
31
30
  export declare class FeePerDAGas extends EnvironmentGetterInstruction {
32
31
  static type: string;
33
32
  static readonly opcode: Opcode;
34
- protected getEnvironmentValue(env: AvmExecutionEnvironment): Fr;
33
+ protected getEnvironmentValue(env: AvmExecutionEnvironment): Field;
34
+ }
35
+ export declare class TransactionFee extends EnvironmentGetterInstruction {
36
+ static type: string;
37
+ static readonly opcode: Opcode;
38
+ protected getEnvironmentValue(env: AvmExecutionEnvironment): Field;
35
39
  }
36
40
  export declare class ChainId extends EnvironmentGetterInstruction {
37
41
  static type: string;
38
42
  static readonly opcode: Opcode;
39
- protected getEnvironmentValue(env: AvmExecutionEnvironment): Fr;
43
+ protected getEnvironmentValue(env: AvmExecutionEnvironment): Field;
40
44
  }
41
45
  export declare class Version extends EnvironmentGetterInstruction {
42
46
  static type: string;
43
47
  static readonly opcode: Opcode;
44
- protected getEnvironmentValue(env: AvmExecutionEnvironment): Fr;
48
+ protected getEnvironmentValue(env: AvmExecutionEnvironment): Field;
45
49
  }
46
50
  export declare class BlockNumber extends EnvironmentGetterInstruction {
47
51
  static type: string;
48
52
  static readonly opcode: Opcode;
49
- protected getEnvironmentValue(env: AvmExecutionEnvironment): Fr;
53
+ protected getEnvironmentValue(env: AvmExecutionEnvironment): Field;
50
54
  }
51
55
  export declare class Timestamp extends EnvironmentGetterInstruction {
52
56
  static type: string;
53
57
  static readonly opcode: Opcode;
54
- protected getEnvironmentValue(env: AvmExecutionEnvironment): Fr;
58
+ protected getEnvironmentValue(env: AvmExecutionEnvironment): Uint64;
55
59
  }
56
60
  export {};
57
61
  //# sourceMappingURL=environment_getters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment_getters.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/environment_getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAS,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,+CAA+C,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,uBAAe,4BAA6B,SAAQ,iBAAiB;IACnE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,WAAW;IAIpD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,GAAG,EAAE,uBAAuB,GAAG,EAAE,GAAG,MAAM,GAAG,MAAM;CAC3F;AAED,qBAAa,OAAQ,SAAQ,4BAA4B;IACvD,MAAM,CAAC,IAAI,EAAE,MAAM,CAAa;IAChC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAkB;IAEhD,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,uBAAuB;CAG3D;AAED,qBAAa,cAAe,SAAQ,4BAA4B;IAC9D,MAAM,CAAC,IAAI,EAAE,MAAM,CAAoB;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAyB;IAEvD,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,uBAAuB;CAG3D;AAED,qBAAa,MAAO,SAAQ,4BAA4B;IACtD,MAAM,CAAC,IAAI,EAAE,MAAM,CAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAiB;IAE/C,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,uBAAuB;CAG3D;AAED,qBAAa,WAAY,SAAQ,4BAA4B;IAC3D,MAAM,CAAC,IAAI,EAAE,MAAM,CAAiB;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAsB;IAEpD,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,uBAAuB;CAG3D;AAED,qBAAa,WAAY,SAAQ,4BAA4B;IAC3D,MAAM,CAAC,IAAI,EAAE,MAAM,CAAiB;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAsB;IAEpD,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,uBAAuB;CAG3D;AAED,qBAAa,OAAQ,SAAQ,4BAA4B;IACvD,MAAM,CAAC,IAAI,EAAE,MAAM,CAAa;IAChC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAkB;IAEhD,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,uBAAuB;CAG3D;AAED,qBAAa,OAAQ,SAAQ,4BAA4B;IACvD,MAAM,CAAC,IAAI,EAAE,MAAM,CAAa;IAChC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAkB;IAEhD,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,uBAAuB;CAG3D;AAED,qBAAa,WAAY,SAAQ,4BAA4B;IAC3D,MAAM,CAAC,IAAI,EAAE,MAAM,CAAiB;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAsB;IAEpD,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,uBAAuB;CAG3D;AAED,qBAAa,SAAU,SAAQ,4BAA4B;IACzD,MAAM,CAAC,IAAI,EAAE,MAAM,CAAe;IAClC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAoB;IAElD,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,uBAAuB;CAG3D"}
1
+ {"version":3,"file":"environment_getters.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/environment_getters.ts"],"names":[],"mappings":"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"}
@@ -1,108 +1,79 @@
1
- import { Field } from '../avm_memory_types.js';
1
+ import { Field, Uint64 } from '../avm_memory_types.js';
2
2
  import { Opcode } from '../serialization/instruction_serialization.js';
3
3
  import { GetterInstruction } from './instruction_impl.js';
4
4
  class EnvironmentGetterInstruction extends GetterInstruction {
5
5
  getValue(context) {
6
- return new Field(this.getEnvironmentValue(context.environment));
6
+ return this.getEnvironmentValue(context.environment);
7
7
  }
8
8
  }
9
9
  export class Address extends EnvironmentGetterInstruction {
10
10
  getEnvironmentValue(env) {
11
- return env.address;
11
+ return new Field(env.address.toField());
12
12
  }
13
13
  }
14
14
  Address.type = 'ADDRESS';
15
15
  Address.opcode = Opcode.ADDRESS;
16
16
  export class StorageAddress extends EnvironmentGetterInstruction {
17
17
  getEnvironmentValue(env) {
18
- return env.storageAddress;
18
+ return new Field(env.storageAddress.toField());
19
19
  }
20
20
  }
21
21
  StorageAddress.type = 'STORAGEADDRESS';
22
22
  StorageAddress.opcode = Opcode.STORAGEADDRESS;
23
23
  export class Sender extends EnvironmentGetterInstruction {
24
24
  getEnvironmentValue(env) {
25
- return env.sender;
25
+ return new Field(env.sender.toField());
26
26
  }
27
27
  }
28
28
  Sender.type = 'SENDER';
29
29
  Sender.opcode = Opcode.SENDER;
30
30
  export class FeePerL2Gas extends EnvironmentGetterInstruction {
31
31
  getEnvironmentValue(env) {
32
- return env.feePerL2Gas;
32
+ return new Field(env.feePerL2Gas);
33
33
  }
34
34
  }
35
35
  FeePerL2Gas.type = 'FEEPERL2GAS';
36
36
  FeePerL2Gas.opcode = Opcode.FEEPERL2GAS;
37
37
  export class FeePerDAGas extends EnvironmentGetterInstruction {
38
38
  getEnvironmentValue(env) {
39
- return env.feePerDaGas;
39
+ return new Field(env.feePerDaGas);
40
40
  }
41
41
  }
42
42
  FeePerDAGas.type = 'FEEPERDAGAS';
43
43
  FeePerDAGas.opcode = Opcode.FEEPERDAGAS;
44
+ export class TransactionFee extends EnvironmentGetterInstruction {
45
+ getEnvironmentValue(env) {
46
+ return new Field(env.transactionFee);
47
+ }
48
+ }
49
+ TransactionFee.type = 'TRANSACTIONFEE';
50
+ TransactionFee.opcode = Opcode.TRANSACTIONFEE;
44
51
  export class ChainId extends EnvironmentGetterInstruction {
45
52
  getEnvironmentValue(env) {
46
- return env.globals.chainId;
53
+ return new Field(env.globals.chainId);
47
54
  }
48
55
  }
49
56
  ChainId.type = 'CHAINID';
50
57
  ChainId.opcode = Opcode.CHAINID;
51
58
  export class Version extends EnvironmentGetterInstruction {
52
59
  getEnvironmentValue(env) {
53
- return env.globals.version;
60
+ return new Field(env.globals.version);
54
61
  }
55
62
  }
56
63
  Version.type = 'VERSION';
57
64
  Version.opcode = Opcode.VERSION;
58
65
  export class BlockNumber extends EnvironmentGetterInstruction {
59
66
  getEnvironmentValue(env) {
60
- return env.globals.blockNumber;
67
+ return new Field(env.globals.blockNumber);
61
68
  }
62
69
  }
63
70
  BlockNumber.type = 'BLOCKNUMBER';
64
71
  BlockNumber.opcode = Opcode.BLOCKNUMBER;
65
72
  export class Timestamp extends EnvironmentGetterInstruction {
66
73
  getEnvironmentValue(env) {
67
- return env.globals.timestamp;
74
+ return new Uint64(env.globals.timestamp.toBigInt());
68
75
  }
69
76
  }
70
77
  Timestamp.type = 'TIMESTAMP';
71
78
  Timestamp.opcode = Opcode.TIMESTAMP;
72
- // export class Coinbase extends EnvironmentGetterInstruction {
73
- // static type: string = 'COINBASE';
74
- // static numberOfOperands = 1;
75
- // constructor(private destOffset: number) {
76
- // super();
77
- // }
78
- // async execute(machineState: AvmMachineState, _journal: AvmJournal): Promise<void> {
79
- // const {coinbase} = machineState.executionEnvironment.globals;
80
- // machineState.memory.set(this.destOffset, coinbase);
81
- // this.incrementPc(machineState);
82
- // }
83
- // }
84
- // export class BlockL2GasLimit extends EnvironmentGetterInstruction {
85
- // static type: string = 'BLOCKL2GASLIMIT';
86
- // static numberOfOperands = 1;
87
- // constructor(private destOffset: number) {
88
- // super();
89
- // }
90
- // async execute(machineState: AvmMachineState, _journal: AvmJournal): Promise<void> {
91
- // const {blockL2GasLimit} = machineState.executionEnvironment.globals;
92
- // machineState.memory.set(this.destOffset, blockL2GasLimit);
93
- // this.incrementPc(machineState);
94
- // }
95
- // }
96
- // export class BlockDAGasLimit extends EnvironmentGetterInstruction {
97
- // static type: string = 'BLOCKDAGASLIMIT';
98
- // static numberOfOperands = 1;
99
- // constructor(private destOffset: number) {
100
- // super();
101
- // }
102
- // async execute(machineState: AvmMachineState, _journal: AvmJournal): Promise<void> {
103
- // const {blockDAGasLimit} = machineState.executionEnvironment.globals;
104
- // machineState.memory.set(this.destOffset, blockDAGasLimit);
105
- // this.incrementPc(machineState);
106
- // }
107
- // }
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRfZ2V0dGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9lbnZpcm9ubWVudF9nZXR0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxLQUFLLEVBQW9CLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE1BQWUsNEJBQTZCLFNBQVEsaUJBQWlCO0lBQ3pELFFBQVEsQ0FBQyxPQUFtQjtRQUNwQyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0NBR0Y7QUFFRCxNQUFNLE9BQU8sT0FBUSxTQUFRLDRCQUE0QjtJQUk3QyxtQkFBbUIsQ0FBQyxHQUE0QjtRQUN4RCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFDckIsQ0FBQzs7QUFMTSxZQUFJLEdBQVcsU0FBUyxDQUFDO0FBQ2hCLGNBQU0sR0FBVyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBT2xELE1BQU0sT0FBTyxjQUFlLFNBQVEsNEJBQTRCO0lBSXBELG1CQUFtQixDQUFDLEdBQTRCO1FBQ3hELE9BQU8sR0FBRyxDQUFDLGNBQWMsQ0FBQztJQUM1QixDQUFDOztBQUxNLG1CQUFJLEdBQVcsZ0JBQWdCLENBQUM7QUFDdkIscUJBQU0sR0FBVyxNQUFNLENBQUMsY0FBYyxDQUFDO0FBT3pELE1BQU0sT0FBTyxNQUFPLFNBQVEsNEJBQTRCO0lBSTVDLG1CQUFtQixDQUFDLEdBQTRCO1FBQ3hELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUNwQixDQUFDOztBQUxNLFdBQUksR0FBVyxRQUFRLENBQUM7QUFDZixhQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQU9qRCxNQUFNLE9BQU8sV0FBWSxTQUFRLDRCQUE0QjtJQUlqRCxtQkFBbUIsQ0FBQyxHQUE0QjtRQUN4RCxPQUFPLEdBQUcsQ0FBQyxXQUFXLENBQUM7SUFDekIsQ0FBQzs7QUFMTSxnQkFBSSxHQUFXLGFBQWEsQ0FBQztBQUNwQixrQkFBTSxHQUFXLE1BQU0sQ0FBQyxXQUFXLENBQUM7QUFPdEQsTUFBTSxPQUFPLFdBQVksU0FBUSw0QkFBNEI7SUFJakQsbUJBQW1CLENBQUMsR0FBNEI7UUFDeEQsT0FBTyxHQUFHLENBQUMsV0FBVyxDQUFDO0lBQ3pCLENBQUM7O0FBTE0sZ0JBQUksR0FBVyxhQUFhLENBQUM7QUFDcEIsa0JBQU0sR0FBVyxNQUFNLENBQUMsV0FBVyxDQUFDO0FBT3RELE1BQU0sT0FBTyxPQUFRLFNBQVEsNEJBQTRCO0lBSTdDLG1CQUFtQixDQUFDLEdBQTRCO1FBQ3hELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQzs7QUFMTSxZQUFJLEdBQVcsU0FBUyxDQUFDO0FBQ2hCLGNBQU0sR0FBVyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBT2xELE1BQU0sT0FBTyxPQUFRLFNBQVEsNEJBQTRCO0lBSTdDLG1CQUFtQixDQUFDLEdBQTRCO1FBQ3hELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQzs7QUFMTSxZQUFJLEdBQVcsU0FBUyxDQUFDO0FBQ2hCLGNBQU0sR0FBVyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBT2xELE1BQU0sT0FBTyxXQUFZLFNBQVEsNEJBQTRCO0lBSWpELG1CQUFtQixDQUFDLEdBQTRCO1FBQ3hELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDakMsQ0FBQzs7QUFMTSxnQkFBSSxHQUFXLGFBQWEsQ0FBQztBQUNwQixrQkFBTSxHQUFXLE1BQU0sQ0FBQyxXQUFXLENBQUM7QUFPdEQsTUFBTSxPQUFPLFNBQVUsU0FBUSw0QkFBNEI7SUFJL0MsbUJBQW1CLENBQUMsR0FBNEI7UUFDeEQsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUMvQixDQUFDOztBQUxNLGNBQUksR0FBVyxXQUFXLENBQUM7QUFDbEIsZ0JBQU0sR0FBVyxNQUFNLENBQUMsU0FBUyxDQUFDO0FBT3BELCtEQUErRDtBQUMvRCx3Q0FBd0M7QUFDeEMsbUNBQW1DO0FBRW5DLGdEQUFnRDtBQUNoRCxtQkFBbUI7QUFDbkIsUUFBUTtBQUVSLDBGQUEwRjtBQUMxRix3RUFBd0U7QUFFeEUsOERBQThEO0FBRTlELDBDQUEwQztBQUMxQyxRQUFRO0FBQ1IsSUFBSTtBQUVKLHNFQUFzRTtBQUN0RSwrQ0FBK0M7QUFDL0MsbUNBQW1DO0FBRW5DLGdEQUFnRDtBQUNoRCxtQkFBbUI7QUFDbkIsUUFBUTtBQUVSLDBGQUEwRjtBQUMxRiwrRUFBK0U7QUFFL0UscUVBQXFFO0FBRXJFLDBDQUEwQztBQUMxQyxRQUFRO0FBQ1IsSUFBSTtBQUVKLHNFQUFzRTtBQUN0RSwrQ0FBK0M7QUFDL0MsbUNBQW1DO0FBRW5DLGdEQUFnRDtBQUNoRCxtQkFBbUI7QUFDbkIsUUFBUTtBQUVSLDBGQUEwRjtBQUMxRiwrRUFBK0U7QUFFL0UscUVBQXFFO0FBRXJFLDBDQUEwQztBQUMxQyxRQUFRO0FBQ1IsSUFBSSJ9
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRfZ2V0dGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9lbnZpcm9ubWVudF9nZXR0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxLQUFLLEVBQW9CLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxNQUFlLDRCQUE2QixTQUFRLGlCQUFpQjtJQUN6RCxRQUFRLENBQUMsT0FBbUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Q0FHRjtBQUVELE1BQU0sT0FBTyxPQUFRLFNBQVEsNEJBQTRCO0lBSTdDLG1CQUFtQixDQUFDLEdBQTRCO1FBQ3hELE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O0FBTE0sWUFBSSxHQUFXLFNBQVMsQ0FBQztBQUNoQixjQUFNLEdBQVcsTUFBTSxDQUFDLE9BQU8sQ0FBQztBQU9sRCxNQUFNLE9BQU8sY0FBZSxTQUFRLDRCQUE0QjtJQUlwRCxtQkFBbUIsQ0FBQyxHQUE0QjtRQUN4RCxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDOztBQUxNLG1CQUFJLEdBQVcsZ0JBQWdCLENBQUM7QUFDdkIscUJBQU0sR0FBVyxNQUFNLENBQUMsY0FBYyxDQUFDO0FBT3pELE1BQU0sT0FBTyxNQUFPLFNBQVEsNEJBQTRCO0lBSTVDLG1CQUFtQixDQUFDLEdBQTRCO1FBQ3hELE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7O0FBTE0sV0FBSSxHQUFXLFFBQVEsQ0FBQztBQUNmLGFBQU0sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDO0FBT2pELE1BQU0sT0FBTyxXQUFZLFNBQVEsNEJBQTRCO0lBSWpELG1CQUFtQixDQUFDLEdBQTRCO1FBQ3hELE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7O0FBTE0sZ0JBQUksR0FBVyxhQUFhLENBQUM7QUFDcEIsa0JBQU0sR0FBVyxNQUFNLENBQUMsV0FBVyxDQUFDO0FBT3RELE1BQU0sT0FBTyxXQUFZLFNBQVEsNEJBQTRCO0lBSWpELG1CQUFtQixDQUFDLEdBQTRCO1FBQ3hELE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7O0FBTE0sZ0JBQUksR0FBVyxhQUFhLENBQUM7QUFDcEIsa0JBQU0sR0FBVyxNQUFNLENBQUMsV0FBVyxDQUFDO0FBT3RELE1BQU0sT0FBTyxjQUFlLFNBQVEsNEJBQTRCO0lBSXBELG1CQUFtQixDQUFDLEdBQTRCO1FBQ3hELE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7O0FBTE0sbUJBQUksR0FBVyxnQkFBZ0IsQ0FBQztBQUN2QixxQkFBTSxHQUFXLE1BQU0sQ0FBQyxjQUFjLENBQUM7QUFPekQsTUFBTSxPQUFPLE9BQVEsU0FBUSw0QkFBNEI7SUFJN0MsbUJBQW1CLENBQUMsR0FBNEI7UUFDeEQsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7O0FBTE0sWUFBSSxHQUFXLFNBQVMsQ0FBQztBQUNoQixjQUFNLEdBQVcsTUFBTSxDQUFDLE9BQU8sQ0FBQztBQU9sRCxNQUFNLE9BQU8sT0FBUSxTQUFRLDRCQUE0QjtJQUk3QyxtQkFBbUIsQ0FBQyxHQUE0QjtRQUN4RCxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7QUFMTSxZQUFJLEdBQVcsU0FBUyxDQUFDO0FBQ2hCLGNBQU0sR0FBVyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBT2xELE1BQU0sT0FBTyxXQUFZLFNBQVEsNEJBQTRCO0lBSWpELG1CQUFtQixDQUFDLEdBQTRCO1FBQ3hELE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QyxDQUFDOztBQUxNLGdCQUFJLEdBQVcsYUFBYSxDQUFDO0FBQ3BCLGtCQUFNLEdBQVcsTUFBTSxDQUFDLFdBQVcsQ0FBQztBQU90RCxNQUFNLE9BQU8sU0FBVSxTQUFRLDRCQUE0QjtJQUkvQyxtQkFBbUIsQ0FBQyxHQUE0QjtRQUN4RCxPQUFPLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7QUFMTSxjQUFJLEdBQVcsV0FBVyxDQUFDO0FBQ2xCLGdCQUFNLEdBQVcsTUFBTSxDQUFDLFNBQVMsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"external_calls.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/external_calls.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,uBAAe,YAAa,SAAQ,WAAW;IAiB3C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,+BAA+B;IA1BzC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAYvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EAIrB,+BAA+B,EAAE,MAAM;IAKpC,OAAO,CAAC,OAAO,EAAE,UAAU;IAyExC,aAA6B,IAAI,IAAI,MAAM,GAAG,YAAY,CAAC;CAC5D;AAED,qBAAa,IAAK,SAAQ,YAAY;IACpC,MAAM,CAAC,IAAI,SAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAe;IAE7C,IAAW,IAAI,WAEd;CACF;AAED,qBAAa,UAAW,SAAQ,YAAY;IAC1C,MAAM,CAAC,IAAI,eAAyB;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAqB;IAEnD,IAAW,IAAI,iBAEd;CACF;AAED,qBAAa,MAAO,SAAQ,WAAW;IAWzB,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,YAAY;IAAU,OAAO,CAAC,QAAQ;IAVpF,MAAM,CAAC,IAAI,EAAE,MAAM,CAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAiB;IAE/C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;gBAEkB,QAAQ,EAAE,MAAM,EAAU,YAAY,EAAE,MAAM,EAAU,QAAQ,EAAE,MAAM;IAI/E,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAYzD;AAED,qBAAa,MAAO,SAAQ,WAAW;IAWzB,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,YAAY;IAAU,OAAO,CAAC,OAAO;IAVnF,MAAM,CAAC,IAAI,EAAE,MAAM,CAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAiB;IAE/C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;gBAEkB,QAAQ,EAAE,MAAM,EAAU,YAAY,EAAE,MAAM,EAAU,OAAO,EAAE,MAAM;IAI9E,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAYzD"}
1
+ {"version":3,"file":"external_calls.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/external_calls.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAMpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,uBAAe,YAAa,SAAQ,WAAW;IAiB3C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,+BAA+B;IA1BzC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAYvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EAIrB,+BAA+B,EAAE,MAAM;IAKpC,OAAO,CAAC,OAAO,EAAE,UAAU;IA4FxC,aAA6B,IAAI,IAAI,MAAM,GAAG,YAAY,CAAC;CAC5D;AAED,qBAAa,IAAK,SAAQ,YAAY;IACpC,MAAM,CAAC,IAAI,SAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAe;IAE7C,IAAW,IAAI,WAEd;CACF;AAED,qBAAa,UAAW,SAAQ,YAAY;IAC1C,MAAM,CAAC,IAAI,eAAyB;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAqB;IAEnD,IAAW,IAAI,iBAEd;CACF;AAED,qBAAa,MAAO,SAAQ,WAAW;IAWzB,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,YAAY;IAAU,OAAO,CAAC,QAAQ;IAVpF,MAAM,CAAC,IAAI,EAAE,MAAM,CAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAiB;IAE/C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;gBAEkB,QAAQ,EAAE,MAAM,EAAU,YAAY,EAAE,MAAM,EAAU,QAAQ,EAAE,MAAM;IAI/E,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAYzD;AAED,qBAAa,MAAO,SAAQ,WAAW;IAWzB,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,YAAY;IAAU,OAAO,CAAC,OAAO;IAVnF,MAAM,CAAC,IAAI,EAAE,MAAM,CAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAiB;IAE/C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;gBAEkB,QAAQ,EAAE,MAAM,EAAU,YAAY,EAAE,MAAM,EAAU,OAAO,EAAE,MAAM;IAI9E,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAYzD"}
@@ -1,9 +1,10 @@
1
- import { FunctionSelector } from '@aztec/circuits.js';
1
+ import { FunctionSelector, Gas } from '@aztec/circuits.js';
2
2
  import { padArrayEnd } from '@aztec/foundation/collection';
3
- import { executePublicFunction } from '../../public/executor.js';
4
- import { convertPublicExecutionResult, createPublicExecutionContext, updateAvmContextFromPublicExecutionResult, } from '../../public/transitional_adaptors.js';
3
+ import { convertAvmResultsToPxResult, createPublicExecution } from '../../public/transitional_adaptors.js';
5
4
  import { gasLeftToGas, sumGas } from '../avm_gas.js';
6
5
  import { Field, Uint8 } from '../avm_memory_types.js';
6
+ import { AvmSimulator } from '../avm_simulator.js';
7
+ import { RethrownError } from '../errors.js';
7
8
  import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
8
9
  import { Addressing } from './addressing_mode.js';
9
10
  import { Instruction } from './instruction.js';
@@ -37,13 +38,15 @@ class ExternalCall extends Instruction {
37
38
  const memoryOperations = { reads: calldataSize + 5, writes: 1 + this.retSize, indirect: this.indirect };
38
39
  const totalGas = sumGas(this.gasCost(memoryOperations), allocatedGas);
39
40
  context.machineState.consumeGas(totalGas);
40
- // TRANSITIONAL: This should be removed once the AVM is fully operational and the public executor is gone.
41
+ // TRANSITIONAL: This should be removed once the kernel handles and entire enqueued call per circuit
41
42
  const nestedContext = context.createNestedContractCallContext(callAddress.toFr(), calldata, allocatedGas, this.type, FunctionSelector.fromField(functionSelector));
42
- const pxContext = createPublicExecutionContext(nestedContext, calldata);
43
- const pxResults = await executePublicFunction(pxContext, /*nested=*/ true);
44
- const nestedCallResults = convertPublicExecutionResult(pxResults);
45
- updateAvmContextFromPublicExecutionResult(nestedContext, pxResults);
46
- const nestedPersistableState = nestedContext.persistableState;
43
+ const startSideEffectCounter = nestedContext.persistableState.trace.accessCounter;
44
+ const oldStyleExecution = createPublicExecution(startSideEffectCounter, nestedContext.environment, calldata);
45
+ const nestedCallResults = await new AvmSimulator(nestedContext).execute();
46
+ const pxResults = convertAvmResultsToPxResult(nestedCallResults, startSideEffectCounter, oldStyleExecution, Gas.from(allocatedGas), nestedContext);
47
+ // store the old PublicExecutionResult object to maintain a recursive data structure for the old kernel
48
+ context.persistableState.transitionalExecutionResult.nestedExecutions.push(pxResults);
49
+ // END TRANSITIONAL
47
50
  // const nestedContext = context.createNestedContractCallContext(
48
51
  // callAddress.toFr(),
49
52
  // calldata,
@@ -52,8 +55,16 @@ class ExternalCall extends Instruction {
52
55
  // FunctionSelector.fromField(functionSelector),
53
56
  // );
54
57
  // const nestedCallResults: AvmContractCallResults = await new AvmSimulator(nestedContext).execute();
55
- // const nestedPersistableState = nestedContext.persistableState;
56
58
  const success = !nestedCallResults.reverted;
59
+ // TRANSITIONAL: We rethrow here so that the MESSAGE gets propagated.
60
+ // This means that for now, the caller cannot recover from errors.
61
+ if (!success) {
62
+ if (!nestedCallResults.revertReason) {
63
+ throw new Error('A reverted nested call should be assigned a revert reason in the AVM execution loop');
64
+ }
65
+ // The nested call's revertReason will be used to track the stack of error causes down to the root.
66
+ throw new RethrownError(nestedCallResults.revertReason.message, nestedCallResults.revertReason);
67
+ }
57
68
  // We only take as much data as was specified in the return size and pad with zeroes if the return data is smaller
58
69
  // than the specified size in order to prevent that memory to be left with garbage
59
70
  const returnData = nestedCallResults.output.slice(0, this.retSize);
@@ -65,10 +76,10 @@ class ExternalCall extends Instruction {
65
76
  context.machineState.refundGas(gasLeftToGas(nestedContext.machineState));
66
77
  // TODO: Should we merge the changes from a nested call in the case of a STATIC call?
67
78
  if (success) {
68
- context.persistableState.acceptNestedCallState(nestedPersistableState);
79
+ context.persistableState.acceptNestedCallState(nestedContext.persistableState);
69
80
  }
70
81
  else {
71
- context.persistableState.rejectNestedCallState(nestedPersistableState);
82
+ context.persistableState.rejectNestedCallState(nestedContext.persistableState);
72
83
  }
73
84
  memory.assert(memoryOperations);
74
85
  context.machineState.incrementPc();
@@ -154,4 +165,4 @@ Revert.wireFormat = [
154
165
  OperandType.UINT32,
155
166
  OperandType.UINT32,
156
167
  ];
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWxfY2FsbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL29wY29kZXMvZXh0ZXJuYWxfY2FsbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLHlDQUF5QyxHQUMxQyxNQUFNLHVDQUF1QyxDQUFDO0FBRS9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE1BQWUsWUFBYSxTQUFRLFdBQVc7SUFnQjdDLFlBQ1UsUUFBZ0IsRUFDaEIsU0FBaUIsQ0FBQywrREFBK0QsRUFDakYsVUFBa0IsRUFDbEIsVUFBa0IsRUFDbEIsY0FBc0IsRUFDdEIsU0FBaUIsRUFDakIsT0FBZSxFQUNmLGFBQXFCO0lBQzdCLDRGQUE0RjtJQUM1Riw2RkFBNkY7SUFDN0YscUVBQXFFO0lBQzdELCtCQUF1QztRQUUvQyxLQUFLLEVBQUUsQ0FBQztRQWJBLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFD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
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWxfY2FsbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL29wY29kZXMvZXh0ZXJuYWxfY2FsbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUUzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXRELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxNQUFlLFlBQWEsU0FBUSxXQUFXO0lBZ0I3QyxZQUNVLFFBQWdCLEVBQ2hCLFNBQWlCLENBQUMsK0RBQStELEVBQ2pGLFVBQWtCLEVBQ2xCLFVBQWtCLEVBQ2xCLGNBQXNCLEVBQ3RCLFNBQWlCLEVBQ2pCLE9BQWUsRUFDZixhQUFxQjtJQUM3Qiw0RkFBNEY7SUFDNUYsNkZBQTZGO0lBQzdGLHFFQUFxRTtJQUM3RCwrQkFBdUM7UUFFL0MsS0FBSyxFQUFFLENBQUM7UUFiQSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsZUFBVSxHQUFWLFVBQVUs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
@@ -1 +1 @@
1
- {"version":3,"file":"bytecode_serialization.d.ts","sourceRoot":"","sources":["../../../src/avm/serialization/bytecode_serialization.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAiDvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,UAAU,yBAAyB;IACjC,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;IACrD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;AA+EpE,UAAU,YAAY;IACpB,SAAS,IAAI,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,cAAc,GAAE,cAAkC,GACjD,WAAW,EAAE,CAiBf"}
1
+ {"version":3,"file":"bytecode_serialization.d.ts","sourceRoot":"","sources":["../../../src/avm/serialization/bytecode_serialization.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAkDvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,UAAU,yBAAyB;IACjC,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;IACrD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;AAkFpE,UAAU,YAAY;IACpB,SAAS,IAAI,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,cAAc,GAAE,cAAkC,GACjD,WAAW,EAAE,CAiBf"}
@@ -1,6 +1,7 @@
1
1
  import { DAGasLeft, L2GasLeft } from '../opcodes/context_getters.js';
2
+ import { ToRadixLE } from '../opcodes/conversion.js';
2
3
  import { Keccak, Pedersen, Poseidon2, Sha256 } from '../opcodes/hashing.js';
3
- import { Add, Address, And, BlockNumber, CMov, Call, CalldataCopy, Cast, ChainId, Div, EmitNoteHash, EmitNullifier, EmitUnencryptedLog, Eq, FeePerDAGas, FeePerL2Gas, FieldDiv, GetContractInstance, InternalCall, InternalReturn, Jump, JumpI, L1ToL2MessageExists, Lt, Lte, Mov, Mul, Not, NoteHashExists, NullifierExists, Or, Return, Revert, SLoad, SStore, SendL2ToL1Message, Sender, Set, Shl, Shr, StaticCall, StorageAddress, Sub, Timestamp, Version, Xor, } from '../opcodes/index.js';
4
+ import { Add, Address, And, BlockNumber, CMov, Call, CalldataCopy, Cast, ChainId, Div, EmitNoteHash, EmitNullifier, EmitUnencryptedLog, Eq, FeePerDAGas, FeePerL2Gas, FieldDiv, GetContractInstance, InternalCall, InternalReturn, Jump, JumpI, L1ToL2MessageExists, Lt, Lte, Mov, Mul, Not, NoteHashExists, NullifierExists, Or, Return, Revert, SLoad, SStore, SendL2ToL1Message, Sender, Set, Shl, Shr, StaticCall, StorageAddress, Sub, Timestamp, TransactionFee, Version, Xor, } from '../opcodes/index.js';
4
5
  import { BufferCursor } from './buffer_cursor.js';
5
6
  import { Opcode } from './instruction_serialization.js';
6
7
  // TODO(4359): This is a function so that Call and StaticCall can be lazily resolved.
@@ -26,6 +27,7 @@ const INSTRUCTION_SET = () => new Map([
26
27
  [Sender.opcode, Sender],
27
28
  [FeePerL2Gas.opcode, FeePerL2Gas],
28
29
  [FeePerDAGas.opcode, FeePerDAGas],
30
+ [TransactionFee.opcode, TransactionFee],
29
31
  //[Contractcalldepth.opcode, Contractcalldepth],
30
32
  // Execution Environment - Globals
31
33
  [ChainId.opcode, ChainId],
@@ -73,6 +75,8 @@ const INSTRUCTION_SET = () => new Map([
73
75
  [Poseidon2.opcode, Poseidon2],
74
76
  [Sha256.opcode, Sha256],
75
77
  [Pedersen.opcode, Pedersen],
78
+ // Conversions
79
+ [ToRadixLE.opcode, ToRadixLE],
76
80
  ]);
77
81
  /**
78
82
  * Serializes an array of instructions to bytecode.
@@ -101,4 +105,4 @@ export function decodeFromBytecode(bytecode, instructionSet = INSTRUCTION_SET())
101
105
  }
102
106
  return instructions;
103
107
  }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZWNvZGVfc2VyaWFsaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vc2VyaWFsaXphdGlvbi9ieXRlY29kZV9zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVFLE9BQU8sRUFDTCxHQUFHLEVBQ0gsT0FBTyxFQUNQLEdBQUcsRUFDSCxXQUFXLEVBQ1gsSUFBSSxFQUNKLElBQUksRUFDSixZQUFZLEVBQ1osSUFBSSxFQUNKLE9BQU8sRUFDUCxHQUFHLEVBQ0gsWUFBWSxFQUNaLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsRUFBRSxFQUNGLFdBQVcsRUFDWCxXQUFXLEVBQ1gsUUFBUSxFQUNSLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osY0FBYyxFQUNkLElBQUksRUFDSixLQUFLLEVBQ0wsbUJBQW1CLEVBQ25CLEVBQUUsRUFDRixHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsRUFDSCxHQUFHLEVBQ0gsY0FBYyxFQUNkLGVBQWUsRUFDZixFQUFFLEVBQ0YsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixNQUFNLEVBQ04sR0FBRyxFQUNILEdBQUcsRUFDSCxHQUFHLEVBQ0gsVUFBVSxFQUNWLGNBQWMsRUFDZCxHQUFHLEVBQ0gsU0FBUyxFQUNULE9BQU8sRUFDUCxHQUFHLEdBQ0osTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBUXhELHFGQUFxRjtBQUNyRixvRUFBb0U7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
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZWNvZGVfc2VyaWFsaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vc2VyaWFsaXphdGlvbi9ieXRlY29kZV9zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RSxPQUFPLEVBQ0wsR0FBRyxFQUNILE9BQU8sRUFDUCxHQUFHLEVBQ0gsV0FBVyxFQUNYLElBQUksRUFDSixJQUFJLEVBQ0osWUFBWSxFQUNaLElBQUksRUFDSixPQUFPLEVBQ1AsR0FBRyxFQUNILFlBQVksRUFDWixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLEVBQUUsRUFDRixXQUFXLEVBQ1gsV0FBVyxFQUNYLFFBQVEsRUFDUixtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLGNBQWMsRUFDZCxJQUFJLEVBQ0osS0FBSyxFQUNMLG1CQUFtQixFQUNuQixFQUFFLEVBQ0YsR0FBRyxFQUNILEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILGNBQWMsRUFDZCxlQUFlLEVBQ2YsRUFBRSxFQUNGLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsTUFBTSxFQUNOLEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILFVBQVUsRUFDVixjQUFjLEVBQ2QsR0FBRyxFQUNILFNBQVMsRUFDVCxjQUFjLEVBQ2QsT0FBTyxFQUNQLEdBQUcsR0FDSixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUs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