@aztec/simulator 0.22.0 → 0.24.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 (124) hide show
  1. package/dest/acvm/oracle/oracle.d.ts +2 -2
  2. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  3. package/dest/acvm/oracle/oracle.js +5 -5
  4. package/dest/acvm/oracle/typed_oracle.d.ts +2 -2
  5. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  6. package/dest/acvm/oracle/typed_oracle.js +3 -3
  7. package/dest/avm/avm_execution_environment.d.ts +3 -2
  8. package/dest/avm/avm_execution_environment.d.ts.map +1 -1
  9. package/dest/avm/avm_execution_environment.js +6 -5
  10. package/dest/avm/avm_memory_types.d.ts +120 -39
  11. package/dest/avm/avm_memory_types.d.ts.map +1 -1
  12. package/dest/avm/avm_memory_types.js +91 -109
  13. package/dest/avm/avm_simulator.d.ts.map +1 -1
  14. package/dest/avm/avm_simulator.js +2 -3
  15. package/dest/avm/errors.d.ts +3 -1
  16. package/dest/avm/errors.d.ts.map +1 -1
  17. package/dest/avm/errors.js +9 -3
  18. package/dest/avm/fixtures/index.d.ts +4 -0
  19. package/dest/avm/fixtures/index.d.ts.map +1 -1
  20. package/dest/avm/fixtures/index.js +11 -3
  21. package/dest/avm/journal/host_storage.d.ts +1 -1
  22. package/dest/avm/journal/host_storage.d.ts.map +1 -1
  23. package/dest/avm/opcodes/addressing_mode.d.ts +24 -0
  24. package/dest/avm/opcodes/addressing_mode.d.ts.map +1 -0
  25. package/dest/avm/opcodes/addressing_mode.js +62 -0
  26. package/dest/avm/opcodes/comparators.d.ts.map +1 -1
  27. package/dest/avm/opcodes/comparators.js +8 -5
  28. package/dest/avm/opcodes/instruction.d.ts +6 -4
  29. package/dest/avm/opcodes/instruction.d.ts.map +1 -1
  30. package/dest/avm/opcodes/instruction.js +4 -3
  31. package/dest/avm/opcodes/memory.d.ts +9 -2
  32. package/dest/avm/opcodes/memory.d.ts.map +1 -1
  33. package/dest/avm/opcodes/memory.js +46 -8
  34. package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  35. package/dest/avm/serialization/bytecode_serialization.js +24 -22
  36. package/dest/avm/serialization/instruction_serialization.d.ts +17 -15
  37. package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
  38. package/dest/avm/serialization/instruction_serialization.js +22 -17
  39. package/dest/avm/temporary_executor_migration.d.ts +25 -0
  40. package/dest/avm/temporary_executor_migration.d.ts.map +1 -0
  41. package/dest/avm/temporary_executor_migration.js +71 -0
  42. package/dest/client/client_execution_context.d.ts +4 -2
  43. package/dest/client/client_execution_context.d.ts.map +1 -1
  44. package/dest/client/client_execution_context.js +7 -4
  45. package/dest/client/execution_result.d.ts +2 -0
  46. package/dest/client/execution_result.d.ts.map +1 -1
  47. package/dest/client/execution_result.js +1 -1
  48. package/dest/client/simulator.d.ts +10 -5
  49. package/dest/client/simulator.d.ts.map +1 -1
  50. package/dest/client/simulator.js +19 -11
  51. package/dest/client/unconstrained_execution.js +2 -2
  52. package/dest/public/execution.js +2 -2
  53. package/dest/public/executor.d.ts +7 -0
  54. package/dest/public/executor.d.ts.map +1 -1
  55. package/dest/public/executor.js +26 -1
  56. package/dest/public/public_execution_context.js +2 -2
  57. package/dest/public/state_actions.d.ts +1 -1
  58. package/dest/public/state_actions.d.ts.map +1 -1
  59. package/dest/public/state_actions.js +5 -6
  60. package/dest/utils.d.ts +5 -20
  61. package/dest/utils.d.ts.map +1 -1
  62. package/dest/utils.js +4 -20
  63. package/package.json +7 -5
  64. package/src/acvm/acvm.ts +156 -0
  65. package/src/acvm/acvm_types.ts +11 -0
  66. package/src/acvm/deserialize.ts +36 -0
  67. package/src/acvm/index.ts +5 -0
  68. package/src/acvm/oracle/debug.ts +109 -0
  69. package/src/acvm/oracle/index.ts +17 -0
  70. package/src/acvm/oracle/oracle.ts +332 -0
  71. package/src/acvm/oracle/typed_oracle.ts +217 -0
  72. package/src/acvm/serialize.ts +75 -0
  73. package/src/avm/avm_context.ts +63 -0
  74. package/src/avm/avm_execution_environment.ts +98 -0
  75. package/src/avm/avm_machine_state.ts +93 -0
  76. package/src/avm/avm_memory_types.ts +309 -0
  77. package/src/avm/avm_message_call_result.ts +29 -0
  78. package/src/avm/avm_simulator.ts +89 -0
  79. package/src/avm/errors.ts +57 -0
  80. package/src/avm/fixtures/index.ts +90 -0
  81. package/src/avm/journal/host_storage.ts +20 -0
  82. package/src/avm/journal/index.ts +2 -0
  83. package/src/avm/journal/journal.ts +266 -0
  84. package/src/avm/opcodes/.eslintrc.cjs +8 -0
  85. package/src/avm/opcodes/accrued_substate.ts +92 -0
  86. package/src/avm/opcodes/addressing_mode.ts +66 -0
  87. package/src/avm/opcodes/arithmetic.ts +79 -0
  88. package/src/avm/opcodes/bitwise.ts +129 -0
  89. package/src/avm/opcodes/comparators.ts +72 -0
  90. package/src/avm/opcodes/control_flow.ts +129 -0
  91. package/src/avm/opcodes/environment_getters.ts +199 -0
  92. package/src/avm/opcodes/external_calls.ts +122 -0
  93. package/src/avm/opcodes/index.ts +10 -0
  94. package/src/avm/opcodes/instruction.ts +64 -0
  95. package/src/avm/opcodes/instruction_impl.ts +52 -0
  96. package/src/avm/opcodes/memory.ts +193 -0
  97. package/src/avm/opcodes/storage.ts +76 -0
  98. package/src/avm/serialization/buffer_cursor.ts +109 -0
  99. package/src/avm/serialization/bytecode_serialization.ts +172 -0
  100. package/src/avm/serialization/instruction_serialization.ts +167 -0
  101. package/src/avm/temporary_executor_migration.ts +108 -0
  102. package/src/client/client_execution_context.ts +472 -0
  103. package/src/client/db_oracle.ts +184 -0
  104. package/src/client/execution_note_cache.ts +90 -0
  105. package/src/client/execution_result.ts +89 -0
  106. package/src/client/index.ts +3 -0
  107. package/src/client/pick_notes.ts +125 -0
  108. package/src/client/private_execution.ts +78 -0
  109. package/src/client/simulator.ts +316 -0
  110. package/src/client/unconstrained_execution.ts +49 -0
  111. package/src/client/view_data_oracle.ts +243 -0
  112. package/src/common/errors.ts +61 -0
  113. package/src/common/index.ts +3 -0
  114. package/src/common/packed_args_cache.ts +55 -0
  115. package/src/common/side_effect_counter.ts +12 -0
  116. package/src/index.ts +3 -0
  117. package/src/public/db.ts +85 -0
  118. package/src/public/execution.ts +137 -0
  119. package/src/public/executor.ts +158 -0
  120. package/src/public/index.ts +9 -0
  121. package/src/public/public_execution_context.ts +217 -0
  122. package/src/public/state_actions.ts +100 -0
  123. package/src/test/utils.ts +38 -0
  124. package/src/utils.ts +18 -0
