@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
73 lines (71 loc) • 12.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var BuiltinType;
(function (BuiltinType) {
BuiltinType["Value"] = "Value";
BuiltinType["ValueObject"] = "ValueObject";
BuiltinType["MemberValue"] = "MemberValue";
BuiltinType["InstanceMemberValue"] = "InstanceMemberValue";
BuiltinType["Call"] = "Call";
BuiltinType["MemberCall"] = "MemberCall";
BuiltinType["InstanceMemberCall"] = "InstanceMemberCall";
BuiltinType["Template"] = "Template";
BuiltinType["MemberTemplate"] = "MemberTemplate";
BuiltinType["InstanceMemberTemplate"] = "InstanceMemberTemplate";
BuiltinType["InstanceOf"] = "InstanceOf";
BuiltinType["Interface"] = "Interface";
BuiltinType["New"] = "New";
})(BuiltinType = exports.BuiltinType || (exports.BuiltinType = {}));
function isBuiltinInterface(value) {
return value.types.has(BuiltinType.Interface);
}
exports.isBuiltinInterface = isBuiltinInterface;
function isBuiltinValue(value) {
return value.types.has(BuiltinType.Value);
}
exports.isBuiltinValue = isBuiltinValue;
function isBuiltinMemberValue(value) {
return value.types.has(BuiltinType.MemberValue);
}
exports.isBuiltinMemberValue = isBuiltinMemberValue;
function isBuiltinInstanceMemberValue(value) {
return value.types.has(BuiltinType.InstanceMemberValue);
}
exports.isBuiltinInstanceMemberValue = isBuiltinInstanceMemberValue;
function isBuiltinCall(value) {
return value.types.has(BuiltinType.Call);
}
exports.isBuiltinCall = isBuiltinCall;
function isBuiltinTemplate(value) {
return value.types.has(BuiltinType.Template);
}
exports.isBuiltinTemplate = isBuiltinTemplate;
function isBuiltinMemberTemplate(value) {
return value.types.has(BuiltinType.MemberTemplate);
}
exports.isBuiltinMemberTemplate = isBuiltinMemberTemplate;
function isBuiltinInstanceMemberTemplate(value) {
return value.types.has(BuiltinType.InstanceMemberTemplate);
}
exports.isBuiltinInstanceMemberTemplate = isBuiltinInstanceMemberTemplate;
function isBuiltinMemberCall(value) {
return value.types.has(BuiltinType.MemberCall);
}
exports.isBuiltinMemberCall = isBuiltinMemberCall;
function isBuiltinInstanceMemberCall(value) {
return value.types.has(BuiltinType.InstanceMemberCall);
}
exports.isBuiltinInstanceMemberCall = isBuiltinInstanceMemberCall;
function isBuiltinInstanceOf(value) {
return value.types.has(BuiltinType.InstanceOf);
}
exports.isBuiltinInstanceOf = isBuiltinInstanceOf;
function isBuiltinNew(value) {
return value.types.has(BuiltinType.New);
}
exports.isBuiltinNew = isBuiltinNew;
function isBuiltinValueObject(value) {
return value.types.has(BuiltinType.ValueObject);
}
exports.isBuiltinValueObject = isBuiltinValueObject;
//# sourceMappingURL=data:application/json;charset=utf8;base64,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LEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRkQsb0RBRUMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9idWlsdGlucy90eXBlcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7IFNjcmlwdEJ1aWxkZXIgfSBmcm9tICcuLi9zYic7XG5pbXBvcnQgeyBWaXNpdE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBlbnVtIEJ1aWx0aW5UeXBlIHtcbiAgVmFsdWUgPSAnVmFsdWUnLFxuICBWYWx1ZU9iamVjdCA9ICdWYWx1ZU9iamVjdCcsXG4gIE1lbWJlclZhbHVlID0gJ01lbWJlclZhbHVlJyxcbiAgSW5zdGFuY2VNZW1iZXJWYWx1ZSA9ICdJbnN0YW5jZU1lbWJlclZhbHVlJyxcbiAgQ2FsbCA9ICdDYWxsJyxcbiAgTWVtYmVyQ2FsbCA9ICdNZW1iZXJDYWxsJyxcbiAgSW5zdGFuY2VNZW1iZXJDYWxsID0gJ0luc3RhbmNlTWVtYmVyQ2FsbCcsXG4gIFRlbXBsYXRlID0gJ1RlbXBsYXRlJyxcbiAgTWVtYmVyVGVtcGxhdGUgPSAnTWVtYmVyVGVtcGxhdGUnLFxuICBJbnN0YW5jZU1lbWJlclRlbXBsYXRlID0gJ0luc3RhbmNlTWVtYmVyVGVtcGxhdGUnLFxuICBJbnN0YW5jZU9mID0gJ0luc3RhbmNlT2YnLFxuICBJbnRlcmZhY2UgPSAnSW50ZXJmYWNlJyxcbiAgTmV3ID0gJ05ldycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbHRpbiB7XG4gIHJlYWRvbmx5IHR5cGVzOiBTZXQ8QnVpbHRpblR5cGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWx0aW5JbnRlcmZhY2UgZXh0ZW5kcyBCdWlsdGluIHtcbiAgcmVhZG9ubHkgY2FuSW1wbGVtZW50OiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCdWlsdGluSW50ZXJmYWNlKHZhbHVlOiBCdWlsdGluKTogdmFsdWUgaXMgQnVpbHRpbkludGVyZmFjZSB7XG4gIHJldHVybiB2YWx1ZS50eXBlcy5oYXMoQnVpbHRpblR5cGUuSW50ZXJmYWNlKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsdGluVmFsdWUgZXh0ZW5kcyBCdWlsdGluIHtcbiAgcmVhZG9ubHkgZW1pdFZhbHVlOiAoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLklkZW50aWZpZXIsIG9wdGlvbnM6IFZpc2l0T3B0aW9ucykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQnVpbHRpblZhbHVlKHZhbHVlOiBCdWlsdGluKTogdmFsdWUgaXMgQnVpbHRpblZhbHVlIHtcbiAgcmV0dXJuIHZhbHVlLnR5cGVzLmhhcyhCdWlsdGluVHlwZS5WYWx1ZSk7XG59XG5cbmV4cG9ydCB0eXBlIE1lbWJlckxpa2VFeHByZXNzaW9uID0gdHMuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uIHwgdHMuRWxlbWVudEFjY2Vzc0V4cHJlc3Npb24gfCB0cy5CaW5kaW5nRWxlbWVudDtcbmV4cG9ydCBpbnRlcmZhY2UgQnVpbHRpbk1lbWJlclZhbHVlIGV4dGVuZHMgQnVpbHRpbiB7XG4gIHJlYWRvbmx5IGVtaXRWYWx1ZTogKHNiOiBTY3JpcHRCdWlsZGVyLCBub2RlOiBNZW1iZXJMaWtlRXhwcmVzc2lvbiwgb3B0aW9uczogVmlzaXRPcHRpb25zKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCdWlsdGluTWVtYmVyVmFsdWUodmFsdWU6IEJ1aWx0aW4pOiB2YWx1ZSBpcyBCdWlsdGluTWVtYmVyVmFsdWUge1xuICByZXR1cm4gdmFsdWUudHlwZXMuaGFzKEJ1aWx0aW5UeXBlLk1lbWJlclZhbHVlKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsdGluSW5zdGFuY2VNZW1iZXJWYWx1ZSBleHRlbmRzIEJ1aWx0aW4ge1xuICByZWFkb25seSBlbWl0VmFsdWU6IChzYjogU2NyaXB0QnVpbGRlciwgbm9kZTogTWVtYmVyTGlrZUV4cHJlc3Npb24sIG9wdGlvbnM6IFZpc2l0T3B0aW9ucywgdmlzaXRlZDogYm9vbGVhbikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQnVpbHRpbkluc3RhbmNlTWVtYmVyVmFsdWUodmFsdWU6IEJ1aWx0aW4pOiB2YWx1ZSBpcyBCdWlsdGluSW5zdGFuY2VNZW1iZXJWYWx1ZSB7XG4gIHJldHVybiB2YWx1ZS50eXBlcy5oYXMoQnVpbHRpblR5cGUuSW5zdGFuY2VNZW1iZXJWYWx1ZSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbHRpbkNhbGwgZXh0ZW5kcyBCdWlsdGluIHtcbiAgcmVhZG9ubHkgZW1pdENhbGw6IChzYjogU2NyaXB0QnVpbGRlciwgbm9kZTogdHMuQ2FsbEV4cHJlc3Npb24sIG9wdGlvbnM6IFZpc2l0T3B0aW9ucykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQnVpbHRpbkNhbGwodmFsdWU6IEJ1aWx0aW4pOiB2YWx1ZSBpcyBCdWlsdGluQ2FsbCB7XG4gIHJldHVybiB2YWx1ZS50eXBlcy5oYXMoQnVpbHRpblR5cGUuQ2FsbCk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbHRpblRlbXBsYXRlIGV4dGVuZHMgQnVpbHRpbiB7XG4gIHJlYWRvbmx5IGVtaXRDYWxsOiAoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbiwgb3B0aW9uczogVmlzaXRPcHRpb25zKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCdWlsdGluVGVtcGxhdGUodmFsdWU6IEJ1aWx0aW4pOiB2YWx1ZSBpcyBCdWlsdGluVGVtcGxhdGUge1xuICByZXR1cm4gdmFsdWUudHlwZXMuaGFzKEJ1aWx0aW5UeXBlLlRlbXBsYXRlKTtcbn1cblxuZXhwb3J0IHR5cGUgQ2FsbE1lbWJlckxpa2VFeHByZXNzaW9uID0gdHMuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uIHwgdHMuRWxlbWVudEFjY2Vzc0V4cHJlc3Npb247XG5leHBvcnQgaW50ZXJmYWNlIEJ1aWx0aW5NZW1iZXJUZW1wbGF0ZSBleHRlbmRzIEJ1aWx0aW4ge1xuICByZWFkb25seSBlbWl0Q2FsbDogKFxuICAgIHNiOiBTY3JpcHRCdWlsZGVyLFxuICAgIGZ1bmM6IENhbGxNZW1iZXJMaWtlRXhwcmVzc2lvbixcbiAgICBub2RlOiB0cy5UYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24sXG4gICAgb3B0aW9uczogVmlzaXRPcHRpb25zLFxuICApID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0J1aWx0aW5NZW1iZXJUZW1wbGF0ZSh2YWx1ZTogQnVpbHRpbik6IHZhbHVlIGlzIEJ1aWx0aW5NZW1iZXJUZW1wbGF0ZSB7XG4gIHJldHVybiB2YWx1ZS50eXBlcy5oYXMoQnVpbHRpblR5cGUuTWVtYmVyVGVtcGxhdGUpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWx0aW5JbnN0YW5jZU1lbWJlclRlbXBsYXRlIGV4dGVuZHMgQnVpbHRpbiB7XG4gIHJlYWRvbmx5IGNhbkNhbGw6IChcbiAgICBzYjogU2NyaXB0QnVpbGRlcixcbiAgICBmdW5jOiBDYWxsTWVtYmVyTGlrZUV4cHJlc3Npb24sXG4gICAgbm9kZTogdHMuVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uLFxuICAgIG9wdGlvbnM6IFZpc2l0T3B0aW9ucyxcbiAgKSA9PiBib29sZWFuO1xuICByZWFkb25seSBlbWl0Q2FsbDogKFxuICAgIHNiOiBTY3JpcHRCdWlsZGVyLFxuICAgIGZ1bmM6IENhbGxNZW1iZXJMaWtlRXhwcmVzc2lvbixcbiAgICBub2RlOiB0cy5UYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24sXG4gICAgb3B0aW9uczogVmlzaXRPcHRpb25zLFxuICAgIHZpc2l0ZWQ6IGJvb2xlYW4sXG4gICkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQnVpbHRpbkluc3RhbmNlTWVtYmVyVGVtcGxhdGUodmFsdWU6IEJ1aWx0aW4pOiB2YWx1ZSBpcyBCdWlsdGluSW5zdGFuY2VNZW1iZXJUZW1wbGF0ZSB7XG4gIHJldHVybiB2YWx1ZS50eXBlcy5oYXMoQnVpbHRpblR5cGUuSW5zdGFuY2VNZW1iZXJUZW1wbGF0ZSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbHRpbk1lbWJlckNhbGwgZXh0ZW5kcyBCdWlsdGluIHtcbiAgcmVhZG9ubHkgZW1pdENhbGw6IChcbiAgICBzYjogU2NyaXB0QnVpbGRlcixcbiAgICBmdW5jOiBDYWxsTWVtYmVyTGlrZUV4cHJlc3Npb24sXG4gICAgbm9kZTogdHMuQ2FsbEV4cHJlc3Npb24sXG4gICAgb3B0aW9uczogVmlzaXRPcHRpb25zLFxuICApID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0J1aWx0aW5NZW1iZXJDYWxsKHZhbHVlOiBCdWlsdGluKTogdmFsdWUgaXMgQnVpbHRpbk1lbWJlckNhbGwge1xuICByZXR1cm4gdmFsdWUudHlwZXMuaGFzKEJ1aWx0aW5UeXBlLk1lbWJlckNhbGwpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWx0aW5JbnN0YW5jZU1lbWJlckNhbGwgZXh0ZW5kcyBCdWlsdGluIHtcbiAgcmVhZG9ubHkgY2FuQ2FsbDogKFxuICAgIHNiOiBTY3JpcHRCdWlsZGVyLFxuICAgIGZ1bmM6IENhbGxNZW1iZXJMaWtlRXhwcmVzc2lvbixcbiAgICBub2RlOiB0cy5DYWxsRXhwcmVzc2lvbixcbiAgICBvcHRpb25zOiBWaXNpdE9wdGlvbnMsXG4gICkgPT4gYm9vbGVhbjtcbiAgcmVhZG9ubHkgZW1pdENhbGw6IChcbiAgICBzYjogU2NyaXB0QnVpbGRlcixcbiAgICBmdW5jOiBDYWxsTWVtYmVyTGlrZUV4cHJlc3Npb24sXG4gICAgbm9kZTogdHMuQ2FsbEV4cHJlc3Npb24sXG4gICAgb3B0aW9uczogVmlzaXRPcHRpb25zLFxuICAgIHZpc2l0ZWQ6IGJvb2xlYW4sXG4gICkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQnVpbHRpbkluc3RhbmNlTWVtYmVyQ2FsbCh2YWx1ZTogQnVpbHRpbik6IHZhbHVlIGlzIEJ1aWx0aW5JbnN0YW5jZU1lbWJlckNhbGwge1xuICByZXR1cm4gdmFsdWUudHlwZXMuaGFzKEJ1aWx0aW5UeXBlLkluc3RhbmNlTWVtYmVyQ2FsbCk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbHRpbkluc3RhbmNlT2YgZXh0ZW5kcyBCdWlsdGluIHtcbiAgcmVhZG9ubHkgZW1pdEluc3RhbmNlT2Y6IChzYjogU2NyaXB0QnVpbGRlciwgbm9kZTogdHMuRXhwcmVzc2lvbiwgb3B0aW9uczogVmlzaXRPcHRpb25zKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCdWlsdGluSW5zdGFuY2VPZih2YWx1ZTogQnVpbHRpbik6IHZhbHVlIGlzIEJ1aWx0aW5JbnN0YW5jZU9mIHtcbiAgcmV0dXJuIHZhbHVlLnR5cGVzLmhhcyhCdWlsdGluVHlwZS5JbnN0YW5jZU9mKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsdGluTmV3IGV4dGVuZHMgQnVpbHRpbkluc3RhbmNlT2Yge1xuICByZWFkb25seSBlbWl0TmV3OiAoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLk5ld0V4cHJlc3Npb24sIG9wdGlvbnM6IFZpc2l0T3B0aW9ucykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQnVpbHRpbk5ldyh2YWx1ZTogQnVpbHRpbik6IHZhbHVlIGlzIEJ1aWx0aW5OZXcge1xuICByZXR1cm4gdmFsdWUudHlwZXMuaGFzKEJ1aWx0aW5UeXBlLk5ldyk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbHRpblZhbHVlT2JqZWN0IGV4dGVuZHMgQnVpbHRpbiB7XG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQnVpbHRpblZhbHVlT2JqZWN0KHZhbHVlOiBCdWlsdGluKTogdmFsdWUgaXMgQnVpbHRpblZhbHVlT2JqZWN0IHtcbiAgcmV0dXJuIHZhbHVlLnR5cGVzLmhhcyhCdWlsdGluVHlwZS5WYWx1ZU9iamVjdCk7XG59XG4iXX0=