UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

47 lines (45 loc) 6.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const BuiltinInstanceOf_1 = require("../BuiltinInstanceOf"); const BuiltinInterface_1 = require("../BuiltinInterface"); const concat_1 = require("./concat"); const equals_1 = require("./equals"); const from_1 = require("./from"); const length_1 = require("./length"); const slice_1 = require("./slice"); const toInteger_1 = require("./toInteger"); const toString_1 = require("./toString"); class BufferInterface extends BuiltinInterface_1.BuiltinInterface { } class BufferValue extends BuiltinInstanceOf_1.BuiltinInstanceOf { constructor() { super(...arguments); this.type = 'BufferConstructor'; } emitInstanceOf(sb, node, optionsIn) { const options = sb.pushValueOptions(optionsIn); sb.visit(node, options); if (optionsIn.pushValue) { sb.emitHelper(node, options, sb.helpers.isBuffer); sb.emitHelper(node, options, sb.helpers.wrapBoolean); } else { sb.emitOp(node, 'DROP'); } } } class BufferConstructorInterface extends BuiltinInterface_1.BuiltinInterface { } exports.add = (builtins) => { builtins.addInterface('Buffer', new BufferInterface()); builtins.addValue('Buffer', new BufferValue()); builtins.addGlobalMember('Buffer', 'equals', new equals_1.BufferEquals()); builtins.addGlobalMember('Buffer', 'length', new length_1.BufferLength()); builtins.addGlobalMember('Buffer', 'slice', new slice_1.BufferSlice()); builtins.addGlobalMember('Buffer', 'toInteger', new toInteger_1.BufferToInteger()); builtins.addGlobalMember('Buffer', 'toString', new toString_1.BufferToString()); builtins.addInterface('BufferConstructor', new BufferConstructorInterface()); builtins.addGlobalMember('BufferConstructor', 'concat', new concat_1.BufferConcat()); builtins.addGlobalMember('BufferConstructor', 'from', new from_1.BufferFrom()); }; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsNERBQXlEO0FBQ3pELDBEQUF1RDtBQUV2RCxxQ0FBd0M7QUFDeEMscUNBQXdDO0FBQ3hDLGlDQUFvQztBQUNwQyxxQ0FBd0M7QUFDeEMsbUNBQXNDO0FBQ3RDLDJDQUE4QztBQUM5Qyx5Q0FBNEM7QUFFNUMsTUFBTSxlQUFnQixTQUFRLG1DQUFnQjtDQUFHO0FBQ2pELE1BQU0sV0FBWSxTQUFRLHFDQUFpQjtJQUEzQzs7UUFDa0IsU0FBSSxHQUFHLG1CQUFtQixDQUFDO0lBaUI3QyxDQUFDO0lBZlEsY0FBYyxDQUFDLEVBQWlCLEVBQUUsSUFBbUIsRUFBRSxTQUF1QjtRQUNuRixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFL0MsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEIsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFO1lBRXZCLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWxELEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3REO2FBQU07WUFHTCxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN6QjtJQUNILENBQUM7Q0FDRjtBQUNELE1BQU0sMEJBQTJCLFNBQVEsbUNBQWdCO0NBQUc7QUFHL0MsUUFBQSxHQUFHLEdBQUcsQ0FBQyxRQUFrQixFQUFRLEVBQUU7SUFDOUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMvQyxRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxxQkFBWSxFQUFFLENBQUMsQ0FBQztJQUNqRSxRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxxQkFBWSxFQUFFLENBQUMsQ0FBQztJQUNqRSxRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxtQkFBVyxFQUFFLENBQUMsQ0FBQztJQUMvRCxRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsSUFBSSwyQkFBZSxFQUFFLENBQUMsQ0FBQztJQUN2RSxRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSx5QkFBYyxFQUFFLENBQUMsQ0FBQztJQUNyRSxRQUFRLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLElBQUksMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLFFBQVEsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLElBQUkscUJBQVksRUFBRSxDQUFDLENBQUM7SUFDNUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsSUFBSSxpQkFBVSxFQUFFLENBQUMsQ0FBQztBQUMxRSxDQUFDLENBQUMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9idWlsdGlucy9idWZmZXIvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBTY3JpcHRCdWlsZGVyIH0gZnJvbSAnLi4vLi4vc2InO1xuaW1wb3J0IHsgVmlzaXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQnVpbHRpbkluc3RhbmNlT2YgfSBmcm9tICcuLi9CdWlsdGluSW5zdGFuY2VPZic7XG5pbXBvcnQgeyBCdWlsdGluSW50ZXJmYWNlIH0gZnJvbSAnLi4vQnVpbHRpbkludGVyZmFjZSc7XG5pbXBvcnQgeyBCdWlsdGlucyB9IGZyb20gJy4uL0J1aWx0aW5zJztcbmltcG9ydCB7IEJ1ZmZlckNvbmNhdCB9IGZyb20gJy4vY29uY2F0JztcbmltcG9ydCB7IEJ1ZmZlckVxdWFscyB9IGZyb20gJy4vZXF1YWxzJztcbmltcG9ydCB7IEJ1ZmZlckZyb20gfSBmcm9tICcuL2Zyb20nO1xuaW1wb3J0IHsgQnVmZmVyTGVuZ3RoIH0gZnJvbSAnLi9sZW5ndGgnO1xuaW1wb3J0IHsgQnVmZmVyU2xpY2UgfSBmcm9tICcuL3NsaWNlJztcbmltcG9ydCB7IEJ1ZmZlclRvSW50ZWdlciB9IGZyb20gJy4vdG9JbnRlZ2VyJztcbmltcG9ydCB7IEJ1ZmZlclRvU3RyaW5nIH0gZnJvbSAnLi90b1N0cmluZyc7XG5cbmNsYXNzIEJ1ZmZlckludGVyZmFjZSBleHRlbmRzIEJ1aWx0aW5JbnRlcmZhY2Uge31cbmNsYXNzIEJ1ZmZlclZhbHVlIGV4dGVuZHMgQnVpbHRpbkluc3RhbmNlT2Yge1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZSA9ICdCdWZmZXJDb25zdHJ1Y3Rvcic7XG5cbiAgcHVibGljIGVtaXRJbnN0YW5jZU9mKHNiOiBTY3JpcHRCdWlsZGVyLCBub2RlOiB0cy5FeHByZXNzaW9uLCBvcHRpb25zSW46IFZpc2l0T3B0aW9ucyk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBzYi5wdXNoVmFsdWVPcHRpb25zKG9wdGlvbnNJbik7XG4gICAgLy8gW3ZhbF1cbiAgICBzYi52aXNpdChub2RlLCBvcHRpb25zKTtcbiAgICBpZiAob3B0aW9uc0luLnB1c2hWYWx1ZSkge1xuICAgICAgLy8gW2Jvb2xlYW5dXG4gICAgICBzYi5lbWl0SGVscGVyKG5vZGUsIG9wdGlvbnMsIHNiLmhlbHBlcnMuaXNCdWZmZXIpO1xuICAgICAgLy8gW3ZhbF1cbiAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9ucywgc2IuaGVscGVycy53cmFwQm9vbGVhbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFtdXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgc2IuZW1pdE9wKG5vZGUsICdEUk9QJyk7XG4gICAgfVxuICB9XG59XG5jbGFzcyBCdWZmZXJDb25zdHJ1Y3RvckludGVyZmFjZSBleHRlbmRzIEJ1aWx0aW5JbnRlcmZhY2Uge31cblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIGV4cG9ydC1uYW1lXG5leHBvcnQgY29uc3QgYWRkID0gKGJ1aWx0aW5zOiBCdWlsdGlucyk6IHZvaWQgPT4ge1xuICBidWlsdGlucy5hZGRJbnRlcmZhY2UoJ0J1ZmZlcicsIG5ldyBCdWZmZXJJbnRlcmZhY2UoKSk7XG4gIGJ1aWx0aW5zLmFkZFZhbHVlKCdCdWZmZXInLCBuZXcgQnVmZmVyVmFsdWUoKSk7XG4gIGJ1aWx0aW5zLmFkZEdsb2JhbE1lbWJlcignQnVmZmVyJywgJ2VxdWFscycsIG5ldyBCdWZmZXJFcXVhbHMoKSk7XG4gIGJ1aWx0aW5zLmFkZEdsb2JhbE1lbWJlcignQnVmZmVyJywgJ2xlbmd0aCcsIG5ldyBCdWZmZXJMZW5ndGgoKSk7XG4gIGJ1aWx0aW5zLmFkZEdsb2JhbE1lbWJlcignQnVmZmVyJywgJ3NsaWNlJywgbmV3IEJ1ZmZlclNsaWNlKCkpO1xuICBidWlsdGlucy5hZGRHbG9iYWxNZW1iZXIoJ0J1ZmZlcicsICd0b0ludGVnZXInLCBuZXcgQnVmZmVyVG9JbnRlZ2VyKCkpO1xuICBidWlsdGlucy5hZGRHbG9iYWxNZW1iZXIoJ0J1ZmZlcicsICd0b1N0cmluZycsIG5ldyBCdWZmZXJUb1N0cmluZygpKTtcbiAgYnVpbHRpbnMuYWRkSW50ZXJmYWNlKCdCdWZmZXJDb25zdHJ1Y3RvcicsIG5ldyBCdWZmZXJDb25zdHJ1Y3RvckludGVyZmFjZSgpKTtcbiAgYnVpbHRpbnMuYWRkR2xvYmFsTWVtYmVyKCdCdWZmZXJDb25zdHJ1Y3RvcicsICdjb25jYXQnLCBuZXcgQnVmZmVyQ29uY2F0KCkpO1xuICBidWlsdGlucy5hZGRHbG9iYWxNZW1iZXIoJ0J1ZmZlckNvbnN0cnVjdG9yJywgJ2Zyb20nLCBuZXcgQnVmZmVyRnJvbSgpKTtcbn07XG4iXX0=