sol-dbg 0.1.6 → 0.2.2

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,19 +1,16 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FoundryCheatcodePrecompile = 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;
7
- const evm_1 = require("@ethereumjs/vm/dist/evm/evm");
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;
4
+ const evm_1 = require("@ethereumjs/evm/dist/evm");
8
5
  const ethereumjs_util_1 = require("ethereumjs-util");
9
6
  const utils_1 = require("../utils");
10
- const interpreter_1 = __importDefault(require("@ethereumjs/vm/dist/evm/interpreter"));
11
- const exceptions_1 = require("@ethereumjs/vm/dist/exceptions");
7
+ const interpreter_1 = require("@ethereumjs/evm/dist/interpreter");
8
+ const exceptions_1 = require("@ethereumjs/evm/dist/exceptions");
12
9
  /*
13
10
  * Hotpatch Interpreter.run so we can keep track of the runtime relationships between EEIs.
14
11
  * We use this to track when one call context is a child of another, which helps us scope pranks
15
12
  */
16
- const oldRun = interpreter_1.default.prototype.run;
13
+ const oldRun = interpreter_1.Interpreter.prototype.run;
17
14
  /**
18
15
  * Each test/cases/debug session is associated with a unique VM. And there are
19
16
  * multiple interpreter instances per VM. We keep 1 event emitter per VM, so
@@ -21,8 +18,8 @@ const oldRun = interpreter_1.default.prototype.run;
21
18
  * its callbacks.
22
19
  */
23
20
  exports.interpRunListeners = new Map();
