@aztec/simulator 0.23.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 (123) 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 +119 -38
  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 +10 -2
  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 +4 -4
  29. package/dest/avm/opcodes/instruction.d.ts.map +1 -1
  30. package/dest/avm/opcodes/instruction.js +1 -1
  31. package/dest/avm/opcodes/memory.d.ts.map +1 -1
  32. package/dest/avm/opcodes/memory.js +5 -3
  33. package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  34. package/dest/avm/serialization/bytecode_serialization.js +24 -22
  35. package/dest/avm/serialization/instruction_serialization.d.ts +17 -15
  36. package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
  37. package/dest/avm/serialization/instruction_serialization.js +18 -16
  38. package/dest/avm/temporary_executor_migration.d.ts +25 -0
  39. package/dest/avm/temporary_executor_migration.d.ts.map +1 -0
  40. package/dest/avm/temporary_executor_migration.js +71 -0
  41. package/dest/client/client_execution_context.d.ts +4 -2
  42. package/dest/client/client_execution_context.d.ts.map +1 -1
  43. package/dest/client/client_execution_context.js +7 -4
  44. package/dest/client/execution_result.d.ts +2 -0
  45. package/dest/client/execution_result.d.ts.map +1 -1
  46. package/dest/client/execution_result.js +1 -1
  47. package/dest/client/simulator.d.ts +10 -5
  48. package/dest/client/simulator.d.ts.map +1 -1
  49. package/dest/client/simulator.js +19 -11
  50. package/dest/client/unconstrained_execution.js +2 -2
  51. package/dest/public/execution.js +2 -2
  52. package/dest/public/executor.d.ts +7 -0
  53. package/dest/public/executor.d.ts.map +1 -1
  54. package/dest/public/executor.js +26 -1
  55. package/dest/public/public_execution_context.js +2 -2
  56. package/dest/public/state_actions.d.ts +1 -1
  57. package/dest/public/state_actions.d.ts.map +1 -1
  58. package/dest/public/state_actions.js +5 -6
  59. package/dest/utils.d.ts +5 -20
  60. package/dest/utils.d.ts.map +1 -1
  61. package/dest/utils.js +4 -20
  62. package/package.json +7 -5
  63. package/src/acvm/acvm.ts +156 -0
  64. package/src/acvm/acvm_types.ts +11 -0
  65. package/src/acvm/deserialize.ts +36 -0
  66. package/src/acvm/index.ts +5 -0
  67. package/src/acvm/oracle/debug.ts +109 -0
  68. package/src/acvm/oracle/index.ts +17 -0
  69. package/src/acvm/oracle/oracle.ts +332 -0
  70. package/src/acvm/oracle/typed_oracle.ts +217 -0
  71. package/src/acvm/serialize.ts +75 -0
  72. package/src/avm/avm_context.ts +63 -0
  73. package/src/avm/avm_execution_environment.ts +98 -0
  74. package/src/avm/avm_machine_state.ts +93 -0
  75. package/src/avm/avm_memory_types.ts +309 -0
  76. package/src/avm/avm_message_call_result.ts +29 -0
  77. package/src/avm/avm_simulator.ts +89 -0
  78. package/src/avm/errors.ts +57 -0
  79. package/src/avm/fixtures/index.ts +90 -0
  80. package/src/avm/journal/host_storage.ts +20 -0
  81. package/src/avm/journal/index.ts +2 -0
  82. package/src/avm/journal/journal.ts +266 -0
  83. package/src/avm/opcodes/.eslintrc.cjs +8 -0
  84. package/src/avm/opcodes/accrued_substate.ts +92 -0
  85. package/src/avm/opcodes/addressing_mode.ts +66 -0
  86. package/src/avm/opcodes/arithmetic.ts +79 -0
  87. package/src/avm/opcodes/bitwise.ts +129 -0
  88. package/src/avm/opcodes/comparators.ts +72 -0
  89. package/src/avm/opcodes/control_flow.ts +129 -0
  90. package/src/avm/opcodes/environment_getters.ts +199 -0
  91. package/src/avm/opcodes/external_calls.ts +122 -0
  92. package/src/avm/opcodes/index.ts +10 -0
  93. package/src/avm/opcodes/instruction.ts +64 -0
  94. package/src/avm/opcodes/instruction_impl.ts +52 -0
  95. package/src/avm/opcodes/memory.ts +193 -0
  96. package/src/avm/opcodes/storage.ts +76 -0
  97. package/src/avm/serialization/buffer_cursor.ts +109 -0
  98. package/src/avm/serialization/bytecode_serialization.ts +172 -0
  99. package/src/avm/serialization/instruction_serialization.ts +167 -0
  100. package/src/avm/temporary_executor_migration.ts +108 -0
  101. package/src/client/client_execution_context.ts +472 -0
  102. package/src/client/db_oracle.ts +184 -0
  103. package/src/client/execution_note_cache.ts +90 -0
  104. package/src/client/execution_result.ts +89 -0
  105. package/src/client/index.ts +3 -0
  106. package/src/client/pick_notes.ts +125 -0
  107. package/src/client/private_execution.ts +78 -0
  108. package/src/client/simulator.ts +316 -0
  109. package/src/client/unconstrained_execution.ts +49 -0
  110. package/src/client/view_data_oracle.ts +243 -0
  111. package/src/common/errors.ts +61 -0
  112. package/src/common/index.ts +3 -0
  113. package/src/common/packed_args_cache.ts +55 -0
  114. package/src/common/side_effect_counter.ts +12 -0
  115. package/src/index.ts +3 -0
  116. package/src/public/db.ts +85 -0
  117. package/src/public/execution.ts +137 -0
  118. package/src/public/executor.ts +158 -0
  119. package/src/public/index.ts +9 -0
  120. package/src/public/public_execution_context.ts +217 -0
  121. package/src/public/state_actions.ts +100 -0
  122. package/src/test/utils.ts +38 -0
  123. package/src/utils.ts +18 -0
