OverviewFilesCommitsIssuesDocsReleasesPeers

keet-cli / deobfuscated / lib / tasks / rooms / create.js

108 lines · javascript ref:
const _0x43740e=(function(){let _0x33a748=!![];return function(_0x429c12,_0x3758ca){_0x249c7f=_0x33a748?function(){if(_0x3758ca){const _0x31b20d=_0x3758ca.apply(_0x429c12,arguments);return _0x3758ca=null,_0x31b20d;}}:function(){};return _0x33a748=![],_0x249c7f;};}()),_0x1c9848=_0x43740e(this,function(){_0x174396={_0xcb7bb1:0x353},_0x1908ab={_0x3d9e4e:0x4b};return _0x1c9848.toString().search("(((.+)+)+)+$").toString().constructor(_0x1c9848).search("(((.+)+)+)+$");});
_0x1c9848();
const {
  contract:{
    hyperschema:{
      getEnum:getContractEnum}
  }
}
=require('../../../spec'),{
  Task}
=require('../task');
const b4a=require('b4a'),RoomType=getContractEnum("@keet/room-type"),RoomUpdater=require('../../sync/updater'),{
  roomsStats}
=require('../../contract/stats/local');
module.exports=class CreateRoomTask extends Task{
  constructor(_0xc11fe){
    _0x1bdf57={
      _0x58d9a7:0x5a,_0x45792e:0x36f},_0x1539e0={
      _0x2f0f2f:0xd2,_0x146e51:0x120,_0x30f950:0x3bc}
    ;
    super(_0xc11fe);
    const _0x4e21b1=this.description.createRoom;
    this._key=_0x4e21b1.roomKey;
    this._mailbox=_0x4e21b1.mailbox,this._keyPair=_0x4e21b1.keyPair,this._genesis=_0x4e21b1.genesis,this._fastForwardTo=_0x4e21b1.fastForwardTo,this._encryptionKey=_0x4e21b1.encryptionKey,this._isPrivateProfile=_0x4e21b1.isPrivateProfile,this._room=null,this._updater=null;
    this._privateProfile=null;
  }
async._close(){
  _0x2dc886={
    _0x424653:0x79,_0x4b8b5c:0x73d,_0x20c211:0x131},_0xa69c7c={
    _0x29de11:0x17,_0x12e878:0x4b3}
  ;
  if(this._updater)await this._updater.close();
  if(this._room)this.keet.internalReleaseRoom(this._room);
  if(this._privateProfile)this.keet.internalReleaseRoom(this._privateProfile);
}
async._save(){
  _0x30363c={
    _0x565fa3:0xbf,_0x57cb20:0xcc,_0x5d67f1:0x3a3},_0x1249ec={
    _0x49042f:0x78,_0x4a0462:0x0}
  ;
  const _0x1a10f8=await this.keet.internalEnterLocalTransaction();
  try{
    const _0x38db0a=await _0x1a10f8.get("@local/rooms",this._updater.roomInfo);
    await _0x1a10f8.insert("@local/rooms",this._updater.roomInfo),await roomsStats(_0x1a10f8,this._updater.roomInfo,_0x38db0a),await _0x1a10f8.flush();
  }finally{
  await this.keet.internalExitLocalTransaction();
}
}
._getDmMemberKey(){
  _0x1045cb={
    _0x44cf1f:0x4b,_0x634550:0x321},_0x4e1ee9={
    _0x3de0a5:0x179,_0x2607d0:0x97}
  ;
  if(this._genesis.digest.settings.roomType!==RoomType.DirectMessage)return null;
  for(const {attestation:_0x1f71f1}of this._genesis.initialMembers){
    if(b4a.equals(_0x1f71f1.memberKey,this._genesis.bootstrapDevice.attestation.memberKey))continue;
    return _0x1f71f1.memberKey;
  }
}
._maybeEmitEvents(){
  _0x246036={
    _0x5c6067:0x191,_0x2ff6c4:0x382,_0x3f5943:0x1c1},_0x4f6f62={
    _0x4ae4d1:0x16,_0x4d2ef1:0x17f}
  ;
  this.keet.emit("room-changed",this._room.id);
}
async._create(){
  _0x14fdbd={
    _0x1fbadc:0xbe,_0x1abb31:0x43d,_0x2ec1f4:0x76},_0x2470a6={
    _0x1e4213:0x12b,_0x28ce61:0x2e4}
  ;
  await this._room.ready();
  if(this.closing)return;
  let _0x52c4cb=this._genesis.bootstrapDevice;
  let _0x201db8=this._genesis.initialMembers;
  if(!_0x52c4cb){
    const _0x249280=await this.keet.internalGetIdentityInfo();
    if(this.closing)return;
    _0x52c4cb=this.keet.internalCreateDeviceUpdate(_0x249280,this._room.deviceKey),_0x201db8=[this.keet.internalGetMemberUpdate(_0x249280)];
  }
await this._room.dispatch("@keet/genesis",{...this._genesis,'bootstrapDevice':_0x52c4cb,'initialMembers':_0x201db8}),this._updater=new RoomUpdater(this.keet,this._room.base.view,this._room.base,null);
const _0x38c456=await this._updater.run();
if(this.closing||!_0x38c456)return;
await this._save();
if(this.closing)return;
if(this._privateProfile){
  const _0x26bfbf=this._room.base.getSystemKey(),_0xf800e9={
    'key':this._room.base.local.key,'length':this._room.base.local.length}
  ;
  await this._privateProfile.dispatch("@keet-private-id/add-room",{'roomKey':this._room.key,'encryptionKey':this._room.encryptionKey,'mailbox':this._mailbox,'fastForwardTo':_0x26bfbf,'initiator':_0xf800e9,'dm':this._getDmMemberKey()});
}
this._maybeEmitEvents();
}
async._run(){
  _0x5204ba={
    _0x3b387a:0x146,_0x1aa455:0x605,_0x3da479:0x141},_0x32ea8a={
    _0xbee438:0x2f6}
  ;
  this._room=this.keet.internalOpenRoom(this._key,this._encryptionKey,{'fastForwardTo':this._fastForwardTo,'keyPair':this._keyPair,'mailbox':this._mailbox});
  if(!this._isPrivateProfile){
    const _0x50289e=await this.local.get("@local/identity");
    this._privateProfile=this.keet.internalOpenExistingRoom(_0x50289e.privateProfileKey);
  }
await this._create();
}
}
;