@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
23 lines (21 loc) • 4.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const constants_1 = require("../../constants");
const BuiltinInterface_1 = require("../BuiltinInterface");
const SysCallInstanceMemberArray_1 = require("./SysCallInstanceMemberArray");
const ValueFor_1 = require("./ValueFor");
const ValueInstanceOf_1 = require("./ValueInstanceOf");
class BlockInterface extends BuiltinInterface_1.BuiltinInterface {
}
class BlockConstructorInterface extends BuiltinInterface_1.BuiltinInterface {
}
exports.add = (builtins) => {
builtins.addContractInterface('Block', new BlockInterface());
builtins.addContractValue('Block', new ValueInstanceOf_1.ValueInstanceOf('BlockConstructor', (sb) => sb.helpers.isBlock));
builtins.addContractMember('Block', 'transactions', new SysCallInstanceMemberArray_1.SysCallInstanceMemberArray('Neo.Block.GetTransactions', constants_1.Types.Block, constants_1.Types.Transaction));
builtins.addContractInterface('BlockConstructor', new BlockConstructorInterface());
builtins.addContractMember('BlockConstructor', 'for', new ValueFor_1.ValueFor('Neo.Blockchain.GetBlock', (sb, node, options) => {
sb.emitHelper(node, options, sb.helpers.wrapBlock);
}));
};
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJsb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0NBQXdDO0FBQ3hDLDBEQUF1RDtBQUV2RCw2RUFBMEU7QUFDMUUseUNBQXNDO0FBQ3RDLHVEQUFvRDtBQUVwRCxNQUFNLGNBQWUsU0FBUSxtQ0FBZ0I7Q0FBRztBQUNoRCxNQUFNLHlCQUEwQixTQUFRLG1DQUFnQjtDQUFHO0FBRzlDLFFBQUEsR0FBRyxHQUFHLENBQUMsUUFBa0IsRUFBUSxFQUFFO0lBQzlDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzdELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxpQ0FBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDeEcsUUFBUSxDQUFDLGlCQUFpQixDQUN4QixPQUFPLEVBQ1AsY0FBYyxFQUNkLElBQUksdURBQTBCLENBQUMsMkJBQTJCLEVBQUUsaUJBQUssQ0FBQyxLQUFLLEVBQUUsaUJBQUssQ0FBQyxXQUFXLENBQUMsQ0FDNUYsQ0FBQztJQUVGLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLHlCQUF5QixFQUFFLENBQUMsQ0FBQztJQUNuRixRQUFRLENBQUMsaUJBQWlCLENBQ3hCLGtCQUFrQixFQUNsQixLQUFLLEVBQ0wsSUFBSSxtQkFBUSxDQUFDLHlCQUF5QixFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUM1RCxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiZmlsZSI6Im5lby1vbmUtc21hcnQtY29udHJhY3QtY29tcGlsZXIvc3JjL2NvbXBpbGUvYnVpbHRpbnMvY29udHJhY3QvYmxvY2suanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBCdWlsdGluSW50ZXJmYWNlIH0gZnJvbSAnLi4vQnVpbHRpbkludGVyZmFjZSc7XG5pbXBvcnQgeyBCdWlsdGlucyB9IGZyb20gJy4uL0J1aWx0aW5zJztcbmltcG9ydCB7IFN5c0NhbGxJbnN0YW5jZU1lbWJlckFycmF5IH0gZnJvbSAnLi9TeXNDYWxsSW5zdGFuY2VNZW1iZXJBcnJheSc7XG5pbXBvcnQgeyBWYWx1ZUZvciB9IGZyb20gJy4vVmFsdWVGb3InO1xuaW1wb3J0IHsgVmFsdWVJbnN0YW5jZU9mIH0gZnJvbSAnLi9WYWx1ZUluc3RhbmNlT2YnO1xuXG5jbGFzcyBCbG9ja0ludGVyZmFjZSBleHRlbmRzIEJ1aWx0aW5JbnRlcmZhY2Uge31cbmNsYXNzIEJsb2NrQ29uc3RydWN0b3JJbnRlcmZhY2UgZXh0ZW5kcyBCdWlsdGluSW50ZXJmYWNlIHt9XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBleHBvcnQtbmFtZVxuZXhwb3J0IGNvbnN0IGFkZCA9IChidWlsdGluczogQnVpbHRpbnMpOiB2b2lkID0+IHtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RJbnRlcmZhY2UoJ0Jsb2NrJywgbmV3IEJsb2NrSW50ZXJmYWNlKCkpO1xuICBidWlsdGlucy5hZGRDb250cmFjdFZhbHVlKCdCbG9jaycsIG5ldyBWYWx1ZUluc3RhbmNlT2YoJ0Jsb2NrQ29uc3RydWN0b3InLCAoc2IpID0+IHNiLmhlbHBlcnMuaXNCbG9jaykpO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnQmxvY2snLFxuICAgICd0cmFuc2FjdGlvbnMnLFxuICAgIG5ldyBTeXNDYWxsSW5zdGFuY2VNZW1iZXJBcnJheSgnTmVvLkJsb2NrLkdldFRyYW5zYWN0aW9ucycsIFR5cGVzLkJsb2NrLCBUeXBlcy5UcmFuc2FjdGlvbiksXG4gICk7XG5cbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RJbnRlcmZhY2UoJ0Jsb2NrQ29uc3RydWN0b3InLCBuZXcgQmxvY2tDb25zdHJ1Y3RvckludGVyZmFjZSgpKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RNZW1iZXIoXG4gICAgJ0Jsb2NrQ29uc3RydWN0b3InLFxuICAgICdmb3InLFxuICAgIG5ldyBWYWx1ZUZvcignTmVvLkJsb2NrY2hhaW4uR2V0QmxvY2snLCAoc2IsIG5vZGUsIG9wdGlvbnMpID0+IHtcbiAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9ucywgc2IuaGVscGVycy53cmFwQmxvY2spO1xuICAgIH0pLFxuICApO1xufTtcbiJdfQ==