(vm, bytecode, calldata, sourcemapOffset = 0, sourcemap = [], callvalue = 0, callerAddr = 0)
| 66 | } |
| 67 | |
| 68 | function runCode(vm, bytecode, calldata, sourcemapOffset = 0, sourcemap = [], callvalue = 0, callerAddr = 0) { |
| 69 | if (calldata) { |
| 70 | for (const x of calldata) { |
| 71 | if (x.len === undefined) { |
| 72 | x.len = 32; // set len to 32 if undefined (for sake of backward compatibility) |
| 73 | } |
| 74 | } |
| 75 | } |
| 76 | return new Promise((resolve, reject) => { |
| 77 | vm.runCode( |
| 78 | { |
| 79 | code: Buffer.from(bytecode, 'hex'), |
| 80 | gasLimit: Buffer.from('ffffffff', 'hex'), |
| 81 | data: calldata ? processMemory(calldata) : null, |
| 82 | value: new BN(callvalue), |
| 83 | caller: callerAddr, |
| 84 | }, |
| 85 | (err, results) => { |
| 86 | if (err) { |
| 87 | console.log(results.runState.programCounter); |
| 88 | console.log(sourcemap[results.runState.programCounter - sourcemapOffset]); |
| 89 | return reject(err); |
| 90 | } |
| 91 | return resolve(results); |
| 92 | } |
| 93 | ); |
| 94 | }); |
| 95 | } |
| 96 | |
| 97 | function Runtime(filename, path, debug = false) { |
| 98 | const { inputMap, macros, jumptables } = newParser.parseFile(filename, path); |
no test coverage detected