@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
32 lines (30 loc) • 6.07 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const constants_1 = require("../../constants");
const BuiltinInterface_1 = require("../BuiltinInterface");
const SysCallInstanceMemberPrimitive_1 = require("./SysCallInstanceMemberPrimitive");
const ValueInstanceOf_1 = require("./ValueInstanceOf");
class AttributeBaseInterface extends BuiltinInterface_1.BuiltinInterface {
}
class AttributeBaseConstructorInterface extends BuiltinInterface_1.BuiltinInterface {
}
class BufferAttributeInterface extends BuiltinInterface_1.BuiltinInterface {
}
class PublicKeyAttributeInterface extends BuiltinInterface_1.BuiltinInterface {
}
class AddressAttributeInterface extends BuiltinInterface_1.BuiltinInterface {
}
class Hash256AttributeInterface extends BuiltinInterface_1.BuiltinInterface {
}
exports.add = (builtins) => {
builtins.addContractInterface('AttributeBase', new AttributeBaseInterface());
builtins.addContractInterface('AttributeBaseConstructor', new AttributeBaseConstructorInterface());
builtins.addContractValue('AttributeBase', new ValueInstanceOf_1.ValueInstanceOf('AttributeConstructor', (sb) => sb.helpers.isAttribute));
builtins.addContractMember('AttributeBase', 'usage', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Attribute.GetUsage', constants_1.Types.Attribute, constants_1.Types.Number));
builtins.addContractMember('AttributeBase', 'data', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Attribute.GetData', constants_1.Types.Attribute, constants_1.Types.Buffer));
builtins.addContractInterface('BufferAttribute', new BufferAttributeInterface());
builtins.addContractInterface('PublicKeyAttribute', new PublicKeyAttributeInterface());
builtins.addContractInterface('AddressAttribute', new AddressAttributeInterface());
builtins.addContractInterface('Hash256Attribute', new Hash256AttributeInterface());
};
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF0dHJpYnV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtDQUF3QztBQUN4QywwREFBdUQ7QUFFdkQscUZBQWtGO0FBQ2xGLHVEQUFvRDtBQUVwRCxNQUFNLHNCQUF1QixTQUFRLG1DQUFnQjtDQUFHO0FBQ3hELE1BQU0saUNBQWtDLFNBQVEsbUNBQWdCO0NBQUc7QUFDbkUsTUFBTSx3QkFBeUIsU0FBUSxtQ0FBZ0I7Q0FBRztBQUMxRCxNQUFNLDJCQUE0QixTQUFRLG1DQUFnQjtDQUFHO0FBQzdELE1BQU0seUJBQTBCLFNBQVEsbUNBQWdCO0NBQUc7QUFDM0QsTUFBTSx5QkFBMEIsU0FBUSxtQ0FBZ0I7Q0FBRztBQUc5QyxRQUFBLEdBQUcsR0FBRyxDQUFDLFFBQWtCLEVBQVEsRUFBRTtJQUM5QyxRQUFRLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLElBQUksc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQywwQkFBMEIsRUFBRSxJQUFJLGlDQUFpQyxFQUFFLENBQUMsQ0FBQztJQUNuRyxRQUFRLENBQUMsZ0JBQWdCLENBQ3ZCLGVBQWUsRUFDZixJQUFJLGlDQUFlLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQzVFLENBQUM7SUFDRixRQUFRLENBQUMsaUJBQWlCLENBQ3hCLGVBQWUsRUFDZixPQUFPLEVBQ1AsSUFBSSwrREFBOEIsQ0FBQyx3QkFBd0IsRUFBRSxpQkFBSyxDQUFDLFNBQVMsRUFBRSxpQkFBSyxDQUFDLE1BQU0sQ0FBQyxDQUM1RixDQUFDO0lBQ0YsUUFBUSxDQUFDLGlCQUFpQixDQUN4QixlQUFlLEVBQ2YsTUFBTSxFQUNOLElBQUksK0RBQThCLENBQUMsdUJBQXVCLEVBQUUsaUJBQUssQ0FBQyxTQUFTLEVBQUUsaUJBQUssQ0FBQyxNQUFNLENBQUMsQ0FDM0YsQ0FBQztJQUNGLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLHdCQUF3QixFQUFFLENBQUMsQ0FBQztJQUNqRixRQUFRLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLEVBQUUsSUFBSSwyQkFBMkIsRUFBRSxDQUFDLENBQUM7SUFDdkYsUUFBUSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixFQUFFLElBQUkseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLHlCQUF5QixFQUFFLENBQUMsQ0FBQztBQUNyRixDQUFDLENBQUMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9idWlsdGlucy9jb250cmFjdC9hdHRyaWJ1dGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBCdWlsdGluSW50ZXJmYWNlIH0gZnJvbSAnLi4vQnVpbHRpbkludGVyZmFjZSc7XG5pbXBvcnQgeyBCdWlsdGlucyB9IGZyb20gJy4uL0J1aWx0aW5zJztcbmltcG9ydCB7IFN5c0NhbGxJbnN0YW5jZU1lbWJlclByaW1pdGl2ZSB9IGZyb20gJy4vU3lzQ2FsbEluc3RhbmNlTWVtYmVyUHJpbWl0aXZlJztcbmltcG9ydCB7IFZhbHVlSW5zdGFuY2VPZiB9IGZyb20gJy4vVmFsdWVJbnN0YW5jZU9mJztcblxuY2xhc3MgQXR0cmlidXRlQmFzZUludGVyZmFjZSBleHRlbmRzIEJ1aWx0aW5JbnRlcmZhY2Uge31cbmNsYXNzIEF0dHJpYnV0ZUJhc2VDb25zdHJ1Y3RvckludGVyZmFjZSBleHRlbmRzIEJ1aWx0aW5JbnRlcmZhY2Uge31cbmNsYXNzIEJ1ZmZlckF0dHJpYnV0ZUludGVyZmFjZSBleHRlbmRzIEJ1aWx0aW5JbnRlcmZhY2Uge31cbmNsYXNzIFB1YmxpY0tleUF0dHJpYnV0ZUludGVyZmFjZSBleHRlbmRzIEJ1aWx0aW5JbnRlcmZhY2Uge31cbmNsYXNzIEFkZHJlc3NBdHRyaWJ1dGVJbnRlcmZhY2UgZXh0ZW5kcyBCdWlsdGluSW50ZXJmYWNlIHt9XG5jbGFzcyBIYXNoMjU2QXR0cmlidXRlSW50ZXJmYWNlIGV4dGVuZHMgQnVpbHRpbkludGVyZmFjZSB7fVxuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgZXhwb3J0LW5hbWVcbmV4cG9ydCBjb25zdCBhZGQgPSAoYnVpbHRpbnM6IEJ1aWx0aW5zKTogdm9pZCA9PiB7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0SW50ZXJmYWNlKCdBdHRyaWJ1dGVCYXNlJywgbmV3IEF0dHJpYnV0ZUJhc2VJbnRlcmZhY2UoKSk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0SW50ZXJmYWNlKCdBdHRyaWJ1dGVCYXNlQ29uc3RydWN0b3InLCBuZXcgQXR0cmlidXRlQmFzZUNvbnN0cnVjdG9ySW50ZXJmYWNlKCkpO1xuICBidWlsdGlucy5hZGRDb250cmFjdFZhbHVlKFxuICAgICdBdHRyaWJ1dGVCYXNlJyxcbiAgICBuZXcgVmFsdWVJbnN0YW5jZU9mKCdBdHRyaWJ1dGVDb25zdHJ1Y3RvcicsIChzYikgPT4gc2IuaGVscGVycy5pc0F0dHJpYnV0ZSksXG4gICk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0TWVtYmVyKFxuICAgICdBdHRyaWJ1dGVCYXNlJyxcbiAgICAndXNhZ2UnLFxuICAgIG5ldyBTeXNDYWxsSW5zdGFuY2VNZW1iZXJQcmltaXRpdmUoJ05lby5BdHRyaWJ1dGUuR2V0VXNhZ2UnLCBUeXBlcy5BdHRyaWJ1dGUsIFR5cGVzLk51bWJlciksXG4gICk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0TWVtYmVyKFxuICAgICdBdHRyaWJ1dGVCYXNlJyxcbiAgICAnZGF0YScsXG4gICAgbmV3IFN5c0NhbGxJbnN0YW5jZU1lbWJlclByaW1pdGl2ZSgnTmVvLkF0dHJpYnV0ZS5HZXREYXRhJywgVHlwZXMuQXR0cmlidXRlLCBUeXBlcy5CdWZmZXIpLFxuICApO1xuICBidWlsdGlucy5hZGRDb250cmFjdEludGVyZmFjZSgnQnVmZmVyQXR0cmlidXRlJywgbmV3IEJ1ZmZlckF0dHJpYnV0ZUludGVyZmFjZSgpKTtcbiAgYnVpbHRpbnMuYWRkQ29udHJhY3RJbnRlcmZhY2UoJ1B1YmxpY0tleUF0dHJpYnV0ZScsIG5ldyBQdWJsaWNLZXlBdHRyaWJ1dGVJbnRlcmZhY2UoKSk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0SW50ZXJmYWNlKCdBZGRyZXNzQXR0cmlidXRlJywgbmV3IEFkZHJlc3NBdHRyaWJ1dGVJbnRlcmZhY2UoKSk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0SW50ZXJmYWNlKCdIYXNoMjU2QXR0cmlidXRlJywgbmV3IEhhc2gyNTZBdHRyaWJ1dGVJbnRlcmZhY2UoKSk7XG59O1xuIl19