sol-dbg 0.2.3 → 0.3.1

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.
@@ -1,8 +1,9 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import { EVMInterface, EVM } from "@ethereumjs/evm";
3
4
  import { PrecompileFunc } from "@ethereumjs/evm/dist/precompiles";
4
5
  import { Address } from "ethereumjs-util";
5
- import { Env, Interpreter } from "@ethereumjs/evm/dist/interpreter";
6
+ import { Env, Interpreter, RunState } from "@ethereumjs/evm/dist/interpreter";
6
7
  import EventEmitter from "events";
7
8
  /**
8
9
  * Each test/cases/debug session is associated with a unique VM. And there are
@@ -24,6 +25,9 @@ export declare const PRANK_SELECTOR02: string;
24
25
  export declare const START_PRANK_SELECTOR01: string;
25
26
  export declare const START_PRANK_SELECTOR02: string;
26
27
  export declare const STOP_PRANK_SELECTOR: string;
28
+ export declare const EXPECT_REVERT_SELECTOR01: string;
29
+ export declare const EXPECT_REVERT_SELECTOR02: string;
30
+ export declare const EXPECT_REVERT_SELECTOR03: string;
27
31
  export declare const FAIL_LOC: string;
28
32
  export declare const FAIL_MSG_DATA: string;
29
33
  export interface FoundryPrank {
@@ -31,6 +35,19 @@ export interface FoundryPrank {
31
35
  origin: Address | undefined;
32
36
  once: boolean;
33
37
  }
38
+ /**
39
+ * A type union containing the different descriptions for "expectRevert". It could be either
40
+ * - boolean (true) - any revert
41
+ * - bigint (bytes4) - corresponds to the selector of the expected event
42
+ * - Buffer (bytes) - corresponds to the exact exception byte we expect
43
+ * - undefined - no expected revert (default value)
44
+ */
45
+ export type RevertMatch = Buffer | bigint | boolean | undefined;
46
+ /**
47
+ * Check whether the returned value and data from the sub-context matches the
48
+ * expected revert descriptor.
49
+ */
50
+ export declare function returnStateMatchesRevert(ret: bigint, state: RunState, expected: RevertMatch): boolean;
34
51
  /**
35
52
  * Helper class attached to each VM object, that contains state relevant to Foundry cheatcodes.
36
53
  */
