UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

26 lines (24 loc) 3.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ts_utils_1 = require("@neo-one/ts-utils"); const BuiltinInstanceMemberCall_1 = require("../BuiltinInstanceMemberCall"); class BufferToInteger extends BuiltinInstanceMemberCall_1.BuiltinInstanceMemberCall { canCall(_sb, _func, _node) { return true; } emitCall(sb, func, node, optionsIn, visited) { const options = sb.pushValueOptions(optionsIn); if (!visited) { sb.visit(ts_utils_1.tsUtils.expression.getExpression(func), options); } if (optionsIn.pushValue) { sb.emitHelper(node, options, sb.helpers.unwrapBuffer); sb.emitHelper(node, options, sb.helpers.wrapNumber); } else { sb.emitOp(node, 'DROP'); } } } exports.BufferToInteger = BufferToInteger; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvSW50ZWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGdEQUE0QztBQUk1Qyw0RUFBeUU7QUFJekUsTUFBYSxlQUFnQixTQUFRLHFEQUF5QjtJQUNyRCxPQUFPLENBQUMsR0FBa0IsRUFBRSxLQUErQixFQUFFLEtBQXdCO1FBQzFGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFFBQVEsQ0FDYixFQUFpQixFQUNqQixJQUE4QixFQUM5QixJQUF1QixFQUN2QixTQUF1QixFQUN2QixPQUFnQjtRQUVoQixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUVaLEVBQUUsQ0FBQyxLQUFLLENBQUMsa0JBQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzNEO1FBRUQsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFO1lBRXZCLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRXRELEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3JEO2FBQU07WUFDTCxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN6QjtJQUNILENBQUM7Q0FDRjtBQTNCRCwwQ0EyQkMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9idWlsdGlucy9idWZmZXIvdG9JbnRlZ2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHNVdGlscyB9IGZyb20gJ0BuZW8tb25lL3RzLXV0aWxzJztcbmltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7IFNjcmlwdEJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zYic7XG5pbXBvcnQgeyBWaXNpdE9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBCdWlsdGluSW5zdGFuY2VNZW1iZXJDYWxsIH0gZnJvbSAnLi4vQnVpbHRpbkluc3RhbmNlTWVtYmVyQ2FsbCc7XG5pbXBvcnQgeyBDYWxsTWVtYmVyTGlrZUV4cHJlc3Npb24gfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBleHBvcnQtbmFtZVxuZXhwb3J0IGNsYXNzIEJ1ZmZlclRvSW50ZWdlciBleHRlbmRzIEJ1aWx0aW5JbnN0YW5jZU1lbWJlckNhbGwge1xuICBwdWJsaWMgY2FuQ2FsbChfc2I6IFNjcmlwdEJ1aWxkZXIsIF9mdW5jOiBDYWxsTWVtYmVyTGlrZUV4cHJlc3Npb24sIF9ub2RlOiB0cy5DYWxsRXhwcmVzc2lvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGVtaXRDYWxsKFxuICAgIHNiOiBTY3JpcHRCdWlsZGVyLFxuICAgIGZ1bmM6IENhbGxNZW1iZXJMaWtlRXhwcmVzc2lvbixcbiAgICBub2RlOiB0cy5DYWxsRXhwcmVzc2lvbixcbiAgICBvcHRpb25zSW46IFZpc2l0T3B0aW9ucyxcbiAgICB2aXNpdGVkOiBib29sZWFuLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gc2IucHVzaFZhbHVlT3B0aW9ucyhvcHRpb25zSW4pO1xuICAgIGlmICghdmlzaXRlZCkge1xuICAgICAgLy8gW2J1ZmZlclZhbF1cbiAgICAgIHNiLnZpc2l0KHRzVXRpbHMuZXhwcmVzc2lvbi5nZXRFeHByZXNzaW9uKGZ1bmMpLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9uc0luLnB1c2hWYWx1ZSkge1xuICAgICAgLy8gW2J1ZmZlcl1cbiAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9ucywgc2IuaGVscGVycy51bndyYXBCdWZmZXIpO1xuICAgICAgLy8gW3ZhbF1cbiAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9ucywgc2IuaGVscGVycy53cmFwTnVtYmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2IuZW1pdE9wKG5vZGUsICdEUk9QJyk7XG4gICAgfVxuICB9XG59XG4iXX0=