ethereumjs-vm
Version:
An Ethereum VM implementation
33 lines • 1.26 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var BN = require("bn.js");
var ethereumjs_util_1 = require("ethereumjs-util");
var txContext_1 = require("./evm/txContext");
var message_1 = require("./evm/message");
var evm_1 = require("./evm/evm");
var Block = require('ethereumjs-block');
/**
* @ignore
*/
function runCall(opts) {
var block = opts.block || new Block();
var txContext = new txContext_1.default(opts.gasPrice || Buffer.alloc(0), opts.origin || opts.caller || ethereumjs_util_1.zeros(32));
var message = new message_1.default({
caller: opts.caller,
gasLimit: opts.gasLimit ? new BN(opts.gasLimit) : new BN(0xffffff),
to: opts.to && opts.to.toString('hex') !== '' ? opts.to : undefined,
value: opts.value,
data: opts.data,
code: opts.code,
depth: opts.depth || 0,
isCompiled: opts.compiled || false,
isStatic: opts.static || false,
salt: opts.salt || null,
selfdestruct: opts.selfdestruct || {},
delegatecall: opts.delegatecall || false,
});
var evm = new evm_1.default(this, txContext, block);
return evm.executeMessage(message);
}
exports.default = runCall;
//# sourceMappingURL=runCall.js.map
;