UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

25 lines (23 loc) 4.69 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"); const getBalance_1 = require("./getBalance"); class AccountInterface extends BuiltinInterface_1.BuiltinInterface { } class AccountConstructorInterface extends BuiltinInterface_1.BuiltinInterface { } exports.add = (builtins) => { builtins.addContractInterface('Account', new AccountInterface()); builtins.addContractValue('Account', new ValueInstanceOf_1.ValueInstanceOf('AccountConstructor', (sb) => sb.helpers.isAccount)); builtins.addContractMember('Account', 'address', new SysCallInstanceMemberPrimitive_1.SysCallInstanceMemberPrimitive('Neo.Account.GetScriptHash', constants_1.Types.Account, constants_1.Types.Buffer)); builtins.addContractMember('Account', 'getBalance', new getBalance_1.AccountGetBalance()); builtins.addContractInterface('AccountConstructor', new AccountConstructorInterface()); builtins.addContractMember('AccountConstructor', 'for', new ValueFor_1.ValueFor('Neo.Blockchain.GetAccount', (sb, node, options) => { sb.emitHelper(node, options, sb.helpers.wrapAccount); })); }; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsa0RBQTJDO0FBQzNDLDZEQUEwRDtBQUUxRCxzRkFBbUY7QUFDbkYsMENBQXVDO0FBQ3ZDLHdEQUFxRDtBQUNyRCw2Q0FBaUQ7QUFFakQsTUFBTSxnQkFBaUIsU0FBUSxtQ0FBZ0I7Q0FBRztBQUNsRCxNQUFNLDJCQUE0QixTQUFRLG1DQUFnQjtDQUFHO0FBR2hELFFBQUEsR0FBRyxHQUFHLENBQUMsUUFBa0IsRUFBUSxFQUFFO0lBQzlDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDakUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLGlDQUFlLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM5RyxRQUFRLENBQUMsaUJBQWlCLENBQ3hCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsSUFBSSwrREFBOEIsQ0FBQywyQkFBMkIsRUFBRSxpQkFBSyxDQUFDLE9BQU8sRUFBRSxpQkFBSyxDQUFDLE1BQU0sQ0FBQyxDQUM3RixDQUFDO0lBQ0YsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsSUFBSSw4QkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDN0UsUUFBUSxDQUFDLG9CQUFvQixDQUFDLG9CQUFvQixFQUFFLElBQUksMkJBQTJCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLFFBQVEsQ0FBQyxpQkFBaUIsQ0FDeEIsb0JBQW9CLEVBQ3BCLEtBQUssRUFDTCxJQUFJLG1CQUFRLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQzlELEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZELENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDLENBQUMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9idWlsdGlucy9jb250cmFjdC9hY2NvdW50L2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZXMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQnVpbHRpbkludGVyZmFjZSB9IGZyb20gJy4uLy4uL0J1aWx0aW5JbnRlcmZhY2UnO1xuaW1wb3J0IHsgQnVpbHRpbnMgfSBmcm9tICcuLi8uLi9CdWlsdGlucyc7XG5pbXBvcnQgeyBTeXNDYWxsSW5zdGFuY2VNZW1iZXJQcmltaXRpdmUgfSBmcm9tICcuLi9TeXNDYWxsSW5zdGFuY2VNZW1iZXJQcmltaXRpdmUnO1xuaW1wb3J0IHsgVmFsdWVGb3IgfSBmcm9tICcuLi9WYWx1ZUZvcic7XG5pbXBvcnQgeyBWYWx1ZUluc3RhbmNlT2YgfSBmcm9tICcuLi9WYWx1ZUluc3RhbmNlT2YnO1xuaW1wb3J0IHsgQWNjb3VudEdldEJhbGFuY2UgfSBmcm9tICcuL2dldEJhbGFuY2UnO1xuXG5jbGFzcyBBY2NvdW50SW50ZXJmYWNlIGV4dGVuZHMgQnVpbHRpbkludGVyZmFjZSB7fVxuY2xhc3MgQWNjb3VudENvbnN0cnVjdG9ySW50ZXJmYWNlIGV4dGVuZHMgQnVpbHRpbkludGVyZmFjZSB7fVxuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgZXhwb3J0LW5hbWVcbmV4cG9ydCBjb25zdCBhZGQgPSAoYnVpbHRpbnM6IEJ1aWx0aW5zKTogdm9pZCA9PiB7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0SW50ZXJmYWNlKCdBY2NvdW50JywgbmV3IEFjY291bnRJbnRlcmZhY2UoKSk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0VmFsdWUoJ0FjY291bnQnLCBuZXcgVmFsdWVJbnN0YW5jZU9mKCdBY2NvdW50Q29uc3RydWN0b3InLCAoc2IpID0+IHNiLmhlbHBlcnMuaXNBY2NvdW50KSk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0TWVtYmVyKFxuICAgICdBY2NvdW50JyxcbiAgICAnYWRkcmVzcycsXG4gICAgbmV3IFN5c0NhbGxJbnN0YW5jZU1lbWJlclByaW1pdGl2ZSgnTmVvLkFjY291bnQuR2V0U2NyaXB0SGFzaCcsIFR5cGVzLkFjY291bnQsIFR5cGVzLkJ1ZmZlciksXG4gICk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0TWVtYmVyKCdBY2NvdW50JywgJ2dldEJhbGFuY2UnLCBuZXcgQWNjb3VudEdldEJhbGFuY2UoKSk7XG4gIGJ1aWx0aW5zLmFkZENvbnRyYWN0SW50ZXJmYWNlKCdBY2NvdW50Q29uc3RydWN0b3InLCBuZXcgQWNjb3VudENvbnN0cnVjdG9ySW50ZXJmYWNlKCkpO1xuICBidWlsdGlucy5hZGRDb250cmFjdE1lbWJlcihcbiAgICAnQWNjb3VudENvbnN0cnVjdG9yJyxcbiAgICAnZm9yJyxcbiAgICBuZXcgVmFsdWVGb3IoJ05lby5CbG9ja2NoYWluLkdldEFjY291bnQnLCAoc2IsIG5vZGUsIG9wdGlvbnMpID0+IHtcbiAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9ucywgc2IuaGVscGVycy53cmFwQWNjb3VudCk7XG4gICAgfSksXG4gICk7XG59O1xuIl19