UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

32 lines (30 loc) 5.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ts_utils_1 = require("@neo-one/ts-utils"); exports.createWrapParam = (sb) => (param, innerOptions) => { let type = sb.context.analysis.getType(param); if (type !== undefined && ts_utils_1.tsUtils.parameter.isRestParameter(param)) { type = ts_utils_1.tsUtils.type_.getArrayType(type); } sb.emitHelper(param, innerOptions, sb.helpers.wrapValRecursive({ type, checkValue: true, optional: ts_utils_1.tsUtils.initializer.getInitializer(param) !== undefined, })); }; exports.findSuperDeployPropInfo = (contractInfo) => { const superSmartContract = contractInfo.superSmartContract; if (superSmartContract === undefined) { return undefined; } const superDeployPropInfo = superSmartContract.propInfos.find((propInfo) => propInfo.type === 'deploy'); if (superDeployPropInfo !== undefined) { return [superSmartContract, superDeployPropInfo]; } return exports.findSuperDeployPropInfo(superSmartContract); }; exports.findDeployInfo = (contractInfo) => { const deployInfo = contractInfo.propInfos.find((propInfo) => propInfo.type === 'deploy'); return deployInfo === undefined ? exports.findSuperDeployPropInfo(contractInfo) : [contractInfo, deployInfo]; }; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0RBQTRDO0FBTS9CLFFBQUEsZUFBZSxHQUFHLENBQUMsRUFBaUIsRUFBRSxFQUFFLENBQUMsQ0FDcEQsS0FBZ0UsRUFDaEUsWUFBMEIsRUFDMUIsRUFBRTtJQUNGLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksa0JBQU8sQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ2xFLElBQUksR0FBRyxrQkFBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekM7SUFFRCxFQUFFLENBQUMsVUFBVSxDQUNYLEtBQUssRUFDTCxZQUFZLEVBQ1osRUFBRSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztRQUMxQixJQUFJO1FBQ0osVUFBVSxFQUFFLElBQUk7UUFDaEIsUUFBUSxFQUFFLGtCQUFPLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxTQUFTO0tBQ2xFLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRVcsUUFBQSx1QkFBdUIsR0FBRyxDQUNyQyxZQUEwQixFQUMyQixFQUFFO0lBQ3ZELE1BQU0sa0JBQWtCLEdBQUcsWUFBWSxDQUFDLGtCQUFrQixDQUFDO0lBQzNELElBQUksa0JBQWtCLEtBQUssU0FBUyxFQUFFO1FBQ3BDLE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0lBRUQsTUFBTSxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUMzRCxDQUFDLFFBQVEsRUFBOEIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUNyRSxDQUFDO0lBQ0YsSUFBSSxtQkFBbUIsS0FBSyxTQUFTLEVBQUU7UUFDckMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLG1CQUFtQixDQUFVLENBQUM7S0FDM0Q7SUFFRCxPQUFPLCtCQUF1QixDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDckQsQ0FBQyxDQUFDO0FBRVcsUUFBQSxjQUFjLEdBQUcsQ0FBQyxZQUEwQixFQUF1RCxFQUFFO0lBQ2hILE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUE4QixFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztJQUVySCxPQUFPLFVBQVUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLCtCQUF1QixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBRSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQVcsQ0FBQztBQUNsSCxDQUFDLENBQUMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9oZWxwZXIvY29udHJhY3QvdXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0c1V0aWxzIH0gZnJvbSAnQG5lby1vbmUvdHMtdXRpbHMnO1xuaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHsgQ29udHJhY3RJbmZvLCBEZXBsb3lQcm9wSW5mbyB9IGZyb20gJy4uLy4uLy4uL2NvbnRyYWN0JztcbmltcG9ydCB7IFNjcmlwdEJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zYic7XG5pbXBvcnQgeyBWaXNpdE9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVXcmFwUGFyYW0gPSAoc2I6IFNjcmlwdEJ1aWxkZXIpID0+IChcbiAgcGFyYW06IHRzLlBhcmFtZXRlckRlY2xhcmF0aW9uIHwgdHMuUGFyYW1ldGVyUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgaW5uZXJPcHRpb25zOiBWaXNpdE9wdGlvbnMsXG4pID0+IHtcbiAgbGV0IHR5cGUgPSBzYi5jb250ZXh0LmFuYWx5c2lzLmdldFR5cGUocGFyYW0pO1xuICBpZiAodHlwZSAhPT0gdW5kZWZpbmVkICYmIHRzVXRpbHMucGFyYW1ldGVyLmlzUmVzdFBhcmFtZXRlcihwYXJhbSkpIHtcbiAgICB0eXBlID0gdHNVdGlscy50eXBlXy5nZXRBcnJheVR5cGUodHlwZSk7XG4gIH1cblxuICBzYi5lbWl0SGVscGVyKFxuICAgIHBhcmFtLFxuICAgIGlubmVyT3B0aW9ucyxcbiAgICBzYi5oZWxwZXJzLndyYXBWYWxSZWN1cnNpdmUoe1xuICAgICAgdHlwZSxcbiAgICAgIGNoZWNrVmFsdWU6IHRydWUsXG4gICAgICBvcHRpb25hbDogdHNVdGlscy5pbml0aWFsaXplci5nZXRJbml0aWFsaXplcihwYXJhbSkgIT09IHVuZGVmaW5lZCxcbiAgICB9KSxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kU3VwZXJEZXBsb3lQcm9wSW5mbyA9IChcbiAgY29udHJhY3RJbmZvOiBDb250cmFjdEluZm8sXG4pOiByZWFkb25seSBbQ29udHJhY3RJbmZvLCBEZXBsb3lQcm9wSW5mb10gfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBzdXBlclNtYXJ0Q29udHJhY3QgPSBjb250cmFjdEluZm8uc3VwZXJTbWFydENvbnRyYWN0O1xuICBpZiAoc3VwZXJTbWFydENvbnRyYWN0ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3Qgc3VwZXJEZXBsb3lQcm9wSW5mbyA9IHN1cGVyU21hcnRDb250cmFjdC5wcm9wSW5mb3MuZmluZChcbiAgICAocHJvcEluZm8pOiBwcm9wSW5mbyBpcyBEZXBsb3lQcm9wSW5mbyA9PiBwcm9wSW5mby50eXBlID09PSAnZGVwbG95JyxcbiAgKTtcbiAgaWYgKHN1cGVyRGVwbG95UHJvcEluZm8gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBbc3VwZXJTbWFydENvbnRyYWN0LCBzdXBlckRlcGxveVByb3BJbmZvXSBhcyBjb25zdDtcbiAgfVxuXG4gIHJldHVybiBmaW5kU3VwZXJEZXBsb3lQcm9wSW5mbyhzdXBlclNtYXJ0Q29udHJhY3QpO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmREZXBsb3lJbmZvID0gKGNvbnRyYWN0SW5mbzogQ29udHJhY3RJbmZvKTogcmVhZG9ubHkgW0NvbnRyYWN0SW5mbywgRGVwbG95UHJvcEluZm9dIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgZGVwbG95SW5mbyA9IGNvbnRyYWN0SW5mby5wcm9wSW5mb3MuZmluZCgocHJvcEluZm8pOiBwcm9wSW5mbyBpcyBEZXBsb3lQcm9wSW5mbyA9PiBwcm9wSW5mby50eXBlID09PSAnZGVwbG95Jyk7XG5cbiAgcmV0dXJuIGRlcGxveUluZm8gPT09IHVuZGVmaW5lZCA/IGZpbmRTdXBlckRlcGxveVByb3BJbmZvKGNvbnRyYWN0SW5mbykgOiAoW2NvbnRyYWN0SW5mbywgZGVwbG95SW5mb10gYXMgY29uc3QpO1xufTtcbiJdfQ==