UNPKG

@zerochain/sdk

Version:

The Züs JS SDK is a JavaScript client library that provides a convenient interface for interacting with the Züs Network. It allows developers to perform various operations such as creating and managing allocations, uploading and downloading files, executi

2 lines (1 loc) 35.1 kB
"use strict";var Gt=Object.create;var T=Object.defineProperty;var jt=Object.getOwnPropertyDescriptor;var $t=Object.getOwnPropertyNames;var Zt=Object.getPrototypeOf,Jt=Object.prototype.hasOwnProperty;var G=(e,t)=>{for(var o in t)T(e,o,{get:t[o],enumerable:!0})},j=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of $t(t))!Jt.call(e,n)&&n!==o&&T(e,n,{get:()=>t[n],enumerable:!(r=jt(t,n))||r.enumerable});return e};var $=(e,t,o)=>(o=e!=null?Gt(Zt(e)):{},j(t||!e||!e.__esModule?T(o,"default",{value:e,enumerable:!0}):o,e)),Vt=e=>j(T({},"__esModule",{value:!0}),e);var fo={};G(fo,{allocationRepair:()=>st,authResponse:()=>Dt,awaitWasmLoad:()=>v,burnZCN:()=>yt,cancelAllocation:()=>$e,cancelDownloadBlocks:()=>Ke,cancelDownloadDirectory:()=>Re,cancelUpload:()=>ze,checkAllocStatus:()=>ct,checkIfWasmLoaded:()=>z,collectRewards:()=>tt,createAllocation:()=>Oe,createDir:()=>_e,createFreeAllocation:()=>Qe,createWallet:()=>le,createWalletKeys:()=>O,createWasm:()=>P,createWorkers:()=>gt,default:()=>bo,deleteFile:()=>we,downloadBlocks:()=>Pe,downloadDirectory:()=>Me,estimateBurnWZCNGasAmount:()=>xt,estimateGasPrice:()=>_t,estimateMintWZCNGasAmount:()=>ht,freezeAllocation:()=>je,getAllocation:()=>Le,getAllocationBlobbers:()=>Ee,getAllocationMinLock:()=>Ve,getAllocationWith:()=>Xe,getBlobberIds:()=>De,getBlobbers:()=>Ne,getContainers:()=>Te,getDesiredMode:()=>B,getFileMetaByName:()=>Ue,getFileStats:()=>Ae,getGosdkVersion:()=>me,getLookupHash:()=>de,getMintWZCNPayload:()=>ft,getProcessedZCNBurnTickets:()=>Wt,getPublicEncryptionKey:()=>E,getRemoteFileMap:()=>Se,getStakePoolInfo:()=>ot,getUSDRate:()=>ut,getUnprocessedWZCNBurnEvents:()=>kt,getUpdateAllocTicket:()=>et,getUpdateAllocationMinLock:()=>qe,getWalletBalance:()=>pt,getWasm:()=>l,getWasmType:()=>ue,initBridge:()=>wt,isDesiredWasmInitialized:()=>N,isWalletId:()=>ce,listAllocations:()=>Fe,listObjects:()=>he,listObjectsFromAuthTicket:()=>xe,lockStakePool:()=>rt,lockWritePool:()=>at,makeSCRestAPICall:()=>ge,mintZCN:()=>bt,multiDownload:()=>be,multiOperation:()=>We,multiUpload:()=>ke,pauseUpload:()=>Ce,registerAuthCommon:()=>Nt,registerAuthorizer:()=>St,registerZauthServer:()=>Tt,reloadAllocation:()=>He,repairAllocation:()=>it,repairSize:()=>lt,resetGoWasm:()=>_,searchContainer:()=>Be,send:()=>pe,setAuthUrl:()=>vt,setUploadMode:()=>fe,setWalletInfo:()=>At,share:()=>ye,skipStatusCheck:()=>mt,splitKeys:()=>Pt,terminateWorkers:()=>dt,transferAllocation:()=>Ge,unlockStakePool:()=>nt,updateAllocation:()=>Ze,updateAllocationWithRepair:()=>Je,updateBlobberSettings:()=>ve,updateContainer:()=>Ie,updateForbidAllocation:()=>Ye,updateWasmMode:()=>K,wasmLoader:()=>L,zauthRetrieveKey:()=>It,zvaultDeletePrimaryKey:()=>Ot,zvaultNewSplit:()=>zt,zvaultNewWallet:()=>Bt,zvaultRetrieveKeys:()=>Rt,zvaultRetrieveRestrictions:()=>Ct,zvaultRetrieveSharedWallets:()=>Ft,zvaultRetrieveWallets:()=>Et,zvaultRevokeKey:()=>Kt,zvaultStoreKey:()=>Mt,zvaultUpdateRestrictions:()=>Ut});module.exports=Vt(fo);var H={};G(H,{allocationRepair:()=>st,authResponse:()=>Dt,awaitWasmLoad:()=>v,burnZCN:()=>yt,cancelAllocation:()=>$e,cancelDownloadBlocks:()=>Ke,cancelDownloadDirectory:()=>Re,cancelUpload:()=>ze,checkAllocStatus:()=>ct,checkIfWasmLoaded:()=>z,collectRewards:()=>tt,createAllocation:()=>Oe,createDir:()=>_e,createFreeAllocation:()=>Qe,createWallet:()=>le,createWalletKeys:()=>O,createWasm:()=>P,createWorkers:()=>gt,deleteFile:()=>we,downloadBlocks:()=>Pe,downloadDirectory:()=>Me,estimateBurnWZCNGasAmount:()=>xt,estimateGasPrice:()=>_t,estimateMintWZCNGasAmount:()=>ht,freezeAllocation:()=>je,getAllocation:()=>Le,getAllocationBlobbers:()=>Ee,getAllocationMinLock:()=>Ve,getAllocationWith:()=>Xe,getBlobberIds:()=>De,getBlobbers:()=>Ne,getContainers:()=>Te,getDesiredMode:()=>B,getFileMetaByName:()=>Ue,getFileStats:()=>Ae,getGosdkVersion:()=>me,getLookupHash:()=>de,getMintWZCNPayload:()=>ft,getProcessedZCNBurnTickets:()=>Wt,getPublicEncryptionKey:()=>E,getRemoteFileMap:()=>Se,getStakePoolInfo:()=>ot,getUSDRate:()=>ut,getUnprocessedWZCNBurnEvents:()=>kt,getUpdateAllocTicket:()=>et,getUpdateAllocationMinLock:()=>qe,getWalletBalance:()=>pt,getWasm:()=>l,getWasmType:()=>ue,initBridge:()=>wt,isDesiredWasmInitialized:()=>N,isWalletId:()=>ce,listAllocations:()=>Fe,listObjects:()=>he,listObjectsFromAuthTicket:()=>xe,lockStakePool:()=>rt,lockWritePool:()=>at,makeSCRestAPICall:()=>ge,mintZCN:()=>bt,multiDownload:()=>be,multiOperation:()=>We,multiUpload:()=>ke,pauseUpload:()=>Ce,registerAuthCommon:()=>Nt,registerAuthorizer:()=>St,registerZauthServer:()=>Tt,reloadAllocation:()=>He,repairAllocation:()=>it,repairSize:()=>lt,resetGoWasm:()=>_,searchContainer:()=>Be,send:()=>pe,setAuthUrl:()=>vt,setUploadMode:()=>fe,setWalletInfo:()=>At,share:()=>ye,skipStatusCheck:()=>mt,splitKeys:()=>Pt,terminateWorkers:()=>dt,transferAllocation:()=>Ge,unlockStakePool:()=>nt,updateAllocation:()=>Ze,updateAllocationWithRepair:()=>Je,updateBlobberSettings:()=>ve,updateContainer:()=>Ie,updateForbidAllocation:()=>Ye,updateWasmMode:()=>K,wasmLoader:()=>L,zauthRetrieveKey:()=>It,zvaultDeletePrimaryKey:()=>Ot,zvaultNewSplit:()=>zt,zvaultNewWallet:()=>Bt,zvaultRetrieveKeys:()=>Rt,zvaultRetrieveRestrictions:()=>Ct,zvaultRetrieveSharedWallets:()=>Ft,zvaultRetrieveWallets:()=>Et,zvaultRevokeKey:()=>Kt,zvaultStoreKey:()=>Mt,zvaultUpdateRestrictions:()=>Ut});var W=e=>{if(!e)return new Uint8Array;let t=[];for(let o=0,r=e.length;o<r;o+=2)t.push(parseInt(e.substring(o,o+2),16));return new Uint8Array(t)},f=(e=1e3)=>new Promise(t=>{requestAnimationFrame(t),setTimeout(t,e)}),I=async()=>{let e=window.bls;return e?.mod?.calledRun||await e?.init(e.BN254),e};async function qt(e,t){let o=u();if(!o.jsProxy||!o.jsProxy.secretKey){let i="Error: bls.secretKey is not initialized";throw console.warn(i),new Error(i)}let r=W(e),a=o.jsProxy.bls.deserializeHexStrToSecretKey(t).sign(r);if(!a){let i="Error: WASM blsSign function failed to sign transaction";throw console.warn(i),new Error(i)}return a.serializeToHexStr()}async function Yt(e,t){let o=u();if(!o.jsProxy||!o.jsProxy.publicKey){let a="Error: bls.publicKey is not initialized";throw console.warn(a),new Error(a)}let r=W(t),n=o.jsProxy.bls.deserializeHexStrToSignature(e);return o.jsProxy.publicKey.verify(n,r)}async function Xt(e,t,o){let r=u(),n=r.jsProxy.bls.deserializeHexStrToPublicKey(e),a=W(o),i=r.jsProxy.bls.deserializeHexStrToSignature(t);return n.verify(i,a)}async function Qt(e,t,o){let r=u();if(!r.jsProxy){let c="Error: bls.secretKey is not initialized";throw console.warn(c),new Error(c)}let n=r.jsProxy.bls.deserializeHexStrToSecretKey(e),a=r.jsProxy.bls.deserializeHexStrToSignature(t);var i=n.sign(W(o));if(!i){let c="Error: WASM blsAddSignature function failed to sign transaction";throw console.warn(c),new Error(c)}return a.add(i),a.serializeToHexStr()}async function eo(e,t){var o=new Blob([e],{type:t});return URL.createObjectURL(o)}var Z=()=>({secretKey:null,publicKey:null,sign:qt,verify:Yt,verifyWith:Xt,addSignature:Qt,createObjectURL:eo,sleep:f});var to={wasmBaseUrl:"",useCachedWasm:!1,isWasmGzipped:!0},h=()=>u().__config__||to,oo=()=>S()?"/enterprise-zcn.wasm":"/zcn.wasm",ro=()=>{let e=h(),t="mainnet",r=S()?"enterprise-zcn.wasm":"zcn.wasm";if(e.wasmBaseUrl)return{defaultUrl:`${e.wasmBaseUrl}/${r}`,suffix:t};let n=window?.location?.hostname,a=c=>n?.includes(c);return a("localhost")||a("mob")?t="mob":a("dev")||a("mob.desktop")?t="dev":a("demo")?t="demo":a("staging")?t="staging":a("test")&&(t="test"),e.zus?.cdnUrl?{defaultUrl:`${e.zus.cdnUrl}/${t}/${r}`,suffix:t}:{defaultUrl:null,suffix:t}},no=()=>{let e=h();if(!e.useCachedWasm)return{url:null,version:null,type:null};let t=S(),o=t?e.cacheConfig.enterpriseGosdkVersion:e.cacheConfig.standardGosdkVersion,r=t?"enterprise":"normal",n=t?e.cacheConfig.enterpriseWasmUrl:e.cacheConfig.standardWasmUrl;return n?{url:n,version:o,type:r}:e.zus?.cdnUrl?{url:`${e.zus.cdnUrl}/wasm/zcn-${o}-${r}.wasm`,version:o,type:r}:{url:null,version:null,type:null}},S=()=>localStorage.getItem("enterpriseAlloc")==="enabled",ao=()=>{let e=oo(),{defaultUrl:t,suffix:o}=ro();if(h().useCachedWasm){let r=no(),n=r.version?r.url:t;return{suffix:o,wasmUrl:n,wasmPath:e,defaultUrl:t}}else return{suffix:o,wasmUrl:t,wasmPath:e,defaultUrl:t}},so=async({wasmCache:e,wasmPath:t})=>{if(!e||!t)return null;let o=h();if(!o.useCachedWasm)return null;let r=S()?o.cacheConfig.enterpriseGosdkVersion:o.cacheConfig.standardGosdkVersion;return localStorage.getItem(t)===r?e.match(t):null},io=async({wasmUrl:e,wasmPath:t,defaultUrl:o})=>{let n=await("caches"in window?window.caches:null)?.open("wasm-cache"),a=await so({wasmCache:n,wasmPath:t}),i=!1;if(a?.ok)console.log("Using cached WASM.");else{let c={"Content-Type":"application/wasm"},s=h();if(s.isWasmGzipped&&(c["Content-Encoding"]="gzip"),e&&(a=await fetch(e,{headers:c}).catch(m=>(console.error("Failed to fetch from CDN, trying CDN fallback:",m),null)),a?.ok&&(i=!0)),!a?.ok&&e!==o&&o&&(a=await fetch(o,{headers:c}).catch(m=>(console.error("Failed to fetch from CDN fallback, trying local:",m),null))),a?.ok||(e=t,a=await fetch(e,{headers:c})),!a?.ok)throw new Error("Failed to fetch WASM");if(i&&(await n?.put(t,a.clone()),s.useCachedWasm)){let m=S()?s.cacheConfig.enterpriseGosdkVersion:s.cacheConfig.standardGosdkVersion;localStorage.setItem(t,m)}}return{source:a,isVersioned:i}},lo=1e4;async function J(e,t){WebAssembly?.instantiateStreaming||(WebAssembly.instantiateStreaming=async(m,d)=>{let g=await(await m).arrayBuffer();return await WebAssembly.instantiate(g,d)});let{suffix:o,wasmUrl:r,wasmPath:n,defaultUrl:a}=ao(),{source:i}=await io({wasmUrl:r,wasmPath:n,defaultUrl:a});e.env={SUFFIX:o};let c=await WebAssembly.instantiateStreaming(i,e.importObject);setTimeout(()=>{u()?.__wasm_initialized__!==!0&&console.warn("wasm window.__zcn_wasm__ (zcn.__wasm_initialized__) still not true after max time")},lo),e.run(c.instance);let s=!1;for(;!s;)await f(300),u()?.__wasm_initialized__===!0&&(s=!0,t(!0))}var co=async e=>{let t=h().md5WorkerUrl;if(!t)throw new Error("md5WorkerUrl is undefined");return new Promise((r,n)=>{let a=new Worker(t);a.postMessage(e),a.onmessage=i=>{r(i.data),a.terminate()},a.onerror=n})},M=(e,t,o)=>new Promise((r,n)=>{let a=new FileReader,i=o.slice(e,t+e);a.onload=c=>{let s=c.target;if(s===null){n("err: fileReader onload target is null");return}if(s.error==null){let m=s.result;r({size:m.byteLength,buffer:new Uint8Array(m)})}else n(s.error)},a.readAsArrayBuffer(i)}),V=e=>{let t=e.__proxy__;if(!t)throw new Error("The Bridge proxy (__proxy__) is not initialized. Make sure to call createWasm first.");return t};async function q(e){let t=x(),o=u(),r=o.glob.index,n=e.map(s=>{let m=o.glob.index;o.glob.index++;let d="__zcn_upload_reader_"+m.toString(),g="__zcn_upload_callback_"+m.toString(),p="";if(t[d]=async(y,b)=>(console.log("bulk_upload: read chunk remotePath:"+s.remotePath+" offset:"+y+" chunkSize:"+b),(await M(y,b,s.file)).buffer),s.file.size>25*1024*1024){p="__zcn_md5_hash_"+m.toString();let y=co(s.file);t[p]=async()=>await y}return s.callback&&(t[g]=async(y,b,k)=>s.callback(y,b,k)),{allocationId:s.allocationId,remotePath:s.remotePath,fileSize:s.file.size,encrypt:s.encrypt,isUpdate:s.isUpdate,isRepair:s.isRepair,numBlocks:s.numBlocks,webstreaming:s.webstreaming,thumbnailBytes:Array.from(s?.thumbnailBytes||[]).toString(),readChunkFuncName:d,callbackFuncName:g,md5HashFuncName:p}}),a=o.glob.index,c=await V(o).sdk.bulkUpload(JSON.stringify(n));for(let s=r;s<a;s++)t["__zcn_upload_reader_"+s.toString()]=null,t["__zcn_upload_callback_"+s.toString()]=null;return c}async function Y(e,t,o,r,n,a,i,c){if(!e)throw new Error("bls is undefined");if(!n)throw new Error("secret key is undefined");if(!a)throw new Error("public key is undefined");if(c&&!o)throw new Error("clientKey is undefined");let s=u();if(s.walletId!=t||s.jsProxy.pubkeyStr!=a||s.jsProxy.isSplit!=c){s.jsProxy.bls=e,s.jsProxy.secretKey=e.deserializeHexStrToSecretKey(n),s.jsProxy.publicKey=e.deserializeHexStrToPublicKey(a),s.jsProxy.pubkeyStr=a,s.jsProxy.isSplit=c;let m=V(s);if(!m?.sdk?.setWallet)throw new Error("proxy.sdk.setWallet is not defined");await m.sdk.setWallet(t,o,r,a,n,i,c),s.walletId=t,s.secretKey=n,s.peerPublicKey=r}}var x=()=>{if(typeof window<"u")return window||globalThis||self;throw new Error("Window object not available")},u=()=>{let e=x(),t=e.__zcn_wasm__;if(t)return t;let o={glob:{index:0},jsProxy:Z(),sdk:{}};return e.__zcn_wasm__=o,o};var mo=e=>{let t=u();return new Proxy({},{get:(r,n)=>(...a)=>new Promise(async(i,c)=>{if(!e||e.exited)return c(new Error("The Go instance is not active."));for(;t.__wasm_initialized__!==!0;)await f(1e3);if(typeof t.sdk[n]!="function"){i(t.sdk[n]),a.length!==0&&c(new Error("Retrieved value from WASM returned function type, however called with arguments."));return}try{let s=t.sdk[n].apply(void 0,a);s&&typeof s.then=="function"&&(s=await Promise.race([s])),s&&s.error?c(s.error):i(s)}catch(s){c(s)}})})},go=()=>{let e=u();return new Proxy({},{get:(o,r)=>e.jsProxy[r],set:(o,r,n)=>(e.jsProxy[r]=n,!0)})},R=e=>{let t=mo(e),o=go(),r=u();return{bulkUpload:q,setWallet:Y,getWalletId:()=>r.walletId,getPrivateKey:()=>r.secretKey,getPeerPublicKey:()=>r.peerPublicKey,sdk:t,jsProxy:o}};async function P(e,t){let o=u();if(o.__config__=e,o.__proxy__)return o.__proxy__;let r=x(),n=new r.Go;J(n,t);let a=R(n);return o.__proxy__=a,r.goWasm=a,a}var ee=$(require("lodash.debounce"));var A={chainId:"0afc093ffb509f059c55478bc1a60351cef7b4e9c008a53a6cc8241ca8617dfe",signatureScheme:"bls0chain",minConfirmation:10,minSubmit:20,confirmationChainLength:3},X=e=>({faucetSCAddress:"6dba10422e368813802877a85039d3985d96760ed844092319743fb3a76712d3",storageSCAddress:"6dba10422e368813802877a85039d3985d96760ed844092319743fb3a76712d7",minerSCAddress:"6dba10422e368813802877a85039d3985d96760ed844092319743fb3a76712d9",interestPoolSCAddress:"cf8d0df9bd8cc637a4ff4e792ffe3686da6220c45f0e1103baa609f3f1751ef4",dexMintAddress:"6dba10422e368813802877a85039d3985d96760ed844092319743fb3a76712e0",teamWallet:e==="mainnet.zus.network"?"a4e6999add55dd7ac050904d2af2d248dd3329cdde953021bfa9ed9ef677f942":"65b32a635cffb6b6f3c73f09da617c29569a5f690662b5be57ed0d994f234335"});var _=()=>{window.__zcn_wasm__=void 0,window.newGoWasm=void 0,window.createWasmPromise=void 0},l=async({domain:e,wallet:t,zboxAppType:o,networkConfig:r})=>{if(window.newGoWasm||(window.createWasmPromise||(window.createWasmPromise=uo(e,o,r)),window.newGoWasm=await window.createWasmPromise),t?.peer_public_key&&t?.is_split&&t?.zauth_host&&await window.newGoWasm.sdk.registerZauthServer(t?.zauth_host),t)if(t.keys){let{privateKey:n,publicKey:a,walletMnemonic:i}=t.keys,c=t?.mnemonic!==""&&t?.mnemonic?.split(" ")?.length===24?t.mnemonic:i,s=await I();if(!c&&!t?.is_split)return window.newGoWasm;await window.newGoWasm.setWallet(s,t.id||t.temp_id,t.client_key||a,t.peer_public_key,n,a,c,!!t?.is_split&&!!t?.peer_public_key||!1)}else await window.newGoWasm.sdk.setWalletMode(!!t?.is_split&&!!t?.peer_public_key||!1);return window.newGoWasm},uo=async(e,t,o)=>{if(e.startsWith("http"))throw new Error("domain should not start with http");let r=`https://${e}/dns`,n=[o?.chainId||A.chainId,o?.blockWorker||r,o?.signatureScheme||A.signatureScheme,o?.minConfirmation||A.minConfirmation,o?.minSubmit||A.minSubmit,o?.confirmationChainLength||A.confirmationChainLength,o?.zboxHost||`https://0box.${e}`,t||"",o?.sharderConsensus||3];return await v(),await window.goWasm.sdk.init(...n),window.newGoWasm=window.goWasm,window.newGoWasm};var po=500,Q=3,te=({onLog:e,debounceTimeout:t=po,setIsWasmLoaded:o=()=>{},getRetries:r,incrementRetries:n,resetRetries:a})=>{let i=(0,ee.default)(async(c,s=!1)=>{if(!c){e?.("error",{message:"Unable to initialize WASM. Invalid config.",code:"INVALID_WASM_CONFIG",data:c});return}if(o(!1),await z()){e?.("debug",{message:"Wasm already initialized.",code:"WASM_LOADED",data:{isSwitchingWasm:s}}),o(!0);return}if(e?.("info",{message:"Initializing WASM...",code:"WASM_LOADING",data:{isSwitchingWasm:s}}),P(c,o),await v(),!N()){if(r()>=Q){a();let d="Wasm type mismatch: Unable to reset. Exiting.";console.warn(d),e?.("debug",{message:d,code:"WASM_TYPE_MISMATCH"});let g=B();e?.("error",{message:`Unable to switch to ${g} mode. Please reload.`,code:"WASM_TYPE_MISMATCH"}),o(!0);return}n();let m=`Wasm type mismatch: ${window.__zcn_wasm__?.wasmType}. Resetting ${r()}/${Q}`;console.warn(m),e?.("error",{message:m,code:"WASM_TYPE_MISMATCH_RETRY"}),i(c)}},t);return i},K=e=>{_(),e==="enterprise"?localStorage.setItem("enterpriseAlloc","enabled"):localStorage.removeItem("enterpriseAlloc")},B=()=>localStorage.getItem("enterpriseAlloc")==="enabled"?"enterprise":"normal",N=e=>{let t=localStorage.getItem("enterpriseAlloc")==="enabled",o=window.__zcn_wasm__?.wasmType;return o===void 0?(e?.("debug",{message:"Wasm type: undefined",code:"OUTDATED_WASM_VERSION"}),!0):t?o==="enterprise":o==="normal"},v=async e=>{for(;!window.__zcn_wasm__?.__wasm_initialized__;)e?.("debug",{message:"Wasm: Waiting...",code:"WASM_LOADING"}),await f(500);e?.("info",{message:`Wasm: Loaded. Type: ${window.__zcn_wasm__.wasmType}`,code:"WASM_LOADED"}),await f(1e3)},z=async()=>window.__zcn_wasm__?.__wasm_initialized__?(await f(300),N()?!0:(_(),!1)):!1;var C=require("bip39"),oe=$(require("js-sha3")),re=async e=>{let t=e||(0,C.generateMnemonic)(256),o=await(0,C.mnemonicToSeed)(t,"0chain-client-split-key"),r=new Uint8Array(o);return{mnemonic:t,buffer:r}},ne=async e=>{let t=await I(),o=new t.SecretKey;t.setRandFunc(e),o.setLittleEndian(e);let r=o.getPublicKey().serializeToHexStr(),n=o.serializeToHexStr();return{publicKey:r,privateKey:n}},ae=e=>oe.default.sha3_256(W(e)),se=e=>/^[a-f0-9]{64}$/gi.test(e);var w=(e,t)=>{throw console.error(`${e}: `,t),typeof t=="string"?new Error(t):t instanceof Error?t:new Error(`${e}: Unknown error`)},ie=(e="",t=5,o=!0,r=-4,n=!0)=>e?.length<=t+3+Math.abs(r)?e:o?`${e?.slice(0,t)}...${e?.slice(r)}`:`${e?.slice(0,t)}${n?"...":""}`;var O=async e=>{let{mnemonic:t,buffer:o}=await re(e),{publicKey:r,privateKey:n}=await ne(o);return{keys:{walletId:ae(r),privateKey:n,publicKey:r,walletMnemonic:t},mnemonic:t}},E=async({keys:e,domain:t})=>{if(!e.walletMnemonic)throw new Error("Wallet mnemonic is missing in keys (keys.walletMnemonic)");return await(await l({domain:t,wallet:{id:e.walletId,keys:e,mnemonic:e.walletMnemonic}})).sdk.getPublicEncryptionKeyV2(e?.publicKey)},le=async({domain:e,walletName:t,customBip39Mnemonic:o})=>{let{keys:r,mnemonic:n}=await O(o),a=await E({keys:r,domain:e});return{id:r.walletId,name:t||ie(r.walletId,4),mnemonic:n,version:"1.0",creationDate:Date.now(),keys:{...r,publicEncryptionKey:a,walletMnemonic:n}}},ce=e=>!(!e||!se(e)),me=async e=>await(await l({domain:e})).sdk.getVersion(),de=async({domain:e,allocationId:t,filePath:o,wallet:r})=>await(await l({domain:e,wallet:r})).sdk.getLookupHash(t,o),ge=async({domain:e,scType:t="sharders",endpoint:o,params:r})=>{let{storageSCAddress:n,minerSCAddress:a}=X(e),i=t==="sharders"?n:a;return await(await l({domain:e})).sdk.makeSCRestAPICall(i,o,JSON.stringify(r))},ue=()=>window.__zcn_wasm__?.wasmType,pe=async({wallet:e,domain:t,toClientId:o,tokens:r,fee:n,desc:a})=>await(await l({domain:t,wallet:e})).sdk.send(o,r,n,a);var we=async({wallet:e,domain:t,allocationId:o,remotePath:r})=>{let n=await l({domain:t,wallet:e});try{let a=await n.sdk.delete(o,r);if(a.error)throw new Error(a.error);return a}catch(a){throw w("deleteFile",a)}},ye=async({wallet:e,domain:t,allocationId:o,remotePath:r,clientId:n="",encryptionPublicKey:a="",expiration:i=0,revoke:c=!1,availableAfter:s=""})=>{let m=await l({domain:t,wallet:e});try{let d=await m.sdk.share(o,r,n,a,i,c,s);if(!d)throw new Error("authTicket is undefined");return d}catch(d){throw w("shareFile",d)}},be=async({wallet:e,domain:t,allocationId:o,multiDownloadOptions:r,authTicket:n="",callback:a})=>{let i=r.map(m=>{let d=m.downloadToDisk;return d&&(d="showSaveFilePicker"in window),{...m,numBlocks:m.numBlocks||100,downloadOp:m.downloadType==="file"?1:2,downloadToDisk:d}}),c=await l({domain:t,wallet:e}),s="";a&&(s=`multiDownloadCallback_${Date.now()}`,window[s]=a);try{let m=await c.sdk.multiDownload(o,JSON.stringify(i),n,s);return JSON.parse(m)}catch(m){throw w("multiDownload",m)}finally{s&&delete window[s]}},fe=async({wallet:e,domain:t,mode:o=1})=>(await l({domain:t,wallet:e})).sdk.setUploadMode(o),wo=async({wallet:e,domain:t,bulkUploadOptions:o})=>{let r=await l({domain:t,wallet:e});try{let n=JSON.stringify(o),a=await r.sdk.multiUpload(n);if(a.error)throw new Error(a.error);return a}catch(n){throw w("multiUpload",n)}},ke=async({wallet:e,domain:t,bulkUploadOptions:o})=>{let r=x(),n=u(),a=n.glob.index,i=o.map(m=>{let d=n.glob.index;n.glob.index++;let g="__zcn_upload_reader_"+d.toString(),p="__zcn_upload_callback_"+d.toString();r[g]=async(b,k)=>(await M(b,k,m.file)).buffer;let y=m.callback;return y&&(r[p]=async(b,k,U,Lt,Ht)=>y(b,k,U,Lt,Ht)),delete m.uploadId,{...m,fileSize:m.file.size,readChunkFuncName:g,callbackFuncName:p}}),c=n.glob.index,s=await wo({wallet:e,domain:t,bulkUploadOptions:i});for(let m=a;m<c;m++)r["__zcn_upload_reader_"+m.toString()]=null,r["__zcn_upload_callback_"+m.toString()]=null;return s},We=async({wallet:e,domain:t,allocationId:o,operations:r})=>{let n=await l({domain:t,wallet:e});try{let a=JSON.stringify(r),i=await n.sdk.multiOperation(o,a);if(i)throw new Error(i)}catch(a){throw w("multiOperation",a)}},he=async({wallet:e,domain:t,allocationId:o,remotePath:r,offset:n=0,pageLimit:a=-1})=>await(await l({domain:t,wallet:e})).sdk.listObjects(o,r,n,a),xe=async({wallet:e,domain:t,allocationId:o,authTicket:r,lookupHash:n,offset:a=0,pageLimit:i=-1})=>await(await l({domain:t,wallet:e})).sdk.listObjectsFromAuthTicket(o,r,n,a,i),_e=async({wallet:e,domain:t,allocationId:o,remotePath:r})=>(await l({domain:t,wallet:e})).sdk.createDir(o,r),Pe=async({wallet:e,domain:t,allocationId:o,remotePath:r,authTicket:n="",lookupHash:a,writeChunkFunc:i,startBlock:c,endBlock:s})=>{let m=await l({domain:t,wallet:e}),d="";i&&(d=`multiDownloadCallback_${Date.now()}`,window[d]=i);try{return await m.sdk.downloadBlocks(o,r,n,a,d,c,s)}catch(g){throw w("downloadBlocks",g)}finally{d&&delete window[d]}},Ae=async({wallet:e,domain:t,allocationId:o,remotePath:r})=>await(await l({domain:t,wallet:e})).sdk.getFileStats(o,r),ve=async({wallet:e,domain:t,blobberSettings:o})=>{let r=await l({domain:t,wallet:e});try{let n=JSON.stringify(o);return await r.sdk.updateBlobberSettings(n)}catch(n){throw w("updateBlobberSettings",n)}},Se=async({wallet:e,domain:t,allocationId:o})=>await(await l({domain:t,wallet:e})).sdk.getRemoteFileMap(o),Ne=async({wallet:e,domain:t,stakable:o})=>await(await l({domain:t,wallet:e})).sdk.getBlobbers(o),De=async({wallet:e,domain:t,blobberUrls:o})=>await(await l({domain:t,wallet:e})).sdk.getBlobberIds(o),Te=async({wallet:e,domain:t,username:o,password:r,requestDomain:n})=>await(await l({domain:t,wallet:e})).sdk.getcontainers(o,r,n),Ie=async({wallet:e,domain:t,username:o,password:r,containerID:n,newImageID:a,requestDomain:i})=>await(await l({domain:t,wallet:e})).sdk.updatecontainer(o,r,i,n,a),Be=async({wallet:e,domain:t,username:o,password:r,name:n,requestDomain:a})=>await(await l({domain:t,wallet:e})).sdk.searchcontainer(o,r,a,n),ze=async({wallet:e,domain:t,allocationId:o,remotePath:r})=>await(await l({domain:t,wallet:e})).sdk.cancelUpload(o,r),Ce=async({wallet:e,domain:t,allocationId:o,remotePath:r})=>await(await l({domain:t,wallet:e})).sdk.pauseUpload(o,r),Ue=async({wallet:e,domain:t,allocationId:o,fileName:r,modifyFileRef:n})=>{let a=await l({domain:t,wallet:e});try{let i=await a.sdk.getFileMetaByName(o,r);return((m,d)=>m.flatMap(g=>{let p={name:g.Name,type:g.Type,path:g.Path,lookup_hash:g.LookupHash,hash:g.Hash,mimetype:g.MimeType,size:g.Size,num_blocks:g.NumBlocks,actual_size:g.ActualFileSize,actual_num_blocks:g.ActualNumBlocks,encryption_key:g.EncryptedKey,file_meta_hash:g.FileMetaHash,thumbnail_hash:g.ThumbnailHash,actual_thumbnail_size:g.ActualThumbnailSize,actual_thumbnail_hash:g.ActualThumbnailHash,collaborators:g.Collaborators,created_at:g.CreatedAt,updated_at:g.UpdatedAt,fromSearch:!0};if(d){let y=d(p);return y?[y]:[]}return[p]}))(i,n)}catch(i){throw w("getFileMetaByName",i)}},Me=async({wallet:e,domain:t,allocationId:o,remotePath:r,authTicket:n="",callback:a})=>{let i=await l({domain:t,wallet:e}),c="";a&&(c=`downloadDirectoryCallback_${Date.now()}`,window[c]=a);try{await i.sdk.downloadDirectory(o,r,n,c)}catch(s){throw w("downloadDirectory",s)}finally{c&&delete window[c]}},Re=async({wallet:e,domain:t,remotePath:o})=>(await l({domain:t,wallet:e})).sdk.cancelDownloadDirectory(o),Ke=async({wallet:e,domain:t,allocationId:o,remotePath:r,start:n,end:a})=>(await l({domain:t,wallet:e})).sdk.cancelDownloadBlocks(o,r,n,a);var yo={miner:1,sharder:2,blobber:3,validator:4,authorizer:5},D=e=>yo[e];var Oe=async({wallet:e,domain:t,dataShards:o,parityShards:r,size:n,minReadPrice:a,maxReadPrice:i,minWritePrice:c,maxWritePrice:s,lock:m,blobberIds:d=[],blobberAuthTickets:g,setThirdPartyExtendable:p,isEnterprise:y,force:b=!1})=>await(await l({domain:t,wallet:e})).sdk.createAllocation(o,r,n,a,i,c,s,m,d,g,p,y,b),Ee=async({wallet:e,domain:t,preferredBlobberURLs:o=[],dataShards:r,parityShards:n,size:a,minReadPrice:i,maxReadPrice:c,minWritePrice:s,maxWritePrice:m,restrictedLevel:d,force:g=!1})=>await(await l({domain:t,wallet:e})).sdk.getAllocationBlobbers(o,r,n,a,i,c,s,m,d,g),Fe=async({wallet:e,domain:t})=>await(await l({domain:t,wallet:e})).sdk.listAllocations(),Le=async({wallet:e,domain:t,allocationId:o})=>await(await l({domain:t,wallet:e})).sdk.getAllocation(o),He=async({wallet:e,domain:t,allocationId:o})=>await(await l({domain:t,wallet:e})).sdk.reloadAllocation(o),Ge=async({wallet:e,domain:t,allocationId:o,newOwnerId:r,newOwnerPublicKey:n})=>(await l({domain:t,wallet:e})).sdk.transferAllocation(o,r,n),je=async({wallet:e,domain:t,allocationId:o})=>await(await l({domain:t,wallet:e})).sdk.freezeAllocation(o),$e=async({wallet:e,domain:t,allocationId:o})=>await(await l({domain:t,wallet:e})).sdk.cancelAllocation(o),Ze=async({wallet:e,domain:t,allocationId:o,size:r,extend:n,lock:a,addBlobberId:i="",addBlobberAuthTicket:c="",removeBlobberId:s="",ownerSigningPublicKey:m="",setThirdPartyExtendable:d})=>await(await l({domain:t,wallet:e})).sdk.updateAllocation(o,r,n,a,i,c,s,m,d),Je=async({wallet:e,domain:t,allocationId:o,size:r,extend:n=!1,lock:a,addBlobberId:i="",addBlobberAuthTicket:c="",removeBlobberId:s="",ownerSigningPublicKey:m="",updateAllocTicket:d="",callback:g})=>{let p="";g&&(p=`updateAllocationWithRepairCallback_${Date.now()}`,window[p]=g);let y=await l({domain:t,wallet:e});try{return await y.sdk.updateAllocationWithRepair(o,r,n,a,i,c,s,m,d,p)}catch(b){throw w("updateAllocationWithRepair",b)}finally{delete window[p]}},Ve=async({domain:e,wallet:t,dataShards:o,parityShards:r,size:n,maxWritePrice:a})=>await(await l({domain:e,wallet:t})).sdk.getAllocationMinLock(o,r,n,a),qe=async({domain:e,wallet:t,allocationId:o,size:r,extend:n,addBlobberId:a,removeBlobberId:i})=>await(await l({domain:e,wallet:t})).sdk.getUpdateAllocationMinLock(o,r,n,a,i),Ye=async({wallet:e,domain:t,allocationId:o,forbidUpload:r,forbidDelete:n,forbidUpdate:a,forbidMove:i,forbidCopy:c,forbidRename:s})=>await(await l({domain:t,wallet:e})).sdk.updateForbidAllocation(o,r,n,a,i,c,s),Xe=async({domain:e,wallet:t,authTicket:o})=>await(await l({domain:e,wallet:t})).sdk.getAllocationWith(o),Qe=async({domain:e,wallet:t,freeStorageMarker:o})=>await(await l({domain:e,wallet:t})).sdk.createxfreeallocation(o),et=async({domain:e,wallet:t,allocationId:o,userId:r,operationType:n,roundExpiry:a})=>await(await l({domain:e,wallet:t})).sdk.getUpdateAllocTicket(o,r,n,a),tt=async({domain:e,wallet:t,providerType:o,providerId:r})=>{let n=D(o);return await(await l({domain:e,wallet:t})).sdk.collectRewards(n,r)},ot=async({domain:e,wallet:t,providerType:o,providerId:r})=>{let n=D(o);return await(await l({domain:e,wallet:t})).sdk.getSkatePoolInfo(n,r)},rt=async({domain:e,wallet:t,providerType:o,tokens:r,fee:n,providerId:a})=>{let i=D(o);return await(await l({domain:e,wallet:t})).sdk.lockStakePool(i,r,n,a)},nt=async({domain:e,wallet:t,providerType:o,fee:r,providerId:n,clientId:a})=>{let i=D(o);return await(await l({domain:e,wallet:t})).sdk.unlockStakePool(i,r,n,a)},at=async({domain:e,wallet:t,allocationId:o,tokens:r,fee:n})=>await(await l({domain:e,wallet:t})).sdk.lockWritePool(o,r,n),st=async({domain:e,wallet:t,allocationId:o,remotePath:r})=>(await l({domain:e,wallet:t})).sdk.allocationRepair(o,r),it=async({wallet:e,domain:t,allocationId:o,callback:r})=>{let n=await l({domain:t,wallet:e}),a="";r&&(a=`repairAllocationCallback_${Date.now()}`,window[a]=r);try{await n.sdk.repairAllocation(o,a);return}catch(i){throw w("repairAllocation",i)}finally{a&&delete window[a]}},lt=async({domain:e,wallet:t,allocationId:o,remotePath:r})=>await(await l({domain:e,wallet:t})).sdk.repairSize(o,r),ct=async({wallet:e,domain:t,allocationId:o})=>{let r=await l({domain:t,wallet:e});try{let n=await r.sdk.checkAllocStatus(o),a=JSON.parse(n),{status:i,blobberStatus:c,error:s}=a;if(s)throw new Error(s);return{status:i,blobberStatus:c,error:s}}catch(n){throw w("checkAllocStatus",n)}},mt=async({wallet:e,domain:t,allocationId:o,checkStatus:r})=>(await l({domain:t,wallet:e})).sdk.skipStatusCheck(o,r),dt=async({wallet:e,domain:t,allocationId:o})=>(await l({domain:t,wallet:e})).sdk.terminateWorkers(o),gt=async({wallet:e,domain:t,allocationId:o})=>(await l({domain:t,wallet:e})).sdk.createWorkers(o);var ut=async({domain:e,symbol:t="zcn"})=>await(await l({domain:e})).sdk.getUSDRate(t),pt=async({domain:e,clientId:t})=>await(await l({domain:e})).sdk.getWalletBalance(t);var wt=async({domain:e,wallet:t,ethereumAddress:o,bridgeAddress:r,authorizersAddress:n,tokenAddress:a,ethereumNodeURL:i,gasLimit:c,value:s=0,consensusThreshold:m})=>(await l({domain:e,wallet:t})).sdk.initBridge(o,r,n,a,i,c,s,m),yt=async({domain:e,wallet:t,amount:o})=>await(await l({domain:e,wallet:t})).sdk.burnZCN(o),bt=async({domain:e,wallet:t,burnTxnHash:o,timeout:r})=>await(await l({domain:e,wallet:t})).sdk.mintZCN(o,r),ft=async({domain:e,wallet:t,burnTxnHash:o})=>{let r=await l({domain:e,wallet:t});try{let n=await r.sdk.getMintWZCNPayload(o);return JSON.parse(n)}catch(n){throw w("getMintWZCNPayload",n)}},kt=async({domain:e,wallet:t})=>{let o=await l({domain:e,wallet:t});try{let r=await o.sdk.getNotProcessedWZCNBurnEvents();return JSON.parse(r)}catch(r){throw w("getNotProcessedWZCNBurnEvents",r)}},Wt=async({domain:e,wallet:t})=>{let o=await l({domain:e,wallet:t});try{let r=await o.sdk.getProcessedZCNBurnTickets();return JSON.parse(r)}catch(r){throw w("getProcessedZCNBurnTickets",r)}},ht=async({domain:e,wallet:t,from:o,to:r,zcnTransaction:n,amountTokens:a,nonce:i,signaturesRaw:c})=>{let s=await l({domain:e,wallet:t}),m=String(a);return await s.sdk.estimateMintWZCNGasAmount(o,r,n,m,i,c)},xt=async({domain:e,wallet:t,from:o,to:r,amountTokens:n})=>{let a=await l({domain:e,wallet:t}),i=String(n);return await a.sdk.estimateBurnWZCNGasAmount(o,r,i)},_t=async({domain:e,wallet:t})=>await(await l({domain:e,wallet:t})).sdk.estimateGasPrice();var Pt=async({domain:e,wallet:t,privateKey:o,numSplits:r})=>await(await l({domain:e,wallet:t})).sdk.splitKeys(o,r),At=async({domain:e,wallet:t,jsonWallet:o,splitKeyWallet:r=!1})=>(await l({domain:e,wallet:t})).sdk.setWalletInfo(o,r),vt=async({domain:e,wallet:t,url:o})=>(await l({domain:e,wallet:t})).sdk.setAuthUrl(o),St=async({domain:e,wallet:t,authTxnCallback:o})=>{await(await(await l({domain:e,wallet:t})).sdk.registerAuthorizer)(o)},Nt=async({domain:e,wallet:t,authTxnCallback:o})=>{await(await(await l({domain:e,wallet:t})).sdk.registerAuthCommon)(o)},Dt=async({domain:e,wallet:t,response:o})=>(await l({domain:e,wallet:t})).sdk.authResponse(o),Tt=async({domain:e,wallet:t,serverAddress:o})=>(await l({domain:e,wallet:t})).sdk.registerZauthServer(o),It=async({domain:e,wallet:t,clientId:o,peerPublicKey:r,serverAddress:n,token:a})=>await(await l({domain:e,wallet:t})).sdk.zauthRetrieveKey(o,r,n,a);var Bt=async({domain:e,wallet:t,serverAddress:o,token:r})=>(await l({domain:e,wallet:t})).sdk.zvaultNewWallet(o,r),zt=async({domain:e,wallet:t,clientId:o,serverAddress:r,token:n})=>(await l({domain:e,wallet:t})).sdk.zvaultNewSplit(o,r,n),Ct=async({domain:e,wallet:t,peerPublicKey:o,serverAddress:r,token:n})=>await(await l({domain:e,wallet:t})).sdk.zvaultRetrieveRestrictions(o,r,n),Ut=async({domain:e,wallet:t,clientId:o,peerPublicKey:r,serverAddress:n,token:a,restrictions:i})=>(await l({domain:e,wallet:t})).sdk.zvaultUpdateRestrictions(o,r,n,a,i),Mt=async({domain:e,wallet:t,serverAddress:o,token:r,privateKey:n})=>(await l({domain:e,wallet:t})).sdk.zvaultStoreKey(o,r,n),Rt=async({domain:e,wallet:t,serverAddress:o,token:r,clientId:n})=>(await l({domain:e,wallet:t})).sdk.zvaultRetrieveKeys(o,r,n),Kt=async({domain:e,wallet:t,serverAddress:o,token:r,clientId:n,publicKey:a})=>(await l({domain:e,wallet:t})).sdk.zvaultRevokeKey(o,r,n,a),Ot=async({domain:e,wallet:t,serverAddress:o,token:r,clientId:n})=>(await l({domain:e,wallet:t})).sdk.zvaultDeletePrimaryKey(o,r,n),Et=async({domain:e,wallet:t,serverAddress:o,token:r})=>(await l({domain:e,wallet:t})).sdk.zvaultRetrieveWallets(o,r),Ft=async({domain:e,wallet:t,serverAddress:o,token:r})=>(await l({domain:e,wallet:t})).sdk.zvaultRetrieveSharedWallets(o,r);var F=0,L=({onLog:e,debounceTimeout:t,setIsWasmLoaded:o})=>te({onLog:e,debounceTimeout:t,setIsWasmLoaded:o,getRetries:()=>F,incrementRetries:()=>F++,resetRetries:()=>F=0});var bo=H;0&&(module.exports={allocationRepair,authResponse,awaitWasmLoad,burnZCN,cancelAllocation,cancelDownloadBlocks,cancelDownloadDirectory,cancelUpload,checkAllocStatus,checkIfWasmLoaded,collectRewards,createAllocation,createDir,createFreeAllocation,createWallet,createWalletKeys,createWasm,createWorkers,deleteFile,downloadBlocks,downloadDirectory,estimateBurnWZCNGasAmount,estimateGasPrice,estimateMintWZCNGasAmount,freezeAllocation,getAllocation,getAllocationBlobbers,getAllocationMinLock,getAllocationWith,getBlobberIds,getBlobbers,getContainers,getDesiredMode,getFileMetaByName,getFileStats,getGosdkVersion,getLookupHash,getMintWZCNPayload,getProcessedZCNBurnTickets,getPublicEncryptionKey,getRemoteFileMap,getStakePoolInfo,getUSDRate,getUnprocessedWZCNBurnEvents,getUpdateAllocTicket,getUpdateAllocationMinLock,getWalletBalance,getWasm,getWasmType,initBridge,isDesiredWasmInitialized,isWalletId,listAllocations,listObjects,listObjectsFromAuthTicket,lockStakePool,lockWritePool,makeSCRestAPICall,mintZCN,multiDownload,multiOperation,multiUpload,pauseUpload,registerAuthCommon,registerAuthorizer,registerZauthServer,reloadAllocation,repairAllocation,repairSize,resetGoWasm,searchContainer,send,setAuthUrl,setUploadMode,setWalletInfo,share,skipStatusCheck,splitKeys,terminateWorkers,transferAllocation,unlockStakePool,updateAllocation,updateAllocationWithRepair,updateBlobberSettings,updateContainer,updateForbidAllocation,updateWasmMode,wasmLoader,zauthRetrieveKey,zvaultDeletePrimaryKey,zvaultNewSplit,zvaultNewWallet,zvaultRetrieveKeys,zvaultRetrieveRestrictions,zvaultRetrieveSharedWallets,zvaultRetrieveWallets,zvaultRevokeKey,zvaultStoreKey,zvaultUpdateRestrictions});