24
- interpreter_1.default.prototype.run = async function (code, opts) {
25
- const vm = this._vm;
21
+ interpreter_1.Interpreter.prototype.run = async function (code, opts) {
22
+ const vm = this._evm;
26
23
  const emitter = exports.interpRunListeners.get(vm);
27
24
  if (emitter)
28
25
  emitter.emit("beforeInterpRun", this);
@@ -37,45 +34,27 @@ interpreter_1.default.prototype.run = async function (code, opts) {
37
34
  const { secp256k1 } = require("ethereum-cryptography/secp256k1");
38
35
  const ethABI = require("web3-eth-abi");
39
36
  exports.FoundryCheatcodesAddress = ethereumjs_util_1.Address.fromString("0x7109709ECfa91a80626fF3989D68f67F5b1DD12D");
40
- exports.WARP_SELECTOR = (0, ethereumjs_util_1.keccak256)(Buffer.from("warp(uint256)", "utf-8"))
41
- .slice(0, 4)
42
- .toString("hex");
43
- exports.ROLL_SELECTOR = (0, ethereumjs_util_1.keccak256)(Buffer.from("roll(uint256)", "utf-8"))
44
- .slice(0, 4)
45
- .toString("hex");
46
- exports.LOAD_SELECTOR = (0, ethereumjs_util_1.keccak256)(Buffer.from("load(address,bytes32)", "utf-8"))
47
- .slice(0, 4)
48
- .toString("hex");
49
- exports.STORE_SELECTOR = (0, ethereumjs_util_1.keccak256)(Buffer.from("store(address,bytes32,bytes32)", "utf-8"))
50
- .slice(0, 4)
51
- .toString("hex");
52
- exports.SIGN_SELECTOR = (0, ethereumjs_util_1.keccak256)(Buffer.from("sign(uint256,bytes32)", "utf-8"))
53
- .slice(0, 4)
54
- .toString("hex");
55
- exports.ADDR_SELECTOR = (0, ethereumjs_util_1.keccak256)(Buffer.from("addr(uint256)", "utf-8"))
56
- .slice(0, 4)
57
- .toString("hex");
58
- exports.DEAL_SELECTOR = (0, ethereumjs_util_1.keccak256)(Buffer.from("deal(address,uint256)", "utf-8"))
59
- .slice(0, 4)
60
- .toString("hex");
61
- exports.PRANK_SELECTOR01 = (0, ethereumjs_util_1.keccak256)(Buffer.from("prank(address)", "utf-8"))
62
- .slice(0, 4)
63
- .toString("hex");
64
- exports.PRANK_SELECTOR02 = (0, ethereumjs_util_1.keccak256)(Buffer.from("prank(address,address)", "utf-8"))
65
- .slice(0, 4)
66
- .toString("hex");
67
- exports.START_PRANK_SELECTOR01 = (0, ethereumjs_util_1.keccak256)(Buffer.from("startPrank(address)", "utf-8"))
68
- .slice(0, 4)
69
- .toString("hex");
70
- exports.START_PRANK_SELECTOR02 = (0, ethereumjs_util_1.keccak256)(Buffer.from("startPrank(address,address)", "utf-8"))
71
- .slice(0, 4)
72
- .toString("hex");
73
- exports.STOP_PRANK_SELECTOR = (0, ethereumjs_util_1.keccak256)(Buffer.from("stopPrank()", "utf-8"))
74
- .slice(0, 4)
75
- .toString("hex");
37
+ function getSelector(signature) {
38
+ return (0, ethereumjs_util_1.keccak256)(Buffer.from(signature, "utf-8")).slice(0, 4);
39
+ }
40
+ function getSelectorHex(signature) {
41
+ return getSelector(signature).toString("hex");
42
+ }
43
+ exports.WARP_SELECTOR = getSelectorHex("warp(uint256)");
44
+ exports.ROLL_SELECTOR = getSelectorHex("roll(uint256)");
45
+ exports.LOAD_SELECTOR = getSelectorHex("load(address,bytes32)");
46
+ exports.STORE_SELECTOR = getSelectorHex("store(address,bytes32,bytes32)");
47
+ exports.SIGN_SELECTOR = getSelectorHex("sign(uint256,bytes32)");
48
+ exports.ADDR_SELECTOR = getSelectorHex("addr(uint256)");
49
+ exports.DEAL_SELECTOR = getSelectorHex("deal(address,uint256)");
50
+ exports.PRANK_SELECTOR01 = getSelectorHex("prank(address)");
51
+ exports.PRANK_SELECTOR02 = getSelectorHex("prank(address,address)");
52
+ exports.START_PRANK_SELECTOR01 = getSelectorHex("startPrank(address)");
53
+ exports.START_PRANK_SELECTOR02 = getSelectorHex("startPrank(address,address)");
54
+ exports.STOP_PRANK_SELECTOR = getSelectorHex("stopPrank()");
76
55
  exports.FAIL_LOC = (0, ethereumjs_util_1.setLengthRight)(Buffer.from("failed", "utf-8"), 32).toString("hex");
77
56
  exports.FAIL_MSG_DATA = Buffer.concat([
78
- (0, ethereumjs_util_1.keccak256)(Buffer.from("store(address,bytes32,bytes32)", "utf-8")).slice(0, 4),
57
+ getSelector("store(address,bytes32,bytes32)"),
79
58
  (0, ethereumjs_util_1.setLengthLeft)(exports.FoundryCheatcodesAddress.toBuffer(), 32),
80
59
  (0, ethereumjs_util_1.setLengthRight)(Buffer.from("failed", "utf-8"), 32),
81
60
  (0, ethereumjs_util_1.setLengthLeft)(Buffer.from([1]), 32)
@@ -94,25 +73,25 @@ class FoundryContext {
94
73
  * objects, as there is a unique EEI object for each external call in the
95
74
  * trace, and pranks are scoped to external calls.
96
75
  */
97
- this.eeiStack = [];
76
+ this.envStack = [];
98
77
  }
99
78
  // Get the current (topmost) EEI object
100
- getEEI() {
101
- return this.eeiStack[this.eeiStack.length - 1];
79
+ getEnv() {
80
+ return this.envStack[this.envStack.length - 1];
102
81
  }
103
82
  // Get any pending pranks for the current call frame
104
83
  getPendingPrank() {
105
- if (this.eeiStack.length === 0) {
84
+ if (this.envStack.length === 0) {
106
85
  return undefined;
107
86
  }
108
- return this.getEEI().pendingPrank;
87
+ return this.getEnv().pendingPrank;
109
88
  }
110
89
  // Set the pending prank for the current call frame
111
90
  setPendingPrank(prank) {
112
- if (this.eeiStack.length === 0) {
91
+ if (this.envStack.length === 0) {
113
92
  return undefined;
114
93
  }
115
- this.getEEI().pendingPrank = prank;
94
+ this.getEnv().pendingPrank = prank;
116
95
  }
117
96
  /**
118
97
  * Get the set of pranks attached to the callframe related to eei.
@@ -138,9 +117,9 @@ class FoundryContext {
138
117
  * Clear all active and pending pranks.
139
118
  */
140
119
  clearPranks() {
141
- for (let i = this.eeiStack.length - 1; i >= 0; i--) {
142
- this.eeiStack[i].pranks = undefined;
143
- this.eeiStack[i].pendingPrank = undefined;
120
+ for (let i = this.envStack.length - 1; i >= 0; i--) {
121
+ this.envStack[i].pranks = undefined;
122
+ this.envStack[i].pendingPrank = undefined;
144
123
  }
145
124
  }
146
125
  /**
@@ -149,14 +128,17 @@ class FoundryContext {
149
128
  * If `recurse` is true, look down the call stack (the behavior for tx.origin pranks)
150
129
  */
151
130
  matchPrank(recurse) {
152
- for (let i = this.eeiStack.length - 1; i >= 0; i--) {
153
- const eei = this.eeiStack[i];
154
- const isTop = i == this.eeiStack.length - 1;
131
+ for (let i = this.envStack.length - 1; i >= 0; i--) {
132
+ const eei = this.envStack[i];
133
+ const isTop = i == this.envStack.length - 1;
155
134
  const pranks = this.getPranks(eei);
156
135
  for (let j = pranks.length - 1; j >= 0; j--) {
157
136
  const prank = pranks[j];
158
- if (prank.once && !isTop) {
159
- continue;
137
+ if (prank.once) {
138
+ if (!isTop) {
139
+ continue;
140
+ }
141
+ pranks.splice(j, 1);
160
142
  }
161
143
  return [prank.sender, prank.origin];
162
144
  }
@@ -171,212 +153,210 @@ class FoundryContext {
171
153
  * eei stack
172
154
  */
173
155
  beforeInterpRunCB(interp) {
174
- const eei = interp._eei;
156
+ const env = interp._env;
175
157
  const pendingPrank = this.getPendingPrank();
176
158
  if (pendingPrank) {
177
- this.addPrank(eei, pendingPrank);
159
+ this.addPrank(env, pendingPrank);
178
160
  if (pendingPrank.once) {
179
161
  this.setPendingPrank(undefined);
180
162
  }
181
163
  }
182
- this.eeiStack.push(interp._eei);
164
+ this.envStack.push(env);
183
165
  }
184
166
  /**
185
167
  * Callback from the hooks in the interpreter to keep track of the
186
168
  * eei stack
187
169
  */
188
170
  afterInterpRunCB() {
189
- this.eeiStack.pop();
171
+ this.envStack.pop();
190
172
  }
191
173
  }
192
174
  exports.FoundryContext = FoundryContext;
193
- // Get the FoundryContext associated with a VM
194
- function getFoundryCtx(vm) {
195
- return vm._foundryCtx;
175
+ function getFoundryCtx(evm) {
176
+ return evm._foundryCtx;
196
177
  }
197
178
  exports.getFoundryCtx = getFoundryCtx;
198
- // Set the FoundryContext associated with a VM
199
- function setFoundryCtx(vm, ctx) {
200
- vm._foundryCtx = ctx;
179
+ function setFoundryCtx(evm, ctx) {
180
+ evm._foundryCtx = ctx;
201
181
  }
202
182
  exports.setFoundryCtx = setFoundryCtx;
203
- /**
204
- * Foundry cheatcodes precompile contract deployed at 0x7109709ECfa91a80626fF3989D68f67F5b1DD12D.
205
- */
206
- async function FoundryCheatcodePrecompile(input) {
207
- const selector = input.data.slice(0, 4).toString("hex");
208
- const ctx = getFoundryCtx(input._VM);
209
- if (selector === exports.WARP_SELECTOR) {
210
- const newTime = BigInt(ethABI.decodeParameters(["uint256"], input.data.slice(4).toString("hex"))[0]);
211
- ctx.timeWarp = newTime;
212
- return {
213
- gasUsed: new ethereumjs_util_1.BN(0),
214
- returnValue: Buffer.from("", "hex")
215
- };
216
- }
217
- if (selector === exports.ROLL_SELECTOR) {
218
- const newBlockNum = BigInt(ethABI.decodeParameters(["uint256"], input.data.slice(4).toString("hex"))[0]);
219
- ctx.rollBockNum = newBlockNum;
220
- return {
221
- gasUsed: new ethereumjs_util_1.BN(0),
222
- returnValue: Buffer.from("", "hex")
223
- };
224
- }
225
- if (selector === exports.LOAD_SELECTOR) {
226
- //console.error(`load(${rawAddr}, ${rawLoc})`);
227
- let value = await input._VM.stateManager.getContractStorage(new ethereumjs_util_1.Address(input.data.slice(16, 36)), input.data.slice(36, 68));
228
- value = (0, ethereumjs_util_1.setLengthLeft)(value, 32);
229
- //console.error(`Result: ${value.toString("hex")}`);
230
- return {
231
- gasUsed: new ethereumjs_util_1.BN(0),
232
- returnValue: value
233
- };
234
- }
235
- if (selector === exports.STORE_SELECTOR) {
236
- const addr = new ethereumjs_util_1.Address(input.data.slice(16, 36));
237
- const loc = input.data.slice(36, 68);
238
- const value = input.data.slice(68, 100);
239
- /*
240
- console.error(
241
- `store(${addr.toString()}, ${loc.toString("hex")}, ${value.toString("hex")})`
242
- );
243
- */
244
- if (addr.equals(exports.FoundryCheatcodesAddress)) {
245
- const strLoc = loc.toString("hex");
246
- if (strLoc === exports.FAIL_LOC) {
247
- ctx.failCalled = BigInt(value.toString("hex")) !== BigInt(0);
183
+ function makeFoundryCheatcodePrecompile() {
184
+ const ctx = new FoundryContext();
185
+ const precompile = async function FoundryCheatcodePrecompile(input) {
186
+ const selector = input.data.slice(0, 4).toString("hex");
187
+ if (selector === exports.WARP_SELECTOR) {
188
+ const newTime = BigInt(ethABI.decodeParameters(["uint256"], input.data.slice(4).toString("hex"))[0]);
189
+ ctx.timeWarp = newTime;
190
+ return {
191
+ executionGasUsed: 0n,
192
+ returnValue: Buffer.from("", "hex")
193
+ };
194
+ }
195
+ if (selector === exports.ROLL_SELECTOR) {
196
+ const newBlockNum = BigInt(ethABI.decodeParameters(["uint256"], input.data.slice(4).toString("hex"))[0]);
197
+ ctx.rollBockNum = newBlockNum;
198
+ return {
199
+ executionGasUsed: 0n,
200
+ returnValue: Buffer.from("", "hex")
201
+ };
202
+ }
203
+ if (selector === exports.LOAD_SELECTOR) {
204
+ //console.error(`load(${rawAddr}, ${rawLoc})`);
205
+ let value = await input._EVM.eei.getContractStorage(new ethereumjs_util_1.Address(input.data.slice(16, 36)), input.data.slice(36, 68));
206
+ value = (0, ethereumjs_util_1.setLengthLeft)(value, 32);
207
+ //console.error(`Result: ${value.toString("hex")}`);
208
+ return {
209
+ executionGasUsed: 0n,
210
+ returnValue: value
211
+ };
212
+ }
213
+ if (selector === exports.STORE_SELECTOR) {
214
+ const addr = new ethereumjs_util_1.Address(input.data.slice(16, 36));
215
+ const loc = input.data.slice(36, 68);
216
+ const value = input.data.slice(68, 100);
217
+ /*
218
+ console.error(
219
+ `store(${addr.toString()}, ${loc.toString("hex")}, ${value.toString("hex")})`
220
+ );
221
+ */
222
+ if (addr.equals(exports.FoundryCheatcodesAddress)) {
223
+ const strLoc = loc.toString("hex");
224
+ if (strLoc === exports.FAIL_LOC) {
225
+ ctx.failCalled = BigInt(value.toString("hex")) !== 0n;
226
+ }
227
+ else {
228
+ throw new Error(`NYI store to loc ${strLoc} of foundry precompile contract ${addr.toString()}`);
229
+ }
248
230
  }
249
231
  else {
250
- throw new Error(`NYI store to loc ${strLoc} of foundry precompile contract ${addr.toString()}`);
232
+ await input._EVM.eei.putContractStorage(addr, loc, value);
251
233
  }
234
+ return {
235
+ executionGasUsed: 0n,
236
+ returnValue: Buffer.from("", "hex")
237
+ };
252
238
  }
253
- else {
254
- await input._VM.stateManager.putContractStorage(addr, loc, value);
239
+ if (selector === exports.SIGN_SELECTOR) {
240
+ const pk = input.data.slice(4, 36);
241
+ const digest = input.data.slice(36, 68);
242
+ const sig = secp256k1.sign(digest, pk);
243
+ const r = (0, utils_1.bigIntToBuf)(sig.r, 32, "big");
244
+ const s = (0, utils_1.bigIntToBuf)(sig.s, 32, "big");
245
+ const v = (0, ethereumjs_util_1.setLengthLeft)(Buffer.from([sig.recovery + 27]), 32);
246
+ return {
247
+ executionGasUsed: 0n,
248
+ returnValue: Buffer.concat([v, r, s])
249
+ };
255
250
  }
256
- return {
257
- gasUsed: new ethereumjs_util_1.BN(0),
258
- returnValue: Buffer.from("", "hex")
259
- };
260
- }
261
- if (selector === exports.SIGN_SELECTOR) {
262
- const pk = input.data.slice(4, 36);
263
- const digest = input.data.slice(36, 68);
264
- const sig = secp256k1.sign(digest, pk);
265
- const r = (0, utils_1.bigIntToBuf)(sig.r, 32, "big");
266
- const s = (0, utils_1.bigIntToBuf)(sig.s, 32, "big");
267
- const v = (0, ethereumjs_util_1.setLengthLeft)(Buffer.from([sig.recovery + 27]), 32);
268
- return {
269
- gasUsed: new ethereumjs_util_1.BN(0),
270
- returnValue: Buffer.concat([v, r, s])
271
- };
272
- }
273
- if (selector === exports.ADDR_SELECTOR) {
274
- const pk = input.data.slice(4, 36);
275
- const addr = (0, ethereumjs_util_1.setLengthLeft)((0, ethereumjs_util_1.privateToAddress)(pk), 32);
276
- return {
277
- gasUsed: new ethereumjs_util_1.BN(0),
278
- returnValue: addr
279
- };
280
- }
281
- if (selector === exports.DEAL_SELECTOR) {
282
- const addr = new ethereumjs_util_1.Address(input.data.slice(16, 36));
283
- const newBalance = input.data.slice(36, 68).toString("hex");
284
- const acct = await input._VM.stateManager.getAccount(addr);
285
- acct.balance = new ethereumjs_util_1.BN(newBalance, 16);
286
- await input._VM.stateManager.putAccount(addr, acct);
287
- return {
288
- gasUsed: new ethereumjs_util_1.BN(0),
289
- returnValue: Buffer.from("", "hex")
290
- };
291
- }
292
- if (selector === exports.PRANK_SELECTOR01) {
293
- // Foundry doesn't allow multiple concurrent pranks
294
- if (ctx.getPendingPrank() !== undefined) {
295
- return (0, evm_1.VmErrorResult)(new exceptions_1.VmError(exceptions_1.ERROR.REVERT), new ethereumjs_util_1.BN(0));
251
+ if (selector === exports.ADDR_SELECTOR) {
252
+ const pk = input.data.slice(4, 36);
253
+ const addr = (0, ethereumjs_util_1.setLengthLeft)((0, ethereumjs_util_1.privateToAddress)(pk), 32);
254
+ return {
255
+ executionGasUsed: 0n,
256
+ returnValue: addr
257
+ };
296
258
  }
297
- ctx.setPendingPrank({
298
- sender: new ethereumjs_util_1.Address(input.data.slice(16, 36)),
299
- origin: undefined,
300
- once: true
301
- });
302
- //console.error(`prank(${input.data.slice(16, 36).toString("hex")})`);
303
- return {
304
- gasUsed: new ethereumjs_util_1.BN(0),
305
- returnValue: Buffer.from("", "hex")
306
- };
307
- }
308
- if (selector === exports.PRANK_SELECTOR02) {
309
- // Foundry doesn't allow multiple concurrent pranks
310
- if (ctx.getPendingPrank() !== undefined) {
311
- return (0, evm_1.VmErrorResult)(new exceptions_1.VmError(exceptions_1.ERROR.REVERT), new ethereumjs_util_1.BN(0));
259
+ if (selector === exports.DEAL_SELECTOR) {
260
+ const addr = new ethereumjs_util_1.Address(input.data.slice(16, 36));
261
+ const newBalance = "0x" + input.data.slice(36, 68).toString("hex");
262
+ const acct = await input._EVM.eei.getAccount(addr);
263
+ acct.balance = BigInt(newBalance);
264
+ await input._EVM.eei.putAccount(addr, acct);
265
+ return {
266
+ executionGasUsed: 0n,
267
+ returnValue: Buffer.from("", "hex")
268
+ };
312
269
  }
313
- ctx.setPendingPrank({
314
- sender: new ethereumjs_util_1.Address(input.data.slice(16, 36)),
315
- origin: new ethereumjs_util_1.Address(input.data.slice(36, 68)),
316
- once: true
317
- });
318
- /*
319
- console.error(
320
- `prank(${input.data.slice(16, 36).toString("hex")}, ${input.data
321
- .slice(36, 68)
322
- .toString("hex")})`
323
- );
324
- */
325
- return {
326
- gasUsed: new ethereumjs_util_1.BN(0),
327
- returnValue: Buffer.from("", "hex")
328
- };
329
- }
330
- if (selector === exports.START_PRANK_SELECTOR01) {
331
- // Foundry doesn't allow multiple concurrent pranks
332
- if (ctx.getPendingPrank() !== undefined) {
333
- return (0, evm_1.VmErrorResult)(new exceptions_1.VmError(exceptions_1.ERROR.REVERT), new ethereumjs_util_1.BN(0));
270
+ if (selector === exports.PRANK_SELECTOR01) {
271
+ // Foundry doesn't allow multiple concurrent pranks
272
+ if (ctx.getPendingPrank() !== undefined) {
273
+ return (0, evm_1.EvmErrorResult)(new exceptions_1.EvmError(exceptions_1.ERROR.REVERT), 0n);
274
+ }
275
+ ctx.setPendingPrank({
276
+ sender: new ethereumjs_util_1.Address(input.data.slice(16, 36)),
277
+ origin: undefined,
278
+ once: true
279
+ });
280
+ //console.error(`prank(${input.data.slice(16, 36).toString("hex")})`);
281
+ return {
282
+ executionGasUsed: 0n,
283
+ returnValue: Buffer.from("", "hex")
284
+ };
334
285
  }
335
- ctx.setPendingPrank({
336
- sender: new ethereumjs_util_1.Address(input.data.slice(16, 36)),
337
- origin: undefined,
338
- once: false
339
- });
340
- //console.error(`startPrank(${input.data.slice(16, 36).toString("hex")})`);
341
- return {
342
- gasUsed: new ethereumjs_util_1.BN(0),
343
- returnValue: Buffer.from("", "hex")
344
- };
345
- }
346
- if (selector === exports.START_PRANK_SELECTOR02) {
347
- // Foundry doesn't allow multiple concurrent pranks
348
- if (ctx.getPendingPrank() !== undefined) {
349
- return (0, evm_1.VmErrorResult)(new exceptions_1.VmError(exceptions_1.ERROR.REVERT), new ethereumjs_util_1.BN(0));
286
+ if (selector === exports.PRANK_SELECTOR02) {
287
+ // Foundry doesn't allow multiple concurrent pranks
288
+ if (ctx.getPendingPrank() !== undefined) {
289
+ return (0, evm_1.EvmErrorResult)(new exceptions_1.EvmError(exceptions_1.ERROR.REVERT), 0n);
290
+ }
291
+ ctx.setPendingPrank({
292
+ sender: new ethereumjs_util_1.Address(input.data.slice(16, 36)),
293
+ origin: new ethereumjs_util_1.Address(input.data.slice(36, 68)),
294
+ once: true
295
+ });
296
+ /*
297
+ console.error(
298
+ `prank(${input.data.slice(16, 36).toString("hex")}, ${input.data
299
+ .slice(36, 68)
300
+ .toString("hex")})`
301
+ );
302
+ */
303
+ return {
304
+ executionGasUsed: 0n,
305
+ returnValue: Buffer.from("", "hex")
306
+ };
307
+ }
308
+ if (selector === exports.START_PRANK_SELECTOR01) {
309
+ // Foundry doesn't allow multiple concurrent pranks
310
+ if (ctx.getPendingPrank() !== undefined) {
311
+ return (0, evm_1.EvmErrorResult)(new exceptions_1.EvmError(exceptions_1.ERROR.REVERT), 0n);
312
+ }
313
+ ctx.setPendingPrank({
314
+ sender: new ethereumjs_util_1.Address(input.data.slice(16, 36)),
315
+ origin: undefined,
316
+ once: false
317
+ });
318
+ //console.error(`startPrank(${input.data.slice(16, 36).toString("hex")})`);
319
+ return {
320
+ executionGasUsed: 0n,
321
+ returnValue: Buffer.from("", "hex")
322
+ };
323
+ }
324
+ if (selector === exports.START_PRANK_SELECTOR02) {
325
+ // Foundry doesn't allow multiple concurrent pranks
326
+ if (ctx.getPendingPrank() !== undefined) {
327
+ return (0, evm_1.EvmErrorResult)(new exceptions_1.EvmError(exceptions_1.ERROR.REVERT), 0n);
328
+ }
329
+ ctx.setPendingPrank({
330
+ sender: new ethereumjs_util_1.Address(input.data.slice(16, 36)),
331
+ origin: new ethereumjs_util_1.Address(input.data.slice(48, 68)),
332
+ once: false
333
+ });
334
+ /*
335
+ console.error(
336
+ `startPrank(${input.data.slice(16, 36).toString("hex")}, ${new Address(
337
+ input.data.slice(48, 68)
338
+ )})`
339
+ );
340
+ */
341
+ return {
342
+ executionGasUsed: 0n,
343
+ returnValue: Buffer.from("", "hex")
344
+ };
345
+ }
346
+ if (selector === exports.STOP_PRANK_SELECTOR) {
347
+ ctx.clearPranks();
348
+ //console.error(`stopPrank()`);
349
+ return {
350
+ executionGasUsed: 0n,
351
+ returnValue: Buffer.from("", "hex")
352
+ };
350
353
  }
351
- ctx.setPendingPrank({
352
- sender: new ethereumjs_util_1.Address(input.data.slice(16, 36)),
353
- origin: new ethereumjs_util_1.Address(input.data.slice(48, 68)),
354
- once: false
355
- });
356
- /*
357
- console.error(
358
- `startPrank(${input.data.slice(16, 36).toString("hex")}, ${new Address(
359
- input.data.slice(48, 68)
360
- )})`
361
- );
362
- */
363
- return {
364
- gasUsed: new ethereumjs_util_1.BN(0),
365
- returnValue: Buffer.from("", "hex")
366
- };
367
- }
368
- if (selector === exports.STOP_PRANK_SELECTOR) {
369
- ctx.clearPranks();
370
- //console.error(`stopPrank()`);
371
354
  return {
372
- gasUsed: new ethereumjs_util_1.BN(0),
355
+ executionGasUsed: 0n,
373
356
  returnValue: Buffer.from("", "hex")
374
357
  };
375
- }
376
- return {
377
- gasUsed: new ethereumjs_util_1.BN(0),
378
- returnValue: Buffer.from("", "hex")
379
358
  };
359
+ return [precompile, ctx];
380
360
  }
381
- exports.FoundryCheatcodePrecompile = FoundryCheatcodePrecompile;
361
+ exports.makeFoundryCheatcodePrecompile = makeFoundryCheatcodePrecompile;
382
362
  //# sourceMappingURL=foundry_cheatcodes.js.map
@@ -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,4 +1,4 @@
1
- import { AddOpcode } from "@ethereumjs/vm/dist/evm/types";
1
+ import { AddOpcode } from "@ethereumjs/evm/dist/types";
2
2
  import { FoundryContext } from "./foundry_cheatcodes";
3
3
  export declare function foundryInterposedOps(opcodes: any, foundryCtx: FoundryContext): AddOpcode[];
4
4
  //# sourceMappingURL=opcode_interposing.d.ts.map
@@ -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,+BAA+B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAmBtD,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":"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"}