@aztec/simulator 0.53.0 → 0.55.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 (60) hide show
  1. package/dest/avm/avm_execution_environment.d.ts +2 -2
  2. package/dest/avm/avm_execution_environment.d.ts.map +1 -1
  3. package/dest/avm/avm_execution_environment.js +5 -6
  4. package/dest/avm/avm_gas.d.ts.map +1 -1
  5. package/dest/avm/avm_gas.js +85 -41
  6. package/dest/avm/avm_memory_types.d.ts +1 -1
  7. package/dest/avm/avm_memory_types.d.ts.map +1 -1
  8. package/dest/avm/avm_memory_types.js +5 -3
  9. package/dest/avm/bytecode_utils.js +5 -5
  10. package/dest/avm/opcodes/arithmetic.d.ts +9 -16
  11. package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
  12. package/dest/avm/opcodes/arithmetic.js +12 -37
  13. package/dest/avm/opcodes/bitwise.d.ts +6 -6
  14. package/dest/avm/opcodes/bitwise.d.ts.map +1 -1
  15. package/dest/avm/opcodes/bitwise.js +7 -7
  16. package/dest/avm/opcodes/comparators.d.ts +3 -3
  17. package/dest/avm/opcodes/comparators.d.ts.map +1 -1
  18. package/dest/avm/opcodes/comparators.js +4 -4
  19. package/dest/avm/opcodes/control_flow.d.ts.map +1 -1
  20. package/dest/avm/opcodes/control_flow.js +6 -6
  21. package/dest/avm/opcodes/external_calls.d.ts +2 -1
  22. package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
  23. package/dest/avm/opcodes/external_calls.js +11 -6
  24. package/dest/avm/opcodes/instruction.d.ts +18 -12
  25. package/dest/avm/opcodes/instruction.d.ts.map +1 -1
  26. package/dest/avm/opcodes/instruction.js +36 -19
  27. package/dest/avm/opcodes/instruction_impl.d.ts +10 -6
  28. package/dest/avm/opcodes/instruction_impl.d.ts.map +1 -1
  29. package/dest/avm/opcodes/instruction_impl.js +29 -13
  30. package/dest/avm/opcodes/memory.d.ts +9 -10
  31. package/dest/avm/opcodes/memory.d.ts.map +1 -1
  32. package/dest/avm/opcodes/memory.js +60 -60
  33. package/dest/avm/serialization/bytecode_serialization.d.ts +7 -8
  34. package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  35. package/dest/avm/serialization/bytecode_serialization.js +86 -64
  36. package/dest/avm/serialization/instruction_serialization.d.ts +87 -64
  37. package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
  38. package/dest/avm/serialization/instruction_serialization.js +105 -67
  39. package/dest/public/hints_builder.d.ts +3 -4
  40. package/dest/public/hints_builder.d.ts.map +1 -1
  41. package/dest/public/hints_builder.js +2 -5
  42. package/dest/public/tail_phase_manager.d.ts.map +1 -1
  43. package/dest/public/tail_phase_manager.js +2 -3
  44. package/package.json +9 -9
  45. package/src/avm/avm_execution_environment.ts +3 -4
  46. package/src/avm/avm_gas.ts +84 -40
  47. package/src/avm/avm_memory_types.ts +4 -2
  48. package/src/avm/bytecode_utils.ts +4 -4
  49. package/src/avm/opcodes/arithmetic.ts +12 -41
  50. package/src/avm/opcodes/bitwise.ts +6 -6
  51. package/src/avm/opcodes/comparators.ts +3 -3
  52. package/src/avm/opcodes/control_flow.ts +5 -5
  53. package/src/avm/opcodes/external_calls.ts +11 -5
  54. package/src/avm/opcodes/instruction.ts +41 -19
  55. package/src/avm/opcodes/instruction_impl.ts +28 -12
  56. package/src/avm/opcodes/memory.ts +61 -67
  57. package/src/avm/serialization/bytecode_serialization.ts +96 -73
  58. package/src/avm/serialization/instruction_serialization.ts +64 -24
  59. package/src/public/hints_builder.ts +0 -11
  60. package/src/public/tail_phase_manager.ts +0 -7
