@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
29 lines (27 loc) • 7.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const constants_1 = require("../../constants");
const BuiltinInterface_1 = require("../BuiltinInterface");
const SysCallInstanceMemberPrimitive_1 = require("./SysCallInstanceMemberPrimitive");
const ValueFor_1 = require("./ValueFor");
const ValueInstanceOf_1 = require("./ValueInstanceOf");
class HeaderInterface extends BuiltinInterface_1.BuiltinInterface {
}
class HeaderConstructorInterface extends BuiltinInterface_1.BuiltinInterface {
}
exports.add = (builtins) => {
builtins.addContractInterface('Header', new HeaderInterface());
builtins.addContractValue('Header', new ValueInstanceOf_1.ValueInstanceOf('HeaderConstructor', (sb) => sb.helpers.isHeader));
builtins.addContractMember('Header', 'hash', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Header.GetHash', constants_1.Types.Header, constants_1.Types.Buffer));
builtins.addContractMember('Header', 'version', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Header.GetVersion', constants_1.Types.Header, constants_1.Types.Number));
builtins.addContractMember('Header', 'previousHash', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Header.GetPrevHash', constants_1.Types.Header, constants_1.Types.Buffer));
builtins.addContractMember('Header', 'index', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Header.GetIndex', constants_1.Types.Header, constants_1.Types.Number));
builtins.addContractMember('Header', 'merkleRoot', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Header.GetMerkleRoot', constants_1.Types.Header, constants_1.Types.Buffer));
builtins.addContractMember('Header', 'time', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Header.GetTimestamp', constants_1.Types.Header, constants_1.Types.Number));
builtins.addContractMember('Header', 'nextConsensus', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Header.GetNextConsensus', constants_1.Types.Header, constants_1.Types.Buffer));
builtins.addContractInterface('HeaderConstructor', new HeaderConstructorInterface());
builtins.addContractMember('HeaderConstructor', 'for', new ValueFor_1.ValueFor('Neo.Blockchain.GetHeader', (sb, node, options) => {
sb.emitHelper(node, options, sb.helpers.wrapHeader);
}));
};
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtDQUF3QztBQUN4QywwREFBdUQ7QUFFdkQscUZBQWtGO0FBQ2xGLHlDQUFzQztBQUN0Qyx1REFBb0Q7QUFFcEQsTUFBTSxlQUFnQixTQUFRLG1DQUFnQjtDQUFHO0FBQ2pELE1BQU0sMEJBQTJCLFNBQVEsbUNBQWdCO0NBQUc7QUFHL0MsUUFBQSxHQUFHLEdBQUcsQ0FBQyxRQUFrQixFQUFRLEVBQUU7SUFDOUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxJQUFJLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDL0QsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLGlDQUFlLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMzRyxRQUFRLENBQUMsaUJBQWlCLENBQ3hCLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSwrREFBOEIsQ0FBQyxvQkFBb0IsRUFBRSxpQkFBSyxDQUFDLE1BQU0sRUFBRSxpQkFBSyxDQUFDLE1BQU0sQ0FBQyxDQUNyRixDQUFDO0lBQ0YsUUFBUSxDQUFDLGlCQUFpQixDQUN4QixRQUFRLEVBQ1IsU0FBUyxFQUNULElBQUksK0RBQThCLENBQUMsdUJBQXVCLEVBQUUsaUJBQUssQ0FBQyxNQUFNLEVBQUUsaUJBQUssQ0FBQyxNQUFNLENBQUMsQ0FDeEYsQ0FBQztJQUNGLFFBQVEsQ0FBQyxpQkFBaUIsQ0FDeEIsUUFBUSxFQUNSLGNBQWMsRUFDZCxJQUFJLCtEQUE4QixDQUFDLHdCQUF3QixFQUFFLGlCQUFLLENBQUMsTUFBTSxFQUFFLGlCQUFLLENBQUMsTUFBTSxDQUFDLENBQ3pGLENBQUM7SUFDRixRQUFRLENBQUMsaUJBQWlCLENBQ3hCLFFBQVEsRUFDUixPQUFPLEVBQ1AsSUFBSSwrREFBOEIsQ0FBQyxxQkFBcUIsRUFBRSxpQkFBSyxDQUFDLE1BQU0sRUFBRSxpQkFBSyxDQUFDLE1BQU0sQ0FBQyxDQUN0RixDQUFDO0lBQ0YsUUFBUSxDQUFDLGlCQUFpQixDQUN4QixRQUFRLEVBQ1IsWUFBWSxFQUNaLElBQUksK0RBQThCLENBQUMsMEJBQTBCLEVBQUUsaUJBQUssQ0FBQyxNQUFNLEVBQUUsaUJBQUssQ0FBQyxNQUFNLENBQUMsQ0FDM0YsQ0FBQztJQUNGLFFBQVEsQ0FBQyxpQkFBaUIsQ0FDeEIsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLCtEQUE4QixDQUFDLHlCQUF5QixFQUFFLGlCQUFLLENBQUMsTUFBTSxFQUFFLGlCQUFLLENBQUMsTUFBTSxDQUFDLENBQzFGLENBQUM7SUFDRixRQUFRLENBQUMsaUJBQWlCLENBQ3hCLFFBQVEsRUFDUixlQUFlLEVBQ2YsSUFBSSwrREFBOEIsQ0FBQyw2QkFBNkIsRUFBRSxpQkFBSyxDQUFDLE1BQU0sRUFBRSxpQkFBSyxDQUFDLE1BQU0sQ0FBQyxDQUM5RixDQUFDO0lBRUYsUUFBUSxDQUFDLG9CQUFvQixDQUFDLG1CQUFtQixFQUFFLElBQUksMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLFFBQVEsQ0FBQyxpQkFBaUIsQ0FDeEIsbUJBQW1CLEVBQ25CLEtBQUssRUFDTCxJQUFJLG1CQUFRLENBQUMsMEJBQTBCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQzdELEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RELENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDLENBQUMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9idWlsdGlucy9jb250cmFjdC9oZWFkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBCdWlsdGluSW50ZXJmYWNlIH0gZnJvbSAnLi4vQnVpbHRpbkludGVyZmFjZSc7XG5pbXBvcnQgeyBCdWlsdGlucyB9IGZyb20gJy4uL0J1aWx0aW5zJztcbmltcG9ydCB7IFN5c0NhbGxJbnN0YW5jZU1lbWJlclByaW1pdGl2ZSB9IGZyb20gJy4vU3lzQ2FsbEluc3RhbmNlTWVtYmVyUHJpbWl0aXZlJztcbmltcG9ydCB7IFZhbHVlRm9yIH0gZnJvbSAnLi9WYWx1ZUZvcic7XG5pbXBvcnQgeyBWYWx1ZUluc3RhbmNlT2YgfSBmcm9tICcuL1ZhbHVlSW5zdGFuY2VPZic7XG5cbmNsYXNzIEhlYWRlckludGVyZmFjZSBleHRlbmRzIEJ1aWx0aW5JbnRlcmZhY2Uge31cbmNsYXNzIEhlYWRlckNvbnN0cnVjdG9ySW50ZXJmYWNlIGV4dGVuZHMgQnVpbHRpbkludGVyZmFjZSB7fVxuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgZXhwb3J0LW5hbWVcbmV4cG9ydCBjb25zdCBhZGQgPSAoYnVpbHRpbnM6IEJ1aWx0aW5zKTogdm9pZCA9PiB7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0SW50ZXJmYWNlKCdIZWFkZXInLCBuZXcgSGVhZGVySW50ZXJmYWNlKCkpO1xuICBidWlsdGlucy5hZGRDb250cmFjdFZhbHVlKCdIZWFkZXInLCBuZXcgVmFsdWVJbnN0YW5jZU9mKCdIZWFkZXJDb25zdHJ1Y3RvcicsIChzYikgPT4gc2IuaGVscGVycy5pc0hlYWRlcikpO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnSGVhZGVyJyxcbiAgICAnaGFzaCcsXG4gICAgbmV3IFN5c0NhbGxJbnN0YW5jZU1lbWJlclByaW1pdGl2ZSgnTmVvLkhlYWRlci5HZXRIYXNoJywgVHlwZXMuSGVhZGVyLCBUeXBlcy5CdWZmZXIpLFxuICApO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnSGVhZGVyJyxcbiAgICAndmVyc2lvbicsXG4gICAgbmV3IFN5c0NhbGxJbnN0YW5jZU1lbWJlclByaW1pdGl2ZSgnTmVvLkhlYWRlci5HZXRWZXJzaW9uJywgVHlwZXMuSGVhZGVyLCBUeXBlcy5OdW1iZXIpLFxuICApO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnSGVhZGVyJyxcbiAgICAncHJldmlvdXNIYXNoJyxcbiAgICBuZXcgU3lzQ2FsbEluc3RhbmNlTWVtYmVyUHJpbWl0aXZlKCdOZW8uSGVhZGVyLkdldFByZXZIYXNoJywgVHlwZXMuSGVhZGVyLCBUeXBlcy5CdWZmZXIpLFxuICApO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnSGVhZGVyJyxcbiAgICAnaW5kZXgnLFxuICAgIG5ldyBTeXNDYWxsSW5zdGFuY2VNZW1iZXJQcmltaXRpdmUoJ05lby5IZWFkZXIuR2V0SW5kZXgnLCBUeXBlcy5IZWFkZXIsIFR5cGVzLk51bWJlciksXG4gICk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0TWVtYmVyKFxuICAgICdIZWFkZXInLFxuICAgICdtZXJrbGVSb290JyxcbiAgICBuZXcgU3lzQ2FsbEluc3RhbmNlTWVtYmVyUHJpbWl0aXZlKCdOZW8uSGVhZGVyLkdldE1lcmtsZVJvb3QnLCBUeXBlcy5IZWFkZXIsIFR5cGVzLkJ1ZmZlciksXG4gICk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0TWVtYmVyKFxuICAgICdIZWFkZXInLFxuICAgICd0aW1lJyxcbiAgICBuZXcgU3lzQ2FsbEluc3RhbmNlTWVtYmVyUHJpbWl0aXZlKCdOZW8uSGVhZGVyLkdldFRpbWVzdGFtcCcsIFR5cGVzLkhlYWRlciwgVHlwZXMuTnVtYmVyKSxcbiAgKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RNZW1iZXIoXG4gICAgJ0hlYWRlcicsXG4gICAgJ25leHRDb25zZW5zdXMnLFxuICAgIG5ldyBTeXNDYWxsSW5zdGFuY2VNZW1iZXJQcmltaXRpdmUoJ05lby5IZWFkZXIuR2V0TmV4dENvbnNlbnN1cycsIFR5cGVzLkhlYWRlciwgVHlwZXMuQnVmZmVyKSxcbiAgKTtcblxuICBidWlsdGlucy5hZGRDb250cmFjdEludGVyZmFjZSgnSGVhZGVyQ29uc3RydWN0b3InLCBuZXcgSGVhZGVyQ29uc3RydWN0b3JJbnRlcmZhY2UoKSk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0TWVtYmVyKFxuICAgICdIZWFkZXJDb25zdHJ1Y3RvcicsXG4gICAgJ2ZvcicsXG4gICAgbmV3IFZhbHVlRm9yKCdOZW8uQmxvY2tjaGFpbi5HZXRIZWFkZXInLCAoc2IsIG5vZGUsIG9wdGlvbnMpID0+IHtcbiAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9ucywgc2IuaGVscGVycy53cmFwSGVhZGVyKTtcbiAgICB9KSxcbiAgKTtcbn07XG4iXX0=