@@ -38,6 +55,9 @@ export declare class FoundryContext {
38
55
  timeWarp: bigint | undefined;
39
56
  rollBockNum: bigint | undefined;
40
57
  failCalled: boolean;
58
+ clearExpectRevert(): void;
59
+ expectRevert(match: RevertMatch): void;
60
+ getExpectedRevert(): RevertMatch;
41
61
  /**
42
62
  * We keep track of the current stack of EEI objects, in order to keep track
43
63
  * of any pranks (pending and current). Its easier to attach pranks to EEI
@@ -1 +1 @@
1
- {"version":3,"file":"foundry_cheatcodes.d.ts","sourceRoot":"","sources":["../../src/debug/foundry_cheatcodes.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAc,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAmB,MAAM,kCAAkC,CAAC;AACnF,OAAO,EACH,OAAO,EAKV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,GAAG,EACH,WAAW,EAGd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,YAAY,MAAM,QAAQ,CAAC;AASlC;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,wBAA+B,CAAC;AAwB/D,eAAO,MAAM,wBAAwB,SAEpC,CAAC;AAUF,eAAO,MAAM,aAAa,QAAkC,CAAC;AAC7D,eAAO,MAAM,aAAa,QAAkC,CAAC;AAC7D,eAAO,MAAM,aAAa,QAA0C,CAAC;AACrE,eAAO,MAAM,cAAc,QAAmD,CAAC;AAC/E,eAAO,MAAM,aAAa,QAA0C,CAAC;AACrE,eAAO,MAAM,aAAa,QAAkC,CAAC;AAC7D,eAAO,MAAM,aAAa,QAA0C,CAAC;AACrE,eAAO,MAAM,gBAAgB,QAAmC,CAAC;AACjE,eAAO,MAAM,gBAAgB,QAA2C,CAAC;AACzE,eAAO,MAAM,sBAAsB,QAAwC,CAAC;AAC5E,eAAO,MAAM,sBAAsB,QAAgD,CAAC;AACpF,eAAO,MAAM,mBAAmB,QAAgC,CAAC;AAEjE,eAAO,MAAM,QAAQ,QAAqE,CAAC;AAE3F,eAAO,MAAM,aAAa,QAKR,CAAC;AAEnB,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,IAAI,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,cAAc;IAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAa;IACzC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAa;IAC5C,UAAU,UAAS;IAE1B;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAa;IAGtB,MAAM,IAAI,GAAG;IAKb,eAAe,IAAI,YAAY,GAAG,SAAS;IAS3C,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IAQ7D;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACI,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAOpD;;OAEG;IACI,WAAW,IAAI,IAAI;IAO1B;;;;OAIG;IACI,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,OAAO,GAAG,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IA6B/E;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAe5C;;;OAGG;IACH,gBAAgB,IAAI,IAAI;CAG3B;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,cAAc,CAE/D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAE1E;AAED,wBAAgB,8BAA8B,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAoOjF"}
1
+ {"version":3,"file":"foundry_cheatcodes.d.ts","sourceRoot":"","sources":["../../src/debug/foundry_cheatcodes.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeFoundryCheatcodePrecompile = exports.setFoundryCtx = exports.getFoundryCtx = exports.FoundryContext = exports.FAIL_MSG_DATA = exports.FAIL_LOC = exports.STOP_PRANK_SELECTOR = exports.START_PRANK_SELECTOR02 = exports.START_PRANK_SELECTOR01 = exports.PRANK_SELECTOR02 = exports.PRANK_SELECTOR01 = exports.DEAL_SELECTOR = exports.ADDR_SELECTOR = exports.SIGN_SELECTOR = exports.STORE_SELECTOR = exports.LOAD_SELECTOR = exports.ROLL_SELECTOR = exports.WARP_SELECTOR = exports.FoundryCheatcodesAddress = exports.interpRunListeners = void 0;
3
+ exports.makeFoundryCheatcodePrecompile = exports.setFoundryCtx = exports.getFoundryCtx = exports.FoundryContext = exports.returnStateMatchesRevert = exports.FAIL_MSG_DATA = exports.FAIL_LOC = exports.EXPECT_REVERT_SELECTOR03 = exports.EXPECT_REVERT_SELECTOR02 = exports.EXPECT_REVERT_SELECTOR01 = exports.STOP_PRANK_SELECTOR = exports.START_PRANK_SELECTOR02 = exports.START_PRANK_SELECTOR01 = exports.PRANK_SELECTOR02 = exports.PRANK_SELECTOR01 = exports.DEAL_SELECTOR = exports.ADDR_SELECTOR = exports.SIGN_SELECTOR = exports.STORE_SELECTOR = exports.LOAD_SELECTOR = exports.ROLL_SELECTOR = exports.WARP_SELECTOR = exports.FoundryCheatcodesAddress = exports.interpRunListeners = void 0;
4
4
  const evm_1 = require("@ethereumjs/evm/dist/evm");
5
5
  const ethereumjs_util_1 = require("ethereumjs-util");
6
6
  const utils_1 = require("../utils");
@@ -52,6 +52,9 @@ exports.PRANK_SELECTOR02 = getSelectorHex("prank(address,address)");
52
52
  exports.START_PRANK_SELECTOR01 = getSelectorHex("startPrank(address)");
53
53
  exports.START_PRANK_SELECTOR02 = getSelectorHex("startPrank(address,address)");
54
54
  exports.STOP_PRANK_SELECTOR = getSelectorHex("stopPrank()");
55
+ exports.EXPECT_REVERT_SELECTOR01 = getSelectorHex("expectRevert()");
56
+ exports.EXPECT_REVERT_SELECTOR02 = getSelectorHex("expectRevert(bytes4)");
57
+ exports.EXPECT_REVERT_SELECTOR03 = getSelectorHex("expectRevert(bytes)");
55
58
  exports.FAIL_LOC = (0, ethereumjs_util_1.setLengthRight)(Buffer.from("failed", "utf-8"), 32).toString("hex");
56
59
  exports.FAIL_MSG_DATA = Buffer.concat([
57
60
  getSelector("store(address,bytes32,bytes32)"),
@@ -59,6 +62,34 @@ exports.FAIL_MSG_DATA = Buffer.concat([
59
62
  (0, ethereumjs_util_1.setLengthRight)(Buffer.from("failed", "utf-8"), 32),
60
63
  (0, ethereumjs_util_1.setLengthLeft)(Buffer.from([1]), 32)
61
64
  ]).toString("hex");
65
+ /**
66
+ * Check whether the returned value and data from the sub-context matches the
67
+ * expected revert descriptor.
68
+ */
69
+ function returnStateMatchesRevert(ret, state, expected) {
70
+ // No revert expected. Doesn't matter what happen
71
+ if (expected === undefined) {
72
+ return true;
73
+ }
74
+ // Any revert was expected. Just check that the return value is 0.
75
+ if (typeof expected === "boolean") {
76
+ return expected === (ret === 0n);
77
+ }
78
+ const excDataSize = state.interpreter.getReturnDataSize();
79
+ const excData = state.interpreter.getReturnData();
80
+ // A specific selector is expected
81
+ if (typeof expected === "bigint") {
82
+ // Not enough data for selector
83
+ if (excDataSize < 4n || excData.length < 4) {
84
+ return false;
85
+ }
86
+ const actualSelector = (0, utils_1.bigEndianBufToBigint)(excData.slice(0, 4));
87
+ return expected === actualSelector;
88
+ }
89
+ // Specific exception bytes are expected
90
+ return excData.equals(expected);
91
+ }
92
+ exports.returnStateMatchesRevert = returnStateMatchesRevert;
62
93
  /**
63
94
  * Helper class attached to each VM object, that contains state relevant to Foundry cheatcodes.
64
95
  */
@@ -75,6 +106,21 @@ class FoundryContext {
75
106
  */
76
107
  this.envStack = [];
77
108
  }
109
+ clearExpectRevert() {
110
+ this.expectRevert(undefined);
111
+ }
112
+ expectRevert(match) {
113
+ if (this.envStack.length === 0) {
114
+ return undefined;
115
+ }
116
+ this.getEnv().expectedRevertDesc = match;
117
+ }
118
+ getExpectedRevert() {
119
+ if (this.envStack.length === 0) {
120
+ return undefined;
121
+ }
122
+ return this.getEnv().expectedRevertDesc;
123
+ }
78
124
  // Get the current (topmost) EEI object
79
125
  getEnv() {
80
126
  return this.envStack[this.envStack.length - 1];
@@ -351,6 +397,41 @@ function makeFoundryCheatcodePrecompile() {
351
397
  returnValue: Buffer.from("", "hex")
352
398
  };
353
399
  }
400
+ if (selector === exports.EXPECT_REVERT_SELECTOR01) {
401
+ //console.error(`vm.expectRevert();`);
402
+ ctx.expectRevert(true);
403
+ return {
404
+ executionGasUsed: 0n,
405
+ returnValue: Buffer.from("", "hex")
406
+ };
407
+ }
408
+ if (selector === exports.EXPECT_REVERT_SELECTOR02) {
409
+ //console.error(`vm.expectRevert(bytes4);`);
410
+ if (input.data.length < 8) {
411
+ return (0, evm_1.EvmErrorResult)(new exceptions_1.EvmError(exceptions_1.ERROR.REVERT), 0n);
412
+ }
413
+ const selector = input.data.slice(4, 8);
414
+ ctx.expectRevert((0, utils_1.bigEndianBufToBigint)(selector));
415
+ return {
416
+ executionGasUsed: 0n,
417
+ returnValue: Buffer.from("", "hex")
418
+ };
419
+ }
420
+ if (selector === exports.EXPECT_REVERT_SELECTOR03) {
421
+ if (input.data.length < 68) {
422
+ return (0, evm_1.EvmErrorResult)(new exceptions_1.EvmError(exceptions_1.ERROR.REVERT), 0n);
423
+ }
424
+ const len = Number((0, utils_1.bigEndianBufToBigint)(input.data.slice(36, 68)));
425
+ if (input.data.length < 68 + len) {
426
+ return (0, evm_1.EvmErrorResult)(new exceptions_1.EvmError(exceptions_1.ERROR.REVERT), 0n);
427
+ }
428
+ const bytes = input.data.slice(68, 68 + len);
429
+ ctx.expectRevert(bytes);
430
+ return {
431
+ executionGasUsed: 0n,
432
+ returnValue: Buffer.from("", "hex")
433
+ };
434
+ }
354
435
  return {
355
436
  executionGasUsed: 0n,
356
437
  returnValue: Buffer.from("", "hex")
@@ -1 +1 @@
1
- {"version":3,"file":"foundry_cheatcodes.js","sourceRoot":"","sources":["../../src/debug/foundry_cheatcodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"foundry_cheatcodes.js","sourceRoot":"","sources":["../../src/debug/foundry_cheatcodes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"opcode_interposing.d.ts","sourceRoot":"","sources":["../../src/debug/opcode_interposing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAoBtD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,cAAc,GAAG,SAAS,EAAE,CA0D1F"}
1
+ {"version":3,"file":"opcode_interposing.d.ts","sourceRoot":"","sources":["../../src/debug/opcode_interposing.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAEH,cAAc,EAGjB,MAAM,sBAAsB,CAAC;AAqB9B,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,cAAc,GAAG,SAAS,EAAE,CA4P1F"}
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.foundryInterposedOps = void 0;
4
+ const opcodes_1 = require("@ethereumjs/evm/dist/opcodes");
5
+ const util_1 = require("@ethereumjs/util");
6
+ const foundry_cheatcodes_1 = require("./foundry_cheatcodes");
4
7
  const ethereumjs_util_1 = require("ethereumjs-util");
5
8
  const utils_1 = require("../utils");
9
+ const exceptions_1 = require("@ethereumjs/evm/dist/exceptions");
6
10
  function interopseOnOp(code, opcodes, handler) {
7
11
  const originalOp = opcodes.opcodes.get(code);
8
12
  const gasFunction = originalOp.dynamicGas ? opcodes.dynamicGasHandlers.get(code) : undefined;
@@ -54,6 +58,154 @@ function foundryInterposedOps(opcodes, foundryCtx) {
54
58
  : runState.interpreter.getCaller();
55
59
  runState.stack.push(caller);
56
60
  }
61
+ ],
62
+ // 0xf0: CREATE
63
+ [
64
+ 0xf0,
65
+ async function (runState, common) {
66
+ // If we're calling vm.* ignore the expectedRevert
67
+ const expectedRevert = getExpectedRevert(foundryCtx);
68
+ const [value, offset, length] = runState.stack.popN(3);
69
+ if (common.isActivatedEIP(3860) &&
70
+ length > Number(common.param("vm", "maxInitCodeSize")) &&
71
+ !runState.interpreter._evm._allowUnlimitedInitCodeSize) {
72
+ (0, opcodes_1.trap)(exceptions_1.ERROR.INITCODE_SIZE_VIOLATION);
73
+ }
74
+ const gasLimit = runState.messageGasLimit;
75
+ runState.messageGasLimit = undefined;
76
+ let data = Buffer.alloc(0);
77
+ if (length !== BigInt(0)) {
78
+ data = runState.memory.read(Number(offset), Number(length), true);
79
+ }
80
+ const ret = await runState.interpreter.create(gasLimit, value, data);
81
+ handleCreateReturn(runState, ret, expectedRevert);
82
+ }
83
+ ],
84
+ // 0xf5: CREATE2
85
+ [
86
+ 0xf5,
87
+ async function (runState, common) {
88
+ const expectedRevert = foundryCtx.getExpectedRevert();
89
+ if (runState.interpreter.isStatic()) {
90
+ (0, opcodes_1.trap)(exceptions_1.ERROR.STATIC_STATE_CHANGE);
91
+ }
92
+ const [value, offset, length, salt] = runState.stack.popN(4);
93
+ if (common.isActivatedEIP(3860) &&
94
+ length > Number(common.param("vm", "maxInitCodeSize")) &&
95
+ !runState.interpreter._evm._allowUnlimitedInitCodeSize) {
96
+ (0, opcodes_1.trap)(exceptions_1.ERROR.INITCODE_SIZE_VIOLATION);
97
+ }
98
+ const gasLimit = runState.messageGasLimit;
99
+ runState.messageGasLimit = undefined;
100
+ let data = Buffer.alloc(0);
101
+ if (length !== BigInt(0)) {
102
+ data = runState.memory.read(Number(offset), Number(length), true);
103
+ }
104
+ const ret = await runState.interpreter.create2(gasLimit, value, data, (0, ethereumjs_util_1.setLengthLeft)((0, util_1.bigIntToBuffer)(salt), 32));
105
+ handleCreateReturn(runState, ret, expectedRevert);
106
+ }
107
+ ],
108
+ // 0xf1: CALL
109
+ [
110
+ 0xf1,
111
+ async function (runState) {
112
+ const [_currentGasLimit, toAddr, value, inOffset, inLength, outOffset, outLength] = runState.stack.popN(7);
113
+ const toAddress = new ethereumjs_util_1.Address((0, opcodes_1.addressToBuffer)(toAddr));
114
+ const expectedRevert = getExpectedRevert(foundryCtx, toAddress);
115
+ let data = Buffer.alloc(0);
116
+ if (inLength !== BigInt(0)) {
117
+ data = runState.memory.read(Number(inOffset), Number(inLength), true);
118
+ }
119
+ const gasLimit = runState.messageGasLimit;
120
+ runState.messageGasLimit = undefined;
121
+ const ret = await runState.interpreter.call(gasLimit, toAddress, value, data);
122
+ handleReturn(runState, ret, outOffset, outLength, expectedRevert);
123
+ }
124
+ ],
125
+ // 0x00: STOP
126
+ [
127
+ 0x00,
128
+ function (runState) {
129
+ const expectedRevert = getExpectedRevert(foundryCtx);
130
+ if (expectedRevert === undefined) {
131
+ (0, opcodes_1.trap)(exceptions_1.ERROR.STOP);
132
+ }
133
+ else {
134
+ runState.interpreter.revert(Buffer.alloc(0));
135
+ }
136
+ }
137
+ ],
138
+ // 0xf2: CALLCODE
139
+ [
140
+ 0xf2,
141
+ async function (runState) {
142
+ const [_currentGasLimit, toAddr, value, inOffset, inLength, outOffset, outLength] = runState.stack.popN(7);
143
+ const toAddress = new ethereumjs_util_1.Address((0, opcodes_1.addressToBuffer)(toAddr));
144
+ const expectedRevert = getExpectedRevert(foundryCtx, toAddress);
145
+ const gasLimit = runState.messageGasLimit;
146
+ runState.messageGasLimit = undefined;
147
+ let data = Buffer.alloc(0);
148
+ if (inLength !== BigInt(0)) {
149
+ data = runState.memory.read(Number(inOffset), Number(inLength), true);
150
+ }
151
+ const ret = await runState.interpreter.callCode(gasLimit, toAddress, value, data);
152
+ handleReturn(runState, ret, outOffset, outLength, expectedRevert);
153
+ }
154
+ ],
155
+ // 0xf4: DELEGATECALL
156
+ [
157
+ 0xf4,
158
+ async function (runState) {
159
+ const value = runState.interpreter.getCallValue();
160
+ const [_currentGasLimit, toAddr, inOffset, inLength, outOffset, outLength] = runState.stack.popN(6);
161
+ const toAddress = new ethereumjs_util_1.Address((0, opcodes_1.addressToBuffer)(toAddr));
162
+ const expectedRevert = getExpectedRevert(foundryCtx, toAddress);
163
+ let data = Buffer.alloc(0);
164
+ if (inLength !== BigInt(0)) {
165
+ data = runState.memory.read(Number(inOffset), Number(inLength), true);
166
+ }
167
+ const gasLimit = runState.messageGasLimit;
168
+ runState.messageGasLimit = undefined;
169
+ const ret = await runState.interpreter.callDelegate(gasLimit, toAddress, value, data);
170
+ handleReturn(runState, ret, outOffset, outLength, expectedRevert);
171
+ }
172
+ ],
173
+ // 0xfa: STATICCALL
174
+ [
175
+ 0xfa,
176
+ async function (runState) {
177
+ const value = BigInt(0);
178
+ const [_currentGasLimit, toAddr, inOffset, inLength, outOffset, outLength] = runState.stack.popN(6);
179
+ const toAddress = new ethereumjs_util_1.Address((0, opcodes_1.addressToBuffer)(toAddr));
180
+ const expectedRevert = getExpectedRevert(foundryCtx, toAddress);
181
+ const gasLimit = runState.messageGasLimit;
182
+ runState.messageGasLimit = undefined;
183
+ let data = Buffer.alloc(0);
184
+ if (inLength !== BigInt(0)) {
185
+ data = runState.memory.read(Number(inOffset), Number(inLength), true);
186
+ }
187
+ const ret = await runState.interpreter.callStatic(gasLimit, toAddress, value, data);
188
+ handleReturn(runState, ret, outOffset, outLength, expectedRevert);
189
+ }
190
+ ],
191
+ // 0xf3: RETURN
192
+ [
193
+ 0xf3,
194
+ function (runState) {
195
+ const [offset, length] = runState.stack.popN(2);
196
+ let returnData = Buffer.alloc(0);
197
+ // If we're calling vm.* ignore the expectedRevert
198
+ const expectedRevert = getExpectedRevert(foundryCtx);
199
+ if (expectedRevert === undefined) {
200
+ if (length !== BigInt(0)) {
201
+ returnData = runState.memory.read(Number(offset), Number(length));
202
+ }
203
+ runState.interpreter.finish(returnData);
204
+ }
205
+ else {
206
+ runState.interpreter.revert(returnData);
207
+ }
208
+ }
57
209
  ]
58
210
  ]);
59
211
  for (const [code, handler] of foundryOpInterposing) {
@@ -62,4 +214,47 @@ function foundryInterposedOps(opcodes, foundryCtx) {
62
214
  return res;
63
215
  }
64
216
  exports.foundryInterposedOps = foundryInterposedOps;
217
+ function getExpectedRevert(ctx, toAddress) {
218
+ const expectedRevert = toAddress && toAddress.equals(foundry_cheatcodes_1.FoundryCheatcodesAddress)
219
+ ? undefined
220
+ : ctx.getExpectedRevert();
221
+ if (expectedRevert) {
222
+ // We expected a revert - clear it
223
+ ctx.clearExpectRevert();
224
+ }
225
+ return expectedRevert;
226
+ }
227
+ function handleReturn(runState, ret, outOffset, outLength, expectedRevert) {
228
+ if (expectedRevert === undefined) {
229
+ // Nothing to do - no expected revert
230
+ }
231
+ else if (!(0, foundry_cheatcodes_1.returnStateMatchesRevert)(ret, runState, expectedRevert)) {
232
+ // If return doesn't match expected revert (no revert, or different bytes/signature) throw an error
233
+ ret = 0n;
234
+ }
235
+ else {
236
+ // Otherwise we match the expected revert, so return all 0s
237
+ runState.returnBuffer = Buffer.alloc(Number(outLength), 0);
238
+ ret = 1n;
239
+ }
240
+ (0, opcodes_1.writeCallOutput)(runState, outOffset, outLength);
241
+ runState.stack.push(ret);
242
+ if (outLength === 0n) {
243
+ runState.returnBuffer = Buffer.alloc(32 * 128, 0);
244
+ }
245
+ }
246
+ function handleCreateReturn(runState, ret, expectedRevert) {
247
+ if (expectedRevert === undefined) {
248
+ // Nothing to do - no expected revert
249
+ }
250
+ else if (!(0, foundry_cheatcodes_1.returnStateMatchesRevert)(ret, runState, expectedRevert)) {
251
+ // If return doesn't match expected revert (no revert, or different bytes/signature) throw an error
252
+ ret = 0n;
253
+ }
254
+ else {
255
+ // Otherwise we match the expected revert, so return all 1s
256
+ ret = 1n;
257
+ }
258
+ runState.stack.push(ret);
259
+ }
65
260
  //# sourceMappingURL=opcode_interposing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"opcode_interposing.js","sourceRoot":"","sources":["../../src/debug/opcode_interposing.ts"],"names":[],"mappings":";;;AAKA,qDAA0C;AAE1C,oCAAgD;AAEhD,SAAS,aAAa,CAAC,IAAY,EAAE,OAAY,EAAE,OAAkB;IACjE,MAAM,UAAU,GAAW,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,WAAW,GACb,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7E,OAAO;QACH,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,UAAU,CAAC,IAAI;QAC3B,OAAO,EAAE,UAAU,CAAC,GAAG;QACvB,WAAW,EAAE,WAAW;QACxB,aAAa,EAAE,OAAO;KACzB,CAAC;AACN,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAY,EAAE,UAA0B;IACzE,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAoB;QACpD;YACI,IAAI;YACJ,CAAC,QAAkB,EAAE,MAAc,EAAQ,EAAE;gBACzC,MAAM,IAAI,GACN,UAAU,CAAC,QAAQ,KAAK,SAAS;oBAC7B,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,EAAE;oBAC1C,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAE9B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;SACJ;QACD;YACI,IAAI;YACJ,CAAC,QAAkB,EAAE,MAAc,EAAQ,EAAE;gBACzC,MAAM,MAAM,GACR,UAAU,CAAC,WAAW,KAAK,SAAS;oBAChC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE;oBACvC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;gBAEjC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;SACJ;QACD;YACI,IAAI;YACJ,CAAC,QAAkB,EAAE,MAAc,EAAQ,EAAE;gBACzC,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAEpD,MAAM,MAAM,GACR,WAAW,YAAY,yBAAO;oBAC1B,CAAC,CAAC,IAAA,4BAAoB,EAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;oBAC9C,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;gBAE7C,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;SACJ;QACD;YACI,IAAI;YACJ,CAAC,QAAkB,EAAE,MAAc,EAAQ,EAAE;gBACzC,MAAM,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAEnD,MAAM,MAAM,GACR,WAAW,YAAY,yBAAO;oBAC1B,CAAC,CAAC,IAAA,4BAAoB,EAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;oBAC9C,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;gBAE3C,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;SACJ;KACJ,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,oBAAoB,EAAE;QAChD,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;KACnD;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AA1DD,oDA0DC"}
1
+ {"version":3,"file":"opcode_interposing.js","sourceRoot":"","sources":["../../src/debug/opcode_interposing.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@ export * from "./misc";
2
2
  export * from "./srcmap";
3
3
  export * from "./immutable_map";
4
4
  export * from "./test_runner";
5
+ export * from "./pp";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,MAAM,CAAC"}
@@ -18,4 +18,5 @@ __exportStar(require("./misc"), exports);
18
18
  __exportStar(require("./srcmap"), exports);
19
19
  __exportStar(require("./immutable_map"), exports);
20
20
  __exportStar(require("./test_runner"), exports);
21
+ __exportStar(require("./pp"), exports);
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,2CAAyB;AACzB,kDAAgC;AAChC,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,2CAAyB;AACzB,kDAAgC;AAChC,gDAA8B;AAC9B,uCAAqB"}
@@ -0,0 +1,6 @@
1
+ import { ArtifactManager, DbgStack, ExternalFrame, SolTxDebugger, StepState } from "../debug";
2
+ export declare function ppStackTrace(solDbg: SolTxDebugger, trace: StepState[], stack: DbgStack, curOffset: number): string;
3
+ export declare function printStepSourceString(step: StepState, lastExtStep: ExternalFrame, sources: Map<string, string>, artifactManager: ArtifactManager, prefix: string | undefined): string | undefined;
4
+ export declare function debugDumpTrace(trace: StepState[], artifactManager: ArtifactManager, prefix?: string): void;
5
+ export declare function ppStep(step: StepState): string;
6
+ //# sourceMappingURL=pp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pp.d.ts","sourceRoot":"","sources":["../../src/utils/pp.ts"],"names":[],"mappings":"AAqBA,OAAO,EACH,eAAe,EAEf,QAAQ,EAER,aAAa,EAIb,aAAa,EAEb,SAAS,EACZ,MAAM,UAAU,CAAC;AA2FlB,wBAAgB,YAAY,CACxB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,SAAS,EAAE,EAClB,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,MAAM,GAClB,MAAM,CA4HR;AAED,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,aAAa,EAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,GAAG,SAAS,CAsCpB;AAED,wBAAgB,cAAc,CAC1B,KAAK,EAAE,SAAS,EAAE,EAClB,eAAe,EAAE,eAAe,EAChC,MAAM,CAAC,EAAE,MAAM,GAChB,IAAI,CAwBN;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAqB9C"}
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ppStep = exports.debugDumpTrace = exports.printStepSourceString = exports.ppStackTrace = void 0;
4
+ const solc_typed_ast_1 = require("solc-typed-ast");
5
+ const debug_1 = require("../debug");
6
+ const srcLocation = require("src-location");
7
+ const fse = require("fs-extra");
8
+ function ppValue(typ, v, infer) {
9
+ if (v === undefined) {
10
+ return `<failed decoding>`;
11
+ }
12
+ if (typ instanceof solc_typed_ast_1.IntType) {
13
+ return v.toString();
14
+ }
15
+ if (typ instanceof solc_typed_ast_1.AddressType) {
16
+ return v.toString();
17
+ }
18
+ if (typ instanceof solc_typed_ast_1.FixedBytesType) {
19
+ return v.toString("hex");
20
+ }
21
+ if (typ instanceof solc_typed_ast_1.BoolType) {
22
+ return v ? "true" : "false";
23
+ }
24
+ if (typ instanceof solc_typed_ast_1.UserDefinedType) {
25
+ const def = typ.definition;
26
+ if (def instanceof solc_typed_ast_1.EnumDefinition) {
27
+ const optInd = Number(v);
28
+ (0, solc_typed_ast_1.assert)(optInd >= 0 && optInd < def.vMembers.length, `Enum value ${optInd} outside of enum range 0-${def.vMembers.length} of ${typ.pp()}`);
29
+ return `${def.name}.${def.vMembers[optInd].name}`;
30
+ }
31
+ if (def instanceof solc_typed_ast_1.ContractDefinition) {
32
+ return v.toString();
33
+ }
34
+ if (def instanceof solc_typed_ast_1.UserDefinedValueTypeDefinition) {
35
+ const underlyingType = infer.typeNameToTypeNode(def.underlyingType);
36
+ return ppValue(underlyingType, v, infer);
37
+ }
38
+ throw new Error(`NYI ppValue of user-defined type ${typ.pp()}`);
39
+ }
40
+ if (typ instanceof solc_typed_ast_1.PointerType) {
41
+ if (typ.to instanceof solc_typed_ast_1.ArrayType) {
42
+ const elT = typ.to.elementT;
43
+ return `[${v.map((el) => ppValue(elT, el, infer)).join(", ")}]`;
44
+ }
45
+ if (typ.to instanceof solc_typed_ast_1.BytesType) {
46
+ return `0x${v.toString("hex")}`;
47
+ }
48
+ if (typ.to instanceof solc_typed_ast_1.StringType) {
49
+ return `"${v}"`;
50
+ }
51
+ if (typ.to instanceof solc_typed_ast_1.UserDefinedType && typ.to.definition instanceof solc_typed_ast_1.StructDefinition) {
52
+ const fields = typ.to.definition.vMembers;
53
+ const strFields = [];
54
+ for (const field of fields) {
55
+ try {
56
+ const fieldT = infer.variableDeclarationToTypeNode(field);
57
+ strFields.push(field.name + ": " + ppValue(fieldT, v[field.name], infer));
58
+ }
59
+ catch (e) {
60
+ strFields.push(field.name + ": <failed decoding>");
61
+ }
62
+ }
63
+ return `{${strFields.join(", ")}}`;
64
+ }
65
+ throw new Error(`NYI ppValue of referenced type ${typ.to.pp()}`);
66
+ }
67
+ throw new Error(`NYI ppValue of type ${typ.pp()}`);
68
+ }
69
+ function ppStackTrace(solDbg, trace, stack, curOffset) {
70
+ const res = [];
71
+ for (let i = 0; i < stack.length; i++) {
72
+ const frame = stack[i];
73
+ let frameStr;
74
+ const lastOffset = i < stack.length - 1 ? trace[stack[i + 1].startStep - 1].pc : curOffset;
75
+ const extFrame = (0, debug_1.lastExternalFrame)(frame);
76
+ const [lastPosInFrame] = solDbg.decodeSourceLoc(lastOffset, extFrame);
77
+ const info = (0, debug_1.getContractInfo)(frame);
78
+ let funArgs;
79
+ let funName;
80
+ let fileName;
81
+ const offset = trace[frame.startStep].pc;
82
+ if (info) {
83
+ fileName = info.fileName;
84
+ }
85
+ if (frame.callee) {
86
+ if (frame.callee instanceof solc_typed_ast_1.FunctionDefinition) {
87
+ let calleeName;
88
+ if (frame.callee.isConstructor) {
89
+ calleeName = "constructor";
90
+ }
91
+ else if (frame.callee.kind === solc_typed_ast_1.FunctionKind.Fallback) {
92
+ calleeName = "fallback";
93
+ }
94
+ else if (frame.callee.kind === solc_typed_ast_1.FunctionKind.Receive) {
95
+ calleeName = "receiver";
96
+ }
97
+ else {
98
+ calleeName = frame.callee.name;
99
+ }
100
+ fileName = (frame.callee.vScope instanceof solc_typed_ast_1.ContractDefinition
101
+ ? frame.callee.vScope.vScope
102
+ : frame.callee.vScope).sourceEntryKey;
103
+ funName =
104
+ (frame.callee.vScope instanceof solc_typed_ast_1.ContractDefinition
105
+ ? frame.callee.vScope.name + "."
106
+ : "") + calleeName;
107
+ }
108
+ else {
109
+ funName = `<compiler-generated function>@${offset}`;
110
+ }
111
+ }
112
+ else {
113
+ funName = `<unknown function>@${offset}`;
114
+ }
115
+ if (extFrame.info &&
116
+ lastPosInFrame &&
117
+ extFrame.info.artifact.fileMap.has(lastPosInFrame.sourceIndex)) {
118
+ const sourceInfo = extFrame.info.artifact.fileMap.get(lastPosInFrame.sourceIndex);
119
+ if (sourceInfo.contents !== undefined) {
120
+ const t = srcLocation.indexToLocation(sourceInfo.contents, lastPosInFrame.start, true);
121
+ fileName += `:${t.line}:${t.column}`;
122
+ }
123
+ }
124
+ if (frame.arguments) {
125
+ const funArgEls = [];
126
+ for (const [, view] of frame.arguments) {
127
+ if (view === undefined) {
128
+ funArgEls.push("<unknown>");
129
+ continue;
130
+ }
131
+ const state = trace[frame.startStep];
132
+ (0, solc_typed_ast_1.assert)(info !== undefined, ``);
133
+ const infer = solDbg.artifactManager.infer(info.artifact.compilerVersion);
134
+ const val = (0, debug_1.decodeValue)(view, state, infer);
135
+ funArgEls.push(ppValue(view.type, val, infer));
136
+ }
137
+ funArgs = funArgEls.join(", ");
138
+ }
139
+ else {
140
+ funArgs = "<unknown>";
141
+ }
142
+ if (frame.kind === debug_1.FrameKind.InternalCall) {
143
+ (0, solc_typed_ast_1.assert)(fileName !== undefined, ``);
144
+ frameStr = fileName + " ";
145
+ frameStr += `${funName}(${funArgs})`;
146
+ }
147
+ else if (frame.kind === debug_1.FrameKind.Call) {
148
+ if (frame.info === undefined) {
149
+ frameStr = `<unknown function(s) in contract ${frame.address.toString()}>`;
150
+ }
151
+ else {
152
+ // If we have debug info for this contract ignore the external frame - it will duplicate the internal frame
153
+ continue;
154
+ }
155
+ }
156
+ else {
157
+ if (frame.info === undefined || frame.info.ast === undefined) {
158
+ frameStr = `<deploying unknown contract>`;
159
+ }
160
+ else {
161
+ frameStr = `${fileName} `;
162
+ frameStr += `<deploying ${funName}(${funArgs})>`;
163
+ }
164
+ }
165
+ res.push(frameStr);
166
+ }
167
+ return res.reverse().join("\n");
168
+ }
169
+ exports.ppStackTrace = ppStackTrace;
170
+ function printStepSourceString(step, lastExtStep, sources, artifactManager, prefix) {
171
+ const info = step.contractInfo;
172
+ if (info === undefined) {
173
+ return undefined;
174
+ }
175
+ const errorLoc = step.src;
176
+ if (errorLoc === undefined) {
177
+ return undefined;
178
+ }
179
+ const fileInd = errorLoc.sourceIndex;
180
+ const fileInfo = artifactManager.getFileById(fileInd, info, lastExtStep.kind === "creation");
181
+ if (fileInfo === undefined) {
182
+ return undefined;
183
+ }
184
+ const fileName = fileInfo.name;
185
+ let fileContents = sources.get(fileName);
186
+ if (fileContents === undefined) {
187
+ const actualFileName = prefix ? prefix + fileName : fileName;
188
+ fileContents = fse.readFileSync(actualFileName, {
189
+ encoding: "utf-8"
190
+ });
191
+ sources.set(fileName, fileContents);
192
+ }
193
+ return fileContents.substring(errorLoc.start, errorLoc.start + errorLoc.length);
194
+ }
195
+ exports.printStepSourceString = printStepSourceString;
196
+ function debugDumpTrace(trace, artifactManager, prefix) {
197
+ const sources = new Map();
198
+ for (let i = 0; i < trace.length; i++) {
199
+ const step = trace[i];
200
+ const jumpType = (step.op.mnemonic === "JUMP" || step.op.mnemonic === "JUMPI") && step.src
201
+ ? step.src.jump
202
+ : "";
203
+ const srcString = printStepSourceString(step, (0, debug_1.lastExternalFrame)(step.stack), sources, artifactManager, prefix);
204
+ console.error(`${i} ${step.pc}: ${step.op.mnemonic} ${jumpType} ${srcString !== undefined ? srcString : ""}`);
205
+ }
206
+ }
207
+ exports.debugDumpTrace = debugDumpTrace;
208
+ function ppStep(step) {
209
+ let contractId;
210
+ const addrStr = `${step.address.toString().slice(36)}`;
211
+ if (step.contractInfo) {
212
+ contractId = `${step.contractInfo.contractName}@${addrStr}`;
213
+ }
214
+ else if (step.codeMdHash) {
215
+ contractId = `0x${step.codeMdHash.slice(0, 6)}...${step.codeMdHash.slice(60)}@${addrStr}`;
216
+ }
217
+ else {
218
+ contractId = `unknown@${addrStr}`;
219
+ }
220
+ const immStr = step.op.immediates
221
+ .map((imm) => step.code.slice(step.pc + 1, step.pc + 1 + imm.length).toString("hex"))
222
+ .join(" ");
223
+ const stackStr = step.evmStack
224
+ .slice(step.evmStack.length - step.op.nPop, step.evmStack.length)
225
+ .map((v) => v.toString("hex"))
226
+ .join(", ");
227
+ return `${contractId}# ${step.pc}: ${step.op.mnemonic}(${step.op.opcode.toString(16)}) ${immStr} [${stackStr}]`;
228
+ }
229
+ exports.ppStep = ppStep;
230
+ //# sourceMappingURL=pp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pp.js","sourceRoot":"","sources":["../../src/utils/pp.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,7 @@ export declare enum ResultKind {
37
37
  ContractCreated = "contract_created",
38
38
  ValueReturned = "value_returned",
39
39
  Revert = "revert",
40
+ LastRevert = "last_revert",
40
41
  FoundryFail = "foundry_fail"
41
42
  }
42
43
  interface ResultContractCreated {
@@ -50,11 +51,14 @@ interface ResultValueReturned {
50
51
  interface ResultRevert {
51
52
  kind: ResultKind.Revert;
52
53
  }
54
+ interface ResultLastRevert {
55
+ kind: ResultKind.LastRevert;
56
+ }
53
57
  interface ResultFoundryFail {
54
58
  kind: ResultKind.FoundryFail;
55
59
  }
56
60
  export interface TestStep extends BaseTestStep {
57
- result: ResultContractCreated | ResultValueReturned | ResultRevert | ResultFoundryFail;
61
+ result: ResultContractCreated | ResultValueReturned | ResultRevert | ResultLastRevert | ResultFoundryFail;
58
62
  errorStack?: string[];
59
63
  errorString?: string;
60
64
  errorPathPrefix?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"test_runner.d.ts","sourceRoot":"","sources":["../../src/utils/test_runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test_runner.d.ts","sourceRoot":"","sources":["../../src/utils/test_runner.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ var ResultKind;
11
11
  ResultKind["ContractCreated"] = "contract_created";
12
12
  ResultKind["ValueReturned"] = "value_returned";
13
13
  ResultKind["Revert"] = "revert";
14
+ ResultKind["LastRevert"] = "last_revert";
14
15
  ResultKind["FoundryFail"] = "foundry_fail";
15
16
  })(ResultKind || (exports.ResultKind = ResultKind = {}));
16
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"test_runner.js","sourceRoot":"","sources":["../../src/utils/test_runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test_runner.js","sourceRoot":"","sources":["../../src/utils/test_runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sol-dbg",
3
- "version": "0.2.3",
3
+ "version": "0.3.1",
4
4
  "description": "Small (experimental) Solidity-level debugger built around EthereumJS",
5
5
  "keywords": [],
6
6
  "files": [