const p=require('path'),RocksBlobs=require('rocksdb-blobs'),HyperBlobs=require('hyperblobs');
const HyperDB=require('hyperdb'),spec=require('../../spec'),{
contract:{
hyperdispatch:{
Router:InternalKeetRouter,encode:encodeOperation},hyperdb:KeetDatabaseSpec}
}
=spec,identity=require('./identity'),internal=require('./internal'),members=require('./members'),memberLabels=require('./members/labels'),chat=require('./chat'),reactions=require('./reactions'),config=require('./config'),labels=require('./labels');
const testing=require('./testing'),REGISTER_ROUTES=require('./registration');
class KeetOpContext{
constructor(_0x1c029a,_0x265479,{abi:_0x2205ca,bootstrap:_0x4fa333,router:_0x3a93d8,hostcalls:_0x232978,writer:_0x10b13d,genesis:_0x56d794,dryRun:_0xfb3323,trace:_0x2434b6,fork:_0x45de0c}){
_0x3e5b68={
_0xdd4181:0x12b}
;
this.db=_0x1c029a,this.blobs=_0x265479,this.writer=_0x10b13d,this.genesis=!!_0x56d794,this.bootstrap=_0x4fa333;
this.router=_0x3a93d8,this.hostcalls=_0x232978,this.dryRun=_0xfb3323;
this.trace=_0x2434b6,this.fork=_0x45de0c,this.abi=_0x2205ca;
if(!_0x232978.addWriter)throw new Error("An addWriter hostcall must be provided\x20as\x20context");
if(!_0x232978.removeWriter)throw new Error("A removeWriter hostcall must be provided as context");
if(!_0x232978.removeable)throw new Error("A removeable hostcall must be provided as context");
if(!_0x232978.interrupt)throw new Error("An interrupt hostcall must be provided as context");
if(!_0x232978.createAnchor)throw new Error("A createAnchor hostcall\x20must\x20be provided as context");
}
}
class KeetContract{
static .OpContext=KeetOpContext;
static.bee(_0x29068f,_0x514ce9={}){
_0x3328ad={
_0x456e48:0x20c,_0x60bfb:0x16c,_0x4f5227:0x10b},_0x130dbb={
_0x4a93ae:0x1a6,_0x2b708d:0x11c}
;
const _0x390055=_0x29068f.get(KeetContract.DB_VIEW_NAME),_0x4d49d9=_0x29068f.get(KeetContract.BLOB_VIEW_NAME),_0x57b0bc=HyperDB.bee(_0x390055,KeetDatabaseSpec,_0x514ce9.hyperdb);
const _0x182028=new HyperBlobs(_0x4d49d9);
return{
'blobs':_0x182028,'db':_0x57b0bc,'cores':{
'db':_0x390055,'blobs':_0x4d49d9}
}
;
}
static.rocks(_0xf6d97b,_0x378633={}){
_0x4ed12e={
_0x50c35e:0x3,_0xbcf844:0x1b1,_0x2bea48:0x19d},_0x40f853={
_0x956105:0x63,_0x5d00d5:0x83,_0x1e366b:0x1a7},_0x162f06=p.join(_0xf6d97b,'db'),_0x4525de=p.join(_0xf6d97b,"blobs"),_0x575bd5=HyperDB.rocks(_0x162f06,KeetDatabaseSpec,_0x378633.hyperdb),_0x2dce5d=new RocksBlobs(_0x4525de);
return{
'blobs':_0x2dce5d,'db':_0x575bd5}
;
}
static .DB_VIEW_NAME="keet/v3/db";
static .BLOB_VIEW_NAME="keet/v3/blobs";
}
function createRouter(){
const _0xacae39=new InternalKeetRouter();
return identity[REGISTER_ROUTES](_0xacae39),internal[REGISTER_ROUTES](_0xacae39),members[REGISTER_ROUTES](_0xacae39),memberLabels[REGISTER_ROUTES](_0xacae39),chat[REGISTER_ROUTES](_0xacae39),reactions[REGISTER_ROUTES](_0xacae39),config[REGISTER_ROUTES](_0xacae39),labels[REGISTER_ROUTES](_0xacae39),testing[REGISTER_ROUTES](_0xacae39),_0xacae39;
}
module.exports={
'KeetContract':KeetContract,'createRouter':createRouter,'encodeOperation':encodeOperation,'spec':spec}
;