@polygon-hermez/vm
Version:
An Ethereum VM implementation
25 lines • 902 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var ethereumjs_util_1 = require("ethereumjs-util");
var evm_1 = require("../evm");
var assert = require('assert');
function default_1(opts) {
assert(opts.data);
var data = opts.data;
var gasUsed = new ethereumjs_util_1.BN(opts._common.param('gasPrices', 'identity'));
gasUsed.iadd(new ethereumjs_util_1.BN(opts._common.param('gasPrices', 'identityWord')).imuln(Math.ceil(data.length / 32)));
if (opts.gasLimit.lt(gasUsed)) {
return (0, evm_1.OOGResult)(opts.gasLimit);
}
// Reduce counters
opts._VM.vcm.computeFunctionCounters('preIdentity', {
calldataLength: data.length,
returnDataLength: opts.outLength.toNumber(),
});
return {
gasUsed: gasUsed,
returnValue: data,
};
}
exports.default = default_1;
//# sourceMappingURL=04-identity.js.map