@@ -3,24 +3,27 @@ import { type MemoryValue } from '../avm_memory_types.js';
3
3
  import { OperandType } from '../serialization/instruction_serialization.js';
4
4
  import { Instruction } from './instruction.js';
5
5
  /** Wire format that informs deserialization for instructions with two operands. */
6
- export declare const TwoOperandWireFormat: OperandType[];
6
+ export declare const TwoOperandWireFormat8: OperandType[];
7
+ export declare const TwoOperandWireFormat16: OperandType[];
7
8
  /** Wire format that informs deserialization for instructions with three operands. */
8
- export declare const ThreeOperandWireFormat: OperandType[];
9
+ export declare const ThreeOperandWireFormat8: OperandType[];
10
+ export declare const ThreeOperandWireFormat16: OperandType[];
9
11
  /**
10
12
  * Covers (de)serialization for an instruction with:
11
- * indirect, inTag, and two UINT32s.
13
+ * indirect, inTag, and two operands.
12
14
  */
13
15
  export declare abstract class TwoOperandInstruction extends Instruction {
14
16
  protected indirect: number;
15
17
  protected inTag: number;
16
18
  protected aOffset: number;
17
19
  protected dstOffset: number;
18
- static readonly wireFormat: OperandType[];
20
+ static readonly wireFormat8: OperandType[];
21
+ static readonly wireFormat16: OperandType[];
19
22
  constructor(indirect: number, inTag: number, aOffset: number, dstOffset: number);
20
23
  }
21
24
  /**
22
25
  * Covers (de)serialization for an instruction with:
23
- * indirect, inTag, and three UINT32s.
26
+ * indirect, inTag, and three operands.
24
27
  */
