@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
25 lines (23 loc) • 4.69 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");
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