@@ -1,3 +1,4 @@
1
+ import { TaggedMemory } from '../avm_memory_types.js';
1
2
  import { Opcode } from '../serialization/instruction_serialization.js';
2
3
  import { ThreeOperandInstruction } from './instruction_impl.js';
3
4
  export class Eq extends ThreeOperandInstruction {
@@ -22,8 +23,9 @@ export class Lt extends ThreeOperandInstruction {
22
23
  }
23
24
  async execute(context) {
24
25
  context.machineState.memory.checkTags(this.inTag, this.aOffset, this.bOffset);
25
- const a = context.machineState.memory.get(this.aOffset);
26
- const b = context.machineState.memory.get(this.bOffset);
26
+ TaggedMemory.checkIsIntegralTag(this.inTag);
27
+ const a = context.machineState.memory.getAs(this.aOffset);
28
+ const b = context.machineState.memory.getAs(this.bOffset);
27
29
  // Result will be of the same type as 'a'.
28
30
  const dest = a.build(a.lt(b) ? 1n : 0n);
29
31
  context.machineState.memory.set(this.dstOffset, dest);
@@ -38,8 +40,9 @@ export class Lte extends ThreeOperandInstruction {
38
40
  }
39
41
  async execute(context) {
40
42
  context.machineState.memory.checkTags(this.inTag, this.aOffset, this.bOffset);
41
- const a = context.machineState.memory.get(this.aOffset);
42
- const b = context.machineState.memory.get(this.bOffset);
43
+ TaggedMemory.checkIsIntegralTag(this.inTag);
44
+ const a = context.machineState.memory.getAs(this.aOffset);
45
+ const b = context.machineState.memory.getAs(this.bOffset);
43
46
  // Result will be of the same type as 'a'.
44
47
  const dest = a.build(a.equals(b) || a.lt(b) ? 1n : 0n);
45
48
  context.machineState.memory.set(this.dstOffset, dest);
@@ -48,4 +51,4 @@ export class Lte extends ThreeOperandInstruction {
48
51
  }
49
52
  Lte.type = 'LTE';
50
53
  Lte.opcode = Opcode.LTE;
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL29wY29kZXMvY29tcGFyYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhFLE1BQU0sT0FBTyxFQUFHLFNBQVEsdUJBQXVCO0lBSTdDLFlBQVksUUFBZ0IsRUFBRSxLQUFhLEVBQUUsT0FBZSxFQUFFLE9BQWUsRUFBRSxTQUFpQjtRQUM5RixLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQW1CO1FBQy9CLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEQsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4RCwwQ0FBMEM7UUFDMUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxF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
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL29wY29kZXMvY29tcGFyYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFpQixZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFaEUsTUFBTSxPQUFPLEVBQUcsU0FBUSx1QkFBdUI7SUFJN0MsWUFBWSxRQUFnQixFQUFFLEtBQWEsRUFBRSxPQUFlLEVBQUUsT0FBZSxFQUFFLFNBQWlCO1FBQzlGLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDL0IsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUUsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhELDBDQUEwQztRQUMxQyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLFlB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
@@ -2,6 +2,10 @@
2
2
  import type { AvmContext } from '../avm_context.js';
3
3
  import { BufferCursor } from '../serialization/buffer_cursor.js';
4
4
  import { OperandType } from '../serialization/instruction_serialization.js';
5
+ type InstructionConstructor = {
6
+ new (...args: any[]): Instruction;
7
+ wireFormat?: OperandType[];
8
+ };
5
9
  /**
6
10
  * Parent class for all AVM instructions.
7
11
  * It's most important aspects are execute and (de)serialize.
@@ -35,9 +39,7 @@ export declare abstract class Instruction {
35
39
  * @param buf Buffer to read from.
36
40
  * @returns Constructed instance of Class.
37
41
  */
38
- static deserialize<T extends {
39
- new (...args: any[]): InstanceType<T>;
40
- wireFormat: OperandType[];
41
- }>(this: T, buf: BufferCursor | Buffer): InstanceType<T>;
42
+ static deserialize(this: InstructionConstructor, buf: BufferCursor | Buffer): Instruction;
42
43
  }
44
+ export {};
43
45
  //# sourceMappingURL=instruction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"instruction.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/instruction.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,WAAW,EAA0B,MAAM,+CAA+C,CAAC;AAEpG;;;GAGG;AACH,8BAAsB,WAAW;IAC/B;;;;;;OAMG;aACa,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D;;;;OAIG;IACI,QAAQ,IAAI,MAAM;IASzB;;;;;OAKG;IACI,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAKnC;;;;;;OAMG;WACW,WAAW,CAAC,CAAC,SAAS;QAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAAC,UAAU,EAAE,WAAW,EAAE,CAAA;KAAE,EACtG,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,YAAY,GAAG,MAAM,GACzB,YAAY,CAAC,CAAC,CAAC;CAKnB"}
1
+ {"version":3,"file":"instruction.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/instruction.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,WAAW,EAA0B,MAAM,+CAA+C,CAAC;AAEpG,KAAK,sBAAsB,GAAG;IAC5B,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;IAClC,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,8BAAsB,WAAW;IAC/B;;;;;;OAMG;aACa,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D;;;;OAIG;IACI,QAAQ,IAAI,MAAM;IASzB;;;;;OAKG;IACI,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAKnC;;;;;;OAMG;WACW,WAAW,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,GAAG,WAAW;CAMjG"}
@@ -1,4 +1,4 @@
1
- import { assert } from 'console';
1
+ import { strict as assert } from 'assert';
2
2
  import { deserialize, serialize } from '../serialization/instruction_serialization.js';
3
3
  /**
4
4
  * Parent class for all AVM instructions.
@@ -25,7 +25,7 @@ export class Instruction {
25
25
  * @returns The serialized instruction.
26
26
  */
27
27
  serialize() {
28
- assert(this instanceof Instruction);
28
+ assert(!!this.constructor.wireFormat, 'wireFormat must be defined on the class');
29
29
  return serialize(this.constructor.wireFormat, this);
30
30
  }
31
31
  /**
@@ -36,9 +36,10 @@ export class Instruction {
36
36
  * @returns Constructed instance of Class.
37
37
  */
38
38
  static deserialize(buf) {
39
+ assert(!!this.wireFormat, 'wireFormat must be defined on the instruction class');
39
40
  const res = deserialize(buf, this.wireFormat);
40
41
  const args = res.slice(1); // Remove opcode.
41
42
  return new this(...args);
42
43
  }
43
44
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL29wY29kZXMvaW5zdHJ1Y3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUlqQyxPQUFPLEVBQWUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXBHOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IsV0FBVztJQVUvQjs7OztPQUlHO0lBQ0ksUUFBUTtRQUNiLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsRCxvREFBb0Q7UUFDcEQsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUEwQixFQUFFLENBQUM7WUFDN0UsY0FBYyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDO1FBQ3pELENBQUM7UUFDRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxTQUFTO1FBQ2QsTUFBTSxDQUFDLElBQUksWUFBWSxXQUFXLENBQUMsQ0FBQztRQUNwQyxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FFdkIsR0FBMEI7UUFFMUIsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQTZCLENBQUMsQ0FBQyxpQkFBaUI7UUFDeEUsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDRiJ9
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL29wY29kZXMvaW5zdHJ1Y3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFJMUMsT0FBTyxFQUFlLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQU9wRzs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLFdBQVc7SUFVL0I7Ozs7T0FJRztJQUNJLFFBQVE7UUFDYixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEQsb0RBQW9EO1FBQ3BELEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBMEIsRUFBRSxDQUFDO1lBQzdFLGNBQWMsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztRQUN6RCxDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksU0FBUztRQUNkLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUseUNBQXlDLENBQUMsQ0FBQztRQUNqRixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBK0IsR0FBMEI7UUFDaEYsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLHFEQUFxRCxDQUFDLENBQUM7UUFDakYsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtRQUM1QyxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNGIn0=
@@ -1,4 +1,6 @@
1
+ /// <reference types="node" resolution-mode="require"/>
1
2
  import type { AvmContext } from '../avm_context.js';
3
+ import { BufferCursor } from '../serialization/buffer_cursor.js';
2
4
  import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
3
5
  import { Instruction } from './instruction.js';
4
6
  import { TwoOperandInstruction } from './instruction_impl.js';
@@ -9,8 +11,13 @@ export declare class Set extends Instruction {
9
11
  private dstOffset;
10
12
  static readonly type: string;
11
13
  static readonly opcode: Opcode;
12
- static readonly wireFormat: OperandType[];
13
- constructor(indirect: number, inTag: number, value: bigint, dstOffset: number);
14
+ private static readonly wireFormatBeforeConst;
15
+ private static readonly wireFormatAfterConst;
16
+ constructor(indirect: number, inTag: number, value: bigint | number, dstOffset: number);
17
+ /** We need to use a custom serialize function because of the variable length of the value. */
18
+ serialize(): Buffer;
19
+ /** We need to use a custom deserialize function because of the variable length of the value. */
20
+ static deserialize(this: typeof Set, buf: BufferCursor | Buffer): Set;
14
21
  execute(context: AvmContext): Promise<void>;
15
22
  }
16
23
  export declare class CMov extends Instruction {
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,qBAAa,GAAI,SAAQ,WAAW;IAYtB,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,KAAK;IAAU,OAAO,CAAC,KAAK;IAAU,OAAO,CAAC,SAAS;IAXrG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAc;IAE5C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAMvC;gBAEkB,QAAQ,EAAE,MAAM,EAAU,KAAK,EAAE,MAAM,EAAU,KAAK,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM;IAIvG,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAWlD;AAED,qBAAa,IAAK,SAAQ,WAAW;IAcjC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,SAAS;IAjBnB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAU;IACtC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAe;IAE7C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAOvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM;IAKrB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAUlD;AAED,qBAAa,IAAK,SAAQ,qBAAqB;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAU;IACtC,MAAM,CAAC,QAAQ,CAAC,MAAM,eAAe;gBAEzB,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI1E,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAWlD;AAED,qBAAa,GAAI,SAAQ,WAAW;IAWtB,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,SAAS;IAAU,OAAO,CAAC,SAAS;IAVlF,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAc;IAE5C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;gBAEkB,QAAQ,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM;IAIpF,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAOlD;AAED,qBAAa,YAAa,SAAQ,WAAW;IAY/B,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,SAAS;IAX3G,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAkB;IAC9C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAuB;IAErD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAMvC;gBAEkB,QAAQ,EAAE,MAAM,EAAU,QAAQ,EAAE,MAAM,EAAU,QAAQ,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM;IAI7G,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAQlD"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/memory.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,25 @@
1
1
  import { Field, TaggedMemory, TypeTag } from '../avm_memory_types.js';
2
2
  import { InstructionExecutionError } from '../errors.js';
3
- import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
3
+ import { BufferCursor } from '../serialization/buffer_cursor.js';
4
+ import { Opcode, OperandType, deserialize, serialize } from '../serialization/instruction_serialization.js';
5
+ import { Addressing } from './addressing_mode.js';
4
6
  import { Instruction } from './instruction.js';
5
7
  import { TwoOperandInstruction } from './instruction_impl.js';
8
+ const TAG_TO_OPERAND_TYPE = new Map([
9
+ [TypeTag.UINT8, OperandType.UINT8],
10
+ [TypeTag.UINT16, OperandType.UINT16],
11
+ [TypeTag.UINT32, OperandType.UINT32],
12
+ [TypeTag.UINT64, OperandType.UINT64],
13
+ [TypeTag.UINT128, OperandType.UINT128],
14
+ ]);
15
+ function getOperandTypeFromInTag(inTag) {
16
+ inTag = inTag;
17
+ const tagOperandType = TAG_TO_OPERAND_TYPE.get(inTag);
18
+ if (tagOperandType === undefined) {
19
+ throw new Error(`Invalid tag ${inTag} for SET.`);
20
+ }
21
+ return tagOperandType;
22
+ }
6
23
  export class Set extends Instruction {
7
24
  constructor(indirect, inTag, value, dstOffset) {
8
25
  super();
@@ -11,6 +28,28 @@ export class Set extends Instruction {
11
28
  this.value = value;
12
29
  this.dstOffset = dstOffset;
13
30
  }
31
+ /** We need to use a custom serialize function because of the variable length of the value. */
32
+ serialize() {
33
+ const format = [
34
+ ...Set.wireFormatBeforeConst,
35
+ getOperandTypeFromInTag(this.inTag),
36
+ ...Set.wireFormatAfterConst,
37
+ ];
38
+ return serialize(format, this);
39
+ }
40
+ /** We need to use a custom deserialize function because of the variable length of the value. */
41
+ static deserialize(buf) {
42
+ if (buf instanceof Buffer) {
43
+ buf = new BufferCursor(buf);
44
+ }
45
+ const beforeConst = deserialize(buf, Set.wireFormatBeforeConst);
46
+ const tag = beforeConst[beforeConst.length - 1];
47
+ const val = deserialize(buf, [getOperandTypeFromInTag(tag)]);
48
+ const afterConst = deserialize(buf, Set.wireFormatAfterConst);
49
+ const res = [...beforeConst, ...val, ...afterConst];
50
+ const args = res.slice(1); // Remove opcode.
51
+ return new this(...args);
52
+ }
14
53
  async execute(context) {
15
54
  // Per the YP, the tag cannot be a field.
16
55
  if ([TypeTag.FIELD, TypeTag.UNINITIALIZED, TypeTag.INVALID].includes(this.inTag)) {
@@ -23,14 +62,12 @@ export class Set extends Instruction {
23
62
  }
24
63
  Set.type = 'SET';
25
64
  Set.opcode = Opcode.SET;
26
- // Informs (de)serialization. See Instruction.deserialize.
27
- Set.wireFormat = [
65
+ Set.wireFormatBeforeConst = [
28
66
  OperandType.UINT8,
29
67
  OperandType.UINT8,
30
68
  OperandType.UINT8,
31
- OperandType.UINT128,
32
- OperandType.UINT32,
33
69
  ];
70
+ Set.wireFormatAfterConst = [OperandType.UINT32];
34
71
  export class CMov extends Instruction {
35
72
  constructor(indirect, aOffset, bOffset, condOffset, dstOffset) {
36
73
  super();
@@ -82,8 +119,9 @@ export class Mov extends Instruction {
82
119
  this.dstOffset = dstOffset;
83
120
  }
84
121
  async execute(context) {
85
- const a = context.machineState.memory.get(this.srcOffset);
86
- context.machineState.memory.set(this.dstOffset, a);
122
+ const [srcOffset, dstOffset] = Addressing.fromWire(this.indirect).resolve([this.srcOffset, this.dstOffset], context.machineState.memory);
123
+ const a = context.machineState.memory.get(srcOffset);
124
+ context.machineState.memory.set(dstOffset, a);
87
125
  context.machineState.incrementPc();
88
126
  }
89
127
  }
@@ -122,4 +160,4 @@ CalldataCopy.wireFormat = [
122
160
  OperandType.UINT32,
123
161
  OperandType.UINT32,
124
162
  ];
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F2bS9vcGNvZGVzL21lbW9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFOUQsTUFBTSxPQUFPLEdBQUksU0FBUSxXQUFXO0lBWWxDLFlBQW9CLFFBQWdCLEVBQVUsS0FBYSxFQUFVLEtBQWEsRUFBVSxTQUFpQjtRQUMzRyxLQUFLLEVBQUUsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFFN0csQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDL0IseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqRixNQUFNLElBQUkseUJBQXlCLENBQUMsZUFBZSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNyRixDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FB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
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F2bS9vcGNvZGVzL21lbW9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxHQUFHLENBQXVCO0lBQ3hELENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDO0NBQ3ZDLENBQUMsQ0FBQztBQUVILFNBQVMsdUJBQXVCLENBQUMsS0FBc0I7SUFDckQsS0FBSyxHQUFHLEtBQWUsQ0FBQztJQUN4QixNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQs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
@@ -1 +1 @@
1
- {"version":3,"file":"bytecode_serialization.d.ts","sourceRoot":"","sources":["../../../src/avm/serialization/bytecode_serialization.ts"],"names":[],"mappings":";AA8CA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,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;AA6EpE,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":";AA8CA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,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"}
@@ -26,24 +26,24 @@ const INSTRUCTION_SET = () => new Map([
26
26
  [FeePerL1Gas.opcode, FeePerL1Gas],
27
27
  [FeePerL2Gas.opcode, FeePerL2Gas],
28
28
  [FeePerDAGas.opcode, FeePerDAGas],
29
- // [Contractcalldepth.opcode, Contractcalldepth],
29
+ //[Contractcalldepth.opcode, Contractcalldepth],
30
30
  // Execution Environment - Globals
31
31
  [ChainId.opcode, ChainId],
32
32
  [Version.opcode, Version],
33
33
  [BlockNumber.opcode, BlockNumber],
34
34
  [Timestamp.opcode, Timestamp],
35
- // [Coinbase.opcode, Coinbase],
36
- // [Blockl1gaslimit.opcode, Blockl1gaslimit],
37
- // [Blockl2gaslimit.opcode, Blockl2gaslimit],
38
- // [Blockdagaslimit.opcode, Blockdagaslimit],
39
- // // Execution Environment - Calldata
35
+ //[Coinbase.opcode, Coinbase],
36
+ //[Blockl1gaslimit.opcode, Blockl1gaslimit],
37
+ //[Blockl2gaslimit.opcode, Blockl2gaslimit],
38
+ //[Blockdagaslimit.opcode, Blockdagaslimit],
39
+ // Execution Environment - Calldata
40
40
  [CalldataCopy.opcode, CalldataCopy],
41
- // //// Machine State
42
- // // Machine State - Gas
43
- // //[L1gasleft.opcode, L1gasleft],
44
- // //[L2gasleft.opcode, L2gasleft],
45
- // //[Dagasleft.opcode, Dagasleft],
46
- // //// Machine State - Internal Control Flow
41
+ // Machine State
42
+ // Machine State - Gas
43
+ //[L1gasleft.opcode, L1gasleft],
44
+ //[L2gasleft.opcode, L2gasleft],
45
+ //[Dagasleft.opcode, Dagasleft],
46
+ // Machine State - Internal Control Flow
47
47
  [Jump.opcode, Jump],
48
48
  [JumpI.opcode, JumpI],
49
49
  [InternalCall.opcode, InternalCall],
@@ -51,24 +51,26 @@ const INSTRUCTION_SET = () => new Map([
51
51
  [Set.opcode, Set],
52
52
  [Mov.opcode, Mov],
53
53
  [CMov.opcode, CMov],
54
- // //// World State
55
- // //[Blockheaderbynumber.opcode, Blockheaderbynumber],
54
+ // World State
56
55
  [SLoad.opcode, SLoad], // Public Storage
57
56
  [SStore.opcode, SStore], // Public Storage
58
- // //[Readl1tol2msg.opcode, Readl1tol2msg], // Messages
59
- [SendL2ToL1Message.opcode, SendL2ToL1Message], // Messages
57
+ //[NoteHashExists.opcode, NoteHashExists], // Notes & Nullifiers
60
58
  [EmitNoteHash.opcode, EmitNoteHash], // Notes & Nullifiers
59
+ //[NullifierExists.opcode, NullifierExists], // Notes & Nullifiers
61
60
  [EmitNullifier.opcode, EmitNullifier], // Notes & Nullifiers
62
- // //// Accrued Substate
61
+ //[Readl1tol2msg.opcode, Readl1tol2msg], // Messages
62
+ //[HeaderMember.opcode, HeaderMember], // Header
63
+ // Accrued Substate
63
64
  [EmitUnencryptedLog.opcode, EmitUnencryptedLog],
64
- // //// Control Flow - Contract Calls
65
+ [SendL2ToL1Message.opcode, SendL2ToL1Message],
66
+ // Control Flow - Contract Calls
65
67
  [Call.opcode, Call],
66
68
  [StaticCall.opcode, StaticCall],
67
69
  [Return.opcode, Return],
68
70
  [Revert.opcode, Revert],
69
- // //// Gadgets
70
- // //[Keccak.opcode, Keccak],
71
- // //[Poseidon.opcode, Poseidon],
71
+ // Gadgets
72
+ //[Keccak.opcode, Keccak],
73
+ //[Poseidon.opcode, Poseidon],
72
74
  ]);
73
75
  /**
74
76
  * Serializes an array of instructions to bytecode.
@@ -97,4 +99,4 @@ export function decodeFromBytecode(bytecode, instructionSet = INSTRUCTION_SET())
97
99
  }
98
100
  return instructions;
99
101
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZWNvZGVfc2VyaWFsaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vc2VyaWFsaXphdGlvbi9ieXRlY29kZV9zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxHQUFHLEVBQ0gsT0FBTyxFQUNQLEdBQUcsRUFDSCxXQUFXLEVBQ1gsSUFBSSxFQUNKLElBQUksRUFDSixZQUFZLEVBQ1osSUFBSSxFQUNKLE9BQU8sRUFDUCxHQUFHLEVBQ0gsWUFBWSxFQUNaLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsRUFBRSxFQUNGLFdBQVcsRUFDWCxXQUFXLEVBQ1gsV0FBVyxFQUNYLFlBQVksRUFDWixjQUFjLEVBQ2QsSUFBSSxFQUNKLEtBQUssRUFDTCxFQUFFLEVBQ0YsR0FBRyxFQUNILEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILEVBQUUsRUFDRixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsTUFBTSxFQUNOLEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILFVBQVUsRUFDVixjQUFjLEVBQ2QsR0FBRyxFQUNILFNBQVMsRUFDVCxPQUFPLEVBQ1AsR0FBRyxHQUNKLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQVF4RCxxRkFBcUY7QUFDckYsb0VBQW9FO0FBQ3BFLE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRSxDQUMzQixJQUFJLEdBQUcsQ0FBb0M7SUFDekMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztJQUNqQixDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO0lBQ2pCLENBQUMsR0FBRyxD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
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZWNvZGVfc2VyaWFsaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vc2VyaWFsaXphdGlvbi9ieXRlY29kZV9zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxHQUFHLEVBQ0gsT0FBTyxFQUNQLEdBQUcsRUFDSCxXQUFXLEVBQ1gsSUFBSSxFQUNKLElBQUksRUFDSixZQUFZLEVBQ1osSUFBSSxFQUNKLE9BQU8sRUFDUCxHQUFHLEVBQ0gsWUFBWSxFQUNaLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsRUFBRSxFQUNGLFdBQVcsRUFDWCxXQUFXLEVBQ1gsV0FBVyxFQUNYLFlBQVksRUFDWixjQUFjLEVBQ2QsSUFBSSxFQUNKLEtBQUssRUFDTCxFQUFFLEVBQ0YsR0FBRyxFQUNILEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILEVBQUUsRUFDRixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsTUFBTSxFQUNOLEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILFVBQVUsRUFDVixjQUFjLEVBQ2QsR0FBRyxFQUNILFNBQVMsRUFDVCxPQUFPLEVBQ1AsR0FBRyxHQUNKLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQVF4RCxxRkFBcUY7QUFDckYsb0VBQW9FO0FBQ3BFLE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRSxDQUMzQixJQUFJLEdBQUcsQ0FBb0M7SUFDekMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztJQUNqQixDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO0lBQ2pCLENBQUMsR0FBRyxD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
@@ -47,21 +47,23 @@ export declare enum Opcode {
47
47
  SET = 39,
48
48
  MOV = 40,
49
49
  CMOV = 41,
50
- BLOCKHEADERBYNUMBER = 42,
51
- SLOAD = 43,// Public Storage
52
- SSTORE = 44,// Public Storage
53
- READL1TOL2MSG = 45,// Messages
54
- SENDL2TOL1MSG = 46,// Messages
55
- EMITNOTEHASH = 47,// Notes & Nullifiers
56
- EMITNULLIFIER = 48,// Notes & Nullifiers
57
- EMITUNENCRYPTEDLOG = 49,
58
- CALL = 50,
59
- STATICCALL = 51,
60
- RETURN = 52,
61
- REVERT = 53,
62
- KECCAK = 54,
63
- POSEIDON = 55,
64
- TOTAL_OPCODES_NUMBER = 56
50
+ SLOAD = 42,
51
+ SSTORE = 43,
52
+ NOTEHASHEXISTS = 44,
53
+ EMITNOTEHASH = 45,
54
+ NULLIFIEREXISTS = 46,
55
+ EMITNULLIFIER = 47,
56
+ READL1TOL2MSG = 48,
57
+ HEADERMEMBER = 49,
58
+ EMITUNENCRYPTEDLOG = 50,
59
+ SENDL2TOL1MSG = 51,
60
+ CALL = 52,
61
+ STATICCALL = 53,
62
+ RETURN = 54,
63
+ REVERT = 55,
64
+ KECCAK = 56,
65
+ POSEIDON = 57,
66
+ TOTAL_OPCODES_NUMBER = 58
65
67
  }
66
68
  export declare enum OperandType {
67
69
  UINT8 = 0,
@@ -1 +1 @@
1
- {"version":3,"file":"instruction_serialization.d.ts","sourceRoot":"","sources":["../../../src/avm/serialization/instruction_serialization.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;GAGG;AACH,oBAAY,MAAM;IAChB,GAAG,IAAA;IACH,GAAG,IAAA;IACH,GAAG,IAAA;IACH,GAAG,IAAA;IACH,EAAE,IAAA;IACF,EAAE,IAAA;IACF,GAAG,IAAA;IACH,GAAG,IAAA;IACH,EAAE,IAAA;IACF,GAAG,IAAA;IACH,GAAG,KAAA;IACH,GAAG,KAAA;IACH,GAAG,KAAA;IACH,IAAI,KAAA;IACJ,OAAO,KAAA;IACP,cAAc,KAAA;IACd,MAAM,KAAA;IACN,MAAM,KAAA;IACN,MAAM,KAAA;IACN,WAAW,KAAA;IACX,WAAW,KAAA;IACX,WAAW,KAAA;IACX,iBAAiB,KAAA;IACjB,OAAO,KAAA;IACP,OAAO,KAAA;IACP,WAAW,KAAA;IACX,SAAS,KAAA;IACT,QAAQ,KAAA;IACR,eAAe,KAAA;IACf,eAAe,KAAA;IACf,eAAe,KAAA;IACf,YAAY,KAAA;IACZ,SAAS,KAAA;IACT,SAAS,KAAA;IACT,SAAS,KAAA;IACT,IAAI,KAAA;IACJ,KAAK,KAAA;IACL,YAAY,KAAA;IACZ,cAAc,KAAA;IACd,GAAG,KAAA;IACH,GAAG,KAAA;IACH,IAAI,KAAA;IACJ,mBAAmB,KAAA;IACnB,KAAK,KAAA,CAAE,iBAAiB;IACxB,MAAM,KAAA,CAAE,iBAAiB;IACzB,aAAa,KAAA,CAAE,WAAW;IAC1B,aAAa,KAAA,CAAE,WAAW;IAC1B,YAAY,KAAA,CAAE,qBAAqB;IACnC,aAAa,KAAA,CAAE,qBAAqB;IACpC,kBAAkB,KAAA;IAClB,IAAI,KAAA;IACJ,UAAU,KAAA;IACV,MAAM,KAAA;IACN,MAAM,KAAA;IACN,MAAM,KAAA;IACN,QAAQ,KAAA;IAER,oBAAoB,KAAA;CACrB;AAGD,oBAAY,WAAW;IACrB,KAAK,IAAA;IACL,MAAM,IAAA;IACN,MAAM,IAAA;IACN,MAAM,IAAA;IACN,OAAO,IAAA;CACR;AAgCD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAcvG;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAqBnE"}
1
+ {"version":3,"file":"instruction_serialization.d.ts","sourceRoot":"","sources":["../../../src/avm/serialization/instruction_serialization.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;GAGG;AACH,oBAAY,MAAM;IAChB,GAAG,IAAA;IACH,GAAG,IAAA;IACH,GAAG,IAAA;IACH,GAAG,IAAA;IACH,EAAE,IAAA;IACF,EAAE,IAAA;IACF,GAAG,IAAA;IACH,GAAG,IAAA;IACH,EAAE,IAAA;IACF,GAAG,IAAA;IACH,GAAG,KAAA;IACH,GAAG,KAAA;IACH,GAAG,KAAA;IACH,IAAI,KAAA;IACJ,OAAO,KAAA;IACP,cAAc,KAAA;IACd,MAAM,KAAA;IACN,MAAM,KAAA;IACN,MAAM,KAAA;IACN,WAAW,KAAA;IACX,WAAW,KAAA;IACX,WAAW,KAAA;IACX,iBAAiB,KAAA;IACjB,OAAO,KAAA;IACP,OAAO,KAAA;IACP,WAAW,KAAA;IACX,SAAS,KAAA;IACT,QAAQ,KAAA;IACR,eAAe,KAAA;IACf,eAAe,KAAA;IACf,eAAe,KAAA;IACf,YAAY,KAAA;IACZ,SAAS,KAAA;IACT,SAAS,KAAA;IACT,SAAS,KAAA;IACT,IAAI,KAAA;IACJ,KAAK,KAAA;IACL,YAAY,KAAA;IACZ,cAAc,KAAA;IACd,GAAG,KAAA;IACH,GAAG,KAAA;IACH,IAAI,KAAA;IACJ,KAAK,KAAA;IACL,MAAM,KAAA;IACN,cAAc,KAAA;IACd,YAAY,KAAA;IACZ,eAAe,KAAA;IACf,aAAa,KAAA;IACb,aAAa,KAAA;IACb,YAAY,KAAA;IACZ,kBAAkB,KAAA;IAClB,aAAa,KAAA;IACb,IAAI,KAAA;IACJ,UAAU,KAAA;IACV,MAAM,KAAA;IACN,MAAM,KAAA;IACN,MAAM,KAAA;IACN,QAAQ,KAAA;IAER,oBAAoB,KAAA;CACrB;AAMD,oBAAY,WAAW;IACrB,KAAK,IAAA;IACL,MAAM,IAAA;IACN,MAAM,IAAA;IACN,MAAM,IAAA;IACN,OAAO,IAAA;CACR;AAgCD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAcvG;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAqBnE"}
@@ -48,24 +48,29 @@ export var Opcode;
48
48
  Opcode[Opcode["SET"] = 39] = "SET";
49
49
  Opcode[Opcode["MOV"] = 40] = "MOV";
50
50
  Opcode[Opcode["CMOV"] = 41] = "CMOV";
51
- Opcode[Opcode["BLOCKHEADERBYNUMBER"] = 42] = "BLOCKHEADERBYNUMBER";
52
- Opcode[Opcode["SLOAD"] = 43] = "SLOAD";
53
- Opcode[Opcode["SSTORE"] = 44] = "SSTORE";
54
- Opcode[Opcode["READL1TOL2MSG"] = 45] = "READL1TOL2MSG";
55
- Opcode[Opcode["SENDL2TOL1MSG"] = 46] = "SENDL2TOL1MSG";
56
- Opcode[Opcode["EMITNOTEHASH"] = 47] = "EMITNOTEHASH";
57
- Opcode[Opcode["EMITNULLIFIER"] = 48] = "EMITNULLIFIER";
58
- Opcode[Opcode["EMITUNENCRYPTEDLOG"] = 49] = "EMITUNENCRYPTEDLOG";
59
- Opcode[Opcode["CALL"] = 50] = "CALL";
60
- Opcode[Opcode["STATICCALL"] = 51] = "STATICCALL";
61
- Opcode[Opcode["RETURN"] = 52] = "RETURN";
62
- Opcode[Opcode["REVERT"] = 53] = "REVERT";
63
- Opcode[Opcode["KECCAK"] = 54] = "KECCAK";
64
- Opcode[Opcode["POSEIDON"] = 55] = "POSEIDON";
51
+ Opcode[Opcode["SLOAD"] = 42] = "SLOAD";
52
+ Opcode[Opcode["SSTORE"] = 43] = "SSTORE";
53
+ Opcode[Opcode["NOTEHASHEXISTS"] = 44] = "NOTEHASHEXISTS";
54
+ Opcode[Opcode["EMITNOTEHASH"] = 45] = "EMITNOTEHASH";
55
+ Opcode[Opcode["NULLIFIEREXISTS"] = 46] = "NULLIFIEREXISTS";
56
+ Opcode[Opcode["EMITNULLIFIER"] = 47] = "EMITNULLIFIER";
57
+ Opcode[Opcode["READL1TOL2MSG"] = 48] = "READL1TOL2MSG";
58
+ Opcode[Opcode["HEADERMEMBER"] = 49] = "HEADERMEMBER";
59
+ Opcode[Opcode["EMITUNENCRYPTEDLOG"] = 50] = "EMITUNENCRYPTEDLOG";
60
+ Opcode[Opcode["SENDL2TOL1MSG"] = 51] = "SENDL2TOL1MSG";
61
+ Opcode[Opcode["CALL"] = 52] = "CALL";
62
+ Opcode[Opcode["STATICCALL"] = 53] = "STATICCALL";
63
+ Opcode[Opcode["RETURN"] = 54] = "RETURN";
64
+ Opcode[Opcode["REVERT"] = 55] = "REVERT";
65
+ Opcode[Opcode["KECCAK"] = 56] = "KECCAK";
66
+ Opcode[Opcode["POSEIDON"] = 57] = "POSEIDON";
65
67
  // Add new opcodes before this
66
- Opcode[Opcode["TOTAL_OPCODES_NUMBER"] = 56] = "TOTAL_OPCODES_NUMBER";
68
+ Opcode[Opcode["TOTAL_OPCODES_NUMBER"] = 58] = "TOTAL_OPCODES_NUMBER";
67
69
  })(Opcode || (Opcode = {}));
68
- // Possible types for an instruction's operand in its wire format.
70
+ // Possible types for an instruction's operand in its wire format. (Keep in sync with CPP code.
71
+ // See vm/avm_trace/AvmMini_deserialization.cpp)
72
+ // Note that cpp code introduced an additional enum value TAG to express the instruction tag. In TS,
73
+ // this one is parsed as UINT8.
69
74
  export var OperandType;
70
75
  (function (OperandType) {
71
76
  OperandType[OperandType["UINT8"] = 0] = "UINT8";
@@ -143,4 +148,4 @@ export function serialize(operands, cls) {
143
148
  }
144
149
  return Buffer.concat(chunks);
145
150
  }
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb25fc2VyaWFsaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vc2VyaWFsaXphdGlvbi9pbnN0cnVjdGlvbl9zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLElBQUksTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRDs7O0dBR0c7QUFDSCxNQUFNLENBQU4sSUFBWSxNQTJEWDtBQTNERCxXQUFZLE1BQU07SUFDaEIsaUNBQUcsQ0FBQTtJQUNILGlDQUFHLENBQUE7SUFDSCxpQ0FBRyxDQUFBO0lBQ0gsaUNBQUcsQ0FBQTtJQUNILCtCQUFFLENBQUE7SUFDRiwrQkFBRSxDQUFBO0lBQ0YsaUNBQUcsQ0FBQTtJQUNILGlDQUFHLENBQUE7SUFDSCwrQkFBRSxDQUFBO0lBQ0YsaUNBQUcsQ0FBQTtJQUNILGtDQUFHLENBQUE7SUFDSCxrQ0FBRyxDQUFBO0lBQ0gsa0NBQUcsQ0FBQTtJQUNILG9DQUFJLENBQUE7SUFDSiwwQ0FBTyxDQUFBO0lBQ1Asd0RBQWMsQ0FBQTtJQUNkLHdDQUFNLENBQUE7SUFDTix3Q0FBTSxDQUFBO0lBQ04sd0NBQU0sQ0FBQTtJQUNOLGtEQUFXLENBQUE7SUFDWCxrREFBVyxDQUFBO0lBQ1gsa0RBQVcsQ0FBQTtJQUNYLDhEQUFpQixDQUFBO0lBQ2pCLDBDQUFPLENBQUE7SUFDUCwwQ0FBTyxDQUFBO0lBQ1Asa0RBQVcsQ0FBQTtJQUNYLDhDQUFTLENBQUE7SUFDVCw0Q0FBUSxDQUFBO0lBQ1IsMERBQWUsQ0FBQTtJQUNmLDBEQUFlLENBQUE7SUFDZiwwREFBZSxDQUFBO0lBQ2Ysb0RBQVksQ0FBQTtJQUNaLDhDQUFTLENBQUE7SUFDVCw4Q0FBUyxDQUFBO0lBQ1QsOENBQVMsQ0FBQTtJQUNULG9DQUFJLENBQUE7SUFDSixzQ0FB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
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb25fc2VyaWFsaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vc2VyaWFsaXphdGlvbi9pbnN0cnVjdGlvbl9zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLElBQUksTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRDs7O0dBR0c7QUFDSCxNQUFNLENBQU4sSUFBWSxNQTZEWDtBQTdERCxXQUFZLE1BQU07SUFDaEIsaUNBQUcsQ0FBQTtJQUNILGlDQUFHLENBQUE7SUFDSCxpQ0FBRyxDQUFBO0lBQ0gsaUNBQUcsQ0FBQTtJQUNILCtCQUFFLENBQUE7SUFDRiwrQkFBRSxDQUFBO0lBQ0YsaUNBQUcsQ0FBQTtJQUNILGlDQUFHLENBQUE7SUFDSCwrQkFBRSxDQUFBO0lBQ0YsaUNBQUcsQ0FBQTtJQUNILGtDQUFHLENBQUE7SUFDSCxrQ0FBRyxDQUFBO0lBQ0gsa0NBQUcsQ0FBQTtJQUNILG9DQUFJLENBQUE7SUFDSiwwQ0FBTyxDQUFBO0lBQ1Asd0RBQWMsQ0FBQTtJQUNkLHdDQUFNLENBQUE7SUFDTix3Q0FBTSxDQUFBO0lBQ04sd0NBQU0sQ0FBQTtJQUNOLGtEQUFXLENBQUE7SUFDWCxrREFBVyxDQUFBO0lBQ1gsa0RBQVcsQ0FBQTtJQUNYLDhEQUFpQixDQUFBO0lBQ2pCLDBDQUFPLENBQUE7SUFDUCwwQ0FBTyxDQUFBO0lBQ1Asa0RBQVcsQ0FBQTtJQUNYLDhDQUFTLENBQUE7SUFDVCw0Q0FBUSxDQUFBO0lBQ1IsMERBQWUsQ0FBQTtJQUNmLDBEQUFlLENBQUE7SUFDZiwwREFBZSxDQUFBO0lBQ2Ysb0RBQVksQ0FBQTtJQUNaLDhDQUFTLENBQUE7SUFDVCw4Q0FBUyxDQUFBO0lBQ1QsOENBQVMsQ0FBQTtJQUNULG9DQUFJLENBQUE7SUFDSixzQ0FB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
@@ -0,0 +1,25 @@
1
+ import { GlobalVariables } from '@aztec/circuits.js';
2
+ import { PublicExecution, PublicExecutionResult } from '../public/execution.js';
3
+ import { AvmExecutionEnvironment } from './avm_execution_environment.js';
4
+ import { AvmContractCallResults } from './avm_message_call_result.js';
5
+ import { JournalData } from './journal/journal.js';
6
+ /** Temporary Method
7
+ *
8
+ * Convert a PublicExecution(Environment) object to an AvmExecutionEnvironment
9
+ *
10
+ * @param current
11
+ * @param globalVariables
12
+ * @returns
13
+ */
14
+ export declare function temporaryCreateAvmExecutionEnvironment(current: PublicExecution, globalVariables: GlobalVariables): AvmExecutionEnvironment;
15
+ /** Temporary Method
16
+ *
17
+ * Convert the result of an AVM contract call to a PublicExecutionResult for the public kernel
18
+ *
19
+ * @param execution
20
+ * @param newWorldState
21
+ * @param result
22
+ * @returns
23
+ */
24
+ export declare function temporaryConvertAvmResults(execution: PublicExecution, newWorldState: JournalData, result: AvmContractCallResults): PublicExecutionResult;
25
+ //# sourceMappingURL=temporary_executor_migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temporary_executor_migration.d.ts","sourceRoot":"","sources":["../../src/avm/temporary_executor_migration.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,eAAe,EAGhB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,eAAe,EACxB,eAAe,EAAE,eAAe,GAC/B,uBAAuB,CAkBzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,eAAe,EAC1B,aAAa,EAAE,WAAW,EAC1B,MAAM,EAAE,sBAAsB,GAC7B,qBAAqB,CA+CvB"}
@@ -0,0 +1,71 @@
1
+ // All code in this file needs to die once the public executor is phased out.
2
+ import { FunctionL2Logs } from '@aztec/circuit-types';
3
+ import { ContractStorageRead, ContractStorageUpdateRequest, SideEffect, } from '@aztec/circuits.js';
4
+ import { Fr } from '@aztec/foundation/fields';
5
+ import { AvmExecutionEnvironment } from './avm_execution_environment.js';
6
+ /** Temporary Method
7
+ *
8
+ * Convert a PublicExecution(Environment) object to an AvmExecutionEnvironment
9
+ *
10
+ * @param current
11
+ * @param globalVariables
12
+ * @returns
13
+ */
14
+ export function temporaryCreateAvmExecutionEnvironment(current, globalVariables) {
15
+ // Function selector is included temporarily until noir codegens public contract bytecode in a single blob
16
+ return new AvmExecutionEnvironment(current.contractAddress, current.callContext.storageContractAddress, current.callContext.msgSender, // TODO: origin is not available
17
+ current.callContext.msgSender, current.callContext.portalContractAddress,
18
+ /*feePerL1Gas=*/ Fr.zero(),
19
+ /*feePerL2Gas=*/ Fr.zero(),
20
+ /*feePerDaGas=*/ Fr.zero(),
21
+ /*contractCallDepth=*/ Fr.zero(), globalVariables, current.callContext.isStaticCall, current.callContext.isDelegateCall, current.args, current.functionData.selector);
22
+ }
23
+ /** Temporary Method
24
+ *
25
+ * Convert the result of an AVM contract call to a PublicExecutionResult for the public kernel
26
+ *
27
+ * @param execution
28
+ * @param newWorldState
29
+ * @param result
30
+ * @returns
31
+ */
32
+ export function temporaryConvertAvmResults(execution, newWorldState, result) {
33
+ const newCommitments = newWorldState.newNoteHashes.map(noteHash => new SideEffect(noteHash, Fr.zero()));
34
+ const contractStorageReads = [];
35
+ const reduceStorageReadRequests = (contractAddress, storageReads) => {
36
+ return storageReads.forEach((innerArray, key) => {
37
+ innerArray.forEach(value => {
38
+ contractStorageReads.push(new ContractStorageRead(new Fr(key), new Fr(value), 0));
39
+ });
40
+ });
41
+ };
42
+ newWorldState.storageReads.forEach((storageMap, address) => reduceStorageReadRequests(address, storageMap));
43
+ const contractStorageUpdateRequests = [];
44
+ const reduceStorageUpdateRequests = (contractAddress, storageUpdateRequests) => {
45
+ return storageUpdateRequests.forEach((innerArray, key) => {
46
+ innerArray.forEach(value => {
47
+ contractStorageUpdateRequests.push(new ContractStorageUpdateRequest(new Fr(key), new Fr(value), 0));
48
+ });
49
+ });
50
+ };
51
+ newWorldState.storageWrites.forEach((storageMap, address) => reduceStorageUpdateRequests(address, storageMap));
52
+ const returnValues = result.output;
53
+ // TODO(follow up in pr tree): NOT SUPPORTED YET, make sure hashing and log resolution is done correctly
54
+ // Disabled.
55
+ const nestedExecutions = [];
56
+ const newNullifiers = [];
57
+ const unencryptedLogs = FunctionL2Logs.empty();
58
+ const newL2ToL1Messages = newWorldState.newL1Messages.map(() => Fr.zero());
59
+ return {
60
+ execution,
61
+ newCommitments,
62
+ newL2ToL1Messages,
63
+ newNullifiers,
64
+ contractStorageReads,
65
+ contractStorageUpdateRequests,
66
+ returnValues,
67
+ nestedExecutions,
68
+ unencryptedLogs,
69
+ };
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG9yYXJ5X2V4ZWN1dG9yX21pZ3JhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vdGVtcG9yYXJ5X2V4ZWN1dG9yX21pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2RUFBNkU7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBRTVCLFVBQVUsR0FFWCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUc5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUl6RTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLHNDQUFzQyxDQUNwRCxPQUF3QixFQUN4QixlQUFnQztJQUVoQywwR0FBMEc7SUFDMUcsT0FBTyxJQUFJLHVCQUF1QixDQUNoQyxPQUFPLENBQUMsZUFBZSxFQUN2QixPQUFPLENBQUMsV0FBVyxDQUFDLHNCQUFzQixFQUMxQyxPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxnQ0FBZ0M7SUFDL0QsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQzdCLE9BQU8sQ0FBQyxXQUFXLENBQUMscUJBQXFCO0lBQ3pDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUU7SUFDMUIsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRTtJQUMxQixnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFO0lBQzFCLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFDaEMsZUFBZSxFQUNmLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUNoQyxPQUFPLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFDbEMsT0FBTyxDQUFDLElBQUksRUFDWixPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEs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