sol-dbg 0.7.1 → 0.7.3

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 (102) hide show
  1. package/dist/artifacts/helpers.js +3 -3
  2. package/dist/artifacts/helpers.js.map +1 -1
  3. package/dist/artifacts/solc.d.ts +1 -1
  4. package/dist/artifacts/solc.d.ts.map +1 -1
  5. package/dist/debug/artifact_manager/artifact_manager.d.ts +2 -2
  6. package/dist/debug/artifact_manager/artifact_manager.d.ts.map +1 -1
  7. package/dist/debug/artifact_manager/artifact_manager.js +2 -3
  8. package/dist/debug/artifact_manager/artifact_manager.js.map +1 -1
  9. package/dist/debug/artifact_manager/bytecode_templates.js +1 -1
  10. package/dist/debug/artifact_manager/bytecode_templates.js.map +1 -1
  11. package/dist/debug/decoding/calldata/index.d.ts +1 -1
  12. package/dist/debug/decoding/calldata/index.d.ts.map +1 -1
  13. package/dist/debug/decoding/calldata/index.js +15 -3
  14. package/dist/debug/decoding/calldata/index.js.map +1 -1
  15. package/dist/debug/decoding/calldata/view.d.ts +25 -7
  16. package/dist/debug/decoding/calldata/view.d.ts.map +1 -1
  17. package/dist/debug/decoding/calldata/view.js +107 -12
  18. package/dist/debug/decoding/calldata/view.js.map +1 -1
  19. package/dist/debug/decoding/index.d.ts +1 -0
  20. package/dist/debug/decoding/index.d.ts.map +1 -1
  21. package/dist/debug/decoding/index.js +1 -0
  22. package/dist/debug/decoding/index.js.map +1 -1
  23. package/dist/debug/decoding/memory/allocator.d.ts +22 -0
  24. package/dist/debug/decoding/memory/allocator.d.ts.map +1 -0
  25. package/dist/debug/decoding/memory/allocator.js +47 -0
  26. package/dist/debug/decoding/memory/allocator.js.map +1 -0
  27. package/dist/debug/decoding/memory/index.d.ts +2 -1
  28. package/dist/debug/decoding/memory/index.d.ts.map +1 -1
  29. package/dist/debug/decoding/memory/index.js +16 -3
  30. package/dist/debug/decoding/memory/index.js.map +1 -1
  31. package/dist/debug/decoding/memory/view.d.ts +45 -8
  32. package/dist/debug/decoding/memory/view.d.ts.map +1 -1
  33. package/dist/debug/decoding/memory/view.js +185 -15
  34. package/dist/debug/decoding/memory/view.js.map +1 -1
  35. package/dist/debug/decoding/stack/index.d.ts +1 -1
  36. package/dist/debug/decoding/stack/index.d.ts.map +1 -1
  37. package/dist/debug/decoding/stack/index.js +15 -3
  38. package/dist/debug/decoding/stack/index.js.map +1 -1
  39. package/dist/debug/decoding/stack/view.d.ts +7 -0
  40. package/dist/debug/decoding/stack/view.d.ts.map +1 -1
  41. package/dist/debug/decoding/stack/view.js +41 -1
  42. package/dist/debug/decoding/stack/view.js.map +1 -1
  43. package/dist/debug/decoding/storage/index.d.ts +1 -1
  44. package/dist/debug/decoding/storage/index.d.ts.map +1 -1
  45. package/dist/debug/decoding/storage/index.js +15 -3
  46. package/dist/debug/decoding/storage/index.js.map +1 -1
  47. package/dist/debug/decoding/storage/view.d.ts +45 -7
  48. package/dist/debug/decoding/storage/view.d.ts.map +1 -1
  49. package/dist/debug/decoding/storage/view.js +279 -16
  50. package/dist/debug/decoding/storage/view.js.map +1 -1
  51. package/dist/debug/decoding/view.d.ts +14 -1
  52. package/dist/debug/decoding/view.d.ts.map +1 -1
  53. package/dist/debug/decoding/view.js +8 -1
  54. package/dist/debug/decoding/view.js.map +1 -1
  55. package/dist/debug/foundry_cheatcodes.d.ts +15 -15
  56. package/dist/debug/foundry_cheatcodes.d.ts.map +1 -1
  57. package/dist/debug/foundry_cheatcodes.js +11 -10
  58. package/dist/debug/foundry_cheatcodes.js.map +1 -1
  59. package/dist/debug/layout.d.ts +2 -2
  60. package/dist/debug/layout.d.ts.map +1 -1
  61. package/dist/debug/layout.js +1 -1
  62. package/dist/debug/layout.js.map +1 -1
  63. package/dist/debug/opcode_interposing.js +2 -2
  64. package/dist/debug/opcode_interposing.js.map +1 -1
  65. package/dist/debug/tracers/base_tracer.d.ts +4 -4
  66. package/dist/debug/tracers/base_tracer.d.ts.map +1 -1
  67. package/dist/debug/tracers/base_tracer.js +7 -7
  68. package/dist/debug/tracers/base_tracer.js.map +1 -1
  69. package/dist/debug/tracers/storage_decode_tracer.js +1 -1
  70. package/dist/debug/tracers/storage_decode_tracer.js.map +1 -1
  71. package/dist/debug/tracers/transformers/basic_info.d.ts +2 -2
  72. package/dist/debug/tracers/transformers/basic_info.d.ts.map +1 -1
  73. package/dist/debug/tracers/transformers/basic_info.js.map +1 -1
  74. package/dist/debug/tracers/transformers/ext_stack.d.ts.map +1 -1
  75. package/dist/debug/tracers/transformers/ext_stack.js +3 -5
  76. package/dist/debug/tracers/transformers/ext_stack.js.map +1 -1
  77. package/dist/debug/types.d.ts +2 -38
  78. package/dist/debug/types.d.ts.map +1 -1
  79. package/dist/debug/types.js +1 -8
  80. package/dist/debug/types.js.map +1 -1
  81. package/dist/utils/ethereumjs_internal/exceptions.d.ts +2 -2
  82. package/dist/utils/ethereumjs_internal/opcodes.js +1 -1
  83. package/dist/utils/immutable_map.d.ts +2 -0
  84. package/dist/utils/immutable_map.d.ts.map +1 -1
  85. package/dist/utils/immutable_map.js +21 -0
  86. package/dist/utils/immutable_map.js.map +1 -1
  87. package/dist/utils/misc.d.ts +4 -3
  88. package/dist/utils/misc.d.ts.map +1 -1
  89. package/dist/utils/misc.js +25 -20
  90. package/dist/utils/misc.js.map +1 -1
  91. package/dist/utils/solidity.d.ts.map +1 -1
  92. package/dist/utils/solidity.js +23 -7
  93. package/dist/utils/solidity.js.map +1 -1
  94. package/dist/utils/test_runner.d.ts +5 -5
  95. package/dist/utils/test_runner.d.ts.map +1 -1
  96. package/dist/utils/test_runner.js +15 -14
  97. package/dist/utils/test_runner.js.map +1 -1
  98. package/package.json +13 -12
  99. package/dist/utils/types.d.ts +0 -9
  100. package/dist/utils/types.d.ts.map +0 -1
  101. package/dist/utils/types.js +0 -3
  102. package/dist/utils/types.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MissingStorageView = exports.StringStorageView = exports.BytesStorageView = exports.PackedArrayStorageView = exports.MapStorageView = exports.StructStorageView = exports.ArrayStorageView = exports.PointerStorageView = exports.FixedBytesStorageView = exports.AddressStorageView = exports.BoolStorageView = exports.IntStorageView = exports.BaseStorageView = void 0;
