UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

30 lines (28 loc) 8.19 kB
"use strict"; 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 AssetInterface extends BuiltinInterface_1.BuiltinInterface { } class AssetConstructorInterface extends BuiltinInterface_1.BuiltinInterface { } exports.add = (builtins) => { builtins.addContractInterface('Asset', new AssetInterface()); builtins.addContractValue('Asset', new ValueInstanceOf_1.ValueInstanceOf('AssetConstructor', (sb) => sb.helpers.isAsset)); builtins.addContractMember('Asset', 'hash', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Asset.GetAssetId', constants_1.Types.Asset, constants_1.Types.Buffer)); builtins.addContractMember('Asset', 'type', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Asset.GetAssetType', constants_1.Types.Asset, constants_1.Types.Number)); builtins.addContractMember('Asset', 'amount', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Asset.GetAmount', constants_1.Types.Asset, constants_1.Types.Number)); builtins.addContractMember('Asset', 'available', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Asset.GetAvailable', constants_1.Types.Asset, constants_1.Types.Number)); builtins.addContractMember('Asset', 'precision', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Asset.GetPrecision', constants_1.Types.Asset, constants_1.Types.Number)); builtins.addContractMember('Asset', 'owner', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Asset.GetOwner', constants_1.Types.Asset, constants_1.Types.Buffer)); builtins.addContractMember('Asset', 'admin', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Asset.GetAdmin', constants_1.Types.Asset, constants_1.Types.Buffer)); builtins.addContractMember('Asset', 'issuer', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Asset.GetIssuer', constants_1.Types.Asset, constants_1.Types.Buffer)); builtins.addContractInterface('AssetConstructor', new AssetConstructorInterface()); builtins.addContractMember('AssetConstructor', 'for', new ValueFor_1.ValueFor('Neo.Blockchain.GetAsset', (sb, node, options) => { sb.emitHelper(node, options, sb.helpers.wrapAsset); })); }; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0NBQXdDO0FBQ3hDLDBEQUF1RDtBQUV2RCxxRkFBa0Y7QUFDbEYseUNBQXNDO0FBQ3RDLHVEQUFvRDtBQUVwRCxNQUFNLGNBQWUsU0FBUSxtQ0FBZ0I7Q0FBRztBQUNoRCxNQUFNLHlCQUEwQixTQUFRLG1DQUFnQjtDQUFHO0FBRzlDLFFBQUEsR0FBRyxHQUFHLENBQUMsUUFBa0IsRUFBUSxFQUFFO0lBQzlDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzdELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxpQ0FBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDeEcsUUFBUSxDQUFDLGlCQUFpQixDQUN4QixPQUFPLEVBQ1AsTUFBTSxFQUNOLElBQUksK0RBQThCLENBQUMsc0JBQXNCLEVBQUUsaUJBQUssQ0FBQyxLQUFLLEVBQUUsaUJBQUssQ0FBQyxNQUFNLENBQUMsQ0FDdEYsQ0FBQztJQUNGLFFBQVEsQ0FBQyxpQkFBaUIsQ0FDeEIsT0FBTyxFQUNQLE1BQU0sRUFDTixJQUFJLCtEQUE4QixDQUFDLHdCQUF3QixFQUFFLGlCQUFLLENBQUMsS0FBSyxFQUFFLGlCQUFLLENBQUMsTUFBTSxDQUFDLENBQ3hGLENBQUM7SUFDRixRQUFRLENBQUMsaUJBQWlCLENBQ3hCLE9BQU8sRUFDUCxRQUFRLEVBQ1IsSUFBSSwrREFBOEIsQ0FBQyxxQkFBcUIsRUFBRSxpQkFBSyxDQUFDLEtBQUssRUFBRSxpQkFBSyxDQUFDLE1BQU0sQ0FBQyxDQUNyRixDQUFDO0lBQ0YsUUFBUSxDQUFDLGlCQUFpQixDQUN4QixPQUFPLEVBQ1AsV0FBVyxFQUNYLElBQUksK0RBQThCLENBQUMsd0JBQXdCLEVBQUUsaUJBQUssQ0FBQyxLQUFLLEVBQUUsaUJBQUssQ0FBQyxNQUFNLENBQUMsQ0FDeEYsQ0FBQztJQUNGLFFBQVEsQ0FBQyxpQkFBaUIsQ0FDeEIsT0FBTyxFQUNQLFdBQVcsRUFDWCxJQUFJLCtEQUE4QixDQUFDLHdCQUF3QixFQUFFLGlCQUFLLENBQUMsS0FBSyxFQUFFLGlCQUFLLENBQUMsTUFBTSxDQUFDLENBQ3hGLENBQUM7SUFDRixRQUFRLENBQUMsaUJBQWlCLENBQ3hCLE9BQU8sRUFDUCxPQUFPLEVBQ1AsSUFBSSwrREFBOEIsQ0FBQyxvQkFBb0IsRUFBRSxpQkFBSyxDQUFDLEtBQUssRUFBRSxpQkFBSyxDQUFDLE1BQU0sQ0FBQyxDQUNwRixDQUFDO0lBQ0YsUUFBUSxDQUFDLGlCQUFpQixDQUN4QixPQUFPLEVBQ1AsT0FBTyxFQUNQLElBQUksK0RBQThCLENBQUMsb0JBQW9CLEVBQUUsaUJBQUssQ0FBQyxLQUFLLEVBQUUsaUJBQUssQ0FBQyxNQUFNLENBQUMsQ0FDcEYsQ0FBQztJQUNGLFFBQVEsQ0FBQyxpQkFBaUIsQ0FDeEIsT0FBTyxFQUNQLFFBQVEsRUFDUixJQUFJLCtEQUE4QixDQUFDLHFCQUFxQixFQUFFLGlCQUFLLENBQUMsS0FBSyxFQUFFLGlCQUFLLENBQUMsTUFBTSxDQUFDLENBQ3JGLENBQUM7SUFFRixRQUFRLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLEVBQUUsSUFBSSx5QkFBeUIsRUFBRSxDQUFDLENBQUM7SUFDbkYsUUFBUSxDQUFDLGlCQUFpQixDQUN4QixrQkFBa0IsRUFDbEIsS0FBSyxFQUNMLElBQUksbUJBQVEsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDNUQsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImZpbGUiOiJuZW8tb25lLXNtYXJ0LWNvbnRyYWN0LWNvbXBpbGVyL3NyYy9jb21waWxlL2J1aWx0aW5zL2NvbnRyYWN0L2Fzc2V0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQnVpbHRpbkludGVyZmFjZSB9IGZyb20gJy4uL0J1aWx0aW5JbnRlcmZhY2UnO1xuaW1wb3J0IHsgQnVpbHRpbnMgfSBmcm9tICcuLi9CdWlsdGlucyc7XG5pbXBvcnQgeyBTeXNDYWxsSW5zdGFuY2VNZW1iZXJQcmltaXRpdmUgfSBmcm9tICcuL1N5c0NhbGxJbnN0YW5jZU1lbWJlclByaW1pdGl2ZSc7XG5pbXBvcnQgeyBWYWx1ZUZvciB9IGZyb20gJy4vVmFsdWVGb3InO1xuaW1wb3J0IHsgVmFsdWVJbnN0YW5jZU9mIH0gZnJvbSAnLi9WYWx1ZUluc3RhbmNlT2YnO1xuXG5jbGFzcyBBc3NldEludGVyZmFjZSBleHRlbmRzIEJ1aWx0aW5JbnRlcmZhY2Uge31cbmNsYXNzIEFzc2V0Q29uc3RydWN0b3JJbnRlcmZhY2UgZXh0ZW5kcyBCdWlsdGluSW50ZXJmYWNlIHt9XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBleHBvcnQtbmFtZVxuZXhwb3J0IGNvbnN0IGFkZCA9IChidWlsdGluczogQnVpbHRpbnMpOiB2b2lkID0+IHtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RJbnRlcmZhY2UoJ0Fzc2V0JywgbmV3IEFzc2V0SW50ZXJmYWNlKCkpO1xuICBidWlsdGlucy5hZGRDb250cmFjdFZhbHVlKCdBc3NldCcsIG5ldyBWYWx1ZUluc3RhbmNlT2YoJ0Fzc2V0Q29uc3RydWN0b3InLCAoc2IpID0+IHNiLmhlbHBlcnMuaXNBc3NldCkpO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnQXNzZXQnLFxuICAgICdoYXNoJyxcbiAgICBuZXcgU3lzQ2FsbEluc3RhbmNlTWVtYmVyUHJpbWl0aXZlKCdOZW8uQXNzZXQuR2V0QXNzZXRJZCcsIFR5cGVzLkFzc2V0LCBUeXBlcy5CdWZmZXIpLFxuICApO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnQXNzZXQnLFxuICAgICd0eXBlJyxcbiAgICBuZXcgU3lzQ2FsbEluc3RhbmNlTWVtYmVyUHJpbWl0aXZlKCdOZW8uQXNzZXQuR2V0QXNzZXRUeXBlJywgVHlwZXMuQXNzZXQsIFR5cGVzLk51bWJlciksXG4gICk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0TWVtYmVyKFxuICAgICdBc3NldCcsXG4gICAgJ2Ftb3VudCcsXG4gICAgbmV3IFN5c0NhbGxJbnN0YW5jZU1lbWJlclByaW1pdGl2ZSgnTmVvLkFzc2V0LkdldEFtb3VudCcsIFR5cGVzLkFzc2V0LCBUeXBlcy5OdW1iZXIpLFxuICApO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnQXNzZXQnLFxuICAgICdhdmFpbGFibGUnLFxuICAgIG5ldyBTeXNDYWxsSW5zdGFuY2VNZW1iZXJQcmltaXRpdmUoJ05lby5Bc3NldC5HZXRBdmFpbGFibGUnLCBUeXBlcy5Bc3NldCwgVHlwZXMuTnVtYmVyKSxcbiAgKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RNZW1iZXIoXG4gICAgJ0Fzc2V0JyxcbiAgICAncHJlY2lzaW9uJyxcbiAgICBuZXcgU3lzQ2FsbEluc3RhbmNlTWVtYmVyUHJpbWl0aXZlKCdOZW8uQXNzZXQuR2V0UHJlY2lzaW9uJywgVHlwZXMuQXNzZXQsIFR5cGVzLk51bWJlciksXG4gICk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0TWVtYmVyKFxuICAgICdBc3NldCcsXG4gICAgJ293bmVyJyxcbiAgICBuZXcgU3lzQ2FsbEluc3RhbmNlTWVtYmVyUHJpbWl0aXZlKCdOZW8uQXNzZXQuR2V0T3duZXInLCBUeXBlcy5Bc3NldCwgVHlwZXMuQnVmZmVyKSxcbiAgKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RNZW1iZXIoXG4gICAgJ0Fzc2V0JyxcbiAgICAnYWRtaW4nLFxuICAgIG5ldyBTeXNDYWxsSW5zdGFuY2VNZW1iZXJQcmltaXRpdmUoJ05lby5Bc3NldC5HZXRBZG1pbicsIFR5cGVzLkFzc2V0LCBUeXBlcy5CdWZmZXIpLFxuICApO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnQXNzZXQnLFxuICAgICdpc3N1ZXInLFxuICAgIG5ldyBTeXNDYWxsSW5zdGFuY2VNZW1iZXJQcmltaXRpdmUoJ05lby5Bc3NldC5HZXRJc3N1ZXInLCBUeXBlcy5Bc3NldCwgVHlwZXMuQnVmZmVyKSxcbiAgKTtcblxuICBidWlsdGlucy5hZGRDb250cmFjdEludGVyZmFjZSgnQXNzZXRDb25zdHJ1Y3RvcicsIG5ldyBBc3NldENvbnN0cnVjdG9ySW50ZXJmYWNlKCkpO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnQXNzZXRDb25zdHJ1Y3RvcicsXG4gICAgJ2ZvcicsXG4gICAgbmV3IFZhbHVlRm9yKCdOZW8uQmxvY2tjaGFpbi5HZXRBc3NldCcsIChzYiwgbm9kZSwgb3B0aW9ucykgPT4ge1xuICAgICAgc2IuZW1pdEhlbHBlcihub2RlLCBvcHRpb25zLCBzYi5oZWxwZXJzLndyYXBBc3NldCk7XG4gICAgfSksXG4gICk7XG59O1xuIl19