@@ -1,119 +1,90 @@
1
1
  import { Fr } from '@aztec/foundation/fields';
2
2
  import { strict as assert } from 'assert';
3
3
  import { TagCheckError } from './errors.js';
4
+ /** MemoryValue gathers the common operations for all memory types. */
4
5
  export class MemoryValue {
5
6
  // To field
6
7
  toFr() {
7
8
  return new Fr(this.toBigInt());
8
9
  }
9
10
  }
11
+ /** IntegralValue gathers the common operations for all integral memory types. */
10
12
  export class IntegralValue extends MemoryValue {
11
13
  }
12
- // TODO: Optimize calculation of mod, etc. Can only do once per class?
13
- class UnsignedInteger extends IntegralValue {
14
- constructor(n, bits) {
15
- super();
16
- this.n = n;
17
- this.bits = bits;
18
- assert(bits > 0);
19
- // x % 2^n == x & (2^n - 1)
20
- this.mod = 1n << bits;
21
- this.bitmask = this.mod - 1n;
22
- assert(n < this.mod);
23
- }
24
- add(rhs) {
25
- assert(this.bits == rhs.bits);
26
- return this.build((this.n + rhs.n) & this.bitmask);
27
- }
28
- sub(rhs) {
29
- assert(this.bits == rhs.bits);
30
- const res = this.n - rhs.n;
31
- return this.build(res >= 0 ? res : res + this.mod);
32
- }
33
- mul(rhs) {
34
- assert(this.bits == rhs.bits);
35
- return this.build((this.n * rhs.n) & this.bitmask);
36
- }
37
- div(rhs) {
38
- assert(this.bits == rhs.bits);
39
- return this.build(this.n / rhs.n);
40
- }
41
- // No sign extension.
42
- shr(rhs) {
43
- assert(this.bits == rhs.bits);
44
- // Note that this.n is > 0 by class invariant.
45
- return this.build(this.n >> rhs.n);
46
- }
47
- shl(rhs) {
48
- assert(this.bits == rhs.bits);
49
- return this.build((this.n << rhs.n) & this.bitmask);
50
- }
51
- and(rhs) {
52
- assert(this.bits == rhs.bits);
53
- return this.build(this.n & rhs.n);
54
- }
55
- or(rhs) {
56
- assert(this.bits == rhs.bits);
57
- return this.build(this.n | rhs.n);
58
- }
59
- xor(rhs) {
60
- assert(this.bits == rhs.bits);
61
- return this.build(this.n ^ rhs.n);
62
- }
63
- not() {
64
- return this.build(~this.n & this.bitmask);
65
- }
66
- equals(rhs) {
67
- assert(this.bits == rhs.bits);
68
- return this.n === rhs.n;
69
- }
70
- lt(rhs) {
71
- assert(this.bits == rhs.bits);
72
- return this.n < rhs.n;
73
- }
74
- toBigInt() {
75
- return this.n;
76
- }
14
+ /**
15
+ * This function creates a class for unsigned integers of a given number of bits.
16
+ * In TypeScript terms, it's a class mixin.
17
+ **/
18
+ function UnsignedIntegerClassFactory(bits) {
19
+ var _a;
20
+ return _a = class NewUintClass extends IntegralValue {
21
+ constructor(n) {
22
+ super();
23
+ this.n = BigInt(n);
24
+ assert(n < _a.mod, `Value ${n} is too large for ${this.constructor.name}.`);
25
+ }
26
+ build(n) {
27
+ return new this.constructor.prototype.constructor(n);
28
+ }
29
+ add(rhs) {
30
+ return this.build((this.n + rhs.n) & _a.bitmask);
31
+ }
32
+ sub(rhs) {
33
+ const res = this.n - rhs.n;
34
+ return this.build(res >= 0 ? res : res + _a.mod);
35
+ }
36
+ mul(rhs) {
37
+ return this.build((this.n * rhs.n) & _a.bitmask);
38
+ }
39
+ div(rhs) {
40
+ return this.build(this.n / rhs.n);
41
+ }
42
+ // No sign extension.
43
+ shr(rhs) {
44
+ // Note that this.n is > 0 by class invariant.
45
+ return this.build(this.n >> rhs.n);
46
+ }
47
+ shl(rhs) {
48
+ return this.build((this.n << rhs.n) & _a.bitmask);
49
+ }
50
+ and(rhs) {
51
+ return this.build(this.n & rhs.n);
52
+ }
53
+ or(rhs) {
54
+ return this.build(this.n | rhs.n);
55
+ }
56
+ xor(rhs) {
57
+ return this.build(this.n ^ rhs.n);
58
+ }
59
+ not() {
60
+ return this.build(~this.n & _a.bitmask);
61
+ }
62
+ equals(rhs) {
63
+ return this.n === rhs.n;
64
+ }
65
+ lt(rhs) {
66
+ return this.n < rhs.n;
67
+ }
68
+ toBigInt() {
69
+ return this.n;
70
+ }
71
+ },
72
+ _a.mod = 1n << BigInt(bits),
73
+ _a.bitmask = _a.mod - 1n,
74
+ _a;
77
75
  }
78
- export class Uint8 extends UnsignedInteger {
79
- constructor(n) {
80
- super(BigInt(n), 8n);
81
- }
82
- build(n) {
83
- return new Uint8(n);
84
- }
76
+ // Now we can create the classes for each unsigned integer type.
77
+ // We extend instead of just assigning so that the class has the right name.
78
+ // Otherwise they are all called "NewUintClass".
79
+ export class Uint8 extends UnsignedIntegerClassFactory(8) {
85
80
  }
86
- export class Uint16 extends UnsignedInteger {
87
- constructor(n) {
88
- super(BigInt(n), 16n);
89
- }
90
- build(n) {
91
- return new Uint16(n);
92
- }
81
+ export class Uint16 extends UnsignedIntegerClassFactory(16) {
93
82
  }
94
- export class Uint32 extends UnsignedInteger {
95
- constructor(n) {
96
- super(BigInt(n), 32n);
97
- }
98
- build(n) {
99
- return new Uint32(n);
100
- }
83
+ export class Uint32 extends UnsignedIntegerClassFactory(32) {
101
84
  }
102
- export class Uint64 extends UnsignedInteger {
103
- constructor(n) {
104
- super(BigInt(n), 64n);
105
- }
106
- build(n) {
107
- return new Uint64(n);
108
- }
85
+ export class Uint64 extends UnsignedIntegerClassFactory(64) {
109
86
  }
110
- export class Uint128 extends UnsignedInteger {
111
- constructor(n) {
112
- super(BigInt(n), 128n);
113
- }
114
- build(n) {
115
- return new Uint128(n);
116
- }
87
+ export class Uint128 extends UnsignedIntegerClassFactory(128) {
117
88
  }
118
89
  export class Field extends MemoryValue {
119
90
  constructor(v) {
@@ -138,9 +109,6 @@ export class Field extends MemoryValue {
138
109
  equals(rhs) {
139
110
  return this.rep.equals(rhs.rep);
140
111
  }
141
- lt(rhs) {
142
- return this.rep.lt(rhs.rep);
143
- }
144
112
  toBigInt() {
145
113
  return this.rep.toBigInt();
146
114
  }
@@ -160,10 +128,11 @@ export var TypeTag;
160
128
  // TODO: Consider automatic conversion when getting undefined values.
161
129
  export class TaggedMemory {
162
130
  constructor() {
163
- // Initialize memory size, but leave all entries undefined.
164
- this._mem = new Array(TaggedMemory.MAX_MEMORY_SIZE);
131
+ // We do not initialize memory size here because otherwise tests blow up when diffing.
132
+ this._mem = [];
165
133
  }
166
134
  get(offset) {
135
+ assert(offset < TaggedMemory.MAX_MEMORY_SIZE);
167
136
  return this.getAs(offset);
168
137
  }
169
138
  getAs(offset) {
@@ -173,14 +142,17 @@ export class TaggedMemory {
173
142
  }
174
143
  getSlice(offset, size) {
175
144
  assert(offset < TaggedMemory.MAX_MEMORY_SIZE);
145
+ assert(offset + size < TaggedMemory.MAX_MEMORY_SIZE);
176
146
  return this._mem.slice(offset, offset + size);
177
147
  }
178
148
  getSliceAs(offset, size) {
179
149
  assert(offset < TaggedMemory.MAX_MEMORY_SIZE);
150
+ assert(offset + size < TaggedMemory.MAX_MEMORY_SIZE);
180
151
  return this._mem.slice(offset, offset + size);
181
152
  }
182
153
  getSliceTags(offset, size) {
183
154
  assert(offset < TaggedMemory.MAX_MEMORY_SIZE);
155
+ assert(offset + size < TaggedMemory.MAX_MEMORY_SIZE);
184
156
  return this._mem.slice(offset, offset + size).map(TaggedMemory.getTag);
185
157
  }
186
158
  set(offset, v) {
@@ -189,6 +161,11 @@ export class TaggedMemory {
189
161
  }
190
162
  setSlice(offset, vs) {
191
163
  assert(offset < TaggedMemory.MAX_MEMORY_SIZE);
164
+ assert(offset + vs.length < TaggedMemory.MAX_MEMORY_SIZE);
165
+ // We may need to extend the memory size, otherwise splice doesn't insert.
166
+ if (offset + vs.length > this._mem.length) {
167
+ this._mem.length = offset + vs.length;
168
+ }
192
169
  this._mem.splice(offset, vs.length, ...vs);
193
170
  }
194
171
  getTag(offset) {
@@ -199,7 +176,12 @@ export class TaggedMemory {
199
176
  */
200
177
  checkTag(tag, offset) {
201
178
  if (this.getTag(offset) !== tag) {
202
- throw new TagCheckError(offset, TypeTag[this.getTag(offset)], TypeTag[tag]);
179
+ throw TagCheckError.forOffset(offset, TypeTag[this.getTag(offset)], TypeTag[tag]);
180
+ }
181
+ }
182
+ static checkIsIntegralTag(tag) {
183
+ if (![TypeTag.UINT8, TypeTag.UINT16, TypeTag.UINT32, TypeTag.UINT64, TypeTag.UINT128].includes(tag)) {
184
+ throw TagCheckError.forTag(TypeTag[tag], 'integral');
203
185
  }
204
186
  }
205
187
  /**
@@ -247,7 +229,7 @@ export class TaggedMemory {
247
229
  }
248
230
  // Truncates the value to fit the type.
249
231
  static integralFromTag(v, tag) {
250
- v = v;
232
+ v = BigInt(v);
251
233
  switch (tag) {
252
234
  case TypeTag.UINT8:
253
235
  return new Uint8(v & ((1n << 8n) - 1n));
@@ -265,5 +247,5 @@ export class TaggedMemory {
265
247
  }
266
248
  }
267
249
  // FIXME: memory should be 2^32, but TS doesn't allow for arrays that big.
268
- TaggedMemory.MAX_MEMORY_SIZE = Number(1n << 31n); // 1n << 32n
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX21lbW9yeV90eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vYXZtX21lbW9yeV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxNQUFNLE9BQWdCLFdBQVc7SUFlL0IsV0FBVztJQUNKLElBQUk7UUFDVCxPQUFPLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBZ0IsYUFBYyxTQUFRLFdBQVc7Q0FPdEQ7QUFFRCxzRUFBc0U7QUFDdEUsTUFBZSxlQUFnQixTQUFRLGFBQWE7SUFJbEQsWUFBOEIsQ0FBUyxFQUFVLElBQVk7UUFDM0QsS0FBSyxFQUFFLENBQUM7UUFEb0IsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVE7UUFFM0QsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqQiwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDN0IsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUlNLEdBQUcsQ0FBQyxHQUFvQjtRQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENB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
250
+ TaggedMemory.MAX_MEMORY_SIZE = Number((1n << 32n) - 2n);
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX21lbW9yeV90eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vYXZtX21lbW9yeV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxzRUFBc0U7QUFDdEUsTUFBTSxPQUFnQixXQUFXO0lBYy9CLFdBQVc7SUFDSixJQUFJO1FBQ1QsT0FBTyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUFFRCxpRkFBaUY7QUFDakYsTUFBTSxPQUFnQixhQUFjLFNBQVEsV0FBVztDQVN0RDtBQUVEOzs7SUFHSTtBQUNKLFNBQVMsMkJBQTJCLENBQUMsSUFBWTs7SUFDL0MsWUFBTyxNQUFNLFlBQWEsU0FBUSxhQUFhO1lBSzdDLFlBQW1CLENBQWtCO2dCQUNuQyxLQUFLLEVBQUUsQ0FBQztnQkFDUixJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkIsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFZLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ3hGLENBQUM7WUFFTSxLQUFLLENBQUMsQ0FBUztnQkFDcEIsT0FBTyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RCxDQUFDO1lBRU0sR0FBRyxDQUFDLEdBQWlCO2dCQUMxQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdB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
@@ -1 +1 @@
1
- {"version":3,"file":"avm_simulator.d.ts","sourceRoot":"","sources":["../../src/avm/avm_simulator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,qBAAa,YAAY;IAGX,OAAO,CAAC,OAAO;IAF3B,OAAO,CAAC,GAAG,CAAyD;gBAEhD,OAAO,EAAE,UAAU;IAEvC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAKvD;;;OAGG;IACU,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAyC9F;;OAEG;YACW,sBAAsB;CAgBrC"}
1
+ {"version":3,"file":"avm_simulator.d.ts","sourceRoot":"","sources":["../../src/avm/avm_simulator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,qBAAa,YAAY;IAGX,OAAO,CAAC,OAAO;IAF3B,OAAO,CAAC,GAAG,CAAyD;gBAEhD,OAAO,EAAE,UAAU;IAEvC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAKvD;;;OAGG;IACU,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAyC9F;;OAEG;YACW,sBAAsB;CAiBrC"}
@@ -1,4 +1,3 @@
1
- import { FunctionSelector } from '@aztec/circuits.js';
2
1
  import { createDebugLogger } from '@aztec/foundation/log';
3
2
  import { strict as assert } from 'assert';
4
3
  import { AvmContractCallResults } from './avm_message_call_result.js';
@@ -61,7 +60,7 @@ export class AvmSimulator {
61
60
  */
62
61
  async fetchAndDecodeBytecode() {
63
62
  // NOTE: the following is mocked as getPublicBytecode does not exist yet
64
- const selector = new FunctionSelector(0);
63
+ const selector = this.context.environment.temporaryFunctionSelector;
65
64
  const bytecode = await this.context.worldState.hostStorage.contractsDb.getBytecode(this.context.environment.address, selector);
66
65
  // This assumes that we will not be able to send messages to accounts without code
67
66
  // Pending classes and instances impl details
@@ -71,4 +70,4 @@ export class AvmSimulator {
71
70
  return decodeFromBytecode(bytecode);
72
71
  }
73
72
  }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX3NpbXVsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vYXZtX3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUcxQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFL0UsTUFBTSxPQUFPLFlBQVk7SUFHdkIsWUFBb0IsT0FBbUI7UUFBbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUYvQixRQUFHLEdBQWdCLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFMUIsQ0FBQztJQUUzQzs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxZQUEyQjtRQUMxRCxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUM7WUFDSCxnRUFBZ0U7WUFDaEUsc0RBQXNEO1lBQ3RELE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDekMsTUFBTSxXQUFX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
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX3NpbXVsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vYXZtX3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUcxQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFL0UsTUFBTSxPQUFPLFlBQVk7SUFHdkIsWUFBb0IsT0FBbUI7UUFBbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUYvQixRQUFHLEdBQWdCLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFMUIsQ0FBQztJQUUzQzs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxZQUEyQjtRQUMxRCxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUM7WUFDSCxnRUFBZ0U7WUFDaEUsc0RBQXNEO1lBQ3RELE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDekMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFD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
@@ -25,6 +25,8 @@ export declare class InstructionExecutionError extends AvmExecutionError {
25
25
  * Error thrown on failed AVM memory tag check.
26
26
  */
27
27
  export declare class TagCheckError extends AvmExecutionError {
28
- constructor(offset: number, gotTag: string, expectedTag: string);
28
+ static forOffset(offset: number, gotTag: string, expectedTag: string): TagCheckError;
29
+ static forTag(gotTag: string, expectedTag: string): TagCheckError;
30
+ constructor(message: string);
29
31
  }
30
32
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/avm/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,8BAAsB,iBAAkB,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;CAI5C;AAED,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,eAAe,EAAE,YAAY;CAI1C;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAIpC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,iBAAiB;gBAClD,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;gBACtC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAIhE"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/avm/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,8BAAsB,iBAAkB,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;CAI5C;AAED,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,eAAe,EAAE,YAAY;CAI1C;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAIpC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,iBAAiB;gBAClD,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;WACpC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;WAI7E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;gBAI5D,OAAO,EAAE,MAAM;CAI5B"}
@@ -36,9 +36,15 @@ export class InstructionExecutionError extends AvmExecutionError {
36
36
  * Error thrown on failed AVM memory tag check.
37
37
  */
38
38
  export class TagCheckError extends AvmExecutionError {
39
- constructor(offset, gotTag, expectedTag) {
40
- super(`Memory offset ${offset} has tag ${gotTag}, expected ${expectedTag}`);
39
+ static forOffset(offset, gotTag, expectedTag) {
40
+ return new TagCheckError(`Tag mismatch at offset ${offset}, got ${gotTag}, expected ${expectedTag}`);
41
+ }
42
+ static forTag(gotTag, expectedTag) {
43
+ return new TagCheckError(`Tag mismatch, got ${gotTag}, expected ${expectedTag}`);
44
+ }
45
+ constructor(message) {
46
+ super(message);
41
47
  this.name = 'TagCheckError';
42
48
  }
43
49
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F2bS9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLEtBQUs7SUFDbkQsWUFBWSxPQUFlLEVBQUUsR0FBRyxJQUFXO1FBQ3pDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxpQkFBaUI7SUFDL0QsWUFBWSxlQUE2QjtRQUN2QyxLQUFLLENBQUMseUJBQXlCLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLElBQUksR0FBRyxpQ0FBaUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsaUJBQWlCO0lBQy9ELFlBQVksRUFBVSxFQUFFLEdBQVc7UUFDakMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsSUFBSSxHQUFHLDRCQUE0QixDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGlCQUFpQjtJQUM5RCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRywyQkFBMkIsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFjLFNBQVEsaUJBQWlCO0lBQ2xELFlBQVksTUFBYyxFQUFFLE1BQWMsRUFBRSxXQUFtQjtRQUM3RCxLQUFLLENBQUMsaUJBQWlCLE1BQU0sWUFBWSxNQUFNLGNBQWMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQztJQUM5QixDQUFDO0NBQ0YifQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F2bS9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLEtBQUs7SUFDbkQsWUFBWSxPQUFlLEVBQUUsR0FBRyxJQUFXO1FBQ3pDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxpQkFBaUI7SUFDL0QsWUFBWSxlQUE2QjtRQUN2QyxLQUFLLENBQUMseUJBQXlCLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLElBQUksR0FBRyxpQ0FBaUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsaUJBQWlCO0lBQy9ELFlBQVksRUFBVSxFQUFFLEdBQVc7UUFDakMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsSUFBSSxHQUFHLDRCQUE0QixDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGlCQUFpQjtJQUM5RCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRywyQkFBMkIsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFjLFNBQVEsaUJBQWlCO0lBQzNDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBYyxFQUFFLE1BQWMsRUFBRSxXQUFtQjtRQUN6RSxPQUFPLElBQUksYUFBYSxDQUFDLDBCQUEwQixNQUFNLFNBQVMsTUFBTSxjQUFjLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBYyxFQUFFLFdBQW1CO1FBQ3RELE9BQU8sSUFBSSxhQUFhLENBQUMscUJBQXFCLE1BQU0sY0FBYyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUM7SUFDOUIsQ0FBQztDQUNGIn0=
@@ -25,4 +25,8 @@ export declare function initGlobalVariables(overrides?: Partial<GlobalVariables>
25
25
  * Create an empty instance of the Machine State where all values are zero, unless overridden in the overrides object
26
26
  */
27
27
  export declare function initMachineState(overrides?: Partial<AvmMachineState>): AvmMachineState;
28
+ /**
29
+ * Create a new object with all the same properties as the original, except for the ones in the overrides object.
30
+ */
31
+ export declare function allSameExcept(original: any, overrides: any): any;
28
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/avm/fixtures/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,CAAC,EAAE;IACtC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IAC9B,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,GAAG,UAAU,CAMb;AAED,wDAAwD;AACxD,wBAAgB,yBAAyB,IAAI,oBAAoB,CAGhE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,uBAAuB,CAgB9G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CASzF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAMtF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/avm/fixtures/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAUrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,CAAC,EAAE;IACtC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IAC9B,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,GAAG,UAAU,CAMb;AAED,wDAAwD;AACxD,wBAAgB,yBAAyB,IAAI,oBAAoB,CAGhE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,uBAAuB,CAiB9G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CASzF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAMtF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,GAAG,CAEhE"}
@@ -1,8 +1,10 @@
1
1
  import { GlobalVariables } from '@aztec/circuits.js';
2
+ import { FunctionSelector } from '@aztec/foundation/abi';
2
3
  import { AztecAddress } from '@aztec/foundation/aztec-address';
3
4
  import { EthAddress } from '@aztec/foundation/eth-address';
4
5
  import { Fr } from '@aztec/foundation/fields';
5
6
  import { mock } from 'jest-mock-extended';
7
+ import merge from 'lodash.merge';
6
8
  import { AvmContext } from '../avm_context.js';
7
9
  import { AvmExecutionEnvironment } from '../avm_execution_environment.js';
8
10
  import { AvmMachineState } from '../avm_machine_state.js';
@@ -23,7 +25,7 @@ export function initMockWorldStateJournal() {
23
25
  * Create an empty instance of the Execution Environment where all values are zero, unless overridden in the overrides object
24
26
  */
25
27
  export function initExecutionEnvironment(overrides) {
26
- return new AvmExecutionEnvironment(overrides?.address ?? AztecAddress.zero(), overrides?.storageAddress ?? AztecAddress.zero(), overrides?.origin ?? AztecAddress.zero(), overrides?.sender ?? AztecAddress.zero(), overrides?.portal ?? EthAddress.ZERO, overrides?.feePerL1Gas ?? Fr.zero(), overrides?.feePerL2Gas ?? Fr.zero(), overrides?.feePerDaGas ?? Fr.zero(), overrides?.contractCallDepth ?? Fr.zero(), overrides?.globals ?? GlobalVariables.empty(), overrides?.isStaticCall ?? false, overrides?.isDelegateCall ?? false, overrides?.calldata ?? []);
28
+ return new AvmExecutionEnvironment(overrides?.address ?? AztecAddress.zero(), overrides?.storageAddress ?? AztecAddress.zero(), overrides?.origin ?? AztecAddress.zero(), overrides?.sender ?? AztecAddress.zero(), overrides?.portal ?? EthAddress.ZERO, overrides?.feePerL1Gas ?? Fr.zero(), overrides?.feePerL2Gas ?? Fr.zero(), overrides?.feePerDaGas ?? Fr.zero(), overrides?.contractCallDepth ?? Fr.zero(), overrides?.globals ?? GlobalVariables.empty(), overrides?.isStaticCall ?? false, overrides?.isDelegateCall ?? false, overrides?.calldata ?? [], overrides?.temporaryFunctionSelector ?? FunctionSelector.empty());
27
29
  }
28
30
  /**
29
31
  * Create an empty instance of the Execution Environment where all values are zero, unless overridden in the overrides object
@@ -41,4 +43,10 @@ export function initMachineState(overrides) {
41
43
  daGasLeft: overrides?.daGasLeft ?? 0,
42
44
  });
43
45
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL2ZpeHR1cmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFN0Q7O0dBRUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLFNBSTNCO0lBQ0MsT0FBTyxJQUFJLFVBQVUsQ0FDbkIsU0FBUyxFQUFFLFVBQVUsSUFBSSx5QkFBeUIsRUFBRSxFQUNwRCxTQUFTLEVBQUUsR0FBRyxJQUFJLHdCQUF3QixFQUFFLEVBQzVDLFNBQVMsRUFBRSxZQUFZLElBQUksZ0JBQWdCLEVBQUUsQ0FDOUMsQ0FBQztBQUNKLENBQUM7QUFFRCx3REFBd0Q7QUFDeEQsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQWlCLEVBQUUsSUFBSSxFQUFxQixFQUFFLElBQUksRUFBaUIsQ0FBQyxDQUFDO0lBQzdHLE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsU0FBNEM7SUFDbkYsT0FBTyxJQUFJLHVCQUF1QixDQUNoQyxTQUFTLEVBQUUsT0FBTyxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFDekMsU0FBUyxFQUFFLGNBQWMsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQ2hELFNBQVMsRUFBRSxNQUFNLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxFQUN4QyxTQUFTLEVBQUUsTUFBTSxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFDeEMsU0FBUyxFQUFFLE1BQU0sSUFBSSxVQUFVLENBQUMsSUFBSSxFQUNwQyxTQUFTLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFDbkMsU0FBUyxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQ25DLFNBQVMsRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUNuQyxTQUFTLEVBQUUsaUJBQWlCLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUN6QyxTQUFTLEVBQUUsT0FBTyxJQUFJLGVBQWUsQ0FBQyxLQUFLLEVBQUUsRUFDN0MsU0FBUyxFQUFFLFlBQVksSUFBSSxLQUFLLEVBQ2hDLFNBQVMsRUFBRSxjQUFjLElBQUksS0FBSyxFQUNsQyxTQUFTLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FDMUIsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxTQUFvQztJQUN0RSxPQUFPLElBQUksZUFBZSxDQUN4QixTQUFTLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFDL0IsU0FBUyxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQy9CLFNBQVMsRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUNuQyxTQUFTLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFDakMsU0FBUyxFQUFFLFFBQVEsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUN0QyxTQUFTLEVBQUUsWUFBWSxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FDL0MsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxTQUFvQztJQUNuRSxPQUFPLGVBQWUsQ0FBQyxTQUFTLENBQUM7UUFDL0IsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLElBQUksQ0FBQztRQUNwQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsSUFBSSxDQUFDO1FBQ3BDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxJQUFJLENBQUM7S0FDckMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
46
+ /**
47
+ * Create a new object with all the same properties as the original, except for the ones in the overrides object.
48
+ */
49
+ export function allSameExcept(original, overrides) {
50
+ return merge({}, original, overrides);
51
+ }
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL2ZpeHR1cmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBR2pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTdEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxTQUkzQjtJQUNDLE9BQU8sSUFBSSxVQUFVLENBQ25CLFNBQVMsRUFBRSxVQUFVLElBQUkseUJBQXlCLEVBQUUsRUFDcEQsU0FBUyxFQUFFLEdBQUcsSUFBSSx3QkFBd0IsRUFBRSxFQUM1QyxTQUFTLEVBQUUsWUFBWSxJQUFJLGdCQUFnQixFQUFFLENBQzlDLENBQUM7QUFDSixDQUFDO0FBRUQsd0RBQXdEO0FBQ3hELE1BQU0sVUFBVSx5QkFBeUI7SUFDdkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFpQixFQUFFLElBQUksRUFBcUIsRUFBRSxJQUFJLEVBQWlCLENBQUMsQ0FBQztJQUM3RyxPQUFPLElBQUksb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLFNBQTRDO0lBQ25GLE9BQU8sSUFBSSx1QkFBdUIsQ0FDaEMsU0FBUyxFQUFFLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQ3pDLFNBQVMsRUFBRSxjQUFjLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxFQUNoRCxTQUFTLEVBQUUsTUFBTSxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFDeEMsU0FBUyxFQUFFLE1BQU0sSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQ3hDLFNBQVMsRUFBRSxNQUFNLElBQUksVUFBVSxDQUFDLElBQUksRUFDcEMsU0FBUyxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQ25DLFNBQVMsRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUNuQyxTQUFTLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFDbkMsU0FBUyxFQUFFLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFDekMsU0FBUyxFQUFFLE9BQU8sSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLEVBQzdDLFNBQVMsRUFBRSxZQUFZLElBQUksS0FBSyxFQUNoQyxTQUFTLEVBQUUsY0FBYyxJQUFJLEtBQUssRUFDbEMsU0FBUyxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQ3pCLFNBQVMsRUFBRSx5QkFBeUIsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FDakUsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxTQUFvQztJQUN0RSxPQUFPLElBQUksZUFBZSxDQUN4QixTQUFTLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFDL0IsU0FBUyxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQy9CLFNBQVMsRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUNuQyxTQUFTLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFDakMsU0FBUyxFQUFFLFFBQVEsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUN0QyxTQUFTLEVBQUUsWUFBWSxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FDL0MsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxTQUFvQztJQUNuRSxPQUFPLGVBQWUsQ0FBQyxTQUFTLENBQUM7UUFDL0IsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLElBQUksQ0FBQztRQUNwQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsSUFBSSxDQUFDO1FBQ3BDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxJQUFJLENBQUM7S0FDckMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxRQUFhLEVBQUUsU0FBYztJQUN6RCxPQUFPLEtBQUssQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3hDLENBQUMifQ==
@@ -1,4 +1,4 @@
1
- import { CommitmentsDB, PublicContractsDB, PublicStateDB } from '../../index.js';
1
+ import { CommitmentsDB, PublicContractsDB, PublicStateDB } from '../../public/db.js';
2
2
  /**
3
3
  * Host storage
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"host_storage.d.ts","sourceRoot":"","sources":["../../../src/avm/journal/host_storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEjF;;;;GAIG;AACH,qBAAa,WAAW;IACtB,SAAgB,aAAa,EAAE,aAAa,CAAC;IAE7C,SAAgB,WAAW,EAAE,iBAAiB,CAAC;IAE/C,SAAgB,aAAa,EAAE,aAAa,CAAC;gBAEjC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa;CAKvG"}
1
+ {"version":3,"file":"host_storage.d.ts","sourceRoot":"","sources":["../../../src/avm/journal/host_storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAErF;;;;GAIG;AACH,qBAAa,WAAW;IACtB,SAAgB,aAAa,EAAE,aAAa,CAAC;IAE7C,SAAgB,WAAW,EAAE,iBAAiB,CAAC;IAE/C,SAAgB,aAAa,EAAE,aAAa,CAAC;gBAEjC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa;CAKvG"}
@@ -0,0 +1,24 @@
1
+ import { TaggedMemory } from '../avm_memory_types.js';
2
+ export declare enum AddressingMode {
3
+ DIRECT = 0,
4
+ INDIRECT = 1,
5
+ INDIRECT_PLUS_CONSTANT = 2
6
+ }
7
+ /** A class to represent the addressing mode of an instruction. */
8
+ export declare class Addressing {
9
+ /** The addressing mode for each operand. The length of this array is the number of operands of the instruction. */
10
+ private readonly modePerOperand;
11
+ constructor(
12
+ /** The addressing mode for each operand. The length of this array is the number of operands of the instruction. */
13
+ modePerOperand: AddressingMode[]);
14
+ static fromWire(wireModes: number): Addressing;
15
+ toWire(): number;
16
+ /**
17
+ * Resolves the offsets using the addressing mode.
18
+ * @param offsets The offsets to resolve.
19
+ * @param mem The memory to use for resolution.
20
+ * @returns The resolved offsets. The length of the returned array is the same as the length of the input array.
21
+ */
22
+ resolve(offsets: number[], mem: TaggedMemory): number[];
23
+ }
24
+ //# sourceMappingURL=addressing_mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addressing_mode.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/addressing_mode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAW,MAAM,wBAAwB,CAAC;AAE/D,oBAAY,cAAc;IACxB,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,sBAAsB,IAAA;CACvB;AAED,kEAAkE;AAClE,qBAAa,UAAU;IAEnB,mHAAmH;IACnH,OAAO,CAAC,QAAQ,CAAC,cAAc;;IAD/B,mHAAmH;IAClG,cAAc,EAAE,cAAc,EAAE;WAKrC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU;IAU9C,MAAM,IAAI,MAAM;IAYvB;;;;;OAKG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,EAAE;CAkB/D"}
@@ -0,0 +1,62 @@
1
+ import { strict as assert } from 'assert';
2
+ import { TypeTag } from '../avm_memory_types.js';
3
+ export var AddressingMode;
4
+ (function (AddressingMode) {
5
+ AddressingMode[AddressingMode["DIRECT"] = 0] = "DIRECT";
6
+ AddressingMode[AddressingMode["INDIRECT"] = 1] = "INDIRECT";
7
+ AddressingMode[AddressingMode["INDIRECT_PLUS_CONSTANT"] = 2] = "INDIRECT_PLUS_CONSTANT";
8
+ })(AddressingMode || (AddressingMode = {}));
9
+ /** A class to represent the addressing mode of an instruction. */
10
+ export class Addressing {
11
+ constructor(
12
+ /** The addressing mode for each operand. The length of this array is the number of operands of the instruction. */
13
+ modePerOperand) {
14
+ this.modePerOperand = modePerOperand;
15
+ assert(modePerOperand.length <= 8, 'At most 8 operands are supported');
16
+ }
17
+ static fromWire(wireModes) {
18
+ // The modes are stored in the wire format as a byte, with each bit representing the mode for an operand.
19
+ // The least significant bit represents the zeroth operand, and the most significant bit represents the last operand.
20
+ const modes = new Array(8);
21
+ for (let i = 0; i < 8; i++) {
22
+ modes[i] = (wireModes & (1 << i)) === 0 ? AddressingMode.DIRECT : AddressingMode.INDIRECT;
23
+ }
24
+ return new Addressing(modes);
25
+ }
26
+ toWire() {
27
+ // The modes are stored in the wire format as a byte, with each bit representing the mode for an operand.
28
+ // The least significant bit represents the zeroth operand, and the least significant bit represents the last operand.
29
+ let wire = 0;
30
+ for (let i = 0; i < 8; i++) {
31
+ if (this.modePerOperand[i] === AddressingMode.INDIRECT) {
32
+ wire |= 1 << i;
33
+ }
34
+ }
35
+ return wire;
36
+ }
37
+ /**
38
+ * Resolves the offsets using the addressing mode.
39
+ * @param offsets The offsets to resolve.
40
+ * @param mem The memory to use for resolution.
41
+ * @returns The resolved offsets. The length of the returned array is the same as the length of the input array.
42
+ */
43
+ resolve(offsets, mem) {
44
+ assert(offsets.length <= this.modePerOperand.length);
45
+ const resolved = new Array(offsets.length);
46
+ for (const [i, offset] of offsets.entries()) {
47
+ switch (this.modePerOperand[i]) {
48
+ case AddressingMode.INDIRECT:
49
+ mem.checkTag(TypeTag.UINT32, offset);
50
+ resolved[i] = Number(mem.get(offset).toBigInt());
51
+ break;
52
+ case AddressingMode.DIRECT:
53
+ resolved[i] = offset;
54
+ break;
55
+ default:
56
+ throw new Error(`Unimplemented addressing mode: ${AddressingMode[this.modePerOperand[i]]}`);
57
+ }
58
+ }
59
+ return resolved;
60
+ }
61
+ }
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc2luZ19tb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F2bS9vcGNvZGVzL2FkZHJlc3NpbmdfbW9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUUxQyxPQUFPLEVBQWdCLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRS9ELE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIsdURBQU0sQ0FBQTtJQUNOLDJEQUFRLENBQUE7SUFDUix1RkFBc0IsQ0FBQTtBQUN4QixDQUFDLEVBSlcsY0FBYyxLQUFkLGNBQWMsUUFJekI7QUFFRCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLFVBQVU7SUFDckI7SUFDRSxtSEFBbUg7SUFDbEcsY0FBZ0M7UUFBaEMsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBRWpELE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQWlCO1FBQ3RDLHlHQUF5RztRQUN6RyxxSEFBcUg7UUFDckgsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQzNDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMzQixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7UUFDNUYsQ0FBQztRQUNELE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLE1BQU07UUFDWCx5R0FBeUc7UUFDekcsc0hBQXNIO1FBQ3RILElBQUksSUFBSSxHQUFXLENBQUMsQ0FBQztRQUNyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdkQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE9BQU8sQ0FBQyxPQUFpQixFQUFFLEdBQWlCO1FBQ2pELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckQsTUFBTSxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUM1QyxRQUFRLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsS0FBSyxjQUFjLENBQUMsUUFBUTtvQkFDMUIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUNyQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztvQkFDakQsTUFBTTtnQkFDUixLQUFLLGNBQWMsQ0FBQyxNQUFNO29CQUN4QixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO29CQUNyQixNQUFNO2dCQUNSO29CQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hHLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"comparators.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/comparators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,+CAA+C,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,qBAAa,EAAG,SAAQ,uBAAuB;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAQ;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa;gBAEvB,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI1F,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAYlD;AAED,qBAAa,EAAG,SAAQ,uBAAuB;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAQ;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa;gBAEvB,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI1F,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAYlD;AAED,qBAAa,GAAI,SAAQ,uBAAuB;IAC9C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc;gBAExB,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI1F,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAYlD"}
1
+ {"version":3,"file":"comparators.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/comparators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,+CAA+C,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,qBAAa,EAAG,SAAQ,uBAAuB;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAQ;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa;gBAEvB,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI1F,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAYlD;AAED,qBAAa,EAAG,SAAQ,uBAAuB;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAQ;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa;gBAEvB,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI1F,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAalD;AAED,qBAAa,GAAI,SAAQ,uBAAuB;IAC9C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc;gBAExB,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI1F,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAalD"}