3
+ exports.MissingStorageView = exports.StringStorageView = exports.BytesStorageView = exports.PackedArrayStorageView = exports.MapStorageView = exports.StructStorageView = exports.ArrayStorageView = exports.PointerStorageView = exports.FixedBytesStorageView = exports.SingleByteStorageView = exports.AddressStorageView = exports.BoolStorageView = exports.IntStorageView = exports.BaseStorageView = void 0;
4
4
  exports.nextWord = nextWord;
5
5
  exports.makeStorageView = makeStorageView;
6
6
  const solc_typed_ast_1 = require("solc-typed-ast");
@@ -12,6 +12,7 @@ const util_1 = require("@ethereumjs/util");
12
12
  const exp_types_1 = require("../exp_types");
13
13
  const memory_1 = require("../memory");
14
14
  const utils_2 = require("../utils");
15
+ const view_2 = require("../memory/view");
15
16
  const utils_3 = require("ethereum-cryptography/utils");
16
17
  function move(loc, byBytes) {
17
18
  const [key, endOffsetInWord] = loc;
@@ -34,6 +35,13 @@ class BaseStorageView extends view_1.View {
34
35
  }
35
36
  return res;
36
37
  }
38
+ setWord(key, value, storage) {
39
+ const keyHash = (0, utils_1.bigEndianBufToBigint)((0, keccak_1.keccak256)((0, utils_1.bigIntToBuf)(key, 32, "big")));
40
+ if ((0, utils_3.equalsBytes)(value, utils_1.ZERO_BYTES32)) {
41
+ return storage.delete(keyHash);
42
+ }
43
+ return storage.set(keyHash, value);
44
+ }
37
45
  /**
38
46
  * Helper to fetch `numBytes` bytes from `storage` starting at offset `off`.
39
47
  */
@@ -75,6 +83,18 @@ class BaseStorageView extends view_1.View {
75
83
  }
76
84
  return res;
77
85
  }