25
28
  export declare abstract class ThreeOperandInstruction extends Instruction {
26
29
  protected indirect: number;
@@ -28,7 +31,8 @@ export declare abstract class ThreeOperandInstruction extends Instruction {
28
31
  protected aOffset: number;
29
32
  protected bOffset: number;
30
33
  protected dstOffset: number;
31
- static readonly wireFormat: OperandType[];
34
+ static readonly wireFormat8: OperandType[];
35
+ static readonly wireFormat16: OperandType[];
32
36
  constructor(indirect: number, inTag: number, aOffset: number, bOffset: number, dstOffset: number);
33
37
  }
34
38
  export declare abstract class GetterInstruction extends Instruction {
@@ -1 +1 @@
1
- {"version":3,"file":"instruction_impl.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/instruction_impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,eAMhC,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,sBAAsB,eAOlC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,qBAAsB,SAAQ,WAAW;IAK3D,SAAS,CAAC,QAAQ,EAAE,MAAM;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM;IACvB,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,SAAS,EAAE,MAAM;IAN7B,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAAwB;gBAGrD,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM;CAI9B;AAED;;;GAGG;AACH,8BAAsB,uBAAwB,SAAQ,WAAW;IAK7D,SAAS,CAAC,QAAQ,EAAE,MAAM;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM;IACvB,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,SAAS,EAAE,MAAM;IAP7B,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAA0B;gBAGvD,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM;CAI9B;AAED,8BAAsB,iBAAkB,SAAQ,WAAW;IAI7C,SAAS,CAAC,QAAQ,EAAE,MAAM;IAAE,SAAS,CAAC,SAAS,EAAE,MAAM;IAFnE,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAA8D;gBAEjF,QAAQ,EAAE,MAAM,EAAY,SAAS,EAAE,MAAM;IAItD,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW;CAC1D"}
1
+ {"version":3,"file":"instruction_impl.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/instruction_impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,eAMjC,CAAC;AACF,eAAO,MAAM,sBAAsB,eAMlC,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,eAOnC,CAAC;AACF,eAAO,MAAM,wBAAwB,eAOpC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,qBAAsB,SAAQ,WAAW;IAM3D,SAAS,CAAC,QAAQ,EAAE,MAAM;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM;IACvB,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,SAAS,EAAE,MAAM;IAP7B,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAAyB;IACnE,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAA0B;gBAGzD,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM;CAI9B;AAED;;;GAGG;AACH,8BAAsB,uBAAwB,SAAQ,WAAW;IAK7D,SAAS,CAAC,QAAQ,EAAE,MAAM;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM;IACvB,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,SAAS,EAAE,MAAM;IAR7B,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAA2B;IACrE,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAA4B;gBAG3D,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM;CAI9B;AAED,8BAAsB,iBAAkB,SAAQ,WAAW;IAI7C,SAAS,CAAC,QAAQ,EAAE,MAAM;IAAE,SAAS,CAAC,SAAS,EAAE,MAAM;IAFnE,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAA8D;gBAEjF,QAAQ,EAAE,MAAM,EAAY,SAAS,EAAE,MAAM;IAItD,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW;CAC1D"}
@@ -2,25 +2,40 @@ import { OperandType } from '../serialization/instruction_serialization.js';
2
2
  import { Addressing } from './addressing_mode.js';
3
3
  import { Instruction } from './instruction.js';
4
4
  /** Wire format that informs deserialization for instructions with two operands. */
5
- export const TwoOperandWireFormat = [
5
+ export const TwoOperandWireFormat8 = [
6
+ OperandType.UINT8,
7
+ OperandType.UINT8,
6
8
  OperandType.UINT8,
7
9
  OperandType.UINT8,
8
10
  OperandType.UINT8,
9
- OperandType.UINT32,
10
- OperandType.UINT32,
11
+ ];
12
+ export const TwoOperandWireFormat16 = [
13
+ OperandType.UINT8,
14
+ OperandType.UINT8,
15
+ OperandType.UINT8,
16
+ OperandType.UINT16,
17
+ OperandType.UINT16,
11
18
  ];
12
19
  /** Wire format that informs deserialization for instructions with three operands. */
13
- export const ThreeOperandWireFormat = [
20
+ export const ThreeOperandWireFormat8 = [
21
+ OperandType.UINT8,
22
+ OperandType.UINT8,
23
+ OperandType.UINT8,
14
24
  OperandType.UINT8,
15
25
  OperandType.UINT8,
16
26
  OperandType.UINT8,
17
- OperandType.UINT32,
18
- OperandType.UINT32,
19
- OperandType.UINT32,
27
+ ];
28
+ export const ThreeOperandWireFormat16 = [
29
+ OperandType.UINT8,
30
+ OperandType.UINT8,
31
+ OperandType.UINT8,
32
+ OperandType.UINT16,
33
+ OperandType.UINT16,
34
+ OperandType.UINT16,
20
35
  ];
21
36
  /**
22
37
  * Covers (de)serialization for an instruction with:
23
- * indirect, inTag, and two UINT32s.
38
+ * indirect, inTag, and two operands.
24
39
  */
25
40
  export class TwoOperandInstruction extends Instruction {
26
41
  constructor(indirect, inTag, aOffset, dstOffset) {
@@ -32,10 +47,11 @@ export class TwoOperandInstruction extends Instruction {
32
47
  }
33
48
  }
34
49
  // Informs (de)serialization. See Instruction.deserialize.
35
- TwoOperandInstruction.wireFormat = TwoOperandWireFormat;
50
+ TwoOperandInstruction.wireFormat8 = TwoOperandWireFormat8;
51
+ TwoOperandInstruction.wireFormat16 = TwoOperandWireFormat16;
36
52
  /**
37
53
  * Covers (de)serialization for an instruction with:
38
- * indirect, inTag, and three UINT32s.
54
+ * indirect, inTag, and three operands.
39
55
  */
40
56
  export class ThreeOperandInstruction extends Instruction {
41
57
  constructor(indirect, inTag, aOffset, bOffset, dstOffset) {
@@ -47,8 +63,8 @@ export class ThreeOperandInstruction extends Instruction {
47
63
  this.dstOffset = dstOffset;
48
64
  }
49
65
  }
50
- // Informs (de)serialization. See Instruction.deserialize.
51
- ThreeOperandInstruction.wireFormat = ThreeOperandWireFormat;
66
+ ThreeOperandInstruction.wireFormat8 = ThreeOperandWireFormat8;
67
+ ThreeOperandInstruction.wireFormat16 = ThreeOperandWireFormat16;
52
68
  export class GetterInstruction extends Instruction {
53
69
  constructor(indirect, dstOffset) {
54
70
  super();
@@ -67,4 +83,4 @@ export class GetterInstruction extends Instruction {
67
83
  }
68
84
  // Informs (de)serialization. See Instruction.deserialize.
69
85
  GetterInstruction.wireFormat = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT32];
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb25faW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9pbnN0cnVjdGlvbl9pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLG1GQUFtRjtBQUNuRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNsQyxXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsTUFBTTtJQUNsQixXQUFXLENBQUMsTUFBTTtDQUNuQixDQUFDO0FBRUYscUZBQXFGO0FBQ3JGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHO0lBQ3BDLFdBQVcsQ0FBQyxLQUFLO0lBQ2pCLFdBQVcsQ0FBQyxLQUFLO0lBQ2pCLFdBQVcsQ0FBQyxLQUFLO0lBQ2pCLFdBQVcsQ0FBQyxNQUFNO0lBQ2xCLFdBQVcsQ0FBQyxNQUFNO0lBQ2xCLFdBQVcsQ0FBQyxNQUFNO0NBQ25CLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLHFCQUFzQixTQUFRLFdBQVc7SUFJN0QsWUFDWSxRQUFnQixFQUNoQixLQUFhLEVBQ2IsT0FBZSxFQUNmLFNBQWlCO1FBRTNCLEtBQUssRUFBRSxDQUFDO1FBTEUsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFHN0IsQ0FBQzs7QUFWRCwwREFBMEQ7QUFDMUMsZ0NBQVUsR0FBa0Isb0JBQW9CLENBQUM7QUFZbkU7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQix1QkFBd0IsU0FBUSxXQUFXO0lBSS9ELFlBQ1ksUUFBZ0IsRUFDaEIsS0FBYSxFQUNiLE9BQWUsRUFDZixPQUFlLEVBQ2YsU0FBaUI7UUFFM0IsS0FBSyxFQUFFLENBQUM7UUFORSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFHN0IsQ0FBQzs7QUFYRCwwREFBMEQ7QUFDMUMsa0NBQVUsR0FBa0Isc0JBQXNCLENBQUM7QUFhckUsTUFBTSxPQUFnQixpQkFBa0IsU0FBUSxXQUFXO0lBSXpELFlBQXNCLFFBQWdCLEVBQVksU0FBaUI7UUFDakUsS0FBSyxFQUFFLENBQUM7UUFEWSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVksY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUVuRSxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFtQjtRQUN0QyxNQUFNLGdCQUFnQixHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFFaEUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV6RixNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFOUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQzs7QUFsQkQsMERBQTBEO0FBQzFDLDRCQUFVLEdBQWtCLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyJ9
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb25faW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9pbnN0cnVjdGlvbl9pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLG1GQUFtRjtBQUNuRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQyxXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztDQUNsQixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07Q0FDbkIsQ0FBQztBQUVGLHFGQUFxRjtBQUNyRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRztJQUNyQyxXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztDQUNsQixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDdEMsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07Q0FDbkIsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IscUJBQXNCLFNBQVEsV0FBVztJQUs3RCxZQUNZLFFBQWdCLEVBQ2hCLEtBQWEsRUFDYixPQUFlLEVBQ2YsU0FBaUI7UUFFM0IsS0FBSyxFQUFFLENBQUM7UUFMRSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUc3QixDQUFDOztBQVhELDBEQUEwRDtBQUMxQyxpQ0FBVyxHQUFrQixxQkFBcUIsQ0FBQztBQUNuRCxrQ0FBWSxHQUFrQixzQkFBc0IsQ0FBQztBQVl2RTs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLHVCQUF3QixTQUFRLFdBQVc7SUFJL0QsWUFDWSxRQUFnQixFQUNoQixLQUFhLEVBQ2IsT0FBZSxFQUNmLE9BQWUsRUFDZixTQUFpQjtRQUUzQixLQUFLLEVBQUUsQ0FBQztRQU5FLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUc3QixDQUFDOztBQVhlLG1DQUFXLEdBQWtCLHVCQUF1QixDQUFDO0FBQ3JELG9DQUFZLEdBQWtCLHdCQUF3QixDQUFDO0FBYXpFLE1BQU0sT0FBZ0IsaUJBQWtCLFNBQVEsV0FBVztJQUl6RCxZQUFzQixRQUFnQixFQUFZLFNBQWlCO1FBQ2pFLEtBQUssRUFBRSxDQUFDO1FBRFksYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFFbkUsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDdEMsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFekYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRTlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNoQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7O0FBbEJELDBEQUEwRDtBQUMxQyw0QkFBVSxHQUFrQixDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMifQ==
@@ -1,6 +1,4 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
1
  import type { AvmContext } from '../avm_context.js';
3
- import { BufferCursor } from '../serialization/buffer_cursor.js';
4
2
  import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
5
3
  import { Instruction } from './instruction.js';
6
4
  import { TwoOperandInstruction } from './instruction_impl.js';
@@ -11,13 +9,13 @@ export declare class Set extends Instruction {
11
9
  private dstOffset;
12
10
  static readonly type: string;
13
11
  static readonly opcode: Opcode;
14
- private static readonly wireFormatBeforeConst;
15
- private static readonly wireFormatAfterConst;
12
+ static readonly wireFormat8: OperandType[];
13
+ static readonly wireFormat16: OperandType[];
14
+ static readonly wireFormat32: OperandType[];
15
+ static readonly wireFormat64: OperandType[];
16
+ static readonly wireFormat128: OperandType[];
17
+ static readonly wireFormatFF: OperandType[];
16
18
  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;
21
19
  execute(context: AvmContext): Promise<void>;
22
20
  }
23
21
  export declare class CMov extends Instruction {
@@ -34,7 +32,7 @@ export declare class CMov extends Instruction {
34
32
  }
35
33
  export declare class Cast extends TwoOperandInstruction {
36
34
  static readonly type: string;
37
- static readonly opcode = Opcode.CAST;
35
+ static readonly opcode = Opcode.CAST_8;
38
36
  constructor(indirect: number, dstTag: number, srcOffset: number, dstOffset: number);
39
37
  execute(context: AvmContext): Promise<void>;
40
38
  }
@@ -44,7 +42,8 @@ export declare class Mov extends Instruction {
44
42
  private dstOffset;
45
43
  static readonly type: string;
46
44
  static readonly opcode: Opcode;
47
- static readonly wireFormat: OperandType[];
45
+ static readonly wireFormat8: OperandType[];
46
+ static readonly wireFormat16: OperandType[];
48
47
  constructor(indirect: number, srcOffset: number, dstOffset: number);
49
48
  execute(context: AvmContext): Promise<void>;
50
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/memory.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,8 @@
1
- import { Field, TaggedMemory, TypeTag } from '../avm_memory_types.js';
2
- import { InstructionExecutionError } from '../errors.js';
3
- import { BufferCursor } from '../serialization/buffer_cursor.js';
4
- import { Opcode, OperandType, deserialize, serialize } from '../serialization/instruction_serialization.js';
1
+ import { Field, TaggedMemory } from '../avm_memory_types.js';
2
+ import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
5
3
  import { Addressing } from './addressing_mode.js';
6
4
  import { Instruction } from './instruction.js';
7
5
  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
- }
23
6
  export class Set extends Instruction {
24
7
  constructor(indirect, inTag, value, dstOffset) {
25
8
  super();
@@ -28,51 +11,62 @@ export class Set extends Instruction {
28
11
  this.value = value;
29
12
  this.dstOffset = dstOffset;
30
13
  }
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
- }
53
14
  async execute(context) {
54
15
  const memoryOperations = { writes: 1, indirect: this.indirect };
55
16
  const memory = context.machineState.memory.track(this.type);
56
17
  context.machineState.consumeGas(this.gasCost(memoryOperations));
57
- // Per the YP, the tag cannot be a field.
58
- if ([TypeTag.FIELD, TypeTag.UNINITIALIZED, TypeTag.INVALID].includes(this.inTag)) {
59
- throw new InstructionExecutionError(`Invalid tag ${TypeTag[this.inTag]} for SET.`);
60
- }
61
18
  const [dstOffset] = Addressing.fromWire(this.indirect).resolve([this.dstOffset], memory);
62
- const res = TaggedMemory.integralFromTag(this.value, this.inTag);
19
+ const res = TaggedMemory.buildFromTagTruncating(this.value, this.inTag);
63
20
  memory.set(dstOffset, res);
64
21
  memory.assert(memoryOperations);
65
22
  context.machineState.incrementPc();
66
23
  }
67
24
  }
68
25
  Set.type = 'SET';
69
- Set.opcode = Opcode.SET;
70
- Set.wireFormatBeforeConst = [
71
- OperandType.UINT8,
72
- OperandType.UINT8,
73
- OperandType.UINT8,
26
+ // Required for gas.
27
+ Set.opcode = Opcode.SET_8;
28
+ Set.wireFormat8 = [
29
+ OperandType.UINT8, // opcode
30
+ OperandType.UINT8, // indirect
31
+ OperandType.UINT8, // tag
32
+ OperandType.UINT8, // const (value)
33
+ OperandType.UINT8, // dstOffset
34
+ ];
35
+ Set.wireFormat16 = [
36
+ OperandType.UINT8, // opcode
37
+ OperandType.UINT8, // indirect
38
+ OperandType.UINT8, // tag
39
+ OperandType.UINT16, // const (value)
40
+ OperandType.UINT16, // dstOffset
41
+ ];
42
+ Set.wireFormat32 = [
43
+ OperandType.UINT8, // opcode
44
+ OperandType.UINT8, // indirect
45
+ OperandType.UINT8, // tag
46
+ OperandType.UINT32, // const (value)
47
+ OperandType.UINT16, // dstOffset
48
+ ];
49
+ Set.wireFormat64 = [
50
+ OperandType.UINT8, // opcode
51
+ OperandType.UINT8, // indirect
52
+ OperandType.UINT8, // tag
53
+ OperandType.UINT64, // const (value)
54
+ OperandType.UINT16, // dstOffset
55
+ ];
56
+ Set.wireFormat128 = [
57
+ OperandType.UINT8, // opcode
58
+ OperandType.UINT8, // indirect
59
+ OperandType.UINT8, // tag
60
+ OperandType.UINT128, // const (value)
61
+ OperandType.UINT16, // dstOffset
62
+ ];
63
+ Set.wireFormatFF = [
64
+ OperandType.UINT8, // opcode
65
+ OperandType.UINT8, // indirect
66
+ OperandType.UINT8, // tag
67
+ OperandType.FF, // const (value)
68
+ OperandType.UINT16, // dstOffset
74
69
  ];
75
- Set.wireFormatAfterConst = [OperandType.UINT32];
76
70
  export class CMov extends Instruction {
77
71
  constructor(indirect, aOffset, bOffset, condOffset, dstOffset) {
78
72
  super();
@@ -117,14 +111,14 @@ export class Cast extends TwoOperandInstruction {
117
111
  context.machineState.consumeGas(this.gasCost(memoryOperations));
118
112
  const [srcOffset, dstOffset] = Addressing.fromWire(this.indirect).resolve([this.aOffset, this.dstOffset], memory);
119
113
  const a = memory.get(srcOffset);
120
- const casted = this.inTag == TypeTag.FIELD ? new Field(a.toBigInt()) : TaggedMemory.integralFromTag(a.toBigInt(), this.inTag);
114
+ const casted = TaggedMemory.buildFromTagTruncating(a.toBigInt(), this.inTag);
121
115
  memory.set(dstOffset, casted);
122
116
  memory.assert(memoryOperations);
123
117
  context.machineState.incrementPc();
124
118
  }
125
119
  }
126
120
  Cast.type = 'CAST';
127
- Cast.opcode = Opcode.CAST;
121
+ Cast.opcode = Opcode.CAST_8;
128
122
  export class Mov extends Instruction {
129
123
  constructor(indirect, srcOffset, dstOffset) {
130
124
  super();
@@ -144,13 +138,19 @@ export class Mov extends Instruction {
144
138
  }
145
139
  }
146
140
  Mov.type = 'MOV';
147
- Mov.opcode = Opcode.MOV;
148
- // Informs (de)serialization. See Instruction.deserialize.
149
- Mov.wireFormat = [
141
+ // FIXME: This is needed for gas.
142
+ Mov.opcode = Opcode.MOV_8;
143
+ Mov.wireFormat8 = [
150
144
  OperandType.UINT8,
151
145
  OperandType.UINT8,
152
- OperandType.UINT32,
153
- OperandType.UINT32,
146
+ OperandType.UINT8,
147
+ OperandType.UINT8,
148
+ ];
149
+ Mov.wireFormat16 = [
150
+ OperandType.UINT8,
151
+ OperandType.UINT8,
152
+ OperandType.UINT16,
153
+ OperandType.UINT16,
154
154
  ];
155
155
  export class CalldataCopy extends Instruction {
156
156
  constructor(indirect, cdStartOffset, copySizeOffset, dstOffset) {
@@ -184,4 +184,4 @@ CalldataCopy.wireFormat = [
184
184
  OperandType.UINT32,
185
185
  OperandType.UINT32,
186
186
  ];
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F2bS9vcGNvZGVzL21lbW9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxHQUFHLENBQXVCO0lBQ3hELENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDO0NBQ3ZDLENBQUMsQ0FBQztBQUVILFNBQVMsdUJBQXVCLENBQUMsS0FBc0I7SUFDckQsS0FBSyxHQUFHLEtBQWUsQ0FBQztJQUN4QixNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQs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
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F2bS9vcGNvZGVzL21lbW9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5RCxNQUFNLE9BQU8sR0FBSSxTQUFRLFdBQVc7SUFnRGxDLFlBQ1UsUUFBZ0IsRUFDaEIsS0FBYSxFQUNiLEtBQXNCLEVBQ3RCLFNBQWlCO1FBRXpCLEtBQUssRUFBRSxDQUFDO1FBTEEsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUczQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFtQjtRQUN0QyxNQUFNLGdCQUFnQixHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFFaEUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENB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
@@ -1,15 +1,15 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- import type { Instruction } from '../opcodes/index.js';
2
+ import { Instruction } from '../opcodes/index.js';
3
3
  import { BufferCursor } from './buffer_cursor.js';
4
4
  import { Opcode } from './instruction_serialization.js';
5
- interface DeserializableInstruction {
6
- deserialize(buf: BufferCursor | Buffer): Instruction;
7
- opcode: Opcode;
8
- }
9
- export type InstructionSet = Map<Opcode, DeserializableInstruction>;
10
- interface Serializable {
5
+ export type InstructionDeserializer = (buf: BufferCursor | Buffer) => Instruction;
6
+ export interface Serializable {
11
7
  serialize(): Buffer;
12
8
  }
9
+ export interface Deserializable {
10
+ deserialize: InstructionDeserializer;
11
+ }
12
+ export type InstructionSet = Map<Opcode, InstructionDeserializer>;
13
13
  /**
14
14
  * Serializes an array of instructions to bytecode.
15
15
  */
@@ -21,5 +21,4 @@ export declare function encodeToBytecode(instructions: Serializable[]): Buffer;
21
21
  * @returns Bytecode decoded into an ordered array of Instructions
22
22
  */
23
23
  export declare function decodeFromBytecode(bytecode: Buffer, instructionSet?: InstructionSet): Instruction[];
24
- export {};
25
24
  //# sourceMappingURL=bytecode_serialization.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bytecode_serialization.d.ts","sourceRoot":"","sources":["../../../src/avm/serialization/bytecode_serialization.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAsDvD,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;AAuFpE,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":";AAIA,OAAO,EAqBL,WAAW,EA+BZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,KAAK,WAAW,CAAC;AAElF,MAAM,WAAW,YAAY;IAC3B,SAAS,IAAI,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,uBAAuB,CAAC;CACtC;AAED,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AA6GlE;;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"}