UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

52 lines (50 loc) 11.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const constants_1 = require("../../../constants"); const BuiltinInstanceOf_1 = require("../../BuiltinInstanceOf"); const BuiltinInterface_1 = require("../../BuiltinInterface"); const ForwardValueAs_1 = require("./ForwardValueAs"); class ForwardValueInterface extends BuiltinInterface_1.BuiltinInterface { } class ForwardValueValue extends BuiltinInstanceOf_1.BuiltinInstanceOf { constructor() { super(...arguments); this.type = 'ForwardValueConstructor'; } emitInstanceOf(sb, node, optionsIn) { const options = sb.pushValueOptions(optionsIn); sb.visit(node, options); if (optionsIn.pushValue) { sb.emitHelper(node, options, sb.helpers.isForwardValue); sb.emitHelper(node, options, sb.helpers.wrapBoolean); } else { sb.emitOp(node, 'DROP'); } } } class ForwardValueConstructorInterface extends BuiltinInterface_1.BuiltinInterface { } exports.add = (builtins) => { builtins.addContractInterface('ForwardValue', new ForwardValueInterface()); builtins.addContractValue('ForwardValue', new ForwardValueValue()); builtins.addContractMember('ForwardValue', 'asString', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.String)); builtins.addContractMember('ForwardValue', 'asStringNullable', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.String, true)); builtins.addContractMember('ForwardValue', 'asNumber', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.Number)); builtins.addContractMember('ForwardValue', 'asNumberNullable', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.Number, true)); builtins.addContractMember('ForwardValue', 'asBoolean', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.Boolean)); builtins.addContractMember('ForwardValue', 'asBuffer', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.Buffer)); builtins.addContractMember('ForwardValue', 'asBufferNullable', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.Buffer, true)); builtins.addContractMember('ForwardValue', 'asAddress', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.Buffer)); builtins.addContractMember('ForwardValue', 'asAddressNullable', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.Buffer, true)); builtins.addContractMember('ForwardValue', 'asHash256', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.Buffer)); builtins.addContractMember('ForwardValue', 'asHash256Nullable', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.Buffer, true)); builtins.addContractMember('ForwardValue', 'asPublicKey', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.Buffer)); builtins.addContractMember('ForwardValue', 'asPublicKeyNullable', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.Buffer, true)); builtins.addContractMember('ForwardValue', 'asArray', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.Array)); builtins.addContractMember('ForwardValue', 'asArrayNullable', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.Array, true)); builtins.addContractMember('ForwardValue', 'asMap', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.Map)); builtins.addContractMember('ForwardValue', 'asMapNullable', new ForwardValueAs_1.ForwardValueAs(constants_1.Types.Map, true)); builtins.addContractInterface('ForwardValueConstructor', new ForwardValueConstructorInterface()); }; //# sourceMappingURL=data:application/json;charset=utf8;base64,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ZS9idWlsdGlucy9jb250cmFjdC9mb3J3YXJkVmFsdWUvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBUeXBlcyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTY3JpcHRCdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vc2InO1xuaW1wb3J0IHsgVmlzaXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQnVpbHRpbkluc3RhbmNlT2YgfSBmcm9tICcuLi8uLi9CdWlsdGluSW5zdGFuY2VPZic7XG5pbXBvcnQgeyBCdWlsdGluSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vQnVpbHRpbkludGVyZmFjZSc7XG5pbXBvcnQgeyBCdWlsdGlucyB9IGZyb20gJy4uLy4uL0J1aWx0aW5zJztcbmltcG9ydCB7IEZvcndhcmRWYWx1ZUFzIH0gZnJvbSAnLi9Gb3J3YXJkVmFsdWVBcyc7XG5cbmNsYXNzIEZvcndhcmRWYWx1ZUludGVyZmFjZSBleHRlbmRzIEJ1aWx0aW5JbnRlcmZhY2Uge31cbmNsYXNzIEZvcndhcmRWYWx1ZVZhbHVlIGV4dGVuZHMgQnVpbHRpbkluc3RhbmNlT2Yge1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZSA9ICdGb3J3YXJkVmFsdWVDb25zdHJ1Y3Rvcic7XG5cbiAgcHVibGljIGVtaXRJbnN0YW5jZU9mKHNiOiBTY3JpcHRCdWlsZGVyLCBub2RlOiB0cy5FeHByZXNzaW9uLCBvcHRpb25zSW46IFZpc2l0T3B0aW9ucyk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBzYi5wdXNoVmFsdWVPcHRpb25zKG9wdGlvbnNJbik7XG4gICAgLy8gW3ZhbF1cbiAgICBzYi52aXNpdChub2RlLCBvcHRpb25zKTtcbiAgICBpZiAob3B0aW9uc0luLnB1c2hWYWx1ZSkge1xuICAgICAgLy8gW2Jvb2xlYW5dXG4gICAgICBzYi5lbWl0SGVscGVyKG5vZGUsIG9wdGlvbnMsIHNiLmhlbHBlcnMuaXNGb3J3YXJkVmFsdWUpO1xuICAgICAgLy8gW3ZhbF1cbiAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9ucywgc2IuaGVscGVycy53cmFwQm9vbGVhbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFtdXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgc2IuZW1pdE9wKG5vZGUsICdEUk9QJyk7XG4gICAgfVxuICB9XG59XG5jbGFzcyBGb3J3YXJkVmFsdWVDb25zdHJ1Y3RvckludGVyZmFjZSBleHRlbmRzIEJ1aWx0aW5JbnRlcmZhY2Uge31cblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIGV4cG9ydC1uYW1lXG5leHBvcnQgY29uc3QgYWRkID0gKGJ1aWx0aW5zOiBCdWlsdGlucyk6IHZvaWQgPT4ge1xuICBidWlsdGlucy5hZGRDb250cmFjdEludGVyZmFjZSgnRm9yd2FyZFZhbHVlJywgbmV3IEZvcndhcmRWYWx1ZUludGVyZmFjZSgpKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RWYWx1ZSgnRm9yd2FyZFZhbHVlJywgbmV3IEZvcndhcmRWYWx1ZVZhbHVlKCkpO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcignRm9yd2FyZFZhbHVlJywgJ2FzU3RyaW5nJywgbmV3IEZvcndhcmRWYWx1ZUFzKFR5cGVzLlN0cmluZykpO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcignRm9yd2FyZFZhbHVlJywgJ2FzU3RyaW5nTnVsbGFibGUnLCBuZXcgRm9yd2FyZFZhbHVlQXMoVHlwZXMuU3RyaW5nLCB0cnVlKSk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0TWVtYmVyKCdGb3J3YXJkVmFsdWUnLCAnYXNOdW1iZXInLCBuZXcgRm9yd2FyZFZhbHVlQXMoVHlwZXMuTnVtYmVyKSk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0TWVtYmVyKCdGb3J3YXJkVmFsdWUnLCAnYXNOdW1iZXJOdWxsYWJsZScsIG5ldyBGb3J3YXJkVmFsdWVBcyhUeXBlcy5OdW1iZXIsIHRydWUpKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RNZW1iZXIoJ0ZvcndhcmRWYWx1ZScsICdhc0Jvb2xlYW4nLCBuZXcgRm9yd2FyZFZhbHVlQXMoVHlwZXMuQm9vbGVhbikpO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcignRm9yd2FyZFZhbHVlJywgJ2FzQnVmZmVyJywgbmV3IEZvcndhcmRWYWx1ZUFzKFR5cGVzLkJ1ZmZlcikpO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcignRm9yd2FyZFZhbHVlJywgJ2FzQnVmZmVyTnVsbGFibGUnLCBuZXcgRm9yd2FyZFZhbHVlQXMoVHlwZXMuQnVmZmVyLCB0cnVlKSk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0TWVtYmVyKCdGb3J3YXJkVmFsdWUnLCAnYXNBZGRyZXNzJywgbmV3IEZvcndhcmRWYWx1ZUFzKFR5cGVzLkJ1ZmZlcikpO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcignRm9yd2FyZFZhbHVlJywgJ2FzQWRkcmVzc051bGxhYmxlJywgbmV3IEZvcndhcmRWYWx1ZUFzKFR5cGVzLkJ1ZmZlciwgdHJ1ZSkpO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcignRm9yd2FyZFZhbHVlJywgJ2FzSGFzaDI1NicsIG5ldyBGb3J3YXJkVmFsdWVBcyhUeXBlcy5CdWZmZXIpKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RNZW1iZXIoJ0ZvcndhcmRWYWx1ZScsICdhc0hhc2gyNTZOdWxsYWJsZScsIG5ldyBGb3J3YXJkVmFsdWVBcyhUeXBlcy5CdWZmZXIsIHRydWUpKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RNZW1iZXIoJ0ZvcndhcmRWYWx1ZScsICdhc1B1YmxpY0tleScsIG5ldyBGb3J3YXJkVmFsdWVBcyhUeXBlcy5CdWZmZXIpKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RNZW1iZXIoJ0ZvcndhcmRWYWx1ZScsICdhc1B1YmxpY0tleU51bGxhYmxlJywgbmV3IEZvcndhcmRWYWx1ZUFzKFR5cGVzLkJ1ZmZlciwgdHJ1ZSkpO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcignRm9yd2FyZFZhbHVlJywgJ2FzQXJyYXknLCBuZXcgRm9yd2FyZFZhbHVlQXMoVHlwZXMuQXJyYXkpKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RNZW1iZXIoJ0ZvcndhcmRWYWx1ZScsICdhc0FycmF5TnVsbGFibGUnLCBuZXcgRm9yd2FyZFZhbHVlQXMoVHlwZXMuQXJyYXksIHRydWUpKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RNZW1iZXIoJ0ZvcndhcmRWYWx1ZScsICdhc01hcCcsIG5ldyBGb3J3YXJkVmFsdWVBcyhUeXBlcy5NYXApKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RNZW1iZXIoJ0ZvcndhcmRWYWx1ZScsICdhc01hcE51bGxhYmxlJywgbmV3IEZvcndhcmRWYWx1ZUFzKFR5cGVzLk1hcCwgdHJ1ZSkpO1xuICBidWlsdGlucy5hZGRDb250cmFjdEludGVyZmFjZSgnRm9yd2FyZFZhbHVlQ29uc3RydWN0b3InLCBuZXcgRm9yd2FyZFZhbHVlQ29uc3RydWN0b3JJbnRlcmZhY2UoKSk7XG59O1xuIl19