86
+ encodeIntAt(val, key, endOffsetInWord, type, state) {
87
+ const size = type.nBits / 8;
88
+ if (endOffsetInWord < size) {
89
+ throw new view_1.EncodingError(`Internal Error: Can't decode ${type.pp()} starting at offset ${endOffsetInWord} in word ${key}`);
90
+ }
91
+ if (!(0, utils_1.fits)(val, type)) {
92
+ throw new view_1.EncodingError(`Decoded value ${val} from ${[key, endOffsetInWord]} doesn't fit in expected typee ${type.pp()}`);
93
+ }
94
+ const word = this.fetchWord(key, state);
95
+ (0, utils_1.encodeBigintInBigEndianBuf)(val, word, type.nBits / 8, endOffsetInWord);
96
+ return this.setWord(key, word, state);
97
+ }
78
98
  pp() {
79
99
  return `<${this.type.pp()}@${this.loc} in storage>`;
80
100
  }
@@ -87,6 +107,9 @@ class IntStorageView extends BaseStorageView {
87
107
  nextLoc() {
88
108
  return move(this.loc, this.type.nBits / 8);
89
109
  }
110
+ encode(value, state) {
111
+ return this.encodeIntAt(value, this.key, this.endOffsetInWord, this.type, state);
112
+ }
90
113
  }
91
114
  exports.IntStorageView = IntStorageView;
92
115
  class BoolStorageView extends BaseStorageView {
@@ -97,6 +120,9 @@ class BoolStorageView extends BaseStorageView {
97
120
  }
98
121
  return byte !== BigInt(0);
99
122
  }
123
+ encode(value, state) {
124
+ return this.encodeIntAt(value ? 1n : 0n, this.key, this.endOffsetInWord, utils_1.uint8, state);
125
+ }
100
126
  nextLoc() {
101
127
  return move(this.loc, 1);
102
128
  }
@@ -110,11 +136,43 @@ class AddressStorageView extends BaseStorageView {
110
136
  const bytes = this.fetchBytes(this.key, this.endOffsetInWord - 20, 20, state);
111
137
  return new util_1.Address(bytes);
112
138
  }
139
+ encode(value, state) {
140
+ if (this.endOffsetInWord < 20) {
141
+ throw new view_1.EncodingError(`Unalighed read: Can't decode ${this.type.pp()} starting at offset ${this.endOffsetInWord} in word ${this.key}`);
142
+ }
143
+ const word = this.fetchWord(this.key, state);
144
+ word.set(value.bytes, this.endOffsetInWord - 20);
145
+ return this.setWord(this.key, word, state);
146
+ }
113
147
  nextLoc() {
114
148
  return move(this.loc, 20);
115
149
  }
116
150
  }
117
151
  exports.AddressStorageView = AddressStorageView;
152
+ /**
153
+ * For consisntency with Memory views, add a SingleByteStorage view that returns a number
154
+ */
155
+ class SingleByteStorageView extends BaseStorageView {
156
+ constructor(loc) {
157
+ super(solc_typed_ast_1.types.byte, loc);
158
+ }
159
+ decode(state) {
160
+ if (this.endOffsetInWord < this.type.size) {
161
+ return new value_1.DecodingFailure(`Unalighed Read: Can't decode ${this.type.pp()} starting at offset ${this.endOffsetInWord} in word ${this.key}`);
162
+ }
163
+ const byte = this.fetchBytes(this.key, this.endOffsetInWord - this.type.size, this.type.size, state);
164
+ return Number(byte[0]);
165
+ }
166
+ encode(value, state) {
167
+ const word = this.fetchWord(this.key, state);
168
+ word[this.endOffsetInWord - this.type.size] = value;
169
+ return this.setWord(this.key, word, state);
170
+ }
171
+ nextLoc() {
172
+ return move(this.loc, this.type.size);
173
+ }
174
+ }
175
+ exports.SingleByteStorageView = SingleByteStorageView;
118
176
  class FixedBytesStorageView extends BaseStorageView {
119
177
  decode(state) {
120
178
  if (this.endOffsetInWord < this.type.size) {
@@ -122,6 +180,23 @@ class FixedBytesStorageView extends BaseStorageView {
122
180
  }
123
181
  return this.fetchBytes(this.key, this.endOffsetInWord - this.type.size, this.type.size, state);
124
182
  }
183
+ encode(value, state) {
184
+ if (this.endOffsetInWord < this.type.size) {
185
+ throw new view_1.EncodingError(`Unalighed read: Can't decode ${this.type.pp()} starting at offset ${this.endOffsetInWord} in word ${this.key}`);
186
+ }
187
+ const word = this.fetchWord(this.key, state);
188
+ word.set(value, this.endOffsetInWord - this.type.size);
189
+ return this.setWord(this.key, word, state);
190
+ }
191
+ indexView(key) {
192
+ if (key >= this.type.size || key < 0n) {
193
+ return new value_1.DecodingFailure(`Invalid index ${key} in ${this.type.pp()}`);
194
+ }
195
+ return new SingleByteStorageView([
196
+ this.key,
197
+ this.endOffsetInWord - this.type.size + Number(key) + 1
198
+ ]);
199
+ }
125
200
  nextLoc() {
126
201
  return move(this.loc, this.type.size);
127
202
  }
@@ -135,9 +210,15 @@ class PointerStorageView extends BaseStorageView {
135
210
  decode(state, mapKeys) {
136
211
  return this.innerView.decode(state, mapKeys);
137
212
  }
213
+ encode(value, state) {
214
+ return this.innerView.encode(value, state);
215
+ }
138
216
  nextLoc() {
139
217
  return this.innerView.nextLoc();
140
218
  }
219
+ toView() {
220
+ return this.innerView;
221
+ }
141
222
  }
142
223
  exports.PointerStorageView = PointerStorageView;
143
224
  function keccakOfAddr(addr) {
@@ -146,6 +227,30 @@ function keccakOfAddr(addr) {
146
227
  return (0, utils_1.bigEndianBufToBigint)(hashBuf);
147
228
  }
148
229
  class ArrayStorageView extends BaseStorageView {
230
+ /**
231
+ * Helper to compute how many words elements "take". This is not straightforward, as we may pack multiple
232
+ * elements per word, or one element may take multiple words. So we return two values - nEls nad nWords.
233
+ * I.e. we state that we can fit `nEls` elements in `nWords`, where this is the smalles "package" possible.
234
+ * @param elT
235
+ */
236
+ static computeElmentSize(elT) {
237
+ let tmpL = [0n, 32];
238
+ let nEls = 0n;
239
+ while (typeFitsInLoc(elT, tmpL) && tmpL[0] === 0n) {
240
+ nEls++;
241
+ const elView = makeStorageView(elT, tmpL);
242
+ tmpL = elView.nextLoc();
243
+ if (tmpL === undefined) {
244
+ break;
245
+ }
246
+ }
247
+ if (tmpL === undefined) {
248
+ return undefined;
249
+ }
250
+ // Number of words needed for nEls elements
251
+ const nWords = tmpL[0] + (tmpL[1] === 32 ? 0n : 1n);
252
+ return [nEls, nWords];
253
+ }
149
254
  constructor(type, loc) {
150
255
  super(type, loc);
151
256
  if (type.size === undefined) {
@@ -153,22 +258,12 @@ class ArrayStorageView extends BaseStorageView {
153
258
  }
154
259
  else {
155
260
  // Dirty way to compute how many elements fit in how many words
156
- let tmpL = [0n, 32];
157
- let nEls = 0n;
158
- while (typeFitsInLoc(type.elementT, tmpL) && tmpL[0] === 0n) {
159
- nEls++;
160
- const elView = makeStorageView(type.elementT, tmpL);
161
- tmpL = elView.nextLoc();
162
- if (tmpL === undefined) {
163
- break;
164
- }
165
- }
166
- if (tmpL === undefined) {
261
+ const elSizeDesc = ArrayStorageView.computeElmentSize(this.type.elementT);
262
+ if (elSizeDesc === undefined) {
167
263
  this._nextLoc = undefined;
168
264
  }
169
265
  else {
170
- // Number of words needed for nEls elementsgmai
171
- const nWords = tmpL[0] + (tmpL[1] === 32 ? 0n : 1n);
266
+ const [nEls, nWords] = elSizeDesc;
172
267
  // Number of groups of "nEls" needed to fit in size
173
268
  const nGroups = type.size / nEls + (type.size % nEls === 0n ? 0n : 1n);
174
269
  // Number of words for the entire fixed sized array.
@@ -186,7 +281,6 @@ class ArrayStorageView extends BaseStorageView {
186
281
  decode(state, mapKeys) {
187
282
  let sizeBigint;
188
283
  let contentsKey;
189
- const contentsOff = 32;
190
284
  if (this.type.size) {
191
285
  sizeBigint = this.type.size;
192
286
  contentsKey = this.key;
@@ -203,7 +297,7 @@ class ArrayStorageView extends BaseStorageView {
203
297
  }
204
298
  const size = Number(sizeBigint);
205
299
  const res = [];
206
- let elLoc = [contentsKey, contentsOff];
300
+ let elLoc = [contentsKey, 32];
207
301
  const elT = this.type.elementT;
208
302
  for (let i = 0; i < size; i++) {
209
303
  if (elLoc === undefined) {
@@ -217,6 +311,55 @@ class ArrayStorageView extends BaseStorageView {
217
311
  }
218
312
  return res;
219
313
  }
314
+ encode(value, state) {
315
+ let s = state;
316
+ if (this.type.size !== undefined && BigInt(value.length) !== this.type.size) {
317
+ throw new view_1.EncodingError(`Invalid length ${value.length} for encoding an array of type ${this.type.pp()}`);
318
+ }
319
+ const size = BigInt(value.length);
320
+ let baseKey = this.key;
321
+ if (this.type.size === undefined) {
322
+ s = this.encodeIntAt(size, this.key, this.endOffsetInWord, utils_1.uint256, s);
323
+ baseKey = keccakOfAddr(baseKey);
324
+ }
325
+ let elLoc = [baseKey, 32];
326
+ for (let i = 0; i < size; i++) {
327
+ const view = makeStorageView(this.type.elementT, elLoc);
328
+ s = view.encode(value[i], s);
329
+ elLoc = view.nextLoc();
330
+ (0, solc_typed_ast_1.assert)(elLoc !== undefined, `Internal error: elLoc shouldnt be undefined in ArrayStorageView.encode`);
331
+ }
332
+ return s.collapseUntil(state);
333
+ }
334
+ indexView(key, state) {
335
+ let size;
336
+ let addr;
337
+ if (this.type.size) {
338
+ size = this.type.size;
339
+ addr = this.key;
340
+ }
341
+ else {
342
+ size = this.decodeIntAt(this.key, this.endOffsetInWord, utils_1.uint256, state);
343
+ if ((0, utils_2.isFailure)(size)) {
344
+ return size;
345
+ }
346
+ addr = keccakOfAddr(this.key);
347
+ }
348
+ if (key >= size || key < 0n) {
349
+ return new value_1.DecodingFailure(`Invalid index ${key} in array of size ${size}`);
350
+ }
351
+ // @todo I should cache this
352
+ const elSizeDesc = ArrayStorageView.computeElmentSize(this.type.elementT);
353
+ if (elSizeDesc === undefined) {
354
+ return new value_1.DecodingFailure(`Couldnt determine element size`);
355
+ }
356
+ const [nEls, nWords] = elSizeDesc;
357
+ const word = addr + (key / nEls) * nWords;
358
+ const endOffsetInWord = typeStartsInNewWord(this.type.elementT)
359
+ ? 32
360
+ : 32 - Number(key % nEls) * staticSize(this.type.elementT);
361
+ return makeStorageView(this.type.elementT, [word, endOffsetInWord]);
362
+ }
220
363
  }
221
364
  exports.ArrayStorageView = ArrayStorageView;
222
365
  class StructStorageView extends BaseStorageView {
@@ -245,6 +388,24 @@ class StructStorageView extends BaseStorageView {
245
388
  ]);
246
389
  return new value_1.Struct(entries);
247
390
  }
391
+ encode(value, state) {
392
+ if (value.entries.length !== this.fieldViews.length) {
393
+ throw new view_1.EncodingError(`Mismatch in number of fields in encoding of ${value} to ${this.type.pp()}`);
394
+ }
395
+ let s = state;
396
+ for (let i = 0; i < value.entries.length; i++) {
397
+ s = this.fieldViews[i][1].encode(value.entries[i][1], s);
398
+ }
399
+ return s.collapseUntil(state);
400
+ }
401
+ fieldView(name) {
402
+ for (const [fieldName, fieldView] of this.fieldViews) {
403
+ if (name === fieldName) {
404
+ return fieldView;
405
+ }
406
+ }
407
+ return new value_1.DecodingFailure(`No field ${name} on type ${this.type.pp()}`);
408
+ }
248
409
  }
249
410
  exports.StructStorageView = StructStorageView;
250
411
  function decodeMapRefKey(type, data) {
@@ -253,6 +414,18 @@ function decodeMapRefKey(type, data) {
253
414
  }
254
415
  return type instanceof solc_typed_ast_1.StringType ? (0, util_1.bytesToUtf8)(data) : (0, utils_3.bytesToHex)(data);
255
416
  }
417
+ function encodeMapKey(keyT, value) {
418
+ if (keyT instanceof solc_typed_ast_1.PointerType) {
419
+ if (!(keyT.to instanceof solc_typed_ast_1.StringType || keyT.to instanceof solc_typed_ast_1.BytesType)) {
420
+ throw new Error(`Invalid map reference key type ${keyT.pp()}`);
421
+ }
422
+ return keyT.to instanceof solc_typed_ast_1.StringType ? (0, utils_3.utf8ToBytes)(value) : value;
423
+ }
424
+ const buf = new Uint8Array(32);
425
+ const keyV = (0, memory_1.makeMemoryView)(keyT, 0n);
426
+ keyV.encode(value, buf, undefined);
427
+ return buf;
428
+ }
256
429
  class MapStorageView extends BaseStorageView {
257
430
  constructor(type, loc) {
258
431
  super(type, loc);
@@ -290,12 +463,51 @@ class MapStorageView extends BaseStorageView {
290
463
  }
291
464
  return res;
292
465
  }
466
+ encode(value, state) {
467
+ // Encode the current slot in the buffer `slot`
468
+ const valueT = this.type.valueType;
469
+ const slotBuf = new Uint8Array(32);
470
+ const memView = new view_2.IntMemView(utils_1.uint256, 0n);
471
+ memView.encode(this.loc[0], slotBuf);
472
+ for (const [k, v] of value) {
473
+ // Compute the concatenation h(k) . p as per
474
+ // https://docs.soliditylang.org/en/latest/internals/layout_in_storage.html#mappings-and-dynamic-arrays
475
+ const keyBuf = encodeMapKey(this.type.keyType, k);
476
+ const combinedBuf = (0, util_1.concatBytes)(keyBuf, slotBuf);
477
+ const keySlot = (0, utils_1.bigEndianBufToBigint)((0, keccak_1.keccak256)(combinedBuf));
478
+ const valueView = makeStorageView(valueT, [keySlot, 32]);
479
+ state = valueView.encode(v, state);
480
+ }
481
+ return state;
482
+ }
483
+ indexView(key) {
484
+ const slotBuf = new Uint8Array(32);
485
+ const memView = new view_2.IntMemView(utils_1.uint256, 0n);
486
+ memView.encode(this.loc[0], slotBuf);
487
+ const keyBuf = encodeMapKey(this.type.keyType, key);
488
+ const combinedBuf = (0, util_1.concatBytes)(keyBuf, slotBuf);
489
+ const keySlot = (0, utils_1.bigEndianBufToBigint)((0, keccak_1.keccak256)(combinedBuf));
490
+ return makeStorageView(this.type.valueType, [keySlot, 32]);
491
+ }
293
492
  }
294
493
  exports.MapStorageView = MapStorageView;
295
494
  class PackedArrayStorageView extends BaseStorageView {
296
495
  nextLoc() {
297
496
  return nextWord(this.loc);
298
497
  }
498
+ getSize(state) {
499
+ const word = this.fetchWord(this.key, state);
500
+ const lByte = word[31];
501
+ if (lByte % 2 === 0) {
502
+ /// Less than 31 bytes - length * 2 stored in lowest byte
503
+ return BigInt(lByte / 2);
504
+ }
505
+ const len = this.decodeIntAt(this.key, this.endOffsetInWord, utils_1.uint256, state);
506
+ if ((0, utils_2.isFailure)(len)) {
507
+ return len;
508
+ }
509
+ return (len - 1n) / 2n;
510
+ }
299
511
  decodeBytes(state) {
300
512
  const word = this.fetchWord(this.key, state);
301
513
  const lByte = word[31];
@@ -317,12 +529,57 @@ class PackedArrayStorageView extends BaseStorageView {
317
529
  const addr = keccakOfAddr(this.key);
318
530
  return this.fetchBytes(addr, 0, numLen, state);
319
531
  }
532
+ encodeBytesAt(bytes, slot, state) {
533
+ if (bytes.length < 32) {
534
+ const w = this.fetchWord(slot, state);
535
+ w[31] = 2 * bytes.length;
536
+ w.set(bytes, 0);
537
+ return this.setWord(slot, w, state);
538
+ }
539
+ let s = this.encodeIntAt(BigInt(2 * bytes.length + 1), slot, 32, utils_1.uint256, state);
540
+ let addr = keccakOfAddr(this.key);
541
+ let srcOff = 0;
542
+ while (srcOff < bytes.length) {
543
+ const end = (0, utils_1.min)(srcOff + 32, bytes.length);
544
+ let w;
545
+ if (end - srcOff === 32) {
546
+ w = bytes.slice(srcOff, end);
547
+ }
548
+ else {
549
+ w = this.fetchWord(addr, s);
550
+ w.set(bytes.slice(srcOff, end));
551
+ }
552
+ s = this.setWord(addr, w, s);
553
+ addr++;
554
+ srcOff += 32;
555
+ }
556
+ return s.collapseUntil(state);
557
+ }
320
558
  }
321
559
  exports.PackedArrayStorageView = PackedArrayStorageView;
322
560
  class BytesStorageView extends PackedArrayStorageView {
323
561
  decode(state) {
324
562
  return this.decodeBytes(state);
325
563
  }
564
+ encode(value, state) {
565
+ return this.encodeBytesAt(value, this.key, state);
566
+ }
567
+ indexView(key, state) {
568
+ const size = this.getSize(state);
569
+ if ((0, utils_2.isFailure)(size)) {
570
+ return size;
571
+ }
572
+ if (key < 0n || key >= size) {
573
+ return new value_1.DecodingFailure(`Invalid index ${key} in bytes of size ${size}`);
574
+ }
575
+ if (size < 32) {
576
+ return new SingleByteStorageView([this.key, Number(key) + 1]);
577
+ }
578
+ const base = keccakOfAddr(this.key);
579
+ const word = base + key / 32n;
580
+ const endOffsetInWord = Number(key % 32n) + 1;
581
+ return new SingleByteStorageView([word, endOffsetInWord]);
582
+ }
326
583
  }
327
584
  exports.BytesStorageView = BytesStorageView;
328
585
  class StringStorageView extends PackedArrayStorageView {
@@ -333,6 +590,9 @@ class StringStorageView extends PackedArrayStorageView {
333
590
  }
334
591
  return (0, util_1.bytesToUtf8)(bytes);
335
592
  }
593
+ encode(value, state) {
594
+ return this.encodeBytesAt((0, solc_typed_ast_1.stringToBytes)(value), this.key, state);
595
+ }
336
596
  }
337
597
  exports.StringStorageView = StringStorageView;
338
598
  class MissingStorageView extends BaseStorageView {
@@ -348,6 +608,9 @@ class MissingStorageView extends BaseStorageView {
348
608
  decode() {
349
609
  return new value_1.DecodingFailure(`missing ${this.type.rawTypeName ? this.type.rawTypeName.type : "<unknown>"}`);
350
610
  }
611
+ encode() {
612
+ throw new view_1.EncodingError(`Cannot encode a missing value`);
613
+ }
351
614
  nextLoc() {
352
615
  if (this.type.rawTypeName === undefined) {
353
616
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../../src/debug/decoding/storage/view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../../src/debug/decoding/storage/view.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,11 @@
1
1
  import { TypeNode } from "solc-typed-ast";
2
2
  import { DecodingFailure, Value } from "./value";
3
- import { Memory, Stack } from "../types";
3
+ import { Memory, Stack, Storage } from "../types";
4
4
  export type StateArea = Memory | Stack | Storage;
5
+ export declare class EncodingError extends Error {
6
+ readonly reason: string;
7
+ constructor(reason: string);
8
+ }
5
9
  /**
6
10
  * Base class for all data {@link View}s. Views are parametrized by the {@link State} they project from (e.g. Memory, Storage, Calldata),
7
11
  * the Solidity {@link Type} of the element they are decoding as well as Typescript type of the {@link Value} they decode.
@@ -17,4 +21,13 @@ export declare abstract class View<State = StateArea, Val extends Value = Value,
17
21
  abstract decode(state: State): Val | DecodingFailure;
18
22
  abstract pp(): string;
19
23
  }
24
+ export interface IndexableView<IdxType extends Value, State extends StateArea, KeyViewT extends View<State>> {
25
+ indexView(key: IdxType, state: State): KeyViewT | DecodingFailure;
26
+ }
27
+ export interface StructView<State, FieldViewT extends View<State>> {
28
+ fieldView(name: string): FieldViewT | DecodingFailure;
29
+ }
30
+ export interface PointerView<State, ToViewT extends View<State>> {
31
+ toView(state: State): ToViewT | DecodingFailure;
32
+ }
20
33
  //# sourceMappingURL=view.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAEjD;;;GAGG;AACH,8BAAsB,IAAI,CACtB,KAAK,GAAG,SAAS,EACjB,GAAG,SAAS,KAAK,GAAG,KAAK,EACzB,GAAG,GAAG,GAAG,EACT,IAAI,SAAS,QAAQ,GAAG,QAAQ;aAGZ,IAAI,EAAE,IAAI;IAC1B,SAAS,CAAC,GAAG,EAAE,GAAG;gBADF,IAAI,EAAE,IAAI,EAChB,GAAG,EAAE,GAAG;IAGtB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,GAAG,eAAe;IACpD,QAAQ,CAAC,EAAE,IAAI,MAAM;CAExB"}
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAElD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAEjD,qBAAa,aAAc,SAAQ,KAAK;aACR,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;CAG7C;AAED;;;GAGG;AACH,8BAAsB,IAAI,CACtB,KAAK,GAAG,SAAS,EACjB,GAAG,SAAS,KAAK,GAAG,KAAK,EACzB,GAAG,GAAG,GAAG,EACT,IAAI,SAAS,QAAQ,GAAG,QAAQ;aAGZ,IAAI,EAAE,IAAI;IAC1B,SAAS,CAAC,GAAG,EAAE,GAAG;gBADF,IAAI,EAAE,IAAI,EAChB,GAAG,EAAE,GAAG;IAGtB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,GAAG,eAAe;IACpD,QAAQ,CAAC,EAAE,IAAI,MAAM;CACxB;AAED,MAAM,WAAW,aAAa,CAC1B,OAAO,SAAS,KAAK,EACrB,KAAK,SAAS,SAAS,EACvB,QAAQ,SAAS,IAAI,CAAC,KAAK,CAAC;IAE5B,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,eAAe,CAAC;CACrE;AAED,MAAM,WAAW,UAAU,CAAC,KAAK,EAAE,UAAU,SAAS,IAAI,CAAC,KAAK,CAAC;IAC7D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,eAAe,CAAC;CACzD;AAED,MAAM,WAAW,WAAW,CAAC,KAAK,EAAE,OAAO,SAAS,IAAI,CAAC,KAAK,CAAC;IAC3D,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,eAAe,CAAC;CACnD"}
@@ -1,6 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.View = void 0;
3
+ exports.View = exports.EncodingError = void 0;
4
+ class EncodingError extends Error {
5
+ constructor(reason) {
6
+ super();
7
+ this.reason = reason;
8
+ }
9
+ }
10
+ exports.EncodingError = EncodingError;
4
11
  /**
5
12
  * Base class for all data {@link View}s. Views are parametrized by the {@link State} they project from (e.g. Memory, Storage, Calldata),
6
13
  * the Solidity {@link Type} of the element they are decoding as well as Typescript type of the {@link Value} they decode.
@@ -1 +1 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/debug/decoding/view.ts"],"names":[],"mappings":";;;AAMA;;;GAGG;AACH,MAAsB,IAAI;IAMtB,YACoB,IAAU,EAChB,GAAQ;QADF,SAAI,GAAJ,IAAI,CAAM;QAChB,QAAG,GAAH,GAAG,CAAK;IACnB,CAAC;CASP;AAlBD,oBAkBC"}
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/debug/decoding/view.ts"],"names":[],"mappings":";;;AAMA,MAAa,aAAc,SAAQ,KAAK;IACpC,YAA4B,MAAc;QACtC,KAAK,EAAE,CAAC;QADgB,WAAM,GAAN,MAAM,CAAQ;IAE1C,CAAC;CACJ;AAJD,sCAIC;AAED;;;GAGG;AACH,MAAsB,IAAI;IAMtB,YACoB,IAAU,EAChB,GAAQ;QADF,SAAI,GAAJ,IAAI,CAAM;QAChB,QAAG,GAAH,GAAG,CAAK;IACnB,CAAC;CAQP;AAjBD,oBAiBC"}
@@ -11,21 +11,21 @@ type RunState = any;
11
11
  export declare const foundryCtxMap: Map<EVM, FoundryContext>;
12
12
  export declare function getFoundryCtx(evm: EVMInterface): FoundryContext | undefined;
13
13
  export declare const FoundryCheatcodesAddress: Address;
14
- export declare const WARP_SELECTOR: Uint8Array;
15
- export declare const ROLL_SELECTOR: Uint8Array;
16
- export declare const LOAD_SELECTOR: Uint8Array;
17
- export declare const STORE_SELECTOR: Uint8Array;
18
- export declare const SIGN_SELECTOR: Uint8Array;
19
- export declare const ADDR_SELECTOR: Uint8Array;
20
- export declare const DEAL_SELECTOR: Uint8Array;
21
- export declare const PRANK_SELECTOR01: Uint8Array;
22
- export declare const PRANK_SELECTOR02: Uint8Array;
23
- export declare const START_PRANK_SELECTOR01: Uint8Array;
24
- export declare const START_PRANK_SELECTOR02: Uint8Array;
25
- export declare const STOP_PRANK_SELECTOR: Uint8Array;
26
- export declare const EXPECT_REVERT_SELECTOR01: Uint8Array;
27
- export declare const EXPECT_REVERT_SELECTOR02: Uint8Array;
28
- export declare const EXPECT_REVERT_SELECTOR03: Uint8Array;
14
+ export declare const WARP_SELECTOR: Uint8Array<ArrayBufferLike>;
15
+ export declare const ROLL_SELECTOR: Uint8Array<ArrayBufferLike>;
16
+ export declare const LOAD_SELECTOR: Uint8Array<ArrayBufferLike>;
17
+ export declare const STORE_SELECTOR: Uint8Array<ArrayBufferLike>;
18
+ export declare const SIGN_SELECTOR: Uint8Array<ArrayBufferLike>;
19
+ export declare const ADDR_SELECTOR: Uint8Array<ArrayBufferLike>;
20
+ export declare const DEAL_SELECTOR: Uint8Array<ArrayBufferLike>;
21
+ export declare const PRANK_SELECTOR01: Uint8Array<ArrayBufferLike>;
22
+ export declare const PRANK_SELECTOR02: Uint8Array<ArrayBufferLike>;
23
+ export declare const START_PRANK_SELECTOR01: Uint8Array<ArrayBufferLike>;
24
+ export declare const START_PRANK_SELECTOR02: Uint8Array<ArrayBufferLike>;
25
+ export declare const STOP_PRANK_SELECTOR: Uint8Array<ArrayBufferLike>;
26
+ export declare const EXPECT_REVERT_SELECTOR01: Uint8Array<ArrayBufferLike>;
27
+ export declare const EXPECT_REVERT_SELECTOR02: Uint8Array<ArrayBufferLike>;
28
+ export declare const EXPECT_REVERT_SELECTOR03: Uint8Array<ArrayBufferLike>;
29
29
  export declare const FAIL_LOC: string;
30
30
  export declare const FAIL_MSG_DATA: string;
31
31
  interface PrankCallFrame extends Message {
@@ -1 +1 @@
1
- {"version":3,"file":"foundry_cheatcodes.d.ts","sourceRoot":"","sources":["../../src/debug/foundry_cheatcodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"foundry_cheatcodes.d.ts","sourceRoot":"","sources":["../../src/debug/foundry_cheatcodes.ts"],"names":[],"mappings":"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"}