@wishknish/knishio-client-js 0.7.7 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
- var KnishIOClient=(function(h,W,$,cs,kt){"use strict";var kr=Object.defineProperty;var Sr=(h,W,$)=>W in h?kr(h,W,{enumerable:!0,configurable:!0,writable:!0,value:$}):h[W]=$;var J=(h,W,$)=>Sr(h,typeof W!="symbol"?W+"":W,$);typeof self>"u"&&(global.self=global);class St{static toHex(e,t){const n=(c,u)=>{const l=u?["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"]:["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];return l[Math.floor(c/16)]+l[c%16]},s=Object.assign({grouping:0,rowlength:0,uppercase:!1},t||{});let r="",i=0,a=0;for(let c=0;c<e.length&&(r+=n(e[c],s.uppercase),c!==e.length-1);++c)s.grouping>0&&++i===s.grouping&&(i=0,s.rowlength>0&&++a===s.rowlength?(a=0,r+=`
2
- `):r+=" ");return r}static toUint8Array(e){let t=e.toLowerCase().replace(/\s/g,"");t.length%2===1&&(t=`0${t}`);const n=new Uint8Array(Math.floor(t.length/2));let s=-1;for(let r=0;r<t.length;++r){const i=t[r],a=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"].indexOf(i);if(a===-1)throw Error("unexpected character");s===-1?s=16*a:(n[Math.floor(r/2)]=s+a,s=-1)}return n}}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}),String.prototype.toCamelCase||(String.prototype.toCamelCase=function(){return this.toLowerCase().replace(/[^a-zA-Z0-9]+(.)/g,(o,e)=>e.toUpperCase())}),String.prototype.toSnakeCase||(String.prototype.toSnakeCase=function(){return this.replace(/[A-Z]/g,o=>`_${o.toLowerCase()}`)});function Ae(o,e){const t=Math.ceil(o.length/e),n=[];for(let s=0,r=0;s<t;++s,r+=e)n[s]=o.substr(r,e);return n}function Ue(o=256,e="abcdef0123456789"){let t=new Uint8Array(o);return t=crypto.getRandomValues(t),t=t.map(n=>e.charCodeAt(n%e.length)),String.fromCharCode.apply(null,t)}function _t(o,e,t,n,s){if(n=n||"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~`!@#$%^&*()-_=+[{]}\\|;:'\",<.>/?¿¡",s=s||n,e>n.length||t>s.length)return console.warn("Strings::charsetBaseConvert() - Can't convert",o,"to base",t,"greater than symbol table length. src-table:",n.length,"dest-table:",s.length),!1;let i=BigInt(0);for(let c=0;c<o.length;c++)i=i*BigInt(e)+BigInt(n.indexOf(o.charAt(c)));let a="";for(;i>0;){const c=i%BigInt(t);a=s.charAt(Number(c))+a,i/=BigInt(t)}return a||"0"}function At(o){return St.toHex(o,{})}function $t(o){return St.toUint8Array(o)}function vt(o){const e=$t(o);return btoa(String.fromCharCode.apply(null,e))}function It(o){const e=new Uint8Array(atob(o).split("").map(t=>t.charCodeAt(0)));return At(e)}function He(o){return/^[A-F0-9]+$/i.test(o)}function Mt(o){return(typeof o=="number"||typeof o=="string"&&o.trim()!=="")&&!isNaN(o)}let ie=class{static normalizeMeta(e){if(Array.isArray(e))return e.map(n=>({key:n.key,value:n.value==null?null:String(n.value)}));const t=[];for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)){const s=e[n];t.push({key:n,value:s==null?null:String(s)})}return t}static aggregateMeta(e){let t={};if(Array.isArray(e))for(const n of e)t[n.key]=n.value;else t=e;return t}};function Tt(o,e){return o.length?[o.slice(0,e)].concat(Tt(o.slice(e),e)):[]}function Ct(o,e){let t,n,s;const r=[Array,Date,Number,String,Boolean],i=Object.prototype.toString;for(e=e||[],t=0;t<e.length;t+=2)o===e[t]&&(n=e[t+1]);if(!n&&o&&typeof o=="object"){for(n={},t=0;t<r.length;t++)i.call(o)===i.call(s=new r[t](o))&&(n=t?s:[]);e.push(o,n);for(t in o)e.hasOwnProperty.call(o,t)&&(n[t]=Ct(o[t],e))}return n||o}function xt(...o){return[].concat(...o.map((e,t)=>{const n=o.slice(0);n.splice(t,1);const s=[...new Set([].concat(...n))];return e.filter(r=>!s.includes(r))}))}function ye(...o){return o.reduce((e,t)=>e.filter(n=>t.includes(n)))}class Pe{constructor(e={},t={}){this.policy=Pe.normalizePolicy(e),this.fillDefault(t)}static normalizePolicy(e={}){const t={};for(const[n,s]of Object.entries(e))if(s!==null&&["read","write"].includes(n)){t[n]={};for(const[r,i]of Object.entries(s))t[n][r]=i}return t}fillDefault(e={}){const t=Array.from(this.policy).filter(s=>s.action==="read"),n=Array.from(this.policy).filter(s=>s.action==="write");for(const[s,r]of Object.entries({read:t,write:n})){const i=r.map(a=>a.key);this.policy[s]||(this.policy[s]={});for(const a of xt(e,i))this.policy[s][a]||(this.policy[s][a]=s==="write"&&!["characters","pubkey"].includes(a)?["self"]:["all"])}}get(){return this.policy}toJson(){return JSON.stringify(this.get())}}class H{constructor(e=[]){this.meta=ie.normalizeMeta(e)}merge(e){return this.meta=Array.from(new Set([...this.meta,...ie.normalizeMeta(e)])),this}addContext(e=null){return this}setAtomWallet(e){const t={};return e.tokenUnits&&e.tokenUnits.length&&(t.tokenUnits=JSON.stringify(e.getTokenUnitsData())),e.tradeRates&&e.tradeRates.length&&(t.tradeRates=JSON.stringify(e.tradeRates)),Object.keys(t).length>0&&this.merge(t),this}setMetaWallet(e){return this.merge({walletTokenSlug:e.token,walletBundleHash:e.bundle,walletAddress:e.address,walletPosition:e.position,walletBatchId:e.batchId,walletPubkey:e.pubkey,walletCharacters:e.characters}),this}setShadowWalletClaim(e){return this.merge({shadowWalletClaim:e*1}),this}setSigningWallet(e){return this.merge({signingWallet:JSON.stringify({tokenSlug:e.token,bundleHash:e.bundle,address:e.address,position:e.position,pubkey:e.pubkey,characters:e.characters})}),this}addPolicy(e){const t=new Pe(e,Object.keys(this.meta));return this.merge({policy:t.toJson()}),this}get(){return this.meta}}class T extends TypeError{constructor(e=null,t=null,n=null){if(super(e,t,n),e===null)throw new this(`Unknown ${this.constructor.name}`);this.name="BaseException"}toString(){return`${this.name}: ${this.message}.
1
+ var KnishIOClient=(function(h,q,A,hs,Ye){"use strict";var _r=Object.defineProperty;var $r=(h,q,A)=>q in h?_r(h,q,{enumerable:!0,configurable:!0,writable:!0,value:A}):h[q]=A;var J=(h,q,A)=>$r(h,typeof q!="symbol"?q+"":q,A);typeof self>"u"&&(global.self=global);class _t{static toHex(e,t){const n=(c,u)=>{const l=u?["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"]:["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];return l[Math.floor(c/16)]+l[c%16]},s=Object.assign({grouping:0,rowlength:0,uppercase:!1},t||{});let r="",i=0,o=0;for(let c=0;c<e.length&&(r+=n(e[c],s.uppercase),c!==e.length-1);++c)s.grouping>0&&++i===s.grouping&&(i=0,s.rowlength>0&&++o===s.rowlength?(o=0,r+=`
2
+ `):r+=" ");return r}static toUint8Array(e){let t=e.toLowerCase().replace(/\s/g,"");t.length%2===1&&(t=`0${t}`);const n=new Uint8Array(Math.floor(t.length/2));let s=-1;for(let r=0;r<t.length;++r){const i=t[r],o=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"].indexOf(i);if(o===-1)throw Error("unexpected character");s===-1?s=16*o:(n[Math.floor(r/2)]=s+o,s=-1)}return n}}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}),String.prototype.toCamelCase||(String.prototype.toCamelCase=function(){return this.toLowerCase().replace(/[^a-zA-Z0-9]+(.)/g,(a,e)=>e.toUpperCase())}),String.prototype.toSnakeCase||(String.prototype.toSnakeCase=function(){return this.replace(/[A-Z]/g,a=>`_${a.toLowerCase()}`)});function $e(a,e){const t=Math.ceil(a.length/e),n=[];for(let s=0,r=0;s<t;++s,r+=e)n[s]=a.substr(r,e);return n}function Ue(a=256,e="abcdef0123456789"){let t=new Uint8Array(a);return t=crypto.getRandomValues(t),t=t.map(n=>e.charCodeAt(n%e.length)),String.fromCharCode.apply(null,t)}function $t(a,e,t,n,s){if(n=n||"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~`!@#$%^&*()-_=+[{]}\\|;:'\",<.>/?¿¡",s=s||n,e>n.length||t>s.length)return console.warn("Strings::charsetBaseConvert() - Can't convert",a,"to base",t,"greater than symbol table length. src-table:",n.length,"dest-table:",s.length),!1;let i=BigInt(0);for(let c=0;c<a.length;c++)i=i*BigInt(e)+BigInt(n.indexOf(a.charAt(c)));let o="";for(;i>0;){const c=i%BigInt(t);o=s.charAt(Number(c))+o,i/=BigInt(t)}return o||"0"}function At(a){return _t.toHex(a,{})}function vt(a){return _t.toUint8Array(a)}function It(a){const e=vt(a);return btoa(String.fromCharCode.apply(null,e))}function Mt(a){const e=new Uint8Array(atob(a).split("").map(t=>t.charCodeAt(0)));return At(e)}function He(a){return/^[A-F0-9]+$/i.test(a)}function Tt(a){return(typeof a=="number"||typeof a=="string"&&a.trim()!=="")&&!isNaN(a)}let ie=class{static normalizeMeta(e){if(Array.isArray(e))return e.map(n=>({key:n.key,value:n.value==null?null:String(n.value)}));const t=[];for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)){const s=e[n];t.push({key:n,value:s==null?null:String(s)})}return t}static aggregateMeta(e){let t={};if(Array.isArray(e))for(const n of e)t[n.key]=n.value;else t=e;return t}};function Ct(a,e){return a.length?[a.slice(0,e)].concat(Ct(a.slice(e),e)):[]}function xt(a,e){let t,n,s;const r=[Array,Date,Number,String,Boolean],i=Object.prototype.toString;for(e=e||[],t=0;t<e.length;t+=2)a===e[t]&&(n=e[t+1]);if(!n&&a&&typeof a=="object"){for(n={},t=0;t<r.length;t++)i.call(a)===i.call(s=new r[t](a))&&(n=t?s:[]);e.push(a,n);for(t in a)e.hasOwnProperty.call(a,t)&&(n[t]=xt(a[t],e))}return n||a}function Et(...a){return[].concat(...a.map((e,t)=>{const n=a.slice(0);n.splice(t,1);const s=[...new Set([].concat(...n))];return e.filter(r=>!s.includes(r))}))}function ye(...a){return a.reduce((e,t)=>e.filter(n=>t.includes(n)))}class Pe{constructor(e={},t={}){this.policy=Pe.normalizePolicy(e),this.fillDefault(t)}static normalizePolicy(e={}){const t={};for(const[n,s]of Object.entries(e))if(s!==null&&["read","write"].includes(n)){t[n]={};for(const[r,i]of Object.entries(s))t[n][r]=i}return t}fillDefault(e={}){const t=Array.from(this.policy).filter(s=>s.action==="read"),n=Array.from(this.policy).filter(s=>s.action==="write");for(const[s,r]of Object.entries({read:t,write:n})){const i=r.map(o=>o.key);this.policy[s]||(this.policy[s]={});for(const o of Et(e,i))this.policy[s][o]||(this.policy[s][o]=s==="write"&&!["characters","pubkey"].includes(o)?["self"]:["all"])}}get(){return this.policy}toJson(){return JSON.stringify(this.get())}}class H{constructor(e=[]){this.meta=ie.normalizeMeta(e)}merge(e){return this.meta=Array.from(new Set([...this.meta,...ie.normalizeMeta(e)])),this}addContext(e=null){return this}setAtomWallet(e){const t={};return e.tokenUnits&&e.tokenUnits.length&&(t.tokenUnits=JSON.stringify(e.getTokenUnitsData())),e.tradeRates&&e.tradeRates.length&&(t.tradeRates=JSON.stringify(e.tradeRates)),Object.keys(t).length>0&&this.merge(t),this}setMetaWallet(e){return this.merge({walletTokenSlug:e.token,walletBundleHash:e.bundle,walletAddress:e.address,walletPosition:e.position,walletBatchId:e.batchId,walletPubkey:e.pubkey,walletCharacters:e.characters}),this}setShadowWalletClaim(e){return this.merge({shadowWalletClaim:e*1}),this}setSigningWallet(e){return this.merge({signingWallet:JSON.stringify({tokenSlug:e.token,bundleHash:e.bundle,address:e.address,position:e.position,pubkey:e.pubkey,characters:e.characters})}),this}addPolicy(e){const t=new Pe(e,Object.keys(this.meta));return this.merge({policy:t.toJson()}),this}get(){return this.meta}}class T extends TypeError{constructor(e=null,t=null,n=null){if(super(e,t,n),e===null)throw new this(`Unknown ${this.constructor.name}`);this.name="BaseException"}toString(){return`${this.name}: ${this.message}.
3
3
  Stack:
4
- ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain atoms",t=null,n=null){super(e,t,n),this.name="AtomsMissingException"}}class oe{static create(e){const t={};for(const n of Object.keys(e))Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return new this(t)}static structure(e){switch(Object.prototype.toString.call(e)){case"[object Array]":{const t=[];for(const n in e)t.push(oe.isStructure(e[n])?oe.structure(e[n]):e[n]);return t}case"[object Object]":{const t=[],n=Object.keys(e).sort((s,r)=>s===r?0:s<r?-1:1);for(const s of n)if(Object.prototype.hasOwnProperty.call(e,s)){const r={};r[s]=oe.isStructure(e[s])?oe.structure(e[s]):e[s],t.push(r)}if(t.length>0)return t;break}}return e}static isStructure(e){return["[object Object]","[object Array]"].includes(Object.prototype.toString.call(e))}view(){return oe.structure(this)}}class us extends oe{constructor({position:e=null,walletAddress:t=null,isotope:n=null,token:s=null,value:r=null,batchId:i=null,metaType:a=null,metaId:c=null,meta:u=null,index:l=null,createdAt:d=null,version:f=null}){super(),this.position=e,this.walletAddress=t,this.isotope=n,this.token=s,this.value=r,this.batchId=i,this.metaType=a,this.metaId=c,this.meta=u,this.index=l,this.createdAt=d,this.version=f}}const Ke={4:us};class g{constructor({position:e=null,walletAddress:t=null,isotope:n=null,token:s=null,value:r=null,batchId:i=null,metaType:a=null,metaId:c=null,meta:u=null,otsFragment:l=null,index:d=null,version:f=null}){this.position=e,this.walletAddress=t,this.isotope=n,this.token=s,this.value=r!==null?String(r):null,this.batchId=i,this.metaType=a,this.metaId=c,this.meta=u?ie.normalizeMeta(u):[],this.index=d,this.otsFragment=l,this.createdAt=String(+new Date),f!==null&&Object.prototype.hasOwnProperty.call(Ke,f)&&(this.version=String(f))}static getHashableProps(){return["position","walletAddress","isotope","token","value","batchId","metaType","metaId","meta","createdAt"]}static getUnclaimedProps(){return["otsFragment"]}static create({isotope:e,wallet:t=null,value:n=null,metaType:s=null,metaId:r=null,meta:i=null,batchId:a=null}){return i||(i=new H),i instanceof H||(i=new H(i)),t&&(i.setAtomWallet(t),a||(a=t.batchId)),new g({position:t?t.position:null,walletAddress:t?t.address:null,isotope:e,token:t?t.token:null,value:n,batchId:a,metaType:s,metaId:r,meta:i.get()})}static jsonToObject(e){const t=Object.assign(new g({}),JSON.parse(e)),n=Object.keys(new g({}));for(const s in t)Object.prototype.hasOwnProperty.call(t,s)&&!n.includes(s)&&delete t[s];return t}toJSON(e={}){const{includeOtsFragments:t=!0,validateFields:n=!1}=e;try{if(n){const r=["position","walletAddress","isotope","token"];for(const i of r)if(!this[i])throw new Error(`Required field '${i}' is missing or empty`)}const s={position:this.position??"",walletAddress:this.walletAddress??"",isotope:this.isotope,token:this.token??"",value:this.value,batchId:this.batchId,metaType:this.metaType,metaId:this.metaId,meta:this.meta||[],index:this.index,createdAt:this.createdAt,version:this.version};return t&&this.otsFragment&&(s.otsFragment=this.otsFragment),s}catch(s){throw new Error(`Atom serialization failed: ${s.message}`)}}static fromJSON(e,t={}){const{validateStructure:n=!0,strictMode:s=!1}=t;try{const r=typeof e=="string"?JSON.parse(e):e;if(s||n){const a=["position","walletAddress","isotope","token"];for(const c of a)if(!r[c])throw new Error(`Required field '${c}' is missing or empty`)}const i=new g({position:r.position,walletAddress:r.walletAddress,isotope:r.isotope,token:r.token,value:r.value,batchId:r.batchId,metaType:r.metaType,metaId:r.metaId,meta:r.meta,index:r.index,version:r.version});return r.otsFragment&&(i.otsFragment=r.otsFragment),r.createdAt&&(i.createdAt=r.createdAt),i}catch(r){throw new Error(`Atom deserialization failed: ${r.message}`)}}static hashAtoms({atoms:e,output:t="base17"}){const n=new W("SHAKE256","TEXT"),s=g.sortAtoms(e);if(s.length===0)throw new se;if(s.map(r=>{if(!(r instanceof g))throw new se;return r}),s.every(r=>r.version&&Object.prototype.hasOwnProperty.call(Ke,r.version)))n.update(JSON.stringify(s.map(r=>Ke[r.version].create(r).view())));else{const r=String(e.length);let i=[];for(const a of s)i.push(r),i=i.concat(a.getHashableValues());for(const a of i)n.update(a)}switch(t){case"hex":return n.getHash("HEX",{outputLen:256});case"array":return n.getHash("ARRAYBUFFER",{outputLen:256});default:return _t(n.getHash("HEX",{outputLen:256}),16,17,"0123456789abcdef","0123456789abcdefg").padStart(64,"0")}}static jsonSerialization(e,t){if(!g.getUnclaimedProps().includes(e))return t}static sortAtoms(e){const t=[...e];return t.sort((n,s)=>n.index<s.index?-1:1),t}aggregatedMeta(){return ie.aggregateMeta(this.meta)}getHashableValues(){const e=[];for(const t of g.getHashableProps()){const n=this[t];if(!(n===null&&!["position","walletAddress"].includes(t)))if(t==="meta")for(const s of n)typeof s.value<"u"&&s.value!==null&&(e.push(String(s.key)),e.push(String(s.value)));else e.push(n===null?"":String(n))}return e}}function Ne(o=null,e=2048){if(o){const t=new W("SHAKE256","TEXT");return t.update(o),t.getHash("HEX",{outputLen:e*2})}else return Ue(e)}function ae(o,e=null){const t=new W("SHAKE256","TEXT");return t.update(o),t.getHash("HEX",{outputLen:256})}function Ye(o,e){const t=new W("SHAKE256","TEXT");return t.update(o),t.getHash("HEX",{outputLen:e})}function le({molecularHash:o=null,index:e=null}){return o!==null&&e!==null?ae(String(o)+String(e),"generateBatchId"):Ue(64)}class ce{constructor(e,t,n){this.id=e,this.name=t,this.metas=n||{}}static createFromGraphQL(e){let t=e.metas||{};return t.length&&(t=JSON.parse(t),t||(t={})),new ce(e.id,e.name,t)}static createFromDB(e){return new ce(e[0],e[1],e.length>2?e[2]:{})}getFragmentZone(){return this.metas.fragmentZone||null}getFusedTokenUnits(){return this.metas.fusedTokenUnits||null}toData(){return[this.id,this.name,this.metas]}toGraphQLResponse(){return{id:this.id,name:this.name,metas:JSON.stringify(this.metas)}}}class et extends T{constructor(e="Attempting to create a wallet with no credentials (secret or bundle hash)",t=null,n=null){super(e,t,n),this.name="WalletCredentialException"}}const Fe=BigInt(2**32-1),Et=BigInt(32);function hs(o,e=!1){return e?{h:Number(o&Fe),l:Number(o>>Et&Fe)}:{h:Number(o>>Et&Fe)|0,l:Number(o&Fe)|0}}function ds(o,e=!1){const t=o.length;let n=new Uint32Array(t),s=new Uint32Array(t);for(let r=0;r<t;r++){const{h:i,l:a}=hs(o[r],e);[n[r],s[r]]=[i,a]}return[n,s]}const ps=(o,e,t)=>o<<t|e>>>32-t,fs=(o,e,t)=>e<<t|o>>>32-t,ms=(o,e,t)=>e<<t-32|o>>>64-t,ys=(o,e,t)=>o<<t-32|e>>>64-t;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function gs(o){return o instanceof Uint8Array||ArrayBuffer.isView(o)&&o.constructor.name==="Uint8Array"}function Rt(o,e=""){if(!Number.isSafeInteger(o)||o<0){const t=e&&`"${e}" `;throw new Error(`${t}expected integer >= 0, got ${o}`)}}function D(o,e,t=""){const n=gs(o),s=o==null?void 0:o.length,r=e!==void 0;if(!n||r&&s!==e){const i=t&&`"${t}" `,a=r?` of length ${e}`:"",c=n?`length=${s}`:`type=${typeof o}`;throw new Error(i+"expected Uint8Array"+a+", got "+c)}return o}function Ot(o,e=!0){if(o.destroyed)throw new Error("Hash instance has been destroyed");if(e&&o.finished)throw new Error("Hash#digest() has already been called")}function bs(o,e){D(o,void 0,"digestInto() output");const t=e.outputLen;if(o.length<t)throw new Error('"digestInto() output" expected to be of length >='+t)}function Wt(o){return new Uint32Array(o.buffer,o.byteOffset,Math.floor(o.byteLength/4))}function qt(...o){for(let e=0;e<o.length;e++)o[e].fill(0)}const ws=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ks(o){return o<<24&4278190080|o<<8&16711680|o>>>8&65280|o>>>24&255}function Ss(o){for(let e=0;e<o.length;e++)o[e]=ks(o[e]);return o}const Bt=ws?o=>o:Ss;function Ut(o,e={}){const t=(s,r)=>o(r).update(s).digest(),n=o(void 0);return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=s=>o(s),Object.assign(t,e),Object.freeze(t)}function _s(o=32){const e=typeof globalThis=="object"?globalThis.crypto:null;if(typeof(e==null?void 0:e.getRandomValues)!="function")throw new Error("crypto.getRandomValues must be defined");return e.getRandomValues(new Uint8Array(o))}const Qe=o=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,o])}),As=BigInt(0),$e=BigInt(1),$s=BigInt(2),vs=BigInt(7),Is=BigInt(256),Ms=BigInt(113),Ht=[],Pt=[],Kt=[];for(let o=0,e=$e,t=1,n=0;o<24;o++){[t,n]=[n,(2*t+3*n)%5],Ht.push(2*(5*n+t)),Pt.push((o+1)*(o+2)/2%64);let s=As;for(let r=0;r<7;r++)e=(e<<$e^(e>>vs)*Ms)%Is,e&$s&&(s^=$e<<($e<<BigInt(r))-$e);Kt.push(s)}const Nt=ds(Kt,!0),Ts=Nt[0],Cs=Nt[1],Ft=(o,e,t)=>t>32?ms(o,e,t):ps(o,e,t),Qt=(o,e,t)=>t>32?ys(o,e,t):fs(o,e,t);function xs(o,e=24){const t=new Uint32Array(10);for(let n=24-e;n<24;n++){for(let i=0;i<10;i++)t[i]=o[i]^o[i+10]^o[i+20]^o[i+30]^o[i+40];for(let i=0;i<10;i+=2){const a=(i+8)%10,c=(i+2)%10,u=t[c],l=t[c+1],d=Ft(u,l,1)^t[a],f=Qt(u,l,1)^t[a+1];for(let p=0;p<50;p+=10)o[i+p]^=d,o[i+p+1]^=f}let s=o[2],r=o[3];for(let i=0;i<24;i++){const a=Pt[i],c=Ft(s,r,a),u=Qt(s,r,a),l=Ht[i];s=o[l],r=o[l+1],o[l]=c,o[l+1]=u}for(let i=0;i<50;i+=10){for(let a=0;a<10;a++)t[a]=o[i+a];for(let a=0;a<10;a++)o[i+a]^=~t[(a+2)%10]&t[(a+4)%10]}o[0]^=Ts[n],o[1]^=Cs[n]}qt(t)}class Le{constructor(e,t,n,s=!1,r=24){J(this,"state");J(this,"pos",0);J(this,"posOut",0);J(this,"finished",!1);J(this,"state32");J(this,"destroyed",!1);J(this,"blockLen");J(this,"suffix");J(this,"outputLen");J(this,"enableXOF",!1);J(this,"rounds");if(this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=s,this.rounds=r,Rt(n,"outputLen"),!(0<e&&e<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=Wt(this.state)}clone(){return this._cloneInto()}keccak(){Bt(this.state32),xs(this.state32,this.rounds),Bt(this.state32),this.posOut=0,this.pos=0}update(e){Ot(this),D(e);const{blockLen:t,state:n}=this,s=e.length;for(let r=0;r<s;){const i=Math.min(t-this.pos,s-r);for(let a=0;a<i;a++)n[this.pos++]^=e[r++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:n,blockLen:s}=this;e[n]^=t,(t&128)!==0&&n===s-1&&this.keccak(),e[s-1]^=128,this.keccak()}writeInto(e){Ot(this,!1),D(e),this.finish();const t=this.state,{blockLen:n}=this;for(let s=0,r=e.length;s<r;){this.posOut>=n&&this.keccak();const i=Math.min(n-this.posOut,r-s);e.set(t.subarray(this.posOut,this.posOut+i),s),this.posOut+=i,s+=i}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return Rt(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(bs(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,qt(this.state)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:s,rounds:r,enableXOF:i}=this;return e||(e=new Le(t,n,s,i,r)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=r,e.suffix=n,e.outputLen=s,e.enableXOF=i,e.destroyed=this.destroyed,e}}const Lt=(o,e,t,n={})=>Ut(()=>new Le(e,o,t),n),Es=Lt(6,136,32,Qe(8)),Rs=Lt(6,72,64,Qe(10)),jt=(o,e,t,n={})=>Ut((s={})=>new Le(e,o,s.dkLen===void 0?t:s.dkLen,!0),n),Os=jt(31,168,16,Qe(11)),Dt=jt(31,136,32,Qe(12));function tt(o){if(!Number.isSafeInteger(o)||o<0||o>4294967295)throw new Error("wrong u32 integer:"+o);return o}function Vt(o){return tt(o),(o&o-1)===0&&o!==0}function zt(o,e){tt(o);let t=0;for(let n=0;n<e;n++,o>>>=1)t=t<<1|o&1;return t}function Jt(o){return tt(o),31-Math.clz32(o)}function Gt(o){const e=o.length;if(e<2||!Vt(e))throw new Error("n must be a power of 2 and greater than 1. Got "+e);const t=Jt(e);for(let n=0;n<e;n++){const s=zt(n,t);if(n<s){const r=o[n];o[n]=o[s],o[s]=r}}return o}const Xt=(o,e)=>{const{N:t,roots:n,dit:s,invertButterflies:r=!1,skipStages:i=0,brp:a=!0}=e,c=Jt(t);if(!Vt(t))throw new Error("FFT: Polynomial size should be power of two");const u=s!==r;return l=>{if(l.length!==t)throw new Error("FFT: wrong Polynomial length");s&&a&&Gt(l);for(let d=0,f=1;d<c-i;d++){const p=s?d+1+i:c-d,w=1<<p,I=w>>1,R=t>>p;for(let m=0;m<t;m+=w)for(let b=0,k=f++;b<I;b++){const O=r?s?t-k:k:b*R,_=m+b,v=m+b+I,M=n[O],x=l[v],A=l[_];if(u){const F=o.mul(x,M);l[_]=o.add(A,F),l[v]=o.sub(A,F)}else r?(l[_]=o.add(x,A),l[v]=o.mul(o.sub(x,A),M)):(l[_]=o.add(A,x),l[v]=o.mul(o.sub(A,x),M))}}return!s&&a&&Gt(l),l}};/*! noble-post-quantum - MIT License (c) 2024 Paul Miller (paulmillr.com) */const Zt=_s;function nt(o,e){if(o.length!==e.length)return!1;let t=0;for(let n=0;n<o.length;n++)t|=o[n]^e[n];return t===0}function Ws(o){return Uint8Array.from(o)}function je(o,...e){const t=s=>typeof s=="number"?s:s.bytesLen,n=e.reduce((s,r)=>s+t(r),0);return{bytesLen:n,encode:s=>{const r=new Uint8Array(n);for(let i=0,a=0;i<e.length;i++){const c=e[i],u=t(c),l=typeof c=="number"?s[i]:c.encode(s[i]);D(l,u,o),r.set(l,a),typeof c!="number"&&l.fill(0),a+=u}return r},decode:s=>{D(s,n,o);const r=[];for(const i of e){const a=t(i),c=s.subarray(0,a);r.push(typeof i=="number"?c:i.decode(c)),s=s.subarray(a)}return r}}}function st(o,e){const t=e*o.bytesLen;return{bytesLen:t,encode:n=>{if(n.length!==e)throw new Error(`vecCoder.encode: wrong length=${n.length}. Expected: ${e}`);const s=new Uint8Array(t);for(let r=0,i=0;r<n.length;r++){const a=o.encode(n[r]);s.set(a,i),a.fill(0),i+=a.length}return s},decode:n=>{D(n,t);const s=[];for(let r=0;r<n.length;r+=o.bytesLen)s.push(o.decode(n.subarray(r,r+o.bytesLen)));return s}}}function X(...o){for(const e of o)if(Array.isArray(e))for(const t of e)t.fill(0);else e.fill(0)}function Yt(o){return(1<<o)-1}/*! noble-post-quantum - MIT License (c) 2024 Paul Miller (paulmillr.com) */const qs=o=>{const{newPoly:e,N:t,Q:n,F:s,ROOT_OF_UNITY:r,brvBits:i}=o,a=(m,b=n)=>{const k=m%b|0;return(k>=0?k|0:b+k|0)|0},c=(m,b=n)=>{const k=a(m,b)|0;return(k>b>>1?k-b|0:k)|0};function u(){const m=e(t);for(let b=0;b<t;b++){const k=zt(b,i),O=BigInt(r)**BigInt(k)%BigInt(n);m[b]=Number(O)|0}return m}const l=u(),d={add:(m,b)=>a((m|0)+(b|0))|0,sub:(m,b)=>a((m|0)-(b|0))|0,mul:(m,b)=>a((m|0)*(b|0))|0,inv:m=>{throw new Error("not implemented")}},f={N:t,roots:l,invertButterflies:!0,skipStages:1,brp:!1},p=Xt(d,{dit:!1,...f}),w=Xt(d,{dit:!0,...f});return{mod:a,smod:c,nttZetas:l,NTT:{encode:m=>p(m),decode:m=>{w(m);for(let b=0;b<m.length;b++)m[b]=a(s*m[b]);return m}},bitsCoder:(m,b)=>{const k=Yt(m),O=m*(t/8);return{bytesLen:O,encode:_=>{const v=new Uint8Array(O);for(let M=0,x=0,A=0,F=0;M<_.length;M++)for(x|=(b.encode(_[M])&k)<<A,A+=m;A>=8;A-=8,x>>=8)v[F++]=x&Yt(A);return v},decode:_=>{const v=e(t);for(let M=0,x=0,A=0,F=0;M<_.length;M++)for(x|=_[M]<<A,A+=8;A>=m;A-=m,x>>=m)v[F++]=b.decode(x&k);return v}}}}},Bs=(o=>(e,t)=>{t||(t=o.blockLen);const n=new Uint8Array(e.length+2);n.set(e);const s=e.length,r=new Uint8Array(t);let i=o.create({}),a=0,c=0;return{stats:()=>({calls:a,xofs:c}),get:(u,l)=>(n[s+0]=u,n[s+1]=l,i.destroy(),i=o.create({}).update(n),a++,()=>(c++,i.xofInto(r))),clean:()=>{i.destroy(),X(r,n)}}})(Os);/*! noble-post-quantum - MIT License (c) 2024 Paul Miller (paulmillr.com) */const L=256,ue=3329,Us=3303,Hs=17,{mod:ve,nttZetas:Ps,NTT:he,bitsCoder:Ks}=qs({N:L,Q:ue,F:Us,ROOT_OF_UNITY:Hs,newPoly:o=>new Uint16Array(o),brvBits:7}),Ns={768:{N:L,Q:ue,K:3,ETA1:2,ETA2:2,du:10,dv:4,RBGstrength:192}},Fs=o=>{if(o>=12)return{encode:t=>t,decode:t=>t};const e=2**(o-1);return{encode:t=>((t<<o)+ue/2)/ue,decode:t=>t*ue+e>>>o}},Ie=o=>Ks(o,Fs(o));function de(o,e){for(let t=0;t<L;t++)o[t]=ve(o[t]+e[t])}function Qs(o,e){for(let t=0;t<L;t++)o[t]=ve(o[t]-e[t])}function Ls(o,e,t,n,s){const r=ve(e*n*s+o*t),i=ve(o*n+e*t);return{c0:r,c1:i}}function De(o,e){for(let t=0;t<L/2;t++){let n=Ps[64+(t>>1)];t&1&&(n=-n);const{c0:s,c1:r}=Ls(o[2*t+0],o[2*t+1],e[2*t+0],e[2*t+1],n);o[2*t+0]=s,o[2*t+1]=r}return o}function en(o){const e=new Uint16Array(L);for(let t=0;t<L;){const n=o();if(n.length%3)throw new Error("SampleNTT: unaligned block");for(let s=0;t<L&&s+3<=n.length;s+=3){const r=(n[s+0]>>0|n[s+1]<<8)&4095,i=(n[s+1]>>4|n[s+2]<<4)&4095;r<ue&&(e[t++]=r),t<L&&i<ue&&(e[t++]=i)}}return e}function Me(o,e,t,n){const s=o(n*L/4,e,t),r=new Uint16Array(L),i=Wt(s);let a=0;for(let c=0,u=0,l=0,d=0;c<i.length;c++){let f=i[c];for(let p=0;p<32;p++)l+=f&1,f>>=1,a+=1,a===n?(d=l,l=0):a===2*n&&(r[u++]=ve(d-l),l=0,a=0)}if(a)throw new Error(`sampleCBD: leftover bits: ${a}`);return r}const js=o=>{const{K:e,PRF:t,XOF:n,HASH512:s,ETA1:r,ETA2:i,du:a,dv:c}=o,u=Ie(1),l=Ie(c),d=Ie(a),f=je("publicKey",st(Ie(12),e),32),p=st(Ie(12),e),w=je("ciphertext",st(d,e),l),I=je("seed",32,32);return{secretCoder:p,lengths:{secretKey:p.bytesLen,publicKey:f.bytesLen,cipherText:w.bytesLen},keygen:R=>{D(R,32,"seed");const m=new Uint8Array(33);m.set(R),m[32]=e;const b=s(m),[k,O]=I.decode(b),_=[],v=[];for(let A=0;A<e;A++)_.push(he.encode(Me(t,O,A,r)));const M=n(k);for(let A=0;A<e;A++){const F=he.encode(Me(t,O,e+A,r));for(let U=0;U<e;U++){const _e=en(M.get(U,A));de(F,De(_e,_[U]))}v.push(F)}M.clean();const x={publicKey:f.encode([v,k]),secretKey:p.encode(_)};return X(k,O,_,v,m,b),x},encrypt:(R,m,b)=>{const[k,O]=f.decode(R),_=[];for(let U=0;U<e;U++)_.push(he.encode(Me(t,b,U,r)));const v=n(O),M=new Uint16Array(L),x=[];for(let U=0;U<e;U++){const _e=Me(t,b,e+U,i),wt=new Uint16Array(L);for(let Ze=0;Ze<e;Ze++){const wr=en(v.get(U,Ze));de(wt,De(wr,_[Ze]))}de(_e,he.decode(wt)),x.push(_e),de(M,De(k[U],_[U])),X(wt)}v.clean();const A=Me(t,b,2*e,i);de(A,he.decode(M));const F=u.decode(m);return de(F,A),X(k,_,M,A),w.encode([x,F])},decrypt:(R,m)=>{const[b,k]=w.decode(R),O=p.decode(m),_=new Uint16Array(L);for(let v=0;v<e;v++)de(_,De(O[v],he.encode(b[v])));return Qs(k,he.decode(_)),X(_,O,b),u.encode(k)}}};function Ds(o){const e=js(o),{HASH256:t,HASH512:n,KDF:s}=o,{secretCoder:r,lengths:i}=e,a=je("secretKey",i.secretKey,i.publicKey,32,32),c=32,u=64;return{info:{type:"ml-kem"},lengths:{...i,seed:64,msg:c,msgRand:c,secretKey:a.bytesLen},keygen:(l=Zt(u))=>{D(l,u,"seed");const{publicKey:d,secretKey:f}=e.keygen(l.subarray(0,32)),p=t(d),w=a.encode([f,d,p,l.subarray(32)]);return X(f,p),{publicKey:d,secretKey:w}},getPublicKey:l=>{const[d,f]=a.decode(l);return Uint8Array.from(f)},encapsulate:(l,d=Zt(c))=>{D(l,i.publicKey,"publicKey"),D(d,c,"message");const f=l.subarray(0,384*o.K),p=r.encode(r.decode(Ws(f)));if(!nt(p,f))throw X(p),new Error("ML-KEM.encapsulate: wrong publicKey modulus");X(p);const w=n.create().update(d).update(t(l)).digest(),I=e.encrypt(l,d,w.subarray(32,64));return X(w.subarray(32)),{cipherText:I,sharedSecret:w.subarray(0,32)}},decapsulate:(l,d)=>{D(d,a.bytesLen,"secretKey"),D(l,i.cipherText,"cipherText");const f=a.bytesLen-96,p=f+32,w=t(d.subarray(f/2,p));if(!nt(w,d.subarray(p,p+32)))throw new Error("invalid secretKey: hash check failed");const[I,R,m,b]=a.decode(d),k=e.decrypt(l,I),O=n.create().update(k).update(m).digest(),_=O.subarray(0,32),v=e.encrypt(R,k,O.subarray(32,64)),M=nt(l,v),x=s.create({dkLen:32}).update(b).update(l).digest();return X(k,v,M?x:_),M?_:x}}}function Vs(o,e,t){return Dt.create({dkLen:o}).update(e).update(new Uint8Array([t])).digest()}const rt=Ds({...{HASH256:Es,HASH512:Rs,KDF:Dt,XOF:Bs,PRF:Vs},...Ns[768]});class S{constructor({secret:e=null,bundle:t=null,token:n="USER",address:s=null,position:r=null,batchId:i=null,characters:a=null}){this.token=n,this.balance="0",this.molecules={},this.key=null,this.privkey=null,this.pubkey=null,this.tokenUnits=[],this.tradeRates={},this.address=s,this.position=r,this.bundle=t,this.batchId=i,this.characters=a,e&&(this.bundle=this.bundle||ae(e,"Wallet::constructor"),this.position=this.position||S.generatePosition(),this.key=S.generateKey({secret:e,token:this.token,position:this.position}),this.address=this.address||S.generateAddress(this.key),this.characters=this.characters||"BASE64",this.initializeMLKEM())}static create({secret:e=null,bundle:t=null,token:n,batchId:s=null,characters:r=null}){let i=null;if(!e&&!t)throw new et;return e&&!t&&(i=S.generatePosition(),t=ae(e,"Wallet::create")),new S({secret:e,bundle:t,token:n,position:i,batchId:s,characters:r})}static isBundleHash(e){return typeof e!="string"?!1:e.length===64&&He(e)}static getTokenUnits(e){const t=[];return e.forEach(n=>{t.push(ce.createFromDB(n))}),t}static generateKey({secret:e,token:t,position:n}){if(!e)throw new et("Wallet::generateKey() - Secret is required!");if(!n)throw new et("Wallet::generateKey() - Position is required!");const s=He(e)?e:Ye(e,1024),r=He(n)?n:Ye(n,256),a=BigInt(`0x${s}`)+BigInt(`0x${r}`),c=new W("SHAKE256","TEXT");c.update(a.toString(16)),t&&c.update(t);const u=new W("SHAKE256","TEXT");return u.update(c.getHash("HEX",{outputLen:8192})),u.getHash("HEX",{outputLen:8192})}static generateAddress(e){const t=Ae(e,128),n=new W("SHAKE256","TEXT");for(const r in t){let i=t[r];for(let a=1;a<=16;a++){const c=new W("SHAKE256","TEXT");c.update(i),i=c.getHash("HEX",{outputLen:512})}n.update(i)}const s=new W("SHAKE256","TEXT");return s.update(n.getHash("HEX",{outputLen:8192})),s.getHash("HEX",{outputLen:256})}static generatePosition(e=64){return Ue(e,"abcdef0123456789")}initializeMLKEM(){const e=Ne(this.key,128),t=new Uint8Array(64);for(let r=0;r<64;r++)t[r]=parseInt(e.substr(r*2,2),16);const{publicKey:n,secretKey:s}=rt.keygen(t);this.pubkey=this.serializeKey(n),this.privkey=s}serializeKey(e){return btoa(String.fromCharCode.apply(null,e))}deserializeKey(e){const t=atob(e);return new Uint8Array(t.length).map((n,s)=>t.charCodeAt(s))}balanceAsNumber(){return Number(this.balance)}balanceAsBigInt(){const e=String(this.balance),t=e.includes(".")?e.split(".")[0]:e;return BigInt(t||"0")}setBalanceBigInt(e){this.balance=e.toString()}setBalanceNumber(e){this.balance=String(e)}getTokenUnitsData(){const e=[];return this.tokenUnits.forEach(t=>{e.push(t.toData())}),e}splitUnits(e,t,n=null){if(e.length===0)return;const s=[],r=[];this.tokenUnits.forEach(i=>{e.includes(i.id)?s.push(i):r.push(i)}),this.tokenUnits=s,n!==null&&(n.tokenUnits=s),t.tokenUnits=r}createRemainder(e){const t=S.create({secret:e,token:this.token,characters:this.characters});return t.initBatchId({sourceWallet:this,isRemainder:!0}),t}isShadow(){return(typeof this.position>"u"||this.position===null)&&(typeof this.address>"u"||this.address===null)}initBatchId({sourceWallet:e,isRemainder:t=!1}){e.batchId&&(this.batchId=t?e.batchId:le({}))}async encryptMessage(e,t){const n=JSON.stringify(e),s=new TextEncoder().encode(n),r=this.deserializeKey(t),{cipherText:i,sharedSecret:a}=rt.encapsulate(r),c=await this.encryptWithSharedSecret(s,a);return{cipherText:this.serializeKey(i),encryptedMessage:this.serializeKey(c)}}async decryptMessage(e){const{cipherText:t,encryptedMessage:n}=e;let s;try{s=rt.decapsulate(this.deserializeKey(t),this.privkey)}catch(c){return console.error("Wallet::decryptMessage() - Decapsulation failed",c),console.info("Wallet::decryptMessage() - my public key",this.pubkey),null}let r;try{r=this.deserializeKey(n)}catch(c){return console.warn("Wallet::decryptMessage() - Deserialization failed",c),console.info("Wallet::decryptMessage() - my public key",this.pubkey),console.info("Wallet::decryptMessage() - our shared secret",s),null}let i;try{i=await this.decryptWithSharedSecret(r,s)}catch(c){return console.warn("Wallet::decryptMessage() - Decryption failed",c),console.info("Wallet::decryptMessage() - my public key",this.pubkey),console.info("Wallet::decryptMessage() - our shared secret",s),console.info("Wallet::decryptMessage() - deserialized encrypted message",r),null}let a;try{a=new TextDecoder().decode(i)}catch(c){return console.warn("Wallet::decryptMessage() - Decoding failed",c),console.info("Wallet::decryptMessage() - my public key",this.pubkey),console.info("Wallet::decryptMessage() - our shared secret",s),console.info("Wallet::decryptMessage() - deserialized encrypted message",r),console.info("Wallet::decryptMessage() - decrypted Uint8Array",i),null}return JSON.parse(a)}async encryptWithSharedSecret(e,t){const n=crypto.getRandomValues(new Uint8Array(12)),s={name:"AES-GCM",iv:n},r=await crypto.subtle.importKey("raw",t,{name:"AES-GCM"},!1,["encrypt"]),i=await crypto.subtle.encrypt(s,r,e),a=new Uint8Array(n.length+i.byteLength);return a.set(n),a.set(new Uint8Array(i),n.length),a}async decryptWithSharedSecret(e,t){const s={name:"AES-GCM",iv:e.slice(0,12)},r=await crypto.subtle.importKey("raw",t,{name:"AES-GCM"},!1,["decrypt"]),i=await crypto.subtle.decrypt(s,r,e.slice(12));return new Uint8Array(i)}}class ge extends T{constructor(e="There is an atom without an index",t=null,n=null){super(e,t,n),this.name="AtomIndexException"}}class tn extends T{constructor(e="The molecular hash does not match",t=null,n=null){super(e,t,n),this.name="MolecularHashMismatchException"}}class nn extends T{constructor(e="The molecular hash is missing",t=null,n=null){super(e,t,n),this.name="MolecularHashMissingException"}}class it extends T{constructor(e="",t=null,n=null){super(e,t,n),this.name="PolicyInvalidException"}}class ot extends T{constructor(e="OTS malformed",t=null,n=null){super(e,t,n),this.name="SignatureMalformedException"}}class sn extends T{constructor(e="One-time signature (OTS) does not match!",t=null,n=null){super(e,t,n),this.name="SignatureMismatchException"}}class Z extends T{constructor(e="Insufficient balance to make transfer",t=null,n=null){super(e,t,n),this.name="TransferBalanceException"}}class be extends T{constructor(e="Token transfer atoms are malformed",t=null,n=null){super(e,t,n),this.name="TransferMalformedException"}}class at extends T{constructor(e="Token slugs for wallets in transfer do not match!",t=null,n=null){super(e,t,n),this.name="TransferMismatchedException"}}class lt extends T{constructor(e="Invalid remainder provided",t=null,n=null){super(e,t,n),this.name="TransferRemainderException"}}class rn extends T{constructor(e="Sender and recipient(s) cannot be the same",t=null,n=null){super(e,t,n),this.name="TransferToSelfException"}}class Te extends T{constructor(e="Token transfer atoms are unbalanced",t=null,n=null){super(e,t,n),this.name="TransferUnbalancedException"}}class P extends T{constructor(e="Empty meta data.",t=null,n=null){super(e,t,n),this.name="MetaMissingException"}}class re extends T{constructor(e="Wrong type of token for this isotope",t=null,n=null){super(e,t,n),this.name="WrongTokenTypeException"}}class Ce extends T{constructor(e="Incorrect BatchId",t=null,n=null){super(e,t,n),this.name="BatchIdException"}}class on{constructor({}){const e=arguments[0];for(const t in e)this[`__${t}`]=e[t]}static toObject(e){return new this(e)}toJSON(){const e={};for(const t of Object.keys(this))t.substring(0,2)==="__"&&(e[t.substring(2,t.length)]=this[t]);return e}}class Ve extends T{constructor(e="An incorrect argument!",t=null,n=null){super(e,t,n),this.name="RuleArgumentException"}}class Y extends T{constructor(e="Code exception",t=null,n=null){super(e,t,n),this.name="CodeException"}}class xe{constructor({action:e,metaType:t=null,metaId:n=null,meta:s=null,address:r=null,token:i=null,amount:a=null,comparison:c=null}){if(s&&(this.meta=s),!e)throw new Ve('Callback structure violated, missing mandatory "action" parameter.');this.__metaId=n,this.__metaType=t,this.__action=e,this.__address=r,this.__token=i,this.__amount=a,this.__comparison=c}set comparison(e){this.__comparison=e}set amount(e){if(!Mt(e))throw new Y("Parameter amount should be a string containing numbers");this.__amount=e}set token(e){this.__token=e}set address(e){this.__address=e}set meta(e){this.__meta=e instanceof on?e:on.toObject(e)}set metaType(e){this.__metaType=e}set metaId(e){this.__metaId=e}static toObject(e){const t=new xe({action:e.action});return e.metaType&&(t.metaType=e.metaType),e.metaId&&(t.metaId=e.metaId),e.meta&&(t.meta=e.meta),e.address&&(t.address=e.address),e.token&&(t.token=e.token),e.amount&&(t.amount=e.amount),e.comparison&&(t.comparison=e.comparison),t}toJSON(){const e={action:this.__action};return this.__metaType&&(e.metaType=this.__metaType),this.__metaId&&(e.metaId=this.__metaId),this.__meta&&(e.meta=this.__meta),this.__address&&(e.address=this.__address),this.__token&&(e.token=this.__token),this.__amount&&(e.amount=this.__amount),this.__comparison&&(e.comparison=this.__comparison),e}isReject(){return this._is("reject")}isMeta(){return ye(Object.keys(this.toJSON()),["action","metaId","metaType","meta"]).length===4&&this._is("meta")}isCollect(){return ye(Object.keys(this.toJSON()),["action","address","token","amount","comparison"]).length===5&&this._is("collect")}isBuffer(){return ye(Object.keys(this.toJSON()),["action","address","token","amount","comparison"]).length===5&&this._is("buffer")}isRemit(){return ye(Object.keys(this.toJSON()),["action","token","amount"]).length===3&&this._is("remit")}isBurn(){return ye(Object.keys(this.toJSON()),["action","token","amount","comparison"]).length===4&&this._is("burn")}_is(e){return this.__action.toLowerCase()===e.toLowerCase()}}class ct{constructor({key:e,value:t,comparison:n}){if([e,t,n].some(s=>!s))throw new Ve("Condition::constructor( { key, value, comparison } ) - not all class parameters are initialised!");this.__key=e,this.__value=t,this.__comparison=n}static toObject(e){return new this({key:e.key,value:e.value,comparison:e.comparison})}toJSON(){return{key:this.__key,value:this.__value,comparison:this.__comparison}}}class Ee{constructor({condition:e=[],callback:t=[]}){for(const n of e)if(!(n instanceof ct))throw new Ve;for(const n of t)if(!(n instanceof xe))throw new Ve;this.__condition=e,this.__callback=t}set comparison(e){this.__condition.push(e instanceof ct?e:ct.toObject(e))}set callback(e){this.__callback.push(e instanceof xe?e:xe.toObject(e))}static toObject(e){if(!e.condition)throw new P("Rule::toObject() - Incorrect rule format! There is no condition field.");if(!e.callback)throw new P("Rule::toObject() - Incorrect rule format! There is no callback field.");const t=new Ee({});for(const n of e.condition)t.comparison=n;for(const n of e.callback)t.callback=n;return t}toJSON(){return{condition:this.__condition,callback:this.__callback}}}class C{static __init(e,t){this.arr=String(t).split("."),this.key=this.arr.shift();const n=Number(this.key);Number.isInteger(n)&&(this.key=n),this.__nextKey=this.arr.length,this.__next=this.__tic(e)}static __tic(e){return!Array.isArray(e)&&!(e instanceof Object)?!1:typeof e[this.key]<"u"}static has(e,t){return this.__init(e,t),this.__next?this.__nextKey===0?!0:this.has(e[this.key],this.arr.join(".")):!1}static get(e,t,n=null){return this.__init(e,t),this.__next?this.__nextKey===0?e[this.key]:this.get(e[this.key],this.arr.join("."),n):n}static set(e,t,n){const s=t.split(".");let r=e;const i=s.length-1;for(let u=0;u<i;u++){const l=s[u],d=Number(l),f=Number.isInteger(d);(f?d:l in r)||(r[f?d:l]=s[u+1].match(/^\d+$/)?[]:{}),r=r[f?d:l]}const a=s[i],c=Number(a);return r[Number.isInteger(c)?c:a]=n,e}}class we{constructor(e){if(e.molecularHash===null)throw new nn;if(!e.atoms.length)throw new se;for(const t of e.atoms)if(t.index===null)throw new ge;this.molecule=e}verify(e){return this.molecularHash()&&this.ots()&&this.batchId()&&this.continuId()&&this.isotopeM()&&this.isotopeT()&&this.isotopeC()&&this.isotopeU()&&this.isotopeI()&&this.isotopeR()&&this.isotopeP()&&this.isotopeA()&&this.isotopeB()&&this.isotopeF()&&this.isotopeV(e)}continuId(){if(this.molecule.atoms[0].token==="USER"&&this.molecule.getIsotopes("I").length<1)throw new se("Check::continuId() - Molecule is missing required ContinuID Atom!");return!0}batchId(){if(this.molecule.atoms.length>0){const e=this.molecule.atoms[0];if(e.isotope==="V"&&e.batchId!==null){const t=this.molecule.getIsotopes("V"),n=t[t.length-1];if(e.batchId!==n.batchId)throw new Ce;for(const s of t)if(s.batchId===null)throw new Ce}return!0}throw new Ce}isotopeI(){for(const e of this.molecule.getIsotopes("I")){if(e.token!=="USER")throw new re(`Check::isotopeI() - "${e.token}" is not a valid Token slug for "${e.isotope}" isotope Atoms!`);if(e.index===0)throw new ge(`Check::isotopeI() - Isotope "${e.isotope}" Atoms must have a non-zero index!`)}return!0}isotopeU(){for(const e of this.molecule.getIsotopes("U")){if(e.token!=="AUTH")throw new re(`Check::isotopeU() - "${e.token}" is not a valid Token slug for "${e.isotope}" isotope Atoms!`);if(e.index!==0)throw new ge(`Check::isotopeU() - Isotope "${e.isotope}" Atoms must have an index equal to 0!`)}return!0}isotopeM(){const e=["readPolicy","writePolicy"];for(const t of this.molecule.getIsotopes("M")){if(t.meta.length<1)throw new P;if(t.token!=="USER")throw new re(`Check::isotopeM() - "${t.token}" is not a valid Token slug for "${t.isotope}" isotope Atoms!`);const n=ie.aggregateMeta(t.meta);for(const s of e){let r=n[s];if(r){r=JSON.parse(r);for(const[i,a]of Object.entries(r))if(!e.includes(i)){if(!Object.keys(n).includes(i))throw new it(`${i} is missing from the meta.`);for(const c of a)if(!S.isBundleHash(c)&&!["all","self"].includes(c))throw new it(`${c} does not correspond to the format of the policy.`)}}}}return!0}isotopeC(){for(const e of this.molecule.getIsotopes("C")){if(e.token!=="USER")throw new re(`Check::isotopeC() - "${e.token}" is not a valid Token slug for "${e.isotope}" isotope Atoms!`);if(e.index!==0)throw new ge(`Check::isotopeC() - Isotope "${e.isotope}" Atoms must have an index equal to 0!`)}return!0}isotopeT(){for(const e of this.molecule.getIsotopes("T")){const t=e.aggregatedMeta();if(String(e.metaType).toLowerCase()==="wallet"){for(const s of["position","bundle"])if(!Object.prototype.hasOwnProperty.call(t,s)||!t[s])throw new P(`Check::isotopeT() - Required meta field "${s}" is missing!`)}for(const s of["token"])if(!Object.prototype.hasOwnProperty.call(t,s)||!t[s])throw new P(`Check::isotopeT() - Required meta field "${s}" is missing!`);if(e.token!=="USER")throw new re(`Check::isotopeT() - "${e.token}" is not a valid Token slug for "${e.isotope}" isotope Atoms!`);if(e.index!==0)throw new ge(`Check::isotopeT() - Isotope "${e.isotope}" Atoms must have an index equal to 0!`)}return!0}isotopeR(){for(const e of this.molecule.getIsotopes("R")){const t=e.aggregatedMeta();if(t.policy){const n=JSON.parse(t.policy);if(!Object.keys(n).every(s=>["read","write"].includes(s)))throw new P("Check::isotopeR() - Mixing rules with politics!")}if(t.rule){const n=JSON.parse(t.rule);if(!Array.isArray(n))throw new P("Check::isotopeR() - Incorrect rule format!");for(const s of n)Ee.toObject(s);if(n.length<1)throw new P("Check::isotopeR() - No rules!")}}return!0}isotopeP(){for(const e of this.molecule.getIsotopes("P")){if(e.token!=="USER")throw new re(`Check::isotopeP() - "${e.token}" is not a valid Token slug for "${e.isotope}" isotope Atoms!`);const t=e.aggregatedMeta();if(!Object.prototype.hasOwnProperty.call(t,"peerHost")||!t.peerHost)throw new P('Check::isotopeP() - Required meta field "peerHost" is missing!')}return!0}isotopeA(){for(const e of this.molecule.getIsotopes("A")){if(e.token!=="USER")throw new re(`Check::isotopeA() - "${e.token}" is not a valid Token slug for "${e.isotope}" isotope Atoms!`);if(!e.metaType)throw new P('Check::isotopeA() - Required field "metaType" is missing!');if(!e.metaId)throw new P('Check::isotopeA() - Required field "metaId" is missing!');const t=e.aggregatedMeta();if(!Object.prototype.hasOwnProperty.call(t,"action")||!t.action)throw new P('Check::isotopeA() - Required meta field "action" is missing!')}return!0}isotopeB(){const e=this.molecule.getIsotopes("B");if(e.length===0)return!0;for(const n of e){if(!n.metaType||n.metaType!=="walletBundle")throw new P('Check::isotopeB() - B-isotope atoms must have metaType "walletBundle"!');if(!n.metaId)throw new P("Check::isotopeB() - B-isotope atoms must have a metaId!");const s=Number(n.value);if(Number.isNaN(s))throw new be("Check::isotopeB() - B-isotope atom value is not a valid number!")}const t=this.molecule.getIsotopes("V");if(t.length>0){let n=0;for(const s of[...t,...e]){const r=Number(s.value);Number.isNaN(r)||(n+=r)}if(n!==0)throw new Te("Check::isotopeB() - V+B atom values do not balance to zero!")}return!0}isotopeF(){const e=this.molecule.getIsotopes("F");if(e.length===0)return!0;for(const n of e){if(!n.metaType||n.metaType!=="walletBundle")throw new P('Check::isotopeF() - F-isotope atoms must have metaType "walletBundle"!');if(!n.metaId)throw new P("Check::isotopeF() - F-isotope atoms must have a metaId!");const s=Number(n.value);if(Number.isNaN(s))throw new be("Check::isotopeF() - F-isotope atom value is not a valid number!");if(s<0)throw new be("Check::isotopeF() - F-isotope atom value must not be negative!")}const t=this.molecule.getIsotopes("V");if(t.length>0){let n=0;for(const s of[...t,...e]){const r=Number(s.value);Number.isNaN(r)||(n+=r)}if(n!==0)throw new Te("Check::isotopeF() - V+F atom values do not balance to zero!")}return!0}isotopeV(e=null){const t=this.molecule.getIsotopes("V");if(t.length===0)return!0;const n=this.molecule.getIsotopes("B").length>0||this.molecule.getIsotopes("F").length>0,s=this.molecule.atoms[0];if(!n&&s.isotope==="V"&&t.length===2){const a=t[t.length-1];if(s.token!==a.token)throw new at;if(a.value<0)throw new be;if(Number(s.value)+Number(a.value)!==0)throw new Te;return!0}let r=0,i=0;for(const a in this.molecule.atoms)if(Object.prototype.hasOwnProperty.call(this.molecule.atoms,a)){const c=this.molecule.atoms[a];if(c.isotope!=="V")continue;if(i=c.value*1,Number.isNaN(i))throw new TypeError('Invalid isotope "V" values');if(c.token!==s.token)throw new at;if(a>0){if(i<0)throw new be;if(c.walletAddress===s.walletAddress)throw new rn}r+=i}if(!n&&r!==0)throw new Te;if(e){if(i=s.value*1,Number.isNaN(i))throw new TypeError('Invalid isotope "V" values');const a=Number(e.balance)+i;if(a<0)throw new Z;if(!n&&a!==r)throw new lt}else if(i!==0)throw new lt;return!0}molecularHash(){if(this.molecule.molecularHash!==g.hashAtoms({atoms:this.molecule.atoms}))throw new tn;return!0}ots(){const e=this.molecule.normalizedHash();let t=this.molecule.atoms.map(f=>f.otsFragment).reduce((f,p)=>f+p);if(t.length!==2048&&(t=It(t),t.length!==2048))throw new ot;const n=Ae(t,128);let s="";for(const f in n){let p=n[f];for(let w=0,I=8+e[f];w<I;w++)p=new W("SHAKE256","TEXT").update(p).getHash("HEX",{outputLen:512});s+=p}const r=new W("SHAKE256","TEXT");r.update(s);const i=r.getHash("HEX",{outputLen:8192}),a=new W("SHAKE256","TEXT");a.update(i);const c=a.getHash("HEX",{outputLen:256}),u=this.molecule.atoms[0];let l=u.walletAddress;const d=C.get(u.aggregatedMeta(),"signingWallet");if(d&&(l=C.get(JSON.parse(d),"address")),c!==l)throw new sn;return!0}static fromServerData({molecularHash:e,bundleHash:t,cellSlug:n=null,status:s=null,createdAt:r=null,atoms:i=[]}){const a=i.map(c=>{let u=[];if(c.metasJson)try{const l=JSON.parse(c.metasJson);Array.isArray(l)?u=l:l&&typeof l=="object"&&(u=Object.entries(l).map(([d,f])=>({key:d,value:f})))}catch{u=[]}return{position:c.position||null,walletAddress:c.walletAddress||null,isotope:c.isotope||null,token:c.tokenSlug||c.token||null,value:c.value!=null?String(c.value):null,batchId:c.batchId||null,metaType:c.metaType||null,metaId:c.metaId||null,meta:u,index:c.index!=null?c.index:null,otsFragment:c.otsFragment||null,createdAt:c.createdAt||null}});return V.fromJSON({molecularHash:e,bundle:t,cellSlug:n,status:s,createdAt:r,atoms:a})}static verifyFromServerData(e){try{const t=we.fromServerData(e);return new we(t).verify(),{molecularHash:e.molecularHash,verified:!0,error:null}}catch(t){return{molecularHash:e.molecularHash||null,verified:!1,error:t.message||String(t)}}}}class pe extends T{constructor(e="Insufficient balance for requested transfer",t=null,n=null){super(e,t,n),this.name="BalanceInsufficientException"}}class ze extends T{constructor(e="Amount cannot be negative!",t=null,n=null){super(e,t,n),this.name="NegativeAmountException"}}class V{constructor({secret:e=null,bundle:t=null,sourceWallet:n=null,remainderWallet:s=null,cellSlug:r=null,version:i=null,continuIdPosition:a=null}){this.status=null,this.molecularHash=null,this.createdAt=String(+new Date),this.cellSlugOrigin=this.cellSlug=r,this.secret=e,this.bundle=t,this.sourceWallet=n,this.continuIdPosition=a,this.atoms=[],this.parentHashes=[],i!==null&&Object.prototype.hasOwnProperty.call(Ke,i)&&(this.version=String(i)),(s||n)&&(this.remainderWallet=s||S.create({secret:e,bundle:t,token:n.token,batchId:n.batchId,characters:n.characters}))}withParentHashes(e){return this.parentHashes=Array.isArray(e)?[...e]:[],this}get cellSlugDelimiter(){return"."}static isotopeFilter(e,t){return Array.isArray(e)||(e=[e]),t.filter(n=>e.includes(n.isotope))}static generateNextAtomIndex(e){return e.length}static jsonToObject(e){const t=Object.assign(new V({}),JSON.parse(e)),n=Object.keys(new V({}));if(!Array.isArray(t.atoms))throw new se;for(const s in Object.keys(t.atoms)){t.atoms[s]=g.jsonToObject(JSON.stringify(t.atoms[s]));for(const r of["position","walletAddress","isotope"])if(t.atoms[s].isotope.toLowerCase()!=="r"&&(typeof t.atoms[s][r]>"u"||t.atoms[s][r]===null))throw new se("MolecularStructure::jsonToObject() - Required Atom properties are missing!")}for(const s in t)Object.prototype.hasOwnProperty.call(t,s)&&!n.includes(s)&&delete t[s];return t.atoms=g.sortAtoms(t.atoms),t}static enumerate(e){const t={0:-8,1:-7,2:-6,3:-5,4:-4,5:-3,6:-2,7:-1,8:0,9:1,a:2,b:3,c:4,d:5,e:6,f:7,g:8},n=[],s=e.toLowerCase().split("");for(let r=0,i=s.length;r<i;++r){const a=s[r];typeof t[a]<"u"&&(n[r]=t[a])}return n}static normalize(e){let t=e.reduce((s,r)=>s+r);const n=t<0;for(;t<0||t>0;)for(const s of Object.keys(e))if((n?e[s]<8:e[s]>-8)&&(n?(++e[s],++t):(--e[s],--t),t===0))break;return e}getIsotopes(e){return V.isotopeFilter(e,this.atoms)}generateIndex(){return V.generateNextAtomIndex(this.atoms)}fill(e){for(const t in Object.keys(e))this[t]=e[t]}addAtom(e){return this.molecularHash=null,e.index=this.generateIndex(),e.version=this.version,this.atoms.push(e),this.atoms=g.sortAtoms(this.atoms),this}addContinuIdAtom(){(!this.remainderWallet||this.remainderWallet.token!=="USER")&&(this.remainderWallet=S.create({secret:this.secret,bundle:this.bundle}));const e={};return this.continuIdPosition?e.previousPosition=this.continuIdPosition:this.sourceWallet&&this.sourceWallet.position&&(e.previousPosition=this.sourceWallet.position),this.remainderWallet.pubkey&&(e.pubkey=this.remainderWallet.pubkey),this.remainderWallet.characters&&(e.characters=this.remainderWallet.characters),this.addAtom(g.create({isotope:"I",wallet:this.remainderWallet,metaType:"walletBundle",metaId:this.remainderWallet.bundle,meta:new H(e)})),this}addPolicyAtom({metaType:e,metaId:t,meta:n={},policy:s={}}){const r=new H(n);r.addPolicy(s);const i=S.create({secret:this.secret,bundle:this.sourceWallet.bundle,token:"USER"});return this.addAtom(g.create({wallet:i,isotope:"R",metaType:e,metaId:t,meta:r})),this}fuseToken(e,t){const n=e.length;if(this.sourceWallet.balance-n<0)throw new pe;return this.addAtom(g.create({isotope:"V",wallet:this.sourceWallet,value:-n})),this.addAtom(g.create({isotope:"F",wallet:t,value:1,metaType:"walletBundle",metaId:t.bundle})),this.addAtom(g.create({isotope:"V",wallet:this.remainderWallet,value:this.sourceWallet.balance-n,metaType:"walletBundle",metaId:this.remainderWallet.bundle})),this}burnToken({amount:e,walletBundle:t=null}){if(e<0)throw new ze("Molecule::burnToken() - Amount to burn must be positive!");if(this.sourceWallet.balance-e<0)throw new pe;const n=new S({bundle:"0000000000000000000000000000000000000000000000000000000000000000",token:this.sourceWallet.token});return this.addAtom(g.create({isotope:"V",wallet:this.sourceWallet,value:-this.sourceWallet.balance})),this.addAtom(g.create({isotope:"V",wallet:n,value:e,metaType:"walletBundle",metaId:n.bundle})),this.addAtom(g.create({isotope:"V",wallet:this.remainderWallet,value:this.sourceWallet.balance-e,metaType:"walletBundle",metaId:this.remainderWallet.bundle})),this}replenishToken({amount:e,units:t=[]}){if(e<0)throw new ze("Molecule::replenishToken() - Amount to replenish must be positive!");if(t.length){t=S.getTokenUnits(t),this.remainderWallet.tokenUnits=this.sourceWallet.tokenUnits;for(const n of t)this.remainderWallet.tokenUnits.push(n);this.remainderWallet.balance=String(this.remainderWallet.tokenUnits.length),this.sourceWallet.tokenUnits=t,this.sourceWallet.balance=String(this.sourceWallet.tokenUnits.length)}else this.remainderWallet.balance=String(Number(this.sourceWallet.balance)+e),this.sourceWallet.balance=String(e);return this.addAtom(g.create({isotope:"V",wallet:this.sourceWallet,value:Number(this.sourceWallet.balance)})),this.addAtom(g.create({isotope:"V",wallet:this.remainderWallet,value:Number(this.remainderWallet.balance),metaType:"walletBundle",metaId:this.remainderWallet.bundle})),this}initValue({recipientWallet:e,amount:t}){if(this.sourceWallet.balance-t<0)throw new pe;return this.addAtom(g.create({isotope:"V",wallet:this.sourceWallet,value:-this.sourceWallet.balance})),this.addAtom(g.create({isotope:"V",wallet:e,value:t,metaType:"walletBundle",metaId:e.bundle})),this.addAtom(g.create({isotope:"V",wallet:this.remainderWallet,value:this.sourceWallet.balance-t,metaType:"walletBundle",metaId:this.remainderWallet.bundle})),this}addStackableTransfer({recipientWallet:e,amount:t}){if(t<=0)throw new ze("Molecule::addStackableTransfer() - Amount must be positive!");if(this.sourceWallet.balance-t<0)throw new pe;const n=this.sourceWallet.batchId||le({});return this.addAtom(g.create({isotope:"V",wallet:this.sourceWallet,value:-t,batchId:n})),this.addAtom(g.create({isotope:"V",wallet:e,value:t,metaType:"walletBundle",metaId:e.bundle,batchId:le({})})),this.addAtom(g.create({isotope:"V",wallet:this.remainderWallet,value:this.sourceWallet.balance-t,metaType:"walletBundle",metaId:this.remainderWallet.bundle,batchId:n})),this}initDepositBuffer({amount:e,tradeRates:t}){if(this.sourceWallet.balance-e<0)throw new pe;const n=S.create({secret:this.secret,bundle:this.bundle,token:this.sourceWallet.token,batchId:this.sourceWallet.batchId});return n.tradeRates=t,this.addAtom(g.create({isotope:"V",wallet:this.sourceWallet,value:-this.sourceWallet.balance})),this.addAtom(g.create({isotope:"B",wallet:n,value:e,metaType:"walletBundle",metaId:this.sourceWallet.bundle})),this.addAtom(g.create({isotope:"V",wallet:this.remainderWallet,value:this.sourceWallet.balance-e,metaType:"walletBundle",metaId:this.sourceWallet.bundle})),this}initWithdrawBuffer({recipients:e,signingWallet:t=null}){let n=0;for(const[r,i]of Object.entries(e||{}))n+=i;if(this.sourceWallet.balance-n<0)throw new pe;const s=new H;t&&s.setSigningWallet(t),this.addAtom(g.create({isotope:"B",wallet:this.sourceWallet,value:-this.sourceWallet.balance,meta:s,metaType:"walletBundle",metaId:this.sourceWallet.bundle}));for(const[r,i]of Object.entries(e||{}))this.addAtom(new g({isotope:"V",token:this.sourceWallet.token,value:i,batchId:this.sourceWallet.batchId?le({}):null,metaType:"walletBundle",metaId:r}));return this.addAtom(g.create({isotope:"B",wallet:this.remainderWallet,value:this.sourceWallet.balance-n,metaType:"walletBundle",metaId:this.remainderWallet.bundle})),this}initTokenCreation({recipientWallet:e,amount:t,meta:n}){const s=new H(n);return s.setMetaWallet(e),this.addAtom(g.create({isotope:"C",wallet:this.sourceWallet,value:t,metaType:"token",metaId:e.token,meta:s,batchId:e.batchId})),this.addContinuIdAtom(),this}createRule({metaType:e,metaId:t,rule:n,policy:s={}}){const r=[];for(const a of n)r.push(a instanceof Ee?a:Ee.toObject(a));const i=new H({rule:JSON.stringify(r)});return i.addPolicy(s),this.addAtom(g.create({isotope:"R",wallet:this.sourceWallet,metaType:e,metaId:t,meta:i})),this.addContinuIdAtom(),this}initWalletCreation(e,t=null){t||(t=new H),t.setMetaWallet(e);const n=g.create({isotope:"C",wallet:this.sourceWallet,metaType:"wallet",metaId:e.address,meta:t,batchId:e.batchId});return this.addAtom(n),this.addContinuIdAtom(),this}initShadowWalletClaim(e){const t=new H().setShadowWalletClaim(!0);return this.initWalletCreation(e,t)}initIdentifierCreation({type:e,contact:t,code:n}){const s={code:n,hash:ae(t.trim(),"Molecule::initIdentifierCreation")};return this.addAtom(g.create({isotope:"C",wallet:this.sourceWallet,metaType:"identifier",metaId:e,meta:new H(s)})),this.addContinuIdAtom(),this}initMeta({meta:e,metaType:t,metaId:n,policy:s}){return this.addAtom(g.create({isotope:"M",wallet:this.sourceWallet,metaType:t,metaId:n,meta:new H(e)})),s&&Object.keys(s).length>0&&this.addPolicyAtom({metaType:t,metaId:n,meta:e,policy:s}),this.addContinuIdAtom(),this}initPeering({host:e}){return this.addAtom(g.create({isotope:"P",wallet:this.sourceWallet,metaType:"walletBundle",metaId:this.bundle,meta:new H({peerHost:e})})),this.addContinuIdAtom(),this}initAppendRequest({metaType:e,metaId:t,action:n,meta:s={}}){return this.addAtom(g.create({isotope:"A",wallet:this.sourceWallet,metaType:e,metaId:t,meta:new H({action:n,...s})})),this.addContinuIdAtom(),this}initTokenRequest({token:e,amount:t,metaType:n,metaId:s,meta:r={},batchId:i=null}){return r.token=e,r.amount=String(t),this.addAtom(g.create({isotope:"T",wallet:this.sourceWallet,value:t,metaType:n,metaId:s,meta:new H(r),batchId:i})),this.addContinuIdAtom(),this}initAuthorization({meta:e}){return this.addAtom(g.create({isotope:"U",wallet:this.sourceWallet,meta:new H(e)})),this.addContinuIdAtom(),this}sign({bundle:e=null,anonymous:t=!1,compressed:n=!0}){if(this.atoms.length===0||this.atoms.filter(p=>!(p instanceof g)).length!==0)throw new se;!t&&!this.bundle&&(this.bundle=e||ae(this.secret,"Molecule::sign")),this.molecularHash=g.hashAtoms({atoms:this.atoms});const s=this.atoms[0];let r=s.position;const i=C.get(s.aggregatedMeta(),"signingWallet");if(i&&(r=C.get(JSON.parse(i),"position")),!r)throw new ot("Signing wallet must have a position!");const a=S.generateKey({secret:this.secret,token:s.token,position:s.position}),c=Ae(a,128),u=this.normalizedHash();let l="";for(const p in c){let w=c[p];for(let I=0,R=8-u[p];I<R;I++)w=new W("SHAKE256","TEXT").update(w).getHash("HEX",{outputLen:512});l+=w}n&&(l=vt(l));const d=Ae(l,Math.ceil(l.length/this.atoms.length));let f=null;for(let p=0,w=d.length;p<w;p++)this.atoms[p].otsFragment=d[p],f=this.atoms[p].position;return f}signSync(e={}){return this.sign(e)}cellSlugBase(){return(this.cellSlug||"").split(this.cellSlugDelimiter)[0]}toJSON(e={}){const{includeValidationContext:t=!1,includeOtsFragments:n=!0}=e;try{const s={status:this.status,molecularHash:this.molecularHash,createdAt:this.createdAt,cellSlug:this.cellSlug,bundle:this.bundle,atoms:this.atoms.map(r=>r.toJSON({includeOtsFragments:n}))};return this.parentHashes&&this.parentHashes.length>0&&(s.parentHashes=this.parentHashes),t&&(s.cellSlugOrigin=this.cellSlugOrigin,s.version=this.version,this.sourceWallet&&(s.sourceWallet={address:this.sourceWallet.address,position:this.sourceWallet.position,token:this.sourceWallet.token,balance:this.sourceWallet.balance||"0",bundle:this.sourceWallet.bundle,batchId:this.sourceWallet.batchId||null,characters:this.sourceWallet.characters||"BASE64",pubkey:this.sourceWallet.pubkey||null,tokenUnits:this.sourceWallet.tokenUnits||[],tradeRates:this.sourceWallet.tradeRates||{},molecules:this.sourceWallet.molecules||{}}),this.remainderWallet&&(s.remainderWallet={address:this.remainderWallet.address,position:this.remainderWallet.position,token:this.remainderWallet.token,balance:this.remainderWallet.balance||"0",bundle:this.remainderWallet.bundle,batchId:this.remainderWallet.batchId||null,characters:this.remainderWallet.characters||"BASE64",pubkey:this.remainderWallet.pubkey||null,tokenUnits:this.remainderWallet.tokenUnits||[],tradeRates:this.remainderWallet.tradeRates||{},molecules:this.remainderWallet.molecules||{}})),s}catch(s){throw new Error(`Molecule serialization failed: ${s.message}`)}}static fromJSON(e,t={}){const{includeValidationContext:n=!1,validateStructure:s=!0}=t;try{const r=typeof e=="string"?JSON.parse(e):e;if(s&&(!r.molecularHash||!Array.isArray(r.atoms)))throw new Error("Invalid molecule data: missing molecularHash or atoms array");const i=new V({secret:null,bundle:r.bundle||null,cellSlug:r.cellSlug||null,version:r.version||null});return i.status=r.status,i.molecularHash=r.molecularHash,i.createdAt=r.createdAt||String(+new Date),i.cellSlugOrigin=r.cellSlugOrigin,i.parentHashes=Array.isArray(r.parentHashes)?[...r.parentHashes]:[],Array.isArray(r.atoms)&&(i.atoms=r.atoms.map((a,c)=>{try{return g.fromJSON(a)}catch(u){throw new Error(`Failed to reconstruct atom ${c}: ${u.message}`)}})),n&&(r.sourceWallet&&(i.sourceWallet=new S({secret:null,token:r.sourceWallet.token,position:r.sourceWallet.position,bundle:r.sourceWallet.bundle,batchId:r.sourceWallet.batchId,characters:r.sourceWallet.characters}),i.sourceWallet.balance=String(r.sourceWallet.balance!=null?r.sourceWallet.balance:0),i.sourceWallet.address=r.sourceWallet.address,r.sourceWallet.pubkey&&(i.sourceWallet.pubkey=r.sourceWallet.pubkey),i.sourceWallet.tokenUnits=r.sourceWallet.tokenUnits||[],i.sourceWallet.tradeRates=r.sourceWallet.tradeRates||{},i.sourceWallet.molecules=r.sourceWallet.molecules||{}),r.remainderWallet&&(i.remainderWallet=new S({secret:null,token:r.remainderWallet.token,position:r.remainderWallet.position,bundle:r.remainderWallet.bundle,batchId:r.remainderWallet.batchId,characters:r.remainderWallet.characters}),i.remainderWallet.balance=String(r.remainderWallet.balance!=null?r.remainderWallet.balance:0),i.remainderWallet.address=r.remainderWallet.address,r.remainderWallet.pubkey&&(i.remainderWallet.pubkey=r.remainderWallet.pubkey),i.remainderWallet.tokenUnits=r.remainderWallet.tokenUnits||[],i.remainderWallet.tradeRates=r.remainderWallet.tradeRates||{},i.remainderWallet.molecules=r.remainderWallet.molecules||{})),i}catch(r){throw new Error(`Molecule deserialization failed: ${r.message}`)}}check(e=null){return new we(this).verify(e)}normalizedHash(){return V.normalize(V.enumerate(this.molecularHash))}}class ke{constructor({token:e,expiresAt:t,encrypt:n,pubkey:s}){this.$__token=e,this.$__expiresAt=t,this.$__pubkey=s,this.$__encrypt=n}static create(e,t){const n=new ke(e);return n.setWallet(t),n}static restore(e,t){const n=new S({secret:t,token:"AUTH",position:e.wallet.position,characters:e.wallet.characters});return ke.create({token:e.token,expiresAt:e.expiresAt,pubkey:e.pubkey,encrypt:e.encrypt},n)}setWallet(e){this.$__wallet=e}getWallet(){return this.$__wallet}getSnapshot(){return{token:this.$__token,expiresAt:this.$__expiresAt,pubkey:this.$__pubkey,encrypt:this.$__encrypt,wallet:{position:this.$__wallet.position,characters:this.$__wallet.characters}}}getToken(){return this.$__token}getPubkey(){return this.$__pubkey}getExpireInterval(){return this.$__expiresAt*1e3-Date.now()}isExpired(){return!this.$__expiresAt||this.getExpireInterval()<0}getAuthData(){return{token:this.getToken(),pubkey:this.getPubkey(),wallet:this.getWallet()}}}const ut=10**18;class fe{static val(e){return Math.abs(e*ut)<1?0:e}static cmp(e,t,n=!1){const s=fe.val(e)*ut,r=fe.val(t)*ut;return Math.abs(s-r)<1?0:s>r?1:-1}static equal(e,t){return fe.cmp(e,t)===0}}class ne extends T{constructor(e="GraphQL did not provide a valid response.",t=null,n=null){super(e,t,n),this.name="InvalidResponseException"}}class Re extends T{constructor(e="Authorization token missing or invalid.",t=null,n=null){super(e,t,n),this.name="UnauthenticatedException"}}class E{constructor({query:e,json:t,dataKey:n=null}){if(this.dataKey=n,this.errorKey="exception",this.$__payload=null,this.$__query=e,this.$__originResponse=t,this.$__response=t,typeof this.$__response>"u"||this.$__response===null)throw new ne;if(C.has(this.$__response,this.errorKey)){const s=C.get(this.$__response,this.errorKey);throw String(s).includes("Unauthenticated")?new Re:new ne}if(this.$__response.errors&&Array.isArray(this.$__response.errors)&&this.$__response.errors.length>0){const s=this.$__response.errors[0].message||"Unknown GraphQL error";throw s.includes("Unauthenticated")?new Re:new ne(`GraphQL Error: ${s}`)}this.init()}init(){}data(){if(!this.dataKey)return this.response();if(!this.response().data)throw new ne("Response has no data field");if(!C.has(this.response(),this.dataKey))throw new ne(`Missing expected field: ${this.dataKey}`);return C.get(this.response(),this.dataKey)}response(){return this.$__response}payload(){return null}query(){return this.$__query}status(){return null}success(){var e,t;return!((t=(e=this.$__response)==null?void 0:e.errors)!=null&&t.length)}error(){var e,t;return(t=(e=this.$__response)==null?void 0:e.errors)!=null&&t.length?this.$__response.errors[0].message||"Unknown error":null}reason(){return this.error()}toValidationResult(){var e;return this.success()&&this.payload()!==null?{success:!0,data:this.payload(),warnings:[]}:{success:!1,error:{message:this.reason()||"Unknown error",context:this.constructor.name,details:((e=this.$__response)==null?void 0:e.errors)||[]}}}onSuccess(e){if(this.success()&&this.payload()!==null)try{e(this.payload())}catch(t){console.warn("Response.onSuccess callback failed:",t)}return this}onFailure(e){if(!this.success())try{e(this.reason()||"Unknown error")}catch(t){console.warn("Response.onFailure callback failed:",t)}return this}debug(e=null){var n,s,r;const t=e?`[${e}]`:`[${this.constructor.name}]`;return this.success()?console.debug(`${t} Success:`,{payload:this.payload(),query:(s=(n=this.$__query)==null?void 0:n.constructor)==null?void 0:s.name,dataKey:this.dataKey}):console.debug(`${t} Failure:`,{error:this.reason(),errors:(r=this.$__response)==null?void 0:r.errors,rawData:this.$__response}),this}toPromise(){return this.success()&&this.payload()!==null?Promise.resolve(this.payload()):Promise.reject(new Error(this.reason()||"Unknown error"))}map(e){if(this.success()&&this.payload()!==null)try{const t=e(this.payload()),n=Object.create(Object.getPrototypeOf(this));return Object.assign(n,this),n.$__payload=t,n}catch(t){const n=Object.create(Object.getPrototypeOf(this));return Object.assign(n,this),n.$__response={errors:[{message:`Mapping failed: ${t.message}`}]},n}else return this}}class K{constructor(e,t){this.client=e,this.knishIOClient=t,this.$__variables=null,this.$__query=null,this.$__response=null,this.$__request=null}response(){return this.$__response}async createResponseRaw(e){return this.createResponse(e)}createResponse(e){return new E({query:this,json:e})}createQuery({variables:e=null}){if(this.$__variables=this.compiledVariables(e),!this.uri())throw new Y("Query::createQuery() - Node URI was not initialized for this client instance!");if(this.$__query===null)throw new Y("Query::createQuery() - GraphQL subscription was not initialized!");return{query:this.$__query,variables:this.variables()}}async execute({variables:e=null,context:t={}}){this.$__request=this.createQuery({variables:e});const n={...t,...this.createQueryContext()};try{const s=await this.client.query({...this.$__request,context:n});return this.$__response=await this.createResponseRaw(s),this.$__response}catch(s){if(s.name==="AbortError")return this.knishIOClient.log("warn","Query was cancelled"),new E({query:this,json:{data:null,errors:[{message:"Query was cancelled"}]}});throw s}}compiledVariables(e=null){return e||{}}uri(){return this.client.getUri()}variables(){return this.$__variables}createQueryContext(){return{}}}class an extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.ContinuId"})}payload(){let e=null;const t=this.data();return t&&(e=new S({secret:null,token:t.tokenSlug}),e.address=t.address,e.position=t.position,e.bundle=t.bundleHash,e.batchId=t.batchId,e.characters=t.characters,e.pubkey=t.pubkey,e.balance=String(t.amount!=null?t.amount:0)),e}}class ln extends K{constructor(e,t){super(e,t),this.$__query=$.gql`query ($bundle: String!) {
4
+ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain atoms",t=null,n=null){super(e,t,n),this.name="AtomsMissingException"}}class ae{static create(e){const t={};for(const n of Object.keys(e))Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return new this(t)}static structure(e){switch(Object.prototype.toString.call(e)){case"[object Array]":{const t=[];for(const n in e)t.push(ae.isStructure(e[n])?ae.structure(e[n]):e[n]);return t}case"[object Object]":{const t=[],n=Object.keys(e).sort((s,r)=>s===r?0:s<r?-1:1);for(const s of n)if(Object.prototype.hasOwnProperty.call(e,s)){const r={};r[s]=ae.isStructure(e[s])?ae.structure(e[s]):e[s],t.push(r)}if(t.length>0)return t;break}}return e}static isStructure(e){return["[object Object]","[object Array]"].includes(Object.prototype.toString.call(e))}view(){return ae.structure(this)}}class ds extends ae{constructor({position:e=null,walletAddress:t=null,isotope:n=null,token:s=null,value:r=null,batchId:i=null,metaType:o=null,metaId:c=null,meta:u=null,index:l=null,createdAt:d=null,version:f=null}){super(),this.position=e,this.walletAddress=t,this.isotope=n,this.token=s,this.value=r,this.batchId=i,this.metaType=o,this.metaId=c,this.meta=u,this.index=l,this.createdAt=d,this.version=f}}const Ke={4:ds};class g{constructor({position:e=null,walletAddress:t=null,isotope:n=null,token:s=null,value:r=null,batchId:i=null,metaType:o=null,metaId:c=null,meta:u=null,otsFragment:l=null,index:d=null,version:f=null}){this.position=e,this.walletAddress=t,this.isotope=n,this.token=s,this.value=r!==null?String(r):null,this.batchId=i,this.metaType=o,this.metaId=c,this.meta=u?ie.normalizeMeta(u):[],this.index=d,this.otsFragment=l,this.createdAt=String(+new Date),f!==null&&Object.prototype.hasOwnProperty.call(Ke,f)&&(this.version=String(f))}static getHashableProps(){return["position","walletAddress","isotope","token","value","batchId","metaType","metaId","meta","createdAt"]}static getUnclaimedProps(){return["otsFragment"]}static create({isotope:e,wallet:t=null,value:n=null,metaType:s=null,metaId:r=null,meta:i=null,batchId:o=null}){return i||(i=new H),i instanceof H||(i=new H(i)),t&&(i.setAtomWallet(t),o||(o=t.batchId)),new g({position:t?t.position:null,walletAddress:t?t.address:null,isotope:e,token:t?t.token:null,value:n,batchId:o,metaType:s,metaId:r,meta:i.get()})}static jsonToObject(e){const t=Object.assign(new g({}),JSON.parse(e)),n=Object.keys(new g({}));for(const s in t)Object.prototype.hasOwnProperty.call(t,s)&&!n.includes(s)&&delete t[s];return t}toJSON(e={}){const{includeOtsFragments:t=!0,validateFields:n=!1}=e;try{if(n){const r=["position","walletAddress","isotope","token"];for(const i of r)if(!this[i])throw new Error(`Required field '${i}' is missing or empty`)}const s={position:this.position??"",walletAddress:this.walletAddress??"",isotope:this.isotope,token:this.token??"",value:this.value,batchId:this.batchId,metaType:this.metaType,metaId:this.metaId,meta:this.meta||[],index:this.index,createdAt:this.createdAt,version:this.version};return t&&this.otsFragment&&(s.otsFragment=this.otsFragment),s}catch(s){throw new Error(`Atom serialization failed: ${s.message}`)}}static fromJSON(e,t={}){const{validateStructure:n=!0,strictMode:s=!1}=t;try{const r=typeof e=="string"?JSON.parse(e):e;if(s||n){const o=["position","walletAddress","isotope","token"];for(const c of o)if(!r[c])throw new Error(`Required field '${c}' is missing or empty`)}const i=new g({position:r.position,walletAddress:r.walletAddress,isotope:r.isotope,token:r.token,value:r.value,batchId:r.batchId,metaType:r.metaType,metaId:r.metaId,meta:r.meta,index:r.index,version:r.version});return r.otsFragment&&(i.otsFragment=r.otsFragment),r.createdAt&&(i.createdAt=r.createdAt),i}catch(r){throw new Error(`Atom deserialization failed: ${r.message}`)}}static hashAtoms({atoms:e,output:t="base17"}){const n=new q("SHAKE256","TEXT"),s=g.sortAtoms(e);if(s.length===0)throw new se;if(s.map(r=>{if(!(r instanceof g))throw new se;return r}),s.every(r=>r.version&&Object.prototype.hasOwnProperty.call(Ke,r.version)))n.update(JSON.stringify(s.map(r=>Ke[r.version].create(r).view())));else{const r=String(e.length);let i=[];for(const o of s)i.push(r),i=i.concat(o.getHashableValues());for(const o of i)n.update(o)}switch(t){case"hex":return n.getHash("HEX",{outputLen:256});case"array":return n.getHash("ARRAYBUFFER",{outputLen:256});default:return $t(n.getHash("HEX",{outputLen:256}),16,17,"0123456789abcdef","0123456789abcdefg").padStart(64,"0")}}static jsonSerialization(e,t){if(!g.getUnclaimedProps().includes(e))return t}static sortAtoms(e){const t=[...e];return t.sort((n,s)=>n.index<s.index?-1:1),t}aggregatedMeta(){return ie.aggregateMeta(this.meta)}getHashableValues(){const e=[];for(const t of g.getHashableProps()){const n=this[t];if(!(n===null&&!["position","walletAddress"].includes(t)))if(t==="meta")for(const s of n)typeof s.value<"u"&&s.value!==null&&(e.push(String(s.key)),e.push(String(s.value)));else e.push(n===null?"":String(n))}return e}}function Ne(a=null,e=2048){if(a){const t=new q("SHAKE256","TEXT");return t.update(a),t.getHash("HEX",{outputLen:e*4})}else return Ue(e)}function oe(a,e=null){const t=new q("SHAKE256","TEXT");return t.update(a),t.getHash("HEX",{outputLen:256})}function et(a,e){const t=new q("SHAKE256","TEXT");return t.update(a),t.getHash("HEX",{outputLen:e})}function le({molecularHash:a=null,index:e=null}){return a!==null&&e!==null?oe(String(a)+String(e),"generateBatchId"):Ue(64)}class ce{constructor(e,t,n){this.id=e,this.name=t,this.metas=n||{}}static createFromGraphQL(e){let t=e.metas||{};return t.length&&(t=JSON.parse(t),t||(t={})),new ce(e.id,e.name,t)}static createFromDB(e){return new ce(e[0],e[1],e.length>2?e[2]:{})}getFragmentZone(){return this.metas.fragmentZone||null}getFusedTokenUnits(){return this.metas.fusedTokenUnits||null}toData(){return[this.id,this.name,this.metas]}toGraphQLResponse(){return{id:this.id,name:this.name,metas:JSON.stringify(this.metas)}}}class tt extends T{constructor(e="Attempting to create a wallet with no credentials (secret or bundle hash)",t=null,n=null){super(e,t,n),this.name="WalletCredentialException"}}const Qe=BigInt(2**32-1),Rt=BigInt(32);function ps(a,e=!1){return e?{h:Number(a&Qe),l:Number(a>>Rt&Qe)}:{h:Number(a>>Rt&Qe)|0,l:Number(a&Qe)|0}}function fs(a,e=!1){const t=a.length;let n=new Uint32Array(t),s=new Uint32Array(t);for(let r=0;r<t;r++){const{h:i,l:o}=ps(a[r],e);[n[r],s[r]]=[i,o]}return[n,s]}const ms=(a,e,t)=>a<<t|e>>>32-t,ys=(a,e,t)=>e<<t|a>>>32-t,gs=(a,e,t)=>e<<t-32|a>>>64-t,bs=(a,e,t)=>a<<t-32|e>>>64-t;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ws(a){return a instanceof Uint8Array||ArrayBuffer.isView(a)&&a.constructor.name==="Uint8Array"}function Ot(a,e=""){if(!Number.isSafeInteger(a)||a<0){const t=e&&`"${e}" `;throw new Error(`${t}expected integer >= 0, got ${a}`)}}function D(a,e,t=""){const n=ws(a),s=a==null?void 0:a.length,r=e!==void 0;if(!n||r&&s!==e){const i=t&&`"${t}" `,o=r?` of length ${e}`:"",c=n?`length=${s}`:`type=${typeof a}`;throw new Error(i+"expected Uint8Array"+o+", got "+c)}return a}function qt(a,e=!0){if(a.destroyed)throw new Error("Hash instance has been destroyed");if(e&&a.finished)throw new Error("Hash#digest() has already been called")}function ks(a,e){D(a,void 0,"digestInto() output");const t=e.outputLen;if(a.length<t)throw new Error('"digestInto() output" expected to be of length >='+t)}function Wt(a){return new Uint32Array(a.buffer,a.byteOffset,Math.floor(a.byteLength/4))}function Bt(...a){for(let e=0;e<a.length;e++)a[e].fill(0)}const Ss=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function _s(a){return a<<24&4278190080|a<<8&16711680|a>>>8&65280|a>>>24&255}function $s(a){for(let e=0;e<a.length;e++)a[e]=_s(a[e]);return a}const Ut=Ss?a=>a:$s;function Ht(a,e={}){const t=(s,r)=>a(r).update(s).digest(),n=a(void 0);return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=s=>a(s),Object.assign(t,e),Object.freeze(t)}function As(a=32){const e=typeof globalThis=="object"?globalThis.crypto:null;if(typeof(e==null?void 0:e.getRandomValues)!="function")throw new Error("crypto.getRandomValues must be defined");return e.getRandomValues(new Uint8Array(a))}const Fe=a=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,a])}),vs=BigInt(0),Ae=BigInt(1),Is=BigInt(2),Ms=BigInt(7),Ts=BigInt(256),Cs=BigInt(113),Pt=[],Kt=[],Nt=[];for(let a=0,e=Ae,t=1,n=0;a<24;a++){[t,n]=[n,(2*t+3*n)%5],Pt.push(2*(5*n+t)),Kt.push((a+1)*(a+2)/2%64);let s=vs;for(let r=0;r<7;r++)e=(e<<Ae^(e>>Ms)*Cs)%Ts,e&Is&&(s^=Ae<<(Ae<<BigInt(r))-Ae);Nt.push(s)}const Qt=fs(Nt,!0),xs=Qt[0],Es=Qt[1],Ft=(a,e,t)=>t>32?gs(a,e,t):ms(a,e,t),Lt=(a,e,t)=>t>32?bs(a,e,t):ys(a,e,t);function Rs(a,e=24){const t=new Uint32Array(10);for(let n=24-e;n<24;n++){for(let i=0;i<10;i++)t[i]=a[i]^a[i+10]^a[i+20]^a[i+30]^a[i+40];for(let i=0;i<10;i+=2){const o=(i+8)%10,c=(i+2)%10,u=t[c],l=t[c+1],d=Ft(u,l,1)^t[o],f=Lt(u,l,1)^t[o+1];for(let p=0;p<50;p+=10)a[i+p]^=d,a[i+p+1]^=f}let s=a[2],r=a[3];for(let i=0;i<24;i++){const o=Kt[i],c=Ft(s,r,o),u=Lt(s,r,o),l=Pt[i];s=a[l],r=a[l+1],a[l]=c,a[l+1]=u}for(let i=0;i<50;i+=10){for(let o=0;o<10;o++)t[o]=a[i+o];for(let o=0;o<10;o++)a[i+o]^=~t[(o+2)%10]&t[(o+4)%10]}a[0]^=xs[n],a[1]^=Es[n]}Bt(t)}class Le{constructor(e,t,n,s=!1,r=24){J(this,"state");J(this,"pos",0);J(this,"posOut",0);J(this,"finished",!1);J(this,"state32");J(this,"destroyed",!1);J(this,"blockLen");J(this,"suffix");J(this,"outputLen");J(this,"enableXOF",!1);J(this,"rounds");if(this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=s,this.rounds=r,Ot(n,"outputLen"),!(0<e&&e<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=Wt(this.state)}clone(){return this._cloneInto()}keccak(){Ut(this.state32),Rs(this.state32,this.rounds),Ut(this.state32),this.posOut=0,this.pos=0}update(e){qt(this),D(e);const{blockLen:t,state:n}=this,s=e.length;for(let r=0;r<s;){const i=Math.min(t-this.pos,s-r);for(let o=0;o<i;o++)n[this.pos++]^=e[r++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:n,blockLen:s}=this;e[n]^=t,(t&128)!==0&&n===s-1&&this.keccak(),e[s-1]^=128,this.keccak()}writeInto(e){qt(this,!1),D(e),this.finish();const t=this.state,{blockLen:n}=this;for(let s=0,r=e.length;s<r;){this.posOut>=n&&this.keccak();const i=Math.min(n-this.posOut,r-s);e.set(t.subarray(this.posOut,this.posOut+i),s),this.posOut+=i,s+=i}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return Ot(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(ks(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,Bt(this.state)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:s,rounds:r,enableXOF:i}=this;return e||(e=new Le(t,n,s,i,r)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=r,e.suffix=n,e.outputLen=s,e.enableXOF=i,e.destroyed=this.destroyed,e}}const jt=(a,e,t,n={})=>Ht(()=>new Le(e,a,t),n),Os=jt(6,136,32,Fe(8)),qs=jt(6,72,64,Fe(10)),Dt=(a,e,t,n={})=>Ht((s={})=>new Le(e,a,s.dkLen===void 0?t:s.dkLen,!0),n),Ws=Dt(31,168,16,Fe(11)),Vt=Dt(31,136,32,Fe(12));function nt(a){if(!Number.isSafeInteger(a)||a<0||a>4294967295)throw new Error("wrong u32 integer:"+a);return a}function zt(a){return nt(a),(a&a-1)===0&&a!==0}function Jt(a,e){nt(a);let t=0;for(let n=0;n<e;n++,a>>>=1)t=t<<1|a&1;return t}function Gt(a){return nt(a),31-Math.clz32(a)}function Xt(a){const e=a.length;if(e<2||!zt(e))throw new Error("n must be a power of 2 and greater than 1. Got "+e);const t=Gt(e);for(let n=0;n<e;n++){const s=Jt(n,t);if(n<s){const r=a[n];a[n]=a[s],a[s]=r}}return a}const Zt=(a,e)=>{const{N:t,roots:n,dit:s,invertButterflies:r=!1,skipStages:i=0,brp:o=!0}=e,c=Gt(t);if(!zt(t))throw new Error("FFT: Polynomial size should be power of two");const u=s!==r;return l=>{if(l.length!==t)throw new Error("FFT: wrong Polynomial length");s&&o&&Xt(l);for(let d=0,f=1;d<c-i;d++){const p=s?d+1+i:c-d,w=1<<p,I=w>>1,R=t>>p;for(let m=0;m<t;m+=w)for(let b=0,k=f++;b<I;b++){const O=r?s?t-k:k:b*R,_=m+b,v=m+b+I,M=n[O],x=l[v],$=l[_];if(u){const Q=a.mul(x,M);l[_]=a.add($,Q),l[v]=a.sub($,Q)}else r?(l[_]=a.add(x,$),l[v]=a.mul(a.sub(x,$),M)):(l[_]=a.add($,x),l[v]=a.mul(a.sub($,x),M))}}return!s&&o&&Xt(l),l}};/*! noble-post-quantum - MIT License (c) 2024 Paul Miller (paulmillr.com) */const Yt=As;function st(a,e){if(a.length!==e.length)return!1;let t=0;for(let n=0;n<a.length;n++)t|=a[n]^e[n];return t===0}function Bs(a){return Uint8Array.from(a)}function je(a,...e){const t=s=>typeof s=="number"?s:s.bytesLen,n=e.reduce((s,r)=>s+t(r),0);return{bytesLen:n,encode:s=>{const r=new Uint8Array(n);for(let i=0,o=0;i<e.length;i++){const c=e[i],u=t(c),l=typeof c=="number"?s[i]:c.encode(s[i]);D(l,u,a),r.set(l,o),typeof c!="number"&&l.fill(0),o+=u}return r},decode:s=>{D(s,n,a);const r=[];for(const i of e){const o=t(i),c=s.subarray(0,o);r.push(typeof i=="number"?c:i.decode(c)),s=s.subarray(o)}return r}}}function rt(a,e){const t=e*a.bytesLen;return{bytesLen:t,encode:n=>{if(n.length!==e)throw new Error(`vecCoder.encode: wrong length=${n.length}. Expected: ${e}`);const s=new Uint8Array(t);for(let r=0,i=0;r<n.length;r++){const o=a.encode(n[r]);s.set(o,i),o.fill(0),i+=o.length}return s},decode:n=>{D(n,t);const s=[];for(let r=0;r<n.length;r+=a.bytesLen)s.push(a.decode(n.subarray(r,r+a.bytesLen)));return s}}}function X(...a){for(const e of a)if(Array.isArray(e))for(const t of e)t.fill(0);else e.fill(0)}function en(a){return(1<<a)-1}/*! noble-post-quantum - MIT License (c) 2024 Paul Miller (paulmillr.com) */const Us=a=>{const{newPoly:e,N:t,Q:n,F:s,ROOT_OF_UNITY:r,brvBits:i}=a,o=(m,b=n)=>{const k=m%b|0;return(k>=0?k|0:b+k|0)|0},c=(m,b=n)=>{const k=o(m,b)|0;return(k>b>>1?k-b|0:k)|0};function u(){const m=e(t);for(let b=0;b<t;b++){const k=Jt(b,i),O=BigInt(r)**BigInt(k)%BigInt(n);m[b]=Number(O)|0}return m}const l=u(),d={add:(m,b)=>o((m|0)+(b|0))|0,sub:(m,b)=>o((m|0)-(b|0))|0,mul:(m,b)=>o((m|0)*(b|0))|0,inv:m=>{throw new Error("not implemented")}},f={N:t,roots:l,invertButterflies:!0,skipStages:1,brp:!1},p=Zt(d,{dit:!1,...f}),w=Zt(d,{dit:!0,...f});return{mod:o,smod:c,nttZetas:l,NTT:{encode:m=>p(m),decode:m=>{w(m);for(let b=0;b<m.length;b++)m[b]=o(s*m[b]);return m}},bitsCoder:(m,b)=>{const k=en(m),O=m*(t/8);return{bytesLen:O,encode:_=>{const v=new Uint8Array(O);for(let M=0,x=0,$=0,Q=0;M<_.length;M++)for(x|=(b.encode(_[M])&k)<<$,$+=m;$>=8;$-=8,x>>=8)v[Q++]=x&en($);return v},decode:_=>{const v=e(t);for(let M=0,x=0,$=0,Q=0;M<_.length;M++)for(x|=_[M]<<$,$+=8;$>=m;$-=m,x>>=m)v[Q++]=b.decode(x&k);return v}}}}},Hs=(a=>(e,t)=>{t||(t=a.blockLen);const n=new Uint8Array(e.length+2);n.set(e);const s=e.length,r=new Uint8Array(t);let i=a.create({}),o=0,c=0;return{stats:()=>({calls:o,xofs:c}),get:(u,l)=>(n[s+0]=u,n[s+1]=l,i.destroy(),i=a.create({}).update(n),o++,()=>(c++,i.xofInto(r))),clean:()=>{i.destroy(),X(r,n)}}})(Ws);/*! noble-post-quantum - MIT License (c) 2024 Paul Miller (paulmillr.com) */const L=256,ue=3329,Ps=3303,Ks=17,{mod:ve,nttZetas:Ns,NTT:he,bitsCoder:Qs}=Us({N:L,Q:ue,F:Ps,ROOT_OF_UNITY:Ks,newPoly:a=>new Uint16Array(a),brvBits:7}),Fs={768:{N:L,Q:ue,K:3,ETA1:2,ETA2:2,du:10,dv:4,RBGstrength:192}},Ls=a=>{if(a>=12)return{encode:t=>t,decode:t=>t};const e=2**(a-1);return{encode:t=>((t<<a)+ue/2)/ue,decode:t=>t*ue+e>>>a}},Ie=a=>Qs(a,Ls(a));function de(a,e){for(let t=0;t<L;t++)a[t]=ve(a[t]+e[t])}function js(a,e){for(let t=0;t<L;t++)a[t]=ve(a[t]-e[t])}function Ds(a,e,t,n,s){const r=ve(e*n*s+a*t),i=ve(a*n+e*t);return{c0:r,c1:i}}function De(a,e){for(let t=0;t<L/2;t++){let n=Ns[64+(t>>1)];t&1&&(n=-n);const{c0:s,c1:r}=Ds(a[2*t+0],a[2*t+1],e[2*t+0],e[2*t+1],n);a[2*t+0]=s,a[2*t+1]=r}return a}function tn(a){const e=new Uint16Array(L);for(let t=0;t<L;){const n=a();if(n.length%3)throw new Error("SampleNTT: unaligned block");for(let s=0;t<L&&s+3<=n.length;s+=3){const r=(n[s+0]>>0|n[s+1]<<8)&4095,i=(n[s+1]>>4|n[s+2]<<4)&4095;r<ue&&(e[t++]=r),t<L&&i<ue&&(e[t++]=i)}}return e}function Me(a,e,t,n){const s=a(n*L/4,e,t),r=new Uint16Array(L),i=Wt(s);let o=0;for(let c=0,u=0,l=0,d=0;c<i.length;c++){let f=i[c];for(let p=0;p<32;p++)l+=f&1,f>>=1,o+=1,o===n?(d=l,l=0):o===2*n&&(r[u++]=ve(d-l),l=0,o=0)}if(o)throw new Error(`sampleCBD: leftover bits: ${o}`);return r}const Vs=a=>{const{K:e,PRF:t,XOF:n,HASH512:s,ETA1:r,ETA2:i,du:o,dv:c}=a,u=Ie(1),l=Ie(c),d=Ie(o),f=je("publicKey",rt(Ie(12),e),32),p=rt(Ie(12),e),w=je("ciphertext",rt(d,e),l),I=je("seed",32,32);return{secretCoder:p,lengths:{secretKey:p.bytesLen,publicKey:f.bytesLen,cipherText:w.bytesLen},keygen:R=>{D(R,32,"seed");const m=new Uint8Array(33);m.set(R),m[32]=e;const b=s(m),[k,O]=I.decode(b),_=[],v=[];for(let $=0;$<e;$++)_.push(he.encode(Me(t,O,$,r)));const M=n(k);for(let $=0;$<e;$++){const Q=he.encode(Me(t,O,e+$,r));for(let U=0;U<e;U++){const _e=tn(M.get(U,$));de(Q,De(_e,_[U]))}v.push(Q)}M.clean();const x={publicKey:f.encode([v,k]),secretKey:p.encode(_)};return X(k,O,_,v,m,b),x},encrypt:(R,m,b)=>{const[k,O]=f.decode(R),_=[];for(let U=0;U<e;U++)_.push(he.encode(Me(t,b,U,r)));const v=n(O),M=new Uint16Array(L),x=[];for(let U=0;U<e;U++){const _e=Me(t,b,e+U,i),St=new Uint16Array(L);for(let Ze=0;Ze<e;Ze++){const Sr=tn(v.get(U,Ze));de(St,De(Sr,_[Ze]))}de(_e,he.decode(St)),x.push(_e),de(M,De(k[U],_[U])),X(St)}v.clean();const $=Me(t,b,2*e,i);de($,he.decode(M));const Q=u.decode(m);return de(Q,$),X(k,_,M,$),w.encode([x,Q])},decrypt:(R,m)=>{const[b,k]=w.decode(R),O=p.decode(m),_=new Uint16Array(L);for(let v=0;v<e;v++)de(_,De(O[v],he.encode(b[v])));return js(k,he.decode(_)),X(_,O,b),u.encode(k)}}};function zs(a){const e=Vs(a),{HASH256:t,HASH512:n,KDF:s}=a,{secretCoder:r,lengths:i}=e,o=je("secretKey",i.secretKey,i.publicKey,32,32),c=32,u=64;return{info:{type:"ml-kem"},lengths:{...i,seed:64,msg:c,msgRand:c,secretKey:o.bytesLen},keygen:(l=Yt(u))=>{D(l,u,"seed");const{publicKey:d,secretKey:f}=e.keygen(l.subarray(0,32)),p=t(d),w=o.encode([f,d,p,l.subarray(32)]);return X(f,p),{publicKey:d,secretKey:w}},getPublicKey:l=>{const[d,f]=o.decode(l);return Uint8Array.from(f)},encapsulate:(l,d=Yt(c))=>{D(l,i.publicKey,"publicKey"),D(d,c,"message");const f=l.subarray(0,384*a.K),p=r.encode(r.decode(Bs(f)));if(!st(p,f))throw X(p),new Error("ML-KEM.encapsulate: wrong publicKey modulus");X(p);const w=n.create().update(d).update(t(l)).digest(),I=e.encrypt(l,d,w.subarray(32,64));return X(w.subarray(32)),{cipherText:I,sharedSecret:w.subarray(0,32)}},decapsulate:(l,d)=>{D(d,o.bytesLen,"secretKey"),D(l,i.cipherText,"cipherText");const f=o.bytesLen-96,p=f+32,w=t(d.subarray(f/2,p));if(!st(w,d.subarray(p,p+32)))throw new Error("invalid secretKey: hash check failed");const[I,R,m,b]=o.decode(d),k=e.decrypt(l,I),O=n.create().update(k).update(m).digest(),_=O.subarray(0,32),v=e.encrypt(R,k,O.subarray(32,64)),M=st(l,v),x=s.create({dkLen:32}).update(b).update(l).digest();return X(k,v,M?x:_),M?_:x}}}function Js(a,e,t){return Vt.create({dkLen:a}).update(e).update(new Uint8Array([t])).digest()}const it=zs({...{HASH256:Os,HASH512:qs,KDF:Vt,XOF:Hs,PRF:Js},...Fs[768]});class S{constructor({secret:e=null,bundle:t=null,token:n="USER",address:s=null,position:r=null,batchId:i=null,characters:o=null}){this.token=n,this.balance="0",this.molecules={},this.key=null,this.privkey=null,this.pubkey=null,this.tokenUnits=[],this.tradeRates={},this.address=s,this.position=r,this.bundle=t,this.batchId=i,this.characters=o,e&&(this.bundle=this.bundle||oe(e,"Wallet::constructor"),this.position=this.position||S.generatePosition(),this.key=S.generateKey({secret:e,token:this.token,position:this.position}),this.address=this.address||S.generateAddress(this.key),this.characters=this.characters||"BASE64",this.initializeMLKEM())}static create({secret:e=null,bundle:t=null,token:n,batchId:s=null,characters:r=null}){let i=null;if(!e&&!t)throw new tt;return e&&!t&&(i=S.generatePosition(),t=oe(e,"Wallet::create")),new S({secret:e,bundle:t,token:n,position:i,batchId:s,characters:r})}static isBundleHash(e){return typeof e!="string"?!1:e.length===64&&He(e)}static getTokenUnits(e){const t=[];return e.forEach(n=>{t.push(ce.createFromDB(n))}),t}static generateKey({secret:e,token:t,position:n}){if(!e)throw new tt("Wallet::generateKey() - Secret is required!");if(!n)throw new tt("Wallet::generateKey() - Position is required!");const s=He(e)?e:et(e,1024),r=He(n)?n:et(n,256),o=BigInt(`0x${s}`)+BigInt(`0x${r}`),c=new q("SHAKE256","TEXT");c.update(o.toString(16)),t&&c.update(t);const u=new q("SHAKE256","TEXT");return u.update(c.getHash("HEX",{outputLen:8192})),u.getHash("HEX",{outputLen:8192})}static generateAddress(e){const t=$e(e,128),n=new q("SHAKE256","TEXT");for(const r in t){let i=t[r];for(let o=1;o<=16;o++){const c=new q("SHAKE256","TEXT");c.update(i),i=c.getHash("HEX",{outputLen:512})}n.update(i)}const s=new q("SHAKE256","TEXT");return s.update(n.getHash("HEX",{outputLen:8192})),s.getHash("HEX",{outputLen:256})}static generatePosition(e=64){return Ue(e,"abcdef0123456789")}initializeMLKEM(){const e=Ne(this.key,128),t=new Uint8Array(64);for(let r=0;r<64;r++)t[r]=parseInt(e.substr(r*2,2),16);const{publicKey:n,secretKey:s}=it.keygen(t);this.pubkey=this.serializeKey(n),this.privkey=s}serializeKey(e){return btoa(String.fromCharCode.apply(null,e))}deserializeKey(e){const t=atob(e);return new Uint8Array(t.length).map((n,s)=>t.charCodeAt(s))}balanceAsNumber(){return Number(this.balance)}balanceAsBigInt(){const e=String(this.balance),t=e.includes(".")?e.split(".")[0]:e;return BigInt(t||"0")}setBalanceBigInt(e){this.balance=e.toString()}setBalanceNumber(e){this.balance=String(e)}getTokenUnitsData(){const e=[];return this.tokenUnits.forEach(t=>{e.push(t.toData())}),e}splitUnits(e,t,n=null){if(e.length===0)return;const s=[],r=[];this.tokenUnits.forEach(i=>{e.includes(i.id)?s.push(i):r.push(i)}),this.tokenUnits=s,n!==null&&(n.tokenUnits=s),t.tokenUnits=r}createRemainder(e){const t=S.create({secret:e,token:this.token,characters:this.characters});return t.initBatchId({sourceWallet:this,isRemainder:!0}),t}isShadow(){return(typeof this.position>"u"||this.position===null)&&(typeof this.address>"u"||this.address===null)}initBatchId({sourceWallet:e,isRemainder:t=!1}){e.batchId&&(this.batchId=t?e.batchId:le({}))}async encryptMessage(e,t){const n=JSON.stringify(e),s=new TextEncoder().encode(n),r=this.deserializeKey(t),{cipherText:i,sharedSecret:o}=it.encapsulate(r),c=await this.encryptWithSharedSecret(s,o);return{cipherText:this.serializeKey(i),encryptedMessage:this.serializeKey(c)}}async decryptMessage(e){const{cipherText:t,encryptedMessage:n}=e;let s;try{s=it.decapsulate(this.deserializeKey(t),this.privkey)}catch(c){return console.error("Wallet::decryptMessage() - Decapsulation failed",c),console.info("Wallet::decryptMessage() - my public key",this.pubkey),null}let r;try{r=this.deserializeKey(n)}catch(c){return console.warn("Wallet::decryptMessage() - Deserialization failed",c),console.info("Wallet::decryptMessage() - my public key",this.pubkey),console.info("Wallet::decryptMessage() - our shared secret",s),null}let i;try{i=await this.decryptWithSharedSecret(r,s)}catch(c){return console.warn("Wallet::decryptMessage() - Decryption failed",c),console.info("Wallet::decryptMessage() - my public key",this.pubkey),console.info("Wallet::decryptMessage() - our shared secret",s),console.info("Wallet::decryptMessage() - deserialized encrypted message",r),null}let o;try{o=new TextDecoder().decode(i)}catch(c){return console.warn("Wallet::decryptMessage() - Decoding failed",c),console.info("Wallet::decryptMessage() - my public key",this.pubkey),console.info("Wallet::decryptMessage() - our shared secret",s),console.info("Wallet::decryptMessage() - deserialized encrypted message",r),console.info("Wallet::decryptMessage() - decrypted Uint8Array",i),null}return JSON.parse(o)}async encryptWithSharedSecret(e,t){const n=crypto.getRandomValues(new Uint8Array(12)),s={name:"AES-GCM",iv:n},r=await crypto.subtle.importKey("raw",t,{name:"AES-GCM"},!1,["encrypt"]),i=await crypto.subtle.encrypt(s,r,e),o=new Uint8Array(n.length+i.byteLength);return o.set(n),o.set(new Uint8Array(i),n.length),o}async decryptWithSharedSecret(e,t){const s={name:"AES-GCM",iv:e.slice(0,12)},r=await crypto.subtle.importKey("raw",t,{name:"AES-GCM"},!1,["decrypt"]),i=await crypto.subtle.decrypt(s,r,e.slice(12));return new Uint8Array(i)}}class ge extends T{constructor(e="There is an atom without an index",t=null,n=null){super(e,t,n),this.name="AtomIndexException"}}class nn extends T{constructor(e="The molecular hash does not match",t=null,n=null){super(e,t,n),this.name="MolecularHashMismatchException"}}class sn extends T{constructor(e="The molecular hash is missing",t=null,n=null){super(e,t,n),this.name="MolecularHashMissingException"}}class at extends T{constructor(e="",t=null,n=null){super(e,t,n),this.name="PolicyInvalidException"}}class ot extends T{constructor(e="OTS malformed",t=null,n=null){super(e,t,n),this.name="SignatureMalformedException"}}class rn extends T{constructor(e="One-time signature (OTS) does not match!",t=null,n=null){super(e,t,n),this.name="SignatureMismatchException"}}class Z extends T{constructor(e="Insufficient balance to make transfer",t=null,n=null){super(e,t,n),this.name="TransferBalanceException"}}class be extends T{constructor(e="Token transfer atoms are malformed",t=null,n=null){super(e,t,n),this.name="TransferMalformedException"}}class lt extends T{constructor(e="Token slugs for wallets in transfer do not match!",t=null,n=null){super(e,t,n),this.name="TransferMismatchedException"}}class ct extends T{constructor(e="Invalid remainder provided",t=null,n=null){super(e,t,n),this.name="TransferRemainderException"}}class an extends T{constructor(e="Sender and recipient(s) cannot be the same",t=null,n=null){super(e,t,n),this.name="TransferToSelfException"}}class Te extends T{constructor(e="Token transfer atoms are unbalanced",t=null,n=null){super(e,t,n),this.name="TransferUnbalancedException"}}class P extends T{constructor(e="Empty meta data.",t=null,n=null){super(e,t,n),this.name="MetaMissingException"}}class re extends T{constructor(e="Wrong type of token for this isotope",t=null,n=null){super(e,t,n),this.name="WrongTokenTypeException"}}class Ce extends T{constructor(e="Incorrect BatchId",t=null,n=null){super(e,t,n),this.name="BatchIdException"}}class on{constructor({}){const e=arguments[0];for(const t in e)this[`__${t}`]=e[t]}static toObject(e){return new this(e)}toJSON(){const e={};for(const t of Object.keys(this))t.substring(0,2)==="__"&&(e[t.substring(2,t.length)]=this[t]);return e}}class Ve extends T{constructor(e="An incorrect argument!",t=null,n=null){super(e,t,n),this.name="RuleArgumentException"}}class Y extends T{constructor(e="Code exception",t=null,n=null){super(e,t,n),this.name="CodeException"}}class xe{constructor({action:e,metaType:t=null,metaId:n=null,meta:s=null,address:r=null,token:i=null,amount:o=null,comparison:c=null}){if(s&&(this.meta=s),!e)throw new Ve('Callback structure violated, missing mandatory "action" parameter.');this.__metaId=n,this.__metaType=t,this.__action=e,this.__address=r,this.__token=i,this.__amount=o,this.__comparison=c}set comparison(e){this.__comparison=e}set amount(e){if(!Tt(e))throw new Y("Parameter amount should be a string containing numbers");this.__amount=e}set token(e){this.__token=e}set address(e){this.__address=e}set meta(e){this.__meta=e instanceof on?e:on.toObject(e)}set metaType(e){this.__metaType=e}set metaId(e){this.__metaId=e}static toObject(e){const t=new xe({action:e.action});return e.metaType&&(t.metaType=e.metaType),e.metaId&&(t.metaId=e.metaId),e.meta&&(t.meta=e.meta),e.address&&(t.address=e.address),e.token&&(t.token=e.token),e.amount&&(t.amount=e.amount),e.comparison&&(t.comparison=e.comparison),t}toJSON(){const e={action:this.__action};return this.__metaType&&(e.metaType=this.__metaType),this.__metaId&&(e.metaId=this.__metaId),this.__meta&&(e.meta=this.__meta),this.__address&&(e.address=this.__address),this.__token&&(e.token=this.__token),this.__amount&&(e.amount=this.__amount),this.__comparison&&(e.comparison=this.__comparison),e}isReject(){return this._is("reject")}isMeta(){return ye(Object.keys(this.toJSON()),["action","metaId","metaType","meta"]).length===4&&this._is("meta")}isCollect(){return ye(Object.keys(this.toJSON()),["action","address","token","amount","comparison"]).length===5&&this._is("collect")}isBuffer(){return ye(Object.keys(this.toJSON()),["action","address","token","amount","comparison"]).length===5&&this._is("buffer")}isRemit(){return ye(Object.keys(this.toJSON()),["action","token","amount"]).length===3&&this._is("remit")}isBurn(){return ye(Object.keys(this.toJSON()),["action","token","amount","comparison"]).length===4&&this._is("burn")}_is(e){return this.__action.toLowerCase()===e.toLowerCase()}}class ut{constructor({key:e,value:t,comparison:n}){if([e,t,n].some(s=>!s))throw new Ve("Condition::constructor( { key, value, comparison } ) - not all class parameters are initialised!");this.__key=e,this.__value=t,this.__comparison=n}static toObject(e){return new this({key:e.key,value:e.value,comparison:e.comparison})}toJSON(){return{key:this.__key,value:this.__value,comparison:this.__comparison}}}class Ee{constructor({condition:e=[],callback:t=[]}){for(const n of e)if(!(n instanceof ut))throw new Ve;for(const n of t)if(!(n instanceof xe))throw new Ve;this.__condition=e,this.__callback=t}set comparison(e){this.__condition.push(e instanceof ut?e:ut.toObject(e))}set callback(e){this.__callback.push(e instanceof xe?e:xe.toObject(e))}static toObject(e){if(!e.condition)throw new P("Rule::toObject() - Incorrect rule format! There is no condition field.");if(!e.callback)throw new P("Rule::toObject() - Incorrect rule format! There is no callback field.");const t=new Ee({});for(const n of e.condition)t.comparison=n;for(const n of e.callback)t.callback=n;return t}toJSON(){return{condition:this.__condition,callback:this.__callback}}}class C{static __init(e,t){this.arr=String(t).split("."),this.key=this.arr.shift();const n=Number(this.key);Number.isInteger(n)&&(this.key=n),this.__nextKey=this.arr.length,this.__next=this.__tic(e)}static __tic(e){return!Array.isArray(e)&&!(e instanceof Object)?!1:typeof e[this.key]<"u"}static has(e,t){return this.__init(e,t),this.__next?this.__nextKey===0?!0:this.has(e[this.key],this.arr.join(".")):!1}static get(e,t,n=null){return this.__init(e,t),this.__next?this.__nextKey===0?e[this.key]:this.get(e[this.key],this.arr.join("."),n):n}static set(e,t,n){const s=t.split(".");let r=e;const i=s.length-1;for(let u=0;u<i;u++){const l=s[u],d=Number(l),f=Number.isInteger(d);(f?d:l in r)||(r[f?d:l]=s[u+1].match(/^\d+$/)?[]:{}),r=r[f?d:l]}const o=s[i],c=Number(o);return r[Number.isInteger(c)?c:o]=n,e}}class we{constructor(e){if(e.molecularHash===null)throw new sn;if(!e.atoms.length)throw new se;for(const t of e.atoms)if(t.index===null)throw new ge;this.molecule=e}verify(e){return this.molecularHash()&&this.ots()&&this.batchId()&&this.continuId()&&this.isotopeM()&&this.isotopeT()&&this.isotopeC()&&this.isotopeU()&&this.isotopeI()&&this.isotopeR()&&this.isotopeP()&&this.isotopeA()&&this.isotopeB()&&this.isotopeF()&&this.isotopeV(e)}continuId(){if(this.molecule.atoms[0].token==="USER"&&this.molecule.getIsotopes("I").length<1)throw new se("Check::continuId() - Molecule is missing required ContinuID Atom!");return!0}batchId(){if(this.molecule.atoms.length>0){const e=this.molecule.atoms[0];if(e.isotope==="V"&&e.batchId!==null){const t=this.molecule.getIsotopes("V"),n=t[t.length-1];if(e.batchId!==n.batchId)throw new Ce;for(const s of t)if(s.batchId===null)throw new Ce}return!0}throw new Ce}isotopeI(){for(const e of this.molecule.getIsotopes("I")){if(e.token!=="USER")throw new re(`Check::isotopeI() - "${e.token}" is not a valid Token slug for "${e.isotope}" isotope Atoms!`);if(e.index===0)throw new ge(`Check::isotopeI() - Isotope "${e.isotope}" Atoms must have a non-zero index!`)}return!0}isotopeU(){for(const e of this.molecule.getIsotopes("U")){if(e.token!=="AUTH")throw new re(`Check::isotopeU() - "${e.token}" is not a valid Token slug for "${e.isotope}" isotope Atoms!`);if(e.index!==0)throw new ge(`Check::isotopeU() - Isotope "${e.isotope}" Atoms must have an index equal to 0!`)}return!0}isotopeM(){const e=["readPolicy","writePolicy"];for(const t of this.molecule.getIsotopes("M")){if(t.meta.length<1)throw new P;if(t.token!=="USER")throw new re(`Check::isotopeM() - "${t.token}" is not a valid Token slug for "${t.isotope}" isotope Atoms!`);const n=ie.aggregateMeta(t.meta);for(const s of e){let r=n[s];if(r){r=JSON.parse(r);for(const[i,o]of Object.entries(r))if(!e.includes(i)){if(!Object.keys(n).includes(i))throw new at(`${i} is missing from the meta.`);for(const c of o)if(!S.isBundleHash(c)&&!["all","self"].includes(c))throw new at(`${c} does not correspond to the format of the policy.`)}}}}return!0}isotopeC(){for(const e of this.molecule.getIsotopes("C")){if(e.token!=="USER")throw new re(`Check::isotopeC() - "${e.token}" is not a valid Token slug for "${e.isotope}" isotope Atoms!`);if(e.index!==0)throw new ge(`Check::isotopeC() - Isotope "${e.isotope}" Atoms must have an index equal to 0!`)}return!0}isotopeT(){for(const e of this.molecule.getIsotopes("T")){const t=e.aggregatedMeta();if(String(e.metaType).toLowerCase()==="wallet"){for(const s of["position","bundle"])if(!Object.prototype.hasOwnProperty.call(t,s)||!t[s])throw new P(`Check::isotopeT() - Required meta field "${s}" is missing!`)}for(const s of["token"])if(!Object.prototype.hasOwnProperty.call(t,s)||!t[s])throw new P(`Check::isotopeT() - Required meta field "${s}" is missing!`);if(e.token!=="USER")throw new re(`Check::isotopeT() - "${e.token}" is not a valid Token slug for "${e.isotope}" isotope Atoms!`);if(e.index!==0)throw new ge(`Check::isotopeT() - Isotope "${e.isotope}" Atoms must have an index equal to 0!`)}return!0}isotopeR(){for(const e of this.molecule.getIsotopes("R")){const t=e.aggregatedMeta();if(t.policy){const n=JSON.parse(t.policy);if(!Object.keys(n).every(s=>["read","write"].includes(s)))throw new P("Check::isotopeR() - Mixing rules with politics!")}if(t.rule){const n=JSON.parse(t.rule);if(!Array.isArray(n))throw new P("Check::isotopeR() - Incorrect rule format!");for(const s of n)Ee.toObject(s);if(n.length<1)throw new P("Check::isotopeR() - No rules!")}}return!0}isotopeP(){for(const e of this.molecule.getIsotopes("P")){if(e.token!=="USER")throw new re(`Check::isotopeP() - "${e.token}" is not a valid Token slug for "${e.isotope}" isotope Atoms!`);const t=e.aggregatedMeta();if(!Object.prototype.hasOwnProperty.call(t,"peerHost")||!t.peerHost)throw new P('Check::isotopeP() - Required meta field "peerHost" is missing!')}return!0}isotopeA(){for(const e of this.molecule.getIsotopes("A")){if(e.token!=="USER")throw new re(`Check::isotopeA() - "${e.token}" is not a valid Token slug for "${e.isotope}" isotope Atoms!`);if(!e.metaType)throw new P('Check::isotopeA() - Required field "metaType" is missing!');if(!e.metaId)throw new P('Check::isotopeA() - Required field "metaId" is missing!');const t=e.aggregatedMeta();if(!Object.prototype.hasOwnProperty.call(t,"action")||!t.action)throw new P('Check::isotopeA() - Required meta field "action" is missing!')}return!0}isotopeB(){const e=this.molecule.getIsotopes("B");if(e.length===0)return!0;for(const n of e){if(!n.metaType||n.metaType!=="walletBundle")throw new P('Check::isotopeB() - B-isotope atoms must have metaType "walletBundle"!');if(!n.metaId)throw new P("Check::isotopeB() - B-isotope atoms must have a metaId!");const s=Number(n.value);if(Number.isNaN(s))throw new be("Check::isotopeB() - B-isotope atom value is not a valid number!")}const t=this.molecule.getIsotopes("V");if(t.length>0){let n=0;for(const s of[...t,...e]){const r=Number(s.value);Number.isNaN(r)||(n+=r)}if(n!==0)throw new Te("Check::isotopeB() - V+B atom values do not balance to zero!")}return!0}isotopeF(){const e=this.molecule.getIsotopes("F");if(e.length===0)return!0;for(const n of e){if(!n.metaType||n.metaType!=="walletBundle")throw new P('Check::isotopeF() - F-isotope atoms must have metaType "walletBundle"!');if(!n.metaId)throw new P("Check::isotopeF() - F-isotope atoms must have a metaId!");const s=Number(n.value);if(Number.isNaN(s))throw new be("Check::isotopeF() - F-isotope atom value is not a valid number!");if(s<0)throw new be("Check::isotopeF() - F-isotope atom value must not be negative!")}const t=this.molecule.getIsotopes("V");if(t.length>0){let n=0;for(const s of[...t,...e]){const r=Number(s.value);Number.isNaN(r)||(n+=r)}if(n!==0)throw new Te("Check::isotopeF() - V+F atom values do not balance to zero!")}return!0}isotopeV(e=null){const t=this.molecule.getIsotopes("V");if(t.length===0)return!0;const n=this.molecule.getIsotopes("B").length>0||this.molecule.getIsotopes("F").length>0,s=this.molecule.atoms[0];if(!n&&s.isotope==="V"&&t.length===2){const o=t[t.length-1];if(s.token!==o.token)throw new lt;if(o.value<0)throw new be;if(Number(s.value)+Number(o.value)!==0)throw new Te;return!0}let r=0,i=0;for(const o in this.molecule.atoms)if(Object.prototype.hasOwnProperty.call(this.molecule.atoms,o)){const c=this.molecule.atoms[o];if(c.isotope!=="V")continue;if(i=c.value*1,Number.isNaN(i))throw new TypeError('Invalid isotope "V" values');if(c.token!==s.token)throw new lt;if(o>0){if(i<0)throw new be;if(c.walletAddress===s.walletAddress)throw new an}r+=i}if(!n&&r!==0)throw new Te;if(e){if(i=s.value*1,Number.isNaN(i))throw new TypeError('Invalid isotope "V" values');const o=Number(e.balance)+i;if(o<0)throw new Z;if(!n&&o!==r)throw new ct}else if(i!==0)throw new ct;return!0}molecularHash(){if(this.molecule.molecularHash!==g.hashAtoms({atoms:this.molecule.atoms}))throw new nn;return!0}ots(){const e=this.molecule.normalizedHash();let t=this.molecule.atoms.map(f=>f.otsFragment).reduce((f,p)=>f+p);if(t.length!==2048&&(t=Mt(t),t.length!==2048))throw new ot;const n=$e(t,128);let s="";for(const f in n){let p=n[f];for(let w=0,I=8+e[f];w<I;w++)p=new q("SHAKE256","TEXT").update(p).getHash("HEX",{outputLen:512});s+=p}const r=new q("SHAKE256","TEXT");r.update(s);const i=r.getHash("HEX",{outputLen:8192}),o=new q("SHAKE256","TEXT");o.update(i);const c=o.getHash("HEX",{outputLen:256}),u=this.molecule.atoms[0];let l=u.walletAddress;const d=C.get(u.aggregatedMeta(),"signingWallet");if(d&&(l=C.get(JSON.parse(d),"address")),c!==l)throw new rn;return!0}static fromServerData({molecularHash:e,bundleHash:t,cellSlug:n=null,status:s=null,createdAt:r=null,atoms:i=[]}){const o=i.map(c=>{let u=[];if(c.metasJson)try{const l=JSON.parse(c.metasJson);Array.isArray(l)?u=l:l&&typeof l=="object"&&(u=Object.entries(l).map(([d,f])=>({key:d,value:f})))}catch{u=[]}return{position:c.position||null,walletAddress:c.walletAddress||null,isotope:c.isotope||null,token:c.tokenSlug||c.token||null,value:c.value!=null?String(c.value):null,batchId:c.batchId||null,metaType:c.metaType||null,metaId:c.metaId||null,meta:u,index:c.index!=null?c.index:null,otsFragment:c.otsFragment||null,createdAt:c.createdAt||null}});return V.fromJSON({molecularHash:e,bundle:t,cellSlug:n,status:s,createdAt:r,atoms:o})}static verifyFromServerData(e){try{const t=we.fromServerData(e);return new we(t).verify(),{molecularHash:e.molecularHash,verified:!0,error:null}}catch(t){return{molecularHash:e.molecularHash||null,verified:!1,error:t.message||String(t)}}}}class pe extends T{constructor(e="Insufficient balance for requested transfer",t=null,n=null){super(e,t,n),this.name="BalanceInsufficientException"}}class ze extends T{constructor(e="Amount cannot be negative!",t=null,n=null){super(e,t,n),this.name="NegativeAmountException"}}class V{constructor({secret:e=null,bundle:t=null,sourceWallet:n=null,remainderWallet:s=null,cellSlug:r=null,version:i=null,continuIdPosition:o=null}){this.status=null,this.molecularHash=null,this.createdAt=String(+new Date),this.cellSlugOrigin=this.cellSlug=r,this.secret=e,this.bundle=t,this.sourceWallet=n,this.continuIdPosition=o,this.atoms=[],this.parentHashes=[],i!==null&&Object.prototype.hasOwnProperty.call(Ke,i)&&(this.version=String(i)),(s||n)&&(this.remainderWallet=s||S.create({secret:e,bundle:t,token:n.token,batchId:n.batchId,characters:n.characters}))}withParentHashes(e){return this.parentHashes=Array.isArray(e)?[...e]:[],this}get cellSlugDelimiter(){return"."}static isotopeFilter(e,t){return Array.isArray(e)||(e=[e]),t.filter(n=>e.includes(n.isotope))}static generateNextAtomIndex(e){return e.length}static jsonToObject(e){const t=Object.assign(new V({}),JSON.parse(e)),n=Object.keys(new V({}));if(!Array.isArray(t.atoms))throw new se;for(const s in Object.keys(t.atoms)){t.atoms[s]=g.jsonToObject(JSON.stringify(t.atoms[s]));for(const r of["position","walletAddress","isotope"])if(t.atoms[s].isotope.toLowerCase()!=="r"&&(typeof t.atoms[s][r]>"u"||t.atoms[s][r]===null))throw new se("MolecularStructure::jsonToObject() - Required Atom properties are missing!")}for(const s in t)Object.prototype.hasOwnProperty.call(t,s)&&!n.includes(s)&&delete t[s];return t.atoms=g.sortAtoms(t.atoms),t}static enumerate(e){const t={0:-8,1:-7,2:-6,3:-5,4:-4,5:-3,6:-2,7:-1,8:0,9:1,a:2,b:3,c:4,d:5,e:6,f:7,g:8},n=[],s=e.toLowerCase().split("");for(let r=0,i=s.length;r<i;++r){const o=s[r];typeof t[o]<"u"&&(n[r]=t[o])}return n}static normalize(e){let t=e.reduce((s,r)=>s+r);const n=t<0;for(;t<0||t>0;)for(const s of Object.keys(e))if((n?e[s]<8:e[s]>-8)&&(n?(++e[s],++t):(--e[s],--t),t===0))break;return e}getIsotopes(e){return V.isotopeFilter(e,this.atoms)}generateIndex(){return V.generateNextAtomIndex(this.atoms)}fill(e){for(const t in Object.keys(e))this[t]=e[t]}addAtom(e){return this.molecularHash=null,e.index=this.generateIndex(),e.version=this.version,this.atoms.push(e),this.atoms=g.sortAtoms(this.atoms),this}addContinuIdAtom(){(!this.remainderWallet||this.remainderWallet.token!=="USER")&&(this.remainderWallet=S.create({secret:this.secret,bundle:this.bundle}));const e={};return this.continuIdPosition?e.previousPosition=this.continuIdPosition:this.sourceWallet&&this.sourceWallet.position&&(e.previousPosition=this.sourceWallet.position),this.remainderWallet.pubkey&&(e.pubkey=this.remainderWallet.pubkey),this.remainderWallet.characters&&(e.characters=this.remainderWallet.characters),this.addAtom(g.create({isotope:"I",wallet:this.remainderWallet,metaType:"walletBundle",metaId:this.remainderWallet.bundle,meta:new H(e)})),this}addPolicyAtom({metaType:e,metaId:t,meta:n={},policy:s={}}){const r=new H(n);return r.addPolicy(s),this.addAtom(g.create({wallet:this.sourceWallet,isotope:"R",metaType:e,metaId:t,meta:r})),this}fuseToken(e,t){const n=e.length;if(this.sourceWallet.balance-n<0)throw new pe;return this.addAtom(g.create({isotope:"V",wallet:this.sourceWallet,value:-n})),this.addAtom(g.create({isotope:"F",wallet:t,value:1,metaType:"walletBundle",metaId:t.bundle})),this.addAtom(g.create({isotope:"V",wallet:this.remainderWallet,value:this.sourceWallet.balance-n,metaType:"walletBundle",metaId:this.remainderWallet.bundle})),this}burnToken({amount:e,walletBundle:t=null}){if(e<0)throw new ze("Molecule::burnToken() - Amount to burn must be positive!");if(this.sourceWallet.balance-e<0)throw new pe;const n=new S({bundle:"0000000000000000000000000000000000000000000000000000000000000000",token:this.sourceWallet.token});return this.addAtom(g.create({isotope:"V",wallet:this.sourceWallet,value:-this.sourceWallet.balance})),this.addAtom(g.create({isotope:"V",wallet:n,value:e,metaType:"walletBundle",metaId:n.bundle})),this.addAtom(g.create({isotope:"V",wallet:this.remainderWallet,value:this.sourceWallet.balance-e,metaType:"walletBundle",metaId:this.remainderWallet.bundle})),this}replenishToken({amount:e,units:t=[]}){if(e<0)throw new ze("Molecule::replenishToken() - Amount to replenish must be positive!");if(t.length){t=S.getTokenUnits(t),this.remainderWallet.tokenUnits=this.sourceWallet.tokenUnits;for(const n of t)this.remainderWallet.tokenUnits.push(n);this.remainderWallet.balance=String(this.remainderWallet.tokenUnits.length),this.sourceWallet.tokenUnits=t,this.sourceWallet.balance=String(this.sourceWallet.tokenUnits.length)}else this.remainderWallet.balance=String(Number(this.sourceWallet.balance)+e),this.sourceWallet.balance=String(e);return this.addAtom(g.create({isotope:"V",wallet:this.sourceWallet,value:Number(this.sourceWallet.balance)})),this.addAtom(g.create({isotope:"V",wallet:this.remainderWallet,value:Number(this.remainderWallet.balance),metaType:"walletBundle",metaId:this.remainderWallet.bundle})),this}initValue({recipientWallet:e,amount:t}){if(this.sourceWallet.balance-t<0)throw new pe;return this.addAtom(g.create({isotope:"V",wallet:this.sourceWallet,value:-this.sourceWallet.balance})),this.addAtom(g.create({isotope:"V",wallet:e,value:t,metaType:"walletBundle",metaId:e.bundle})),this.addAtom(g.create({isotope:"V",wallet:this.remainderWallet,value:this.sourceWallet.balance-t,metaType:"walletBundle",metaId:this.remainderWallet.bundle})),this}addStackableTransfer({recipientWallet:e,amount:t}){if(t<=0)throw new ze("Molecule::addStackableTransfer() - Amount must be positive!");if(this.sourceWallet.balance-t<0)throw new pe;const n=this.sourceWallet.batchId||le({});return this.addAtom(g.create({isotope:"V",wallet:this.sourceWallet,value:-t,batchId:n})),this.addAtom(g.create({isotope:"V",wallet:e,value:t,metaType:"walletBundle",metaId:e.bundle,batchId:le({})})),this.addAtom(g.create({isotope:"V",wallet:this.remainderWallet,value:this.sourceWallet.balance-t,metaType:"walletBundle",metaId:this.remainderWallet.bundle,batchId:n})),this}initDepositBuffer({amount:e,tradeRates:t}){if(this.sourceWallet.balance-e<0)throw new pe;const n=S.create({secret:this.secret,bundle:this.bundle,token:this.sourceWallet.token,batchId:this.sourceWallet.batchId});return n.tradeRates=t,this.addAtom(g.create({isotope:"V",wallet:this.sourceWallet,value:-this.sourceWallet.balance})),this.addAtom(g.create({isotope:"B",wallet:n,value:e,metaType:"walletBundle",metaId:this.sourceWallet.bundle})),this.addAtom(g.create({isotope:"V",wallet:this.remainderWallet,value:this.sourceWallet.balance-e,metaType:"walletBundle",metaId:this.sourceWallet.bundle})),this}initWithdrawBuffer({recipients:e,signingWallet:t=null}){let n=0;for(const[r,i]of Object.entries(e||{}))n+=i;if(this.sourceWallet.balance-n<0)throw new pe;const s=new H;t&&s.setSigningWallet(t),this.addAtom(g.create({isotope:"B",wallet:this.sourceWallet,value:-this.sourceWallet.balance,meta:s,metaType:"walletBundle",metaId:this.sourceWallet.bundle}));for(const[r,i]of Object.entries(e||{}))this.addAtom(new g({isotope:"V",token:this.sourceWallet.token,value:i,batchId:this.sourceWallet.batchId?le({}):null,metaType:"walletBundle",metaId:r}));return this.addAtom(g.create({isotope:"B",wallet:this.remainderWallet,value:this.sourceWallet.balance-n,metaType:"walletBundle",metaId:this.remainderWallet.bundle})),this}initTokenCreation({recipientWallet:e,amount:t,meta:n}){const s=new H(n);return s.setMetaWallet(e),this.addAtom(g.create({isotope:"C",wallet:this.sourceWallet,value:t,metaType:"token",metaId:e.token,meta:s,batchId:e.batchId})),this.addContinuIdAtom(),this}createRule({metaType:e,metaId:t,rule:n,policy:s={}}){const r=[];for(const o of n)r.push(o instanceof Ee?o:Ee.toObject(o));const i=new H({rule:JSON.stringify(r)});return i.addPolicy(s),this.addAtom(g.create({isotope:"R",wallet:this.sourceWallet,metaType:e,metaId:t,meta:i})),this.addContinuIdAtom(),this}initWalletCreation(e,t=null){t||(t=new H),t.setMetaWallet(e);const n=g.create({isotope:"C",wallet:this.sourceWallet,metaType:"wallet",metaId:e.address,meta:t,batchId:e.batchId});return this.addAtom(n),this.addContinuIdAtom(),this}initShadowWalletClaim(e){const t=new H().setShadowWalletClaim(!0);return this.initWalletCreation(e,t)}initIdentifierCreation({type:e,contact:t,code:n}){const s={code:n,hash:oe(t.trim(),"Molecule::initIdentifierCreation")};return this.addAtom(g.create({isotope:"C",wallet:this.sourceWallet,metaType:"identifier",metaId:e,meta:new H(s)})),this.addContinuIdAtom(),this}initMeta({meta:e,metaType:t,metaId:n,policy:s}){return this.addAtom(g.create({isotope:"M",wallet:this.sourceWallet,metaType:t,metaId:n,meta:new H(e)})),s&&Object.keys(s).length>0&&this.addPolicyAtom({metaType:t,metaId:n,meta:e,policy:s}),this.addContinuIdAtom(),this}initPeering({host:e}){return this.addAtom(g.create({isotope:"P",wallet:this.sourceWallet,metaType:"walletBundle",metaId:this.bundle,meta:new H({peerHost:e})})),this.addContinuIdAtom(),this}initAppendRequest({metaType:e,metaId:t,action:n,meta:s={}}){return this.addAtom(g.create({isotope:"A",wallet:this.sourceWallet,metaType:e,metaId:t,meta:new H({action:n,...s})})),this.addContinuIdAtom(),this}initTokenRequest({token:e,amount:t,metaType:n,metaId:s,meta:r={},batchId:i=null}){return r.token=e,r.amount=String(t),this.addAtom(g.create({isotope:"T",wallet:this.sourceWallet,value:t,metaType:n,metaId:s,meta:new H(r),batchId:i})),this.addContinuIdAtom(),this}initAuthorization({meta:e}){return this.addAtom(g.create({isotope:"U",wallet:this.sourceWallet,meta:new H(e)})),this.addContinuIdAtom(),this}sign({bundle:e=null,anonymous:t=!1,compressed:n=!0}){if(this.atoms.length===0||this.atoms.filter(p=>!(p instanceof g)).length!==0)throw new se;!t&&!this.bundle&&(this.bundle=e||oe(this.secret,"Molecule::sign")),this.molecularHash=g.hashAtoms({atoms:this.atoms});const s=this.atoms[0];let r=s.position;const i=C.get(s.aggregatedMeta(),"signingWallet");if(i&&(r=C.get(JSON.parse(i),"position")),!r)throw new ot("Signing wallet must have a position!");const o=S.generateKey({secret:this.secret,token:s.token,position:s.position}),c=$e(o,128),u=this.normalizedHash();let l="";for(const p in c){let w=c[p];for(let I=0,R=8-u[p];I<R;I++)w=new q("SHAKE256","TEXT").update(w).getHash("HEX",{outputLen:512});l+=w}n&&(l=It(l));const d=$e(l,Math.ceil(l.length/this.atoms.length));let f=null;for(let p=0,w=d.length;p<w;p++)this.atoms[p].otsFragment=d[p],f=this.atoms[p].position;return f}signSync(e={}){return this.sign(e)}cellSlugBase(){return(this.cellSlug||"").split(this.cellSlugDelimiter)[0]}toJSON(e={}){const{includeValidationContext:t=!1,includeOtsFragments:n=!0}=e;try{const s={status:this.status,molecularHash:this.molecularHash,createdAt:this.createdAt,cellSlug:this.cellSlug,bundle:this.bundle,atoms:this.atoms.map(r=>r.toJSON({includeOtsFragments:n}))};return this.parentHashes&&this.parentHashes.length>0&&(s.parentHashes=this.parentHashes),t&&(s.cellSlugOrigin=this.cellSlugOrigin,s.version=this.version,this.sourceWallet&&(s.sourceWallet={address:this.sourceWallet.address,position:this.sourceWallet.position,token:this.sourceWallet.token,balance:this.sourceWallet.balance||"0",bundle:this.sourceWallet.bundle,batchId:this.sourceWallet.batchId||null,characters:this.sourceWallet.characters||"BASE64",pubkey:this.sourceWallet.pubkey||null,tokenUnits:this.sourceWallet.tokenUnits||[],tradeRates:this.sourceWallet.tradeRates||{},molecules:this.sourceWallet.molecules||{}}),this.remainderWallet&&(s.remainderWallet={address:this.remainderWallet.address,position:this.remainderWallet.position,token:this.remainderWallet.token,balance:this.remainderWallet.balance||"0",bundle:this.remainderWallet.bundle,batchId:this.remainderWallet.batchId||null,characters:this.remainderWallet.characters||"BASE64",pubkey:this.remainderWallet.pubkey||null,tokenUnits:this.remainderWallet.tokenUnits||[],tradeRates:this.remainderWallet.tradeRates||{},molecules:this.remainderWallet.molecules||{}})),s}catch(s){throw new Error(`Molecule serialization failed: ${s.message}`)}}static fromJSON(e,t={}){const{includeValidationContext:n=!1,validateStructure:s=!0}=t;try{const r=typeof e=="string"?JSON.parse(e):e;if(s&&(!r.molecularHash||!Array.isArray(r.atoms)))throw new Error("Invalid molecule data: missing molecularHash or atoms array");const i=new V({secret:null,bundle:r.bundle||null,cellSlug:r.cellSlug||null,version:r.version||null});return i.status=r.status,i.molecularHash=r.molecularHash,i.createdAt=r.createdAt||String(+new Date),i.cellSlugOrigin=r.cellSlugOrigin,i.parentHashes=Array.isArray(r.parentHashes)?[...r.parentHashes]:[],Array.isArray(r.atoms)&&(i.atoms=r.atoms.map((o,c)=>{try{return g.fromJSON(o)}catch(u){throw new Error(`Failed to reconstruct atom ${c}: ${u.message}`)}})),n&&(r.sourceWallet&&(i.sourceWallet=new S({secret:null,token:r.sourceWallet.token,position:r.sourceWallet.position,bundle:r.sourceWallet.bundle,batchId:r.sourceWallet.batchId,characters:r.sourceWallet.characters}),i.sourceWallet.balance=String(r.sourceWallet.balance!=null?r.sourceWallet.balance:0),i.sourceWallet.address=r.sourceWallet.address,r.sourceWallet.pubkey&&(i.sourceWallet.pubkey=r.sourceWallet.pubkey),i.sourceWallet.tokenUnits=r.sourceWallet.tokenUnits||[],i.sourceWallet.tradeRates=r.sourceWallet.tradeRates||{},i.sourceWallet.molecules=r.sourceWallet.molecules||{}),r.remainderWallet&&(i.remainderWallet=new S({secret:null,token:r.remainderWallet.token,position:r.remainderWallet.position,bundle:r.remainderWallet.bundle,batchId:r.remainderWallet.batchId,characters:r.remainderWallet.characters}),i.remainderWallet.balance=String(r.remainderWallet.balance!=null?r.remainderWallet.balance:0),i.remainderWallet.address=r.remainderWallet.address,r.remainderWallet.pubkey&&(i.remainderWallet.pubkey=r.remainderWallet.pubkey),i.remainderWallet.tokenUnits=r.remainderWallet.tokenUnits||[],i.remainderWallet.tradeRates=r.remainderWallet.tradeRates||{},i.remainderWallet.molecules=r.remainderWallet.molecules||{})),i}catch(r){throw new Error(`Molecule deserialization failed: ${r.message}`)}}check(e=null){return new we(this).verify(e)}normalizedHash(){return V.normalize(V.enumerate(this.molecularHash))}}class ke{constructor({token:e,expiresAt:t,encrypt:n,pubkey:s}){this.$__token=e,this.$__expiresAt=t,this.$__pubkey=s,this.$__encrypt=n}static create(e,t){const n=new ke(e);return n.setWallet(t),n}static restore(e,t){const n=new S({secret:t,token:"AUTH",position:e.wallet.position,characters:e.wallet.characters});return ke.create({token:e.token,expiresAt:e.expiresAt,pubkey:e.pubkey,encrypt:e.encrypt},n)}setWallet(e){this.$__wallet=e}getWallet(){return this.$__wallet}getSnapshot(){return{token:this.$__token,expiresAt:this.$__expiresAt,pubkey:this.$__pubkey,encrypt:this.$__encrypt,wallet:{position:this.$__wallet.position,characters:this.$__wallet.characters}}}getToken(){return this.$__token}getPubkey(){return this.$__pubkey}getExpireInterval(){return this.$__expiresAt*1e3-Date.now()}isExpired(){return!this.$__expiresAt||this.getExpireInterval()<0}getAuthData(){return{token:this.getToken(),pubkey:this.getPubkey(),wallet:this.getWallet()}}}const ht=10**18;class fe{static val(e){return Math.abs(e*ht)<1?0:e}static cmp(e,t,n=!1){const s=fe.val(e)*ht,r=fe.val(t)*ht;return Math.abs(s-r)<1?0:s>r?1:-1}static equal(e,t){return fe.cmp(e,t)===0}}class ne extends T{constructor(e="GraphQL did not provide a valid response.",t=null,n=null){super(e,t,n),this.name="InvalidResponseException"}}class Re extends T{constructor(e="Authorization token missing or invalid.",t=null,n=null){super(e,t,n),this.name="UnauthenticatedException"}}class E{constructor({query:e,json:t,dataKey:n=null}){if(this.dataKey=n,this.errorKey="exception",this.$__payload=null,this.$__query=e,this.$__originResponse=t,this.$__response=t,typeof this.$__response>"u"||this.$__response===null)throw new ne;if(C.has(this.$__response,this.errorKey)){const s=C.get(this.$__response,this.errorKey);throw String(s).includes("Unauthenticated")?new Re:new ne}if(this.$__response.errors&&Array.isArray(this.$__response.errors)&&this.$__response.errors.length>0){const s=this.$__response.errors[0].message||"Unknown GraphQL error";throw s.includes("Unauthenticated")?new Re:new ne(`GraphQL Error: ${s}`)}this.init()}init(){}data(){if(!this.dataKey)return this.response();if(!this.response().data)throw new ne("Response has no data field");if(!C.has(this.response(),this.dataKey))throw new ne(`Missing expected field: ${this.dataKey}`);return C.get(this.response(),this.dataKey)}response(){return this.$__response}payload(){return null}query(){return this.$__query}status(){return null}success(){var e,t;return!((t=(e=this.$__response)==null?void 0:e.errors)!=null&&t.length)}error(){var e,t;return(t=(e=this.$__response)==null?void 0:e.errors)!=null&&t.length?this.$__response.errors[0].message||"Unknown error":null}reason(){return this.error()}toValidationResult(){var e;return this.success()&&this.payload()!==null?{success:!0,data:this.payload(),warnings:[]}:{success:!1,error:{message:this.reason()||"Unknown error",context:this.constructor.name,details:((e=this.$__response)==null?void 0:e.errors)||[]}}}onSuccess(e){if(this.success()&&this.payload()!==null)try{e(this.payload())}catch(t){console.warn("Response.onSuccess callback failed:",t)}return this}onFailure(e){if(!this.success())try{e(this.reason()||"Unknown error")}catch(t){console.warn("Response.onFailure callback failed:",t)}return this}debug(e=null){var n,s,r;const t=e?`[${e}]`:`[${this.constructor.name}]`;return this.success()?console.debug(`${t} Success:`,{payload:this.payload(),query:(s=(n=this.$__query)==null?void 0:n.constructor)==null?void 0:s.name,dataKey:this.dataKey}):console.debug(`${t} Failure:`,{error:this.reason(),errors:(r=this.$__response)==null?void 0:r.errors,rawData:this.$__response}),this}toPromise(){return this.success()&&this.payload()!==null?Promise.resolve(this.payload()):Promise.reject(new Error(this.reason()||"Unknown error"))}map(e){if(this.success()&&this.payload()!==null)try{const t=e(this.payload()),n=Object.create(Object.getPrototypeOf(this));return Object.assign(n,this),n.$__payload=t,n}catch(t){const n=Object.create(Object.getPrototypeOf(this));return Object.assign(n,this),n.$__response={errors:[{message:`Mapping failed: ${t.message}`}]},n}else return this}}class K{constructor(e,t){this.client=e,this.knishIOClient=t,this.$__variables=null,this.$__query=null,this.$__response=null,this.$__request=null}response(){return this.$__response}async createResponseRaw(e){return this.createResponse(e)}createResponse(e){return new E({query:this,json:e})}createQuery({variables:e=null}){if(this.$__variables=this.compiledVariables(e),!this.uri())throw new Y("Query::createQuery() - Node URI was not initialized for this client instance!");if(this.$__query===null)throw new Y("Query::createQuery() - GraphQL subscription was not initialized!");return{query:this.$__query,variables:this.variables()}}async execute({variables:e=null,context:t={}}){this.$__request=this.createQuery({variables:e});const n={...t,...this.createQueryContext()};try{const s=await this.client.query({...this.$__request,context:n});return this.$__response=await this.createResponseRaw(s),this.$__response}catch(s){if(s.name==="AbortError")return this.knishIOClient.log("warn","Query was cancelled"),new E({query:this,json:{data:null,errors:[{message:"Query was cancelled"}]}});throw s}}compiledVariables(e=null){return e||{}}uri(){return this.client.getUri()}variables(){return this.$__variables}createQueryContext(){return{}}}class ln extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.ContinuId"})}payload(){let e=null;const t=this.data();return t&&(e=new S({secret:null,token:t.tokenSlug}),e.address=t.address,e.position=t.position,e.bundle=t.bundleHash,e.batchId=t.batchId,e.characters=t.characters,e.pubkey=t.pubkey,e.balance=String(t.amount!=null?t.amount:0)),e}}class cn extends K{constructor(e,t){super(e,t),this.$__query=A.gql`query ($bundle: String!) {
5
5
  ContinuId(bundle: $bundle) {
6
6
  address,
7
7
  bundleHash,
@@ -13,7 +13,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
13
13
  amount,
14
14
  createdAt
15
15
  }
16
- }`}createQueryContext(){return{requestPolicy:"network-only"}}createResponse(e){return new an({query:this,json:e})}}class cn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.WalletBundle"})}payload(){const e=this.data();if(!e||e.length===0)return null;const t={};return e.forEach(n=>{n.metas=ie.aggregateMeta(n.metas),t[n.bundleHash]=n}),t}}class un extends K{constructor(e,t){super(e,t),this.$__query=$.gql`query( $bundleHashes: [ String! ] ) {
16
+ }`}createQueryContext(){return{requestPolicy:"network-only"}}createResponse(e){return new ln({query:this,json:e})}}class un extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.WalletBundle"})}payload(){const e=this.data();if(!e||e.length===0)return null;const t={};return e.forEach(n=>{n.metas=ie.aggregateMeta(n.metas),t[n.bundleHash]=n}),t}}class hn extends K{constructor(e,t){super(e,t),this.$__query=A.gql`query( $bundleHashes: [ String! ] ) {
17
17
  WalletBundle( bundleHashes: $bundleHashes ) {
18
18
  bundleHash,
19
19
  metas {
@@ -25,7 +25,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
25
25
  },
26
26
  createdAt
27
27
  }
28
- }`}createResponse(e){return new cn({query:this,json:e})}}class Oe extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.Wallet"})}static toClientWallet({data:e,secret:t=null}){let n;if(e.position===null||typeof e.position>"u"?n=S.create({bundle:e.bundleHash,token:e.tokenSlug,batchId:e.batchId,characters:e.characters}):(n=new S({secret:t,token:e.tokenSlug,position:e.position,batchId:e.batchId,characters:e.characters}),n.address=e.address,n.bundle=e.bundleHash),e.token&&(n.tokenName=e.token.name,n.tokenAmount=e.token.amount,n.tokenSupply=e.token.supply,n.tokenFungibility=e.token.fungibility),e.tokenUnits.length)for(const s of e.tokenUnits)n.tokenUnits.push(ce.createFromGraphQL(s));if(e.tradeRates.length)for(const s of e.tradeRates)n.tradeRates[s.tokenSlug]=s.amount;return n.balance=String(e.amount!=null?e.amount:0),n.pubkey=e.pubkey,n.createdAt=e.createdAt,n}getWallets(e=null){const t=this.data();if(!t)return null;const n=[];for(const s of t)n.push(Oe.toClientWallet({data:s,secret:e}));return n}payload(){return this.getWallets()}}class hn extends K{constructor(e,t){super(e,t),this.$__query=$.gql`query( $bundleHash: String, $token: String ) {
28
+ }`}createResponse(e){return new un({query:this,json:e})}}class Oe extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.Wallet"})}static toClientWallet({data:e,secret:t=null}){let n;if(e.position===null||typeof e.position>"u"?n=S.create({bundle:e.bundleHash,token:e.tokenSlug,batchId:e.batchId,characters:e.characters}):(n=new S({secret:t,token:e.tokenSlug,position:e.position,batchId:e.batchId,characters:e.characters}),n.address=e.address,n.bundle=e.bundleHash),e.token&&(n.tokenName=e.token.name,n.tokenAmount=e.token.amount,n.tokenSupply=e.token.supply,n.tokenFungibility=e.token.fungibility),e.tokenUnits.length)for(const s of e.tokenUnits)n.tokenUnits.push(ce.createFromGraphQL(s));if(e.tradeRates.length)for(const s of e.tradeRates)n.tradeRates[s.tokenSlug]=s.amount;return n.balance=String(e.amount!=null?e.amount:0),n.pubkey=e.pubkey,n.createdAt=e.createdAt,n}getWallets(e=null){const t=this.data();if(!t)return null;const n=[];for(const s of t)n.push(Oe.toClientWallet({data:s,secret:e}));return n}payload(){return this.getWallets()}}class dn extends K{constructor(e,t){super(e,t),this.$__query=A.gql`query( $bundleHash: String, $token: String ) {
29
29
  Wallet( bundleHash: $bundleHash, token: $token ) {
30
30
  address,
31
31
  bundleHash,
@@ -52,7 +52,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
52
52
  amount
53
53
  }
54
54
  }
55
- }`}createResponse(e){return new Oe({query:this,json:e})}}class dn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.Balance"})}payload(){let e=this.data();return Array.isArray(e)&&(e=e.length>0?e[0]:null),!e||!e.bundleHash||!e.tokenSlug?null:Oe.toClientWallet({data:e})}}class pn extends K{constructor(e,t){super(e,t),this.$__query=$.gql`query( $address: String, $bundleHash: String, $type: String, $token: String, $position: String ) {
55
+ }`}createResponse(e){return new Oe({query:this,json:e})}}class pn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.Balance"})}payload(){let e=this.data();return Array.isArray(e)&&(e=e.length>0?e[0]:null),!e||!e.bundleHash||!e.tokenSlug?null:Oe.toClientWallet({data:e})}}class fn extends K{constructor(e,t){super(e,t),this.$__query=A.gql`query( $address: String, $bundleHash: String, $type: String, $token: String, $position: String ) {
56
56
  Balance( address: $address, bundleHash: $bundleHash, type: $type, token: $token, position: $position ) {
57
57
  address,
58
58
  bundleHash,
@@ -74,7 +74,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
74
74
  amount
75
75
  }
76
76
  }
77
- }`}createResponse(e){return new dn({query:this,json:e})}}class fn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.MetaType"})}payload(){const e=this.data();if(!e||e.length===0)return null;const t={instances:{},instanceCount:{},paginatorInfo:{}},n=e.pop();return n.instances&&(t.instances=n.instances),n.instanceCount&&(t.instanceCount=n.instanceCount),n.paginatorInfo&&(t.paginatorInfo=n.paginatorInfo),t}}class ht extends K{constructor(e,t){super(e,t),this.$__query=$.gql`query( $metaType: String, $metaTypes: [ String! ], $metaId: String, $metaIds: [ String! ], $key: String, $keys: [ String! ], $value: String, $values: [ String! ], $count: String, $latest: Boolean, $filter: [ MetaFilter! ], $queryArgs: QueryArgs, $countBy: String, $cellSlug: String ) {
77
+ }`}createResponse(e){return new pn({query:this,json:e})}}class mn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.MetaType"})}payload(){const e=this.data();if(!e||e.length===0)return null;const t={instances:{},instanceCount:{},paginatorInfo:{}},n=e.pop();return n.instances&&(t.instances=n.instances),n.instanceCount&&(t.instanceCount=n.instanceCount),n.paginatorInfo&&(t.paginatorInfo=n.paginatorInfo),t}}class dt extends K{constructor(e,t){super(e,t),this.$__query=A.gql`query( $metaType: String, $metaTypes: [ String! ], $metaId: String, $metaIds: [ String! ], $key: String, $keys: [ String! ], $value: String, $values: [ String! ], $count: String, $latest: Boolean, $filter: [ MetaFilter! ], $queryArgs: QueryArgs, $countBy: String, $cellSlug: String ) {
78
78
  MetaType( metaType: $metaType, metaTypes: $metaTypes, metaId: $metaId, metaIds: $metaIds, key: $key, keys: $keys, value: $value, values: $values, count: $count, filter: $filter, queryArgs: $queryArgs, countBy: $countBy, cellSlug: $cellSlug ) {
79
79
  metaType,
80
80
  instanceCount {
@@ -98,7 +98,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
98
98
  total
99
99
  }
100
100
  }
101
- }`}static createVariables({metaType:e=null,metaId:t=null,key:n=null,value:s=null,latest:r=null,filter:i=null,queryArgs:a=null,count:c=null,countBy:u=null,cellSlug:l=null}){const d={};return e&&(d[typeof e=="string"?"metaType":"metaTypes"]=e),t&&(d[typeof t=="string"?"metaId":"metaIds"]=t),n&&(d[typeof n=="string"?"key":"keys"]=n),s&&(d[typeof s=="string"?"value":"values"]=s),d.latest=r===!0,i&&(d.filter=i),a&&((typeof a.limit>"u"||a.limit===0)&&(a.limit="*"),d.queryArgs=a),c&&(d.count=c),u&&(d.countBy=u),l&&(d.cellSlug=l),d}createResponse(e){return new fn({query:this,json:e})}}class Se extends K{constructor(e,t){super(e,t),this.$__query=$.gql`query( $batchId: String ) {
101
+ }`}static createVariables({metaType:e=null,metaId:t=null,key:n=null,value:s=null,latest:r=null,filter:i=null,queryArgs:o=null,count:c=null,countBy:u=null,cellSlug:l=null}){const d={};return e&&(d[typeof e=="string"?"metaType":"metaTypes"]=e),t&&(d[typeof t=="string"?"metaId":"metaIds"]=t),n&&(d[typeof n=="string"?"key":"keys"]=n),s&&(d[typeof s=="string"?"value":"values"]=s),d.latest=r===!0,i&&(d.filter=i),o&&((typeof o.limit>"u"||o.limit===0)&&(o.limit="*"),d.queryArgs=o),c&&(d.count=c),u&&(d.countBy=u),l&&(d.cellSlug=l),d}createResponse(e){return new mn({query:this,json:e})}}class Se extends K{constructor(e,t){super(e,t),this.$__query=A.gql`query( $batchId: String ) {
102
102
  Batch( batchId: $batchId ) {
103
103
  ${Se.getFields()},
104
104
  children {
@@ -154,11 +154,11 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
154
154
  throughMetas {
155
155
  key,
156
156
  value
157
- }`}createResponse(e){const t=new E({query:this,json:e});return t.dataKey="data.Batch",t}}class mn extends K{constructor(e,t){super(e,t),this.$__query=$.gql`query( $batchId: String ) {
157
+ }`}createResponse(e){const t=new E({query:this,json:e});return t.dataKey="data.Batch",t}}class yn extends K{constructor(e,t){super(e,t),this.$__query=A.gql`query( $batchId: String ) {
158
158
  BatchHistory( batchId: $batchId ) {
159
159
  ${Se.getFields()}
160
160
  }
161
- }`}createResponse(e){const t=new E({query:this,json:e});return t.dataKey="data.BatchHistory",t}}class j extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.ProposeMolecule"}),this.$__clientMolecule=e.molecule()}init(){const e=C.get(this.data(),"payload");try{this.$__payload=Object.prototype.toString.call(e)==="[object String]"?JSON.parse(e):e}catch{this.$__payload=null}}clientMolecule(){return this.$__clientMolecule}molecule(){const e=this.data();if(!e)return null;const t=new V({});return t.molecularHash=C.get(e,"molecularHash"),t.status=C.get(e,"status"),t.createdAt=C.get(e,"createdAt"),t}success(){return this.status()==="accepted"}status(){return C.get(this.data(),"status","rejected")}reason(){return C.get(this.data(),"reason","Invalid response from server")}payload(){return this.$__payload}}class We extends K{createQuery({variables:e=null}){const t=super.createQuery({variables:e});return t.mutation=t.query,delete t.query,t}async execute({variables:e={},context:t={}}){this.$__request=this.createQuery({variables:e});const n={...t,...this.createQueryContext()};try{const s={...this.$__request,context:n},r=await this.client.mutate(s);return this.$__response=await this.createResponseRaw(r),this.$__response}catch(s){if(s.name==="AbortError")return this.knishIOClient.log("warn","Mutation was cancelled"),new E({query:this,json:{data:null,errors:[{message:"Mutation was cancelled"}]}});throw s}}createQueryContext(){return{}}}class q extends We{constructor(e,t,n){super(e,t),this.$__molecule=n,this.$__remainderWallet=null,this.$__query=$.gql`mutation( $molecule: MoleculeInput! ) {
161
+ }`}createResponse(e){const t=new E({query:this,json:e});return t.dataKey="data.BatchHistory",t}}class j extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.ProposeMolecule"}),this.$__clientMolecule=e.molecule()}init(){const e=C.get(this.data(),"payload");try{this.$__payload=Object.prototype.toString.call(e)==="[object String]"?JSON.parse(e):e}catch{this.$__payload=null}}clientMolecule(){return this.$__clientMolecule}molecule(){const e=this.data();if(!e)return null;const t=new V({});return t.molecularHash=C.get(e,"molecularHash"),t.status=C.get(e,"status"),t.createdAt=C.get(e,"createdAt"),t}success(){return this.status()==="accepted"}status(){return C.get(this.data(),"status","rejected")}reason(){return C.get(this.data(),"reason","Invalid response from server")}payload(){return this.$__payload}}class qe extends K{createQuery({variables:e=null}){const t=super.createQuery({variables:e});return t.mutation=t.query,delete t.query,t}async execute({variables:e={},context:t={}}){this.$__request=this.createQuery({variables:e});const n={...t,...this.createQueryContext()};try{const s={...this.$__request,context:n},r=await this.client.mutate(s);return this.$__response=await this.createResponseRaw(r),this.$__response}catch(s){if(s.name==="AbortError")return this.knishIOClient.log("warn","Mutation was cancelled"),new E({query:this,json:{data:null,errors:[{message:"Mutation was cancelled"}]}});throw s}}createQueryContext(){return{}}}class W extends qe{constructor(e,t,n){super(e,t),this.$__molecule=n,this.$__remainderWallet=null,this.$__query=A.gql`mutation( $molecule: MoleculeInput! ) {
162
162
  ProposeMolecule( molecule: $molecule ) {
163
163
  molecularHash,
164
164
  height,
@@ -171,7 +171,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
171
171
  processedAt,
172
172
  broadcastedAt,
173
173
  }
174
- }`}compiledVariables(e){return{...super.compiledVariables(e),molecule:this.molecule()}}createResponse(e){return new j({query:this,json:e})}async execute({variables:e=null}){return e=e||{},e.molecule=this.molecule(),super.execute({variables:e})}remainderWallet(){return this.$__remainderWallet}molecule(){return this.$__molecule}}class yn extends j{payloadKey(e){if(!C.has(this.payload(),e))throw new ne(`ResponseRequestAuthorization::payloadKey() - '${e}' key was not found in the payload!`);return C.get(this.payload(),e)}token(){return this.payloadKey("token")}time(){return this.payloadKey("time")}expiresAt(){try{const t=this.payloadKey("expiresAt");if(t)return Number(t)}catch{}const e=Number(this.time());return e>=1577836800?e:Math.floor(Date.now()/1e3)+Math.floor(e/1e3)}encrypt(){return this.payloadKey("encrypt")}pubKey(){return this.payloadKey("key")}}class gn extends q{fillMolecule({meta:e}){this.$__molecule.initAuthorization({meta:e}),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new yn({query:this,json:e})}}class bn extends j{}class wn extends q{fillMolecule({recipientWallet:e,amount:t,meta:n=null}){this.$__molecule.initTokenCreation({recipientWallet:e,amount:t,meta:n||{}}),this.$__molecule.sign({bundle:e.bundle}),this.$__molecule.check()}createResponse(e){return new bn({query:this,json:e})}}class kn extends j{}class Sn extends q{fillMolecule({token:e,amount:t,metaType:n,metaId:s,meta:r=null,batchId:i=null}){this.$__molecule.initTokenRequest({token:e,amount:t,metaType:n,metaId:s,meta:r||{},batchId:i}),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new kn({query:this,json:e})}}class _n extends j{payload(){const e={reason:null,status:null},t=this.data();return e.reason=typeof t.reason>"u"?"Invalid response from server":t.reason,e.status=typeof t.status>"u"?"rejected":t.status,e}}class An extends q{fillMolecule({recipientWallet:e,amount:t}){this.$__molecule.initValue({recipientWallet:e,amount:t}),this.$__molecule.sign({}),this.$__molecule.check(this.$__molecule.sourceWallet)}createResponse(e){return new _n({query:this,json:e})}}class $n extends j{}class vn extends q{fillMolecule({type:e,contact:t,code:n}){this.$__molecule.initIdentifierCreation({type:e,contact:t,code:n}),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new $n({query:this,json:e})}}class In extends j{}class Mn extends q{fillMolecule({token:e,batchId:t=null}){const n=S.create({secret:this.$__molecule.secret,bundle:this.$__molecule.bundle,token:e,batchId:t});this.$__molecule.initShadowWalletClaim(n),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new In({query:this,json:e})}}class Tn extends j{}class Cn extends q{fillMolecule({metaType:e,metaId:t,meta:n,policy:s}){this.$__molecule.initMeta({meta:n,metaType:e,metaId:t,policy:s}),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new Tn({query:this,json:e})}}class xn extends j{}class En extends q{fillMolecule({host:e}){this.$__molecule.initPeering({host:e}),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new xn({query:this,json:e})}}class Rn extends j{}class On extends q{fillMolecule({metaType:e,metaId:t,action:n,meta:s={}}){this.$__molecule.initAppendRequest({metaType:e,metaId:t,action:n,meta:s}),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new Rn({query:this,json:e})}}class Wn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.LinkIdentifier"})}success(){return C.get(this.data(),"set")}message(){return C.get(this.data(),"message")}}class qn extends We{constructor(e,t){super(e,t),this.$__query=$.gql`mutation( $bundle: String!, $type: String!, $content: String! ) {
174
+ }`}compiledVariables(e){return{...super.compiledVariables(e),molecule:this.molecule()}}createResponse(e){return new j({query:this,json:e})}async execute({variables:e=null}){return e=e||{},e.molecule=this.molecule(),super.execute({variables:e})}remainderWallet(){return this.$__remainderWallet}molecule(){return this.$__molecule}}class gn extends j{payloadKey(e){if(!C.has(this.payload(),e))throw new ne(`ResponseRequestAuthorization::payloadKey() - '${e}' key was not found in the payload!`);return C.get(this.payload(),e)}token(){return this.payloadKey("token")}time(){return this.payloadKey("time")}expiresAt(){try{const t=this.payloadKey("expiresAt");if(t)return Number(t)}catch{}const e=Number(this.time());return e>=1577836800?e:Math.floor(Date.now()/1e3)+Math.floor(e/1e3)}encrypt(){return this.payloadKey("encrypt")}pubKey(){return this.payloadKey("key")}}class bn extends W{fillMolecule({meta:e}){this.$__molecule.initAuthorization({meta:e}),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new gn({query:this,json:e})}}class wn extends j{}class kn extends W{fillMolecule({recipientWallet:e,amount:t,meta:n=null}){this.$__molecule.initTokenCreation({recipientWallet:e,amount:t,meta:n||{}}),this.$__molecule.sign({bundle:e.bundle}),this.$__molecule.check()}createResponse(e){return new wn({query:this,json:e})}}class Sn extends j{}class _n extends W{fillMolecule({token:e,amount:t,metaType:n,metaId:s,meta:r=null,batchId:i=null}){this.$__molecule.initTokenRequest({token:e,amount:t,metaType:n,metaId:s,meta:r||{},batchId:i}),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new Sn({query:this,json:e})}}class $n extends j{payload(){const e={reason:null,status:null},t=this.data();return e.reason=typeof t.reason>"u"?"Invalid response from server":t.reason,e.status=typeof t.status>"u"?"rejected":t.status,e}}class An extends W{fillMolecule({recipientWallet:e,amount:t}){this.$__molecule.initValue({recipientWallet:e,amount:t}),this.$__molecule.sign({}),this.$__molecule.check(this.$__molecule.sourceWallet)}createResponse(e){return new $n({query:this,json:e})}}class vn extends j{}class In extends W{fillMolecule({type:e,contact:t,code:n}){this.$__molecule.initIdentifierCreation({type:e,contact:t,code:n}),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new vn({query:this,json:e})}}class Mn extends j{}class Tn extends W{fillMolecule({token:e,batchId:t=null}){const n=S.create({secret:this.$__molecule.secret,bundle:this.$__molecule.bundle,token:e,batchId:t});this.$__molecule.initShadowWalletClaim(n),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new Mn({query:this,json:e})}}class Cn extends j{}class xn extends W{fillMolecule({metaType:e,metaId:t,meta:n,policy:s}){this.$__molecule.initMeta({meta:n,metaType:e,metaId:t,policy:s}),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new Cn({query:this,json:e})}}class En extends j{}class Rn extends W{fillMolecule({host:e}){this.$__molecule.initPeering({host:e}),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new En({query:this,json:e})}}class On extends j{}class qn extends W{fillMolecule({metaType:e,metaId:t,action:n,meta:s={}}){this.$__molecule.initAppendRequest({metaType:e,metaId:t,action:n,meta:s}),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new On({query:this,json:e})}}class Wn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.LinkIdentifier"})}success(){return C.get(this.data(),"set")}message(){return C.get(this.data(),"message")}}class Bn extends qe{constructor(e,t){super(e,t),this.$__query=A.gql`mutation( $bundle: String!, $type: String!, $content: String! ) {
175
175
  LinkIdentifier( bundle: $bundle, type: $type, content: $content ) {
176
176
  type,
177
177
  bundle,
@@ -179,13 +179,13 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
179
179
  set,
180
180
  message
181
181
  }
182
- }`}createResponse(e){return new Wn({query:this,json:e})}}class Bn extends j{}class Un extends q{fillMolecule(e){this.$__molecule.initWalletCreation(e),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new Bn({query:this,json:e})}}class Hn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.AccessToken"})}reason(){return"Invalid response from server"}success(){return this.payload()!==null}payload(){return this.data()}payloadKey(e){if(!C.has(this.payload(),e))throw new ne(`ResponseAuthorizationGuest::payloadKey() - '${e}' key is not found in the payload!`);return C.get(this.payload(),e)}token(){return this.payloadKey("token")}time(){return this.payloadKey("time")}expiresAt(){try{const t=this.payloadKey("expiresAt");if(t)return Number(t)}catch{}const e=Number(this.time());return e>=1577836800?e:Math.floor(Date.now()/1e3)+Math.floor(e/1e3)}pubKey(){return this.payloadKey("key")}encrypt(){return this.payloadKey("encrypt")}}class Pn extends We{constructor(e,t){super(e,t),this.$__query=$.gql`mutation( $cellSlug: String, $pubkey: String, $encrypt: Boolean ) {
182
+ }`}createResponse(e){return new Wn({query:this,json:e})}}class Un extends j{}class Hn extends W{fillMolecule(e){this.$__molecule.initWalletCreation(e),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new Un({query:this,json:e})}}class Pn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.AccessToken"})}reason(){return"Invalid response from server"}success(){return this.payload()!==null}payload(){return this.data()}payloadKey(e){if(!C.has(this.payload(),e))throw new ne(`ResponseAuthorizationGuest::payloadKey() - '${e}' key is not found in the payload!`);return C.get(this.payload(),e)}token(){return this.payloadKey("token")}time(){return this.payloadKey("time")}expiresAt(){try{const t=this.payloadKey("expiresAt");if(t)return Number(t)}catch{}const e=Number(this.time());return e>=1577836800?e:Math.floor(Date.now()/1e3)+Math.floor(e/1e3)}pubKey(){return this.payloadKey("key")}encrypt(){return this.payloadKey("encrypt")}}class Kn extends qe{constructor(e,t){super(e,t),this.$__query=A.gql`mutation( $cellSlug: String, $pubkey: String, $encrypt: Boolean ) {
183
183
  AccessToken( cellSlug: $cellSlug, pubkey: $pubkey, encrypt: $encrypt ) {
184
184
  token,
185
185
  pubkey,
186
186
  expiresAt
187
187
  }
188
- }`}createResponse(e){return new Hn({query:this,json:e})}}class dt extends T{constructor(e="The shadow wallet does not exist",t=null,n=null){super(e,t,n),this.name="WalletShadowException"}}class Kn extends T{constructor(e="Stackable tokens with unit IDs cannot have decimal places!",t=null,n=null){super(e,t,n),this.name="StackableUnitDecimalsException"}}class qe extends T{constructor(e="Stackable tokens with unit IDs cannot have an amount!",t=null,n=null){super(e,t,n),this.name="StackableUnitAmountException"}}class Je{constructor(e){this.client=e,this.$__variables=null,this.$__subscribe=null}createSubscribe({variables:e=null}){if(this.$__variables=this.compiledVariables(e),!this.uri())throw new Y("Subscribe::createSubscribe() - Node URI was not initialized for this client instance!");if(this.$__subscribe===null)throw new Y("Subscribe::createSubscribe() - GraphQL subscription was not initialized!");return{query:this.$__subscribe,variables:this.variables(),fetchPolicy:"no-cache"}}async execute({variables:e=null,closure:t}){if(!t)throw new Y(`${this.constructor.name}::execute() - closure parameter is required!`);return this.$__request=this.createSubscribe({variables:e}),this.client.subscribe(this.$__request,t)}compiledVariables(e=null){return e||{}}uri(){return this.client.getUri()}variables(){return this.$__variables}}class zs extends Je{constructor(e){super(e),this.$__subscribe=$.gql`
188
+ }`}createResponse(e){return new Pn({query:this,json:e})}}class pt extends T{constructor(e="The shadow wallet does not exist",t=null,n=null){super(e,t,n),this.name="WalletShadowException"}}class Nn extends T{constructor(e="Stackable tokens with unit IDs cannot have decimal places!",t=null,n=null){super(e,t,n),this.name="StackableUnitDecimalsException"}}class We extends T{constructor(e="Stackable tokens with unit IDs cannot have an amount!",t=null,n=null){super(e,t,n),this.name="StackableUnitAmountException"}}class Je{constructor(e){this.client=e,this.$__variables=null,this.$__subscribe=null}createSubscribe({variables:e=null}){if(this.$__variables=this.compiledVariables(e),!this.uri())throw new Y("Subscribe::createSubscribe() - Node URI was not initialized for this client instance!");if(this.$__subscribe===null)throw new Y("Subscribe::createSubscribe() - GraphQL subscription was not initialized!");return{query:this.$__subscribe,variables:this.variables(),fetchPolicy:"no-cache"}}async execute({variables:e=null,closure:t}){if(!t)throw new Y(`${this.constructor.name}::execute() - closure parameter is required!`);return this.$__request=this.createSubscribe({variables:e}),this.client.subscribe(this.$__request,t)}compiledVariables(e=null){return e||{}}uri(){return this.client.getUri()}variables(){return this.$__variables}}class Gs extends Je{constructor(e){super(e),this.$__subscribe=A.gql`
189
189
  subscription onCreateMolecule ( $bundle: String! ) {
190
190
  CreateMolecule( bundle: $bundle ) {
191
191
  molecularHash,
@@ -230,7 +230,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
230
230
  }
231
231
  }
232
232
  }
233
- `}}class Js extends Je{constructor(e){super(e),this.$__subscribe=$.gql`
233
+ `}}class Xs extends Je{constructor(e){super(e),this.$__subscribe=A.gql`
234
234
  subscription onWalletStatus ( $bundle: String!, $token: String! ) {
235
235
  WalletStatus( bundle: $bundle, token: $token ) {
236
236
  bundle,
@@ -239,7 +239,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
239
239
  balance,
240
240
  }
241
241
  }
242
- `}}class Gs extends Je{constructor(e){super(e),this.$__subscribe=$.gql`
242
+ `}}class Zs extends Je{constructor(e){super(e),this.$__subscribe=A.gql`
243
243
  subscription onActiveWallet ( $bundle: String! ) {
244
244
  ActiveWallet( bundle: $bundle ) {
245
245
  address,
@@ -277,7 +277,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
277
277
  }
278
278
  }
279
279
  }
280
- `}}class Xs extends Je{constructor(e){super(e),this.$__subscribe=$.gql`
280
+ `}}class Ys extends Je{constructor(e){super(e),this.$__subscribe=A.gql`
281
281
  subscription onActiveUser ( $metaType: String!, $metaId: String! ) {
282
282
  ActiveUser( metaType: $metaType, metaId: $metaId ) {
283
283
  bundleHash,
@@ -287,7 +287,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
287
287
  createdAt,
288
288
  updatedAt
289
289
  }
290
- }`}}class Nn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.ActiveSession"})}}class Fn extends We{constructor(e,t){super(e,t),this.$__query=$.gql`mutation(
290
+ }`}}class Qn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.ActiveSession"})}}class Fn extends qe{constructor(e,t){super(e,t),this.$__query=A.gql`mutation(
291
291
  $bundleHash: String!,
292
292
  $metaType: String!,
293
293
  $metaId: String!,
@@ -315,7 +315,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
315
315
  createdAt,
316
316
  updatedAt
317
317
  }
318
- }`}createResponse(e){return new Nn({query:this,json:e})}}class Qn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.ActiveUser"})}payload(){const e=this.data();if(!e)return null;const t=[];for(const n of e){const s={...n};s.jsonData&&(s.jsonData=JSON.parse(s.jsonData)),s.createdAt&&(s.createdAt=new Date(s.createdAt)),s.updatedAt&&(s.updatedAt=new Date(s.updatedAt)),t.push(s)}return t}}class Ln extends K{constructor(e,t){super(e,t),this.$__query=$.gql`query ActiveUserQuery ($bundleHash:String, $metaType: String, $metaId: String) {
318
+ }`}createResponse(e){return new Qn({query:this,json:e})}}class Ln extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.ActiveUser"})}payload(){const e=this.data();if(!e)return null;const t=[];for(const n of e){const s={...n};s.jsonData&&(s.jsonData=JSON.parse(s.jsonData)),s.createdAt&&(s.createdAt=new Date(s.createdAt)),s.updatedAt&&(s.updatedAt=new Date(s.updatedAt)),t.push(s)}return t}}class jn extends K{constructor(e,t){super(e,t),this.$__query=A.gql`query ActiveUserQuery ($bundleHash:String, $metaType: String, $metaId: String) {
319
319
  ActiveUser (bundleHash: $bundleHash, metaType: $metaType, metaId: $metaId) {
320
320
  bundleHash,
321
321
  metaType,
@@ -324,7 +324,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
324
324
  createdAt,
325
325
  updatedAt
326
326
  }
327
- }`}createResponse(e){return new Qn({query:this,json:e})}}class jn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.UserActivity"})}payload(){const e=JSON.parse(JSON.stringify(this.data()));if(e.instances)for(const t of e.instances)t.jsonData=JSON.parse(t.jsonData);return e}}class Dn extends K{constructor(e,t){super(e,t),this.$__query=$.gql`query UserActivity (
327
+ }`}createResponse(e){return new Ln({query:this,json:e})}}class Dn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.UserActivity"})}payload(){const e=JSON.parse(JSON.stringify(this.data()));if(e.instances)for(const t of e.instances)t.jsonData=JSON.parse(t.jsonData);return e}}class Vn extends K{constructor(e,t){super(e,t),this.$__query=A.gql`query UserActivity (
328
328
  $bundleHash:String,
329
329
  $metaType: String,
330
330
  $metaId: String,
@@ -397,7 +397,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
397
397
  }
398
398
  }
399
399
  }
400
- }`}createResponse(e){return new jn({query:this,json:e})}}class Vn extends K{constructor(e,t){super(e,t),this.$__query=$.gql`query( $slug: String, $slugs: [ String! ], $limit: Int, $order: String ) {
400
+ }`}createResponse(e){return new Dn({query:this,json:e})}}class zn extends K{constructor(e,t){super(e,t),this.$__query=A.gql`query( $slug: String, $slugs: [ String! ], $limit: Int, $order: String ) {
401
401
  Token( slug: $slug, slugs: $slugs, limit: $limit, order: $order ) {
402
402
  slug,
403
403
  name,
@@ -407,7 +407,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
407
407
  amount,
408
408
  icon,
409
409
  }
410
- }`}createResponse(e){return new E({query:this,json:e,dataKey:"data.Token"})}}class pt extends T{constructor(e="Authorization attempt rejected by ledger.",t=null,n=null){super(e,t,n),this.name="AuthorizationRejectedException"}}class zn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.Atom"})}payload(){const e=this.data();if(!e)return null;const t={instances:[],instanceCount:{},paginatorInfo:{}};if(e.instances){t.instances=e.instances;for(const n in t.instances){const s=t.instances[n];s.metasJson&&(t.instances[n].metas=JSON.parse(s.metasJson))}}return e.instanceCount&&(t.instanceCount=e.instanceCount),e.paginatorInfo&&(t.paginatorInfo=e.paginatorInfo),t}metas(){const e=this.payload(),t=[];if(e&&e.instances)for(const n of e.instances)n.metasJson&&t.push(JSON.parse(n.metasJson));return t}}class ft extends K{constructor(e,t){super(e,t),this.$__query=$.gql`query(
410
+ }`}createResponse(e){return new E({query:this,json:e,dataKey:"data.Token"})}}class ft extends T{constructor(e="Authorization attempt rejected by ledger.",t=null,n=null){super(e,t,n),this.name="AuthorizationRejectedException"}}class Jn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.Atom"})}payload(){const e=this.data();if(!e)return null;const t={instances:[],instanceCount:{},paginatorInfo:{}};if(e.instances){t.instances=e.instances;for(const n in t.instances){const s=t.instances[n];s.metasJson&&(t.instances[n].metas=JSON.parse(s.metasJson))}}return e.instanceCount&&(t.instanceCount=e.instanceCount),e.paginatorInfo&&(t.paginatorInfo=e.paginatorInfo),t}metas(){const e=this.payload(),t=[];if(e&&e.instances)for(const n of e.instances)n.metasJson&&t.push(JSON.parse(n.metasJson));return t}}class mt extends K{constructor(e,t){super(e,t),this.$__query=A.gql`query(
411
411
  $molecularHashes: [String!],
412
412
  $bundleHashes: [String!],
413
413
  $positions:[String!],
@@ -463,7 +463,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
463
463
  total
464
464
  }
465
465
  }
466
- }`}static createVariables({molecularHashes:e,molecularHash:t,bundleHashes:n,bundleHash:s,positions:r,position:i,walletAddresses:a,walletAddress:c,isotopes:u,isotope:l,tokenSlugs:d,tokenSlug:f,cellSlugs:p,cellSlug:w,batchIds:I,batchId:R,values:m,value:b,metaTypes:k,metaType:O,metaIds:_,metaId:v,indexes:M,index:x,filter:A,latest:F,queryArgs:U}){return t&&(e=e||[],e.push(t)),s&&(n=n||[],n.push(s)),i&&(r=r||[],r.push(i)),c&&(a=a||[],a.push(c)),l&&(u=u||[],u.push(l)),f&&(d=d||[],d.push(f)),w&&(p=p||[],p.push(w)),R&&(I=I||[],I.push(R)),b&&(m=m||[],m.push(b)),O&&(k=k||[],k.push(O)),v&&(_=_||[],_.push(v)),x&&(M=M||[],M.push(x)),{molecularHashes:e,bundleHashes:n,positions:r,walletAddresses:a,isotopes:u,tokenSlugs:d,cellSlugs:p,batchIds:I,values:m,metaTypes:k,metaIds:_,indexes:M,filter:A,latest:F,queryArgs:U}}createResponse(e){return new zn({query:this,json:e})}}class Jn extends E{constructor({query:e,json:t}){super({query:e,json:t}),this.dataKey="data.Policy",this.init()}payload(){const e=this.data();return e&&e.callback?JSON.parse(e.callback):null}}class Gn extends K{constructor(e,t){super(e,t),this.$__query=$.gql`query( $metaType: String, $metaId: String, ) {
466
+ }`}static createVariables({molecularHashes:e,molecularHash:t,bundleHashes:n,bundleHash:s,positions:r,position:i,walletAddresses:o,walletAddress:c,isotopes:u,isotope:l,tokenSlugs:d,tokenSlug:f,cellSlugs:p,cellSlug:w,batchIds:I,batchId:R,values:m,value:b,metaTypes:k,metaType:O,metaIds:_,metaId:v,indexes:M,index:x,filter:$,latest:Q,queryArgs:U}){return t&&(e=e||[],e.push(t)),s&&(n=n||[],n.push(s)),i&&(r=r||[],r.push(i)),c&&(o=o||[],o.push(c)),l&&(u=u||[],u.push(l)),f&&(d=d||[],d.push(f)),w&&(p=p||[],p.push(w)),R&&(I=I||[],I.push(R)),b&&(m=m||[],m.push(b)),O&&(k=k||[],k.push(O)),v&&(_=_||[],_.push(v)),x&&(M=M||[],M.push(x)),{molecularHashes:e,bundleHashes:n,positions:r,walletAddresses:o,isotopes:u,tokenSlugs:d,cellSlugs:p,batchIds:I,values:m,metaTypes:k,metaIds:_,indexes:M,filter:$,latest:Q,queryArgs:U}}createResponse(e){return new Jn({query:this,json:e})}}class Gn extends E{constructor({query:e,json:t}){super({query:e,json:t}),this.dataKey="data.Policy",this.init()}payload(){const e=this.data();return e&&e.callback?JSON.parse(e.callback):null}}class Xn extends K{constructor(e,t){super(e,t),this.$__query=A.gql`query( $metaType: String, $metaId: String, ) {
467
467
  Policy( metaType: $metaType, metaId: $metaId ) {
468
468
  molecularHash,
469
469
  position,
@@ -474,7 +474,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
474
474
  rule,
475
475
  createdAt
476
476
  }
477
- }`}createResponse(e){return new Jn({query:this,json:e})}}class Xn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.MetaTypeViaAtom"})}payload(){const e=this.data();if(!e||e.length===0)return null;const t={instances:{},instanceCount:{},paginatorInfo:{}},n=e.pop();return n.instances&&(t.instances=n.instances),n.instanceCount&&(t.instanceCount=n.instanceCount),n.paginatorInfo&&(t.paginatorInfo=n.paginatorInfo),t}}class mt extends K{constructor(e,t){super(e,t),this.$__query=$.gql`query ($metaTypes: [String!], $metaIds: [String!], $values: [String!], $keys: [String!], $latest: Boolean, $filter: [MetaFilter!], $queryArgs: QueryArgs, $countBy: String, $atomValues: [String!], $cellSlugs: [String!] ) {
477
+ }`}createResponse(e){return new Gn({query:this,json:e})}}class Zn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.MetaTypeViaAtom"})}payload(){const e=this.data();if(!e||e.length===0)return null;const t={instances:{},instanceCount:{},paginatorInfo:{}},n=e.pop();return n.instances&&(t.instances=n.instances),n.instanceCount&&(t.instanceCount=n.instanceCount),n.paginatorInfo&&(t.paginatorInfo=n.paginatorInfo),t}}class yt extends K{constructor(e,t){super(e,t),this.$__query=A.gql`query ($metaTypes: [String!], $metaIds: [String!], $values: [String!], $keys: [String!], $latest: Boolean, $filter: [MetaFilter!], $queryArgs: QueryArgs, $countBy: String, $atomValues: [String!], $cellSlugs: [String!] ) {
478
478
  MetaTypeViaAtom(
479
479
  metaTypes: $metaTypes
480
480
  metaIds: $metaIds
@@ -507,7 +507,7 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
507
507
  total
508
508
  }
509
509
  }
510
- }`}static createVariables({metaType:e=null,metaId:t=null,key:n=null,value:s=null,keys:r=null,values:i=null,atomValues:a=null,latest:c=null,filter:u=null,queryArgs:l=null,countBy:d=null,cellSlug:f=null}){const p={};return a&&(p.atomValues=a),r&&(p.keys=r),i&&(p.values=i),e&&(p.metaTypes=typeof e=="string"?[e]:e),t&&(p.metaIds=typeof t=="string"?[t]:t),f&&(p.cellSlugs=typeof f=="string"?[f]:f),d&&(p.countBy=d),u&&(p.filter=u),n&&s&&(p.filter=p.filter||[],p.filter.push({key:n,value:s,comparison:"="})),p.latest=c===!0,l&&((typeof l.limit>"u"||l.limit===0)&&(l.limit="*"),p.queryArgs=l),p}createResponse(e){return new Xn({query:this,json:e})}}class Ge extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.MetaTypeViaAtom"})}static extractMetasFromMolecule(e,t,n){if(!e||!e.atoms)return[];const s=[];for(const r of e.atoms){if(r.metaType!==t||r.metaId!==n||!r.metasJson)continue;let i;try{if(i=JSON.parse(r.metasJson),!Array.isArray(i))continue}catch{continue}for(const a of i)s.push({molecularHash:e.molecularHash,position:r.position,key:a.key,value:a.value,createdAt:r.createdAt})}return s}payload(){const e=this.data();if(!e||e.length===0)return null;const t={instances:{},instanceCount:{},paginatorInfo:{}},n=e.pop();return n.instances&&(t.instances=n.instances.map(s=>{let r=s.metas;return(!r||r.length===0)&&(r=Ge.extractMetasFromMolecule(s.molecule,s.metaType,s.metaId)),{...s,metas:r}})),n.instanceCount&&(t.instanceCount=n.instanceCount),n.paginatorInfo&&(t.paginatorInfo=n.paginatorInfo),t}verifyIntegrity(){var s;const e=[],t=this.data();if(!t||t.length===0)return{verified:!0,molecules:e};const n=((s=t[t.length-1])==null?void 0:s.instances)||[];for(const r of n)r.molecule&&e.push(we.verifyFromServerData(r.molecule));return{verified:e.length===0||e.every(r=>r.verified),molecules:e}}}class yt extends K{constructor(e,t){super(e,t),this.$__query=$.gql`query ($metaTypes: [String!], $metaIds: [String!], $values: [String!], $keys: [String!], $latest: Boolean, $filter: [MetaFilter!], $queryArgs: QueryArgs, $countBy: String, $atomValues: [String!], $cellSlugs: [String!] ) {
510
+ }`}static createVariables({metaType:e=null,metaId:t=null,key:n=null,value:s=null,keys:r=null,values:i=null,atomValues:o=null,latest:c=null,filter:u=null,queryArgs:l=null,countBy:d=null,cellSlug:f=null}){const p={};return o&&(p.atomValues=o),r&&(p.keys=r),i&&(p.values=i),e&&(p.metaTypes=typeof e=="string"?[e]:e),t&&(p.metaIds=typeof t=="string"?[t]:t),f&&(p.cellSlugs=typeof f=="string"?[f]:f),d&&(p.countBy=d),u&&(p.filter=u),n&&s&&(p.filter=p.filter||[],p.filter.push({key:n,value:s,comparison:"="})),p.latest=c===!0,l&&((typeof l.limit>"u"||l.limit===0)&&(l.limit="*"),p.queryArgs=l),p}createResponse(e){return new Zn({query:this,json:e})}}class Ge extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.MetaTypeViaAtom"})}static extractMetasFromMolecule(e,t,n){if(!e||!e.atoms)return[];const s=[];for(const r of e.atoms){if(r.metaType!==t||r.metaId!==n||!r.metasJson)continue;let i;try{if(i=JSON.parse(r.metasJson),!Array.isArray(i))continue}catch{continue}for(const o of i)s.push({molecularHash:e.molecularHash,position:r.position,key:o.key,value:o.value,createdAt:r.createdAt})}return s}payload(){const e=this.data();if(!e||e.length===0)return null;const t={instances:{},instanceCount:{},paginatorInfo:{}},n=e.pop();return n.instances&&(t.instances=n.instances.map(s=>{let r=s.metas;return(!r||r.length===0)&&(r=Ge.extractMetasFromMolecule(s.molecule,s.metaType,s.metaId)),{...s,metas:r}})),n.instanceCount&&(t.instanceCount=n.instanceCount),n.paginatorInfo&&(t.paginatorInfo=n.paginatorInfo),t}verifyIntegrity(){var s;const e=[],t=this.data();if(!t||t.length===0)return{verified:!0,molecules:e};const n=((s=t[t.length-1])==null?void 0:s.instances)||[];for(const r of n)r.molecule&&e.push(we.verifyFromServerData(r.molecule));return{verified:e.length===0||e.every(r=>r.verified),molecules:e}}}class gt extends K{constructor(e,t){super(e,t),this.$__query=A.gql`query ($metaTypes: [String!], $metaIds: [String!], $values: [String!], $keys: [String!], $latest: Boolean, $filter: [MetaFilter!], $queryArgs: QueryArgs, $countBy: String, $atomValues: [String!], $cellSlugs: [String!] ) {
511
511
  MetaTypeViaAtom(
512
512
  metaTypes: $metaTypes
513
513
  metaIds: $metaIds
@@ -561,7 +561,17 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
561
561
  total
562
562
  }
563
563
  }
564
- }`}static createVariables({metaType:e=null,metaId:t=null,key:n=null,value:s=null,keys:r=null,values:i=null,atomValues:a=null,latest:c=null,filter:u=null,queryArgs:l=null,countBy:d=null,cellSlug:f=null}){const p={};return a&&(p.atomValues=a),r&&(p.keys=r),i&&(p.values=i),e&&(p.metaTypes=typeof e=="string"?[e]:e),t&&(p.metaIds=typeof t=="string"?[t]:t),f&&(p.cellSlugs=typeof f=="string"?[f]:f),d&&(p.countBy=d),u&&(p.filter=u),n&&s&&(p.filter=p.filter||[],p.filter.push({key:n,value:s,comparison:"="})),p.latest=c===!0,l&&((typeof l.limit>"u"||l.limit===0)&&(l.limit="*"),p.queryArgs=l),p}createResponse(e){return new Ge({query:this,json:e})}}class Zn extends j{}class Yn extends q{fillMolecule({metaType:e,metaId:t,rule:n,policy:s}){this.$__molecule.createRule({metaType:e,metaId:t,rule:n,policy:s}),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new Zn({query:this,json:e})}}class es extends q{fillMolecule({amount:e,tradeRates:t}){this.$__molecule.initDepositBuffer({amount:e,tradeRates:t}),this.$__molecule.sign({}),this.$__molecule.check(this.$__molecule.sourceWallet)}}class ts extends q{fillMolecule({recipients:e,signingWallet:t}){this.$__molecule.initWithdrawBuffer({recipients:e,signingWallet:t}),this.$__molecule.sign({}),this.$__molecule.check(this.$__molecule.sourceWallet)}}function ee(o,e,t,n){return new(t||(t=Promise))((function(s,r){function i(u){try{c(n.next(u))}catch(l){r(l)}}function a(u){try{c(n.throw(u))}catch(l){r(l)}}function c(u){var l;u.done?s(u.value):(l=u.value,l instanceof t?l:new t((function(d){d(l)}))).then(i,a)}c((n=n.apply(o,[])).next())}))}function te(o,e){var t,n,s,r,i={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return r={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(r[Symbol.iterator]=function(){return this}),r;function a(c){return function(u){return(function(l){if(t)throw new TypeError("Generator is already executing.");for(;r&&(r=0,l[0]&&(i=0)),i;)try{if(t=1,n&&(s=2&l[0]?n.return:l[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,l[1])).done)return s;switch(n=0,s&&(l=[2&l[0],s.value]),l[0]){case 0:case 1:s=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,n=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(s=i.trys,!((s=s.length>0&&s[s.length-1])||l[0]!==6&&l[0]!==2)){i=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){i.label=l[1];break}if(l[0]===6&&i.label<s[1]){i.label=s[1],s=l;break}if(s&&i.label<s[2]){i.label=s[2],i.ops.push(l);break}s[2]&&i.ops.pop(),i.trys.pop();continue}l=e.call(o,i)}catch(d){l=[6,d],n=0}finally{t=s=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}})([c,u])}}}typeof SuppressedError=="function"&&SuppressedError;var B={exclude:[],include:[],logging:!0},ns={},Zs={timeout:"true"},G=function(o,e){typeof window<"u"&&(ns[o]=e)},Ys=function(){return Object.fromEntries(Object.entries(ns).filter((function(o){var e,t=o[0];return!(!((e=B==null?void 0:B.exclude)===null||e===void 0)&&e.includes(t))})).filter((function(o){var e,t,n,s,r=o[0];return!((e=B==null?void 0:B.include)===null||e===void 0)&&e.some((function(i){return i.includes(".")}))?(t=B==null?void 0:B.include)===null||t===void 0?void 0:t.some((function(i){return i.startsWith(r)})):((n=B==null?void 0:B.include)===null||n===void 0?void 0:n.length)===0||((s=B==null?void 0:B.include)===null||s===void 0?void 0:s.includes(r))})).map((function(o){return[o[0],(0,o[1])()]})))};function Xe(o){return o^=o>>>16,o=Math.imul(o,2246822507),o^=o>>>13,o=Math.imul(o,3266489909),(o^=o>>>16)>>>0}var N=new Uint32Array([597399067,2869860233,951274213,2716044179]);function z(o,e){return o<<e|o>>>32-e}function gt(o,e){var t;if(e===void 0&&(e=0),e=e?0|e:0,typeof o=="string"&&(t=o,o=new TextEncoder().encode(t).buffer),!(o instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");var n=new Uint32Array([e,e,e,e]);(function(r,i){for(var a=r.byteLength/16|0,c=new Uint32Array(r,0,4*a),u=0;u<a;u++){var l=c.subarray(4*u,4*(u+1));l[0]=Math.imul(l[0],N[0]),l[0]=z(l[0],15),l[0]=Math.imul(l[0],N[1]),i[0]=i[0]^l[0],i[0]=z(i[0],19),i[0]=i[0]+i[1],i[0]=Math.imul(i[0],5)+1444728091,l[1]=Math.imul(l[1],N[1]),l[1]=z(l[1],16),l[1]=Math.imul(l[1],N[2]),i[1]=i[1]^l[1],i[1]=z(i[1],17),i[1]=i[1]+i[2],i[1]=Math.imul(i[1],5)+197830471,l[2]=Math.imul(l[2],N[2]),l[2]=z(l[2],17),l[2]=Math.imul(l[2],N[3]),i[2]=i[2]^l[2],i[2]=z(i[2],15),i[2]=i[2]+i[3],i[2]=Math.imul(i[2],5)+2530024501,l[3]=Math.imul(l[3],N[3]),l[3]=z(l[3],18),l[3]=Math.imul(l[3],N[0]),i[3]=i[3]^l[3],i[3]=z(i[3],13),i[3]=i[3]+i[0],i[3]=Math.imul(i[3],5)+850148119}})(o,n),(function(r,i){var a=r.byteLength/16|0,c=r.byteLength%16,u=new Uint32Array(4),l=new Uint8Array(r,16*a,c);switch(c){case 15:u[3]=u[3]^l[14]<<16;case 14:u[3]=u[3]^l[13]<<8;case 13:u[3]=u[3]^l[12]<<0,u[3]=Math.imul(u[3],N[3]),u[3]=z(u[3],18),u[3]=Math.imul(u[3],N[0]),i[3]=i[3]^u[3];case 12:u[2]=u[2]^l[11]<<24;case 11:u[2]=u[2]^l[10]<<16;case 10:u[2]=u[2]^l[9]<<8;case 9:u[2]=u[2]^l[8]<<0,u[2]=Math.imul(u[2],N[2]),u[2]=z(u[2],17),u[2]=Math.imul(u[2],N[3]),i[2]=i[2]^u[2];case 8:u[1]=u[1]^l[7]<<24;case 7:u[1]=u[1]^l[6]<<16;case 6:u[1]=u[1]^l[5]<<8;case 5:u[1]=u[1]^l[4]<<0,u[1]=Math.imul(u[1],N[1]),u[1]=z(u[1],16),u[1]=Math.imul(u[1],N[2]),i[1]=i[1]^u[1];case 4:u[0]=u[0]^l[3]<<24;case 3:u[0]=u[0]^l[2]<<16;case 2:u[0]=u[0]^l[1]<<8;case 1:u[0]=u[0]^l[0]<<0,u[0]=Math.imul(u[0],N[0]),u[0]=z(u[0],15),u[0]=Math.imul(u[0],N[1]),i[0]=i[0]^u[0]}})(o,n),(function(r,i){i[0]=i[0]^r.byteLength,i[1]=i[1]^r.byteLength,i[2]=i[2]^r.byteLength,i[3]=i[3]^r.byteLength,i[0]=i[0]+i[1]|0,i[0]=i[0]+i[2]|0,i[0]=i[0]+i[3]|0,i[1]=i[1]+i[0]|0,i[2]=i[2]+i[0]|0,i[3]=i[3]+i[0]|0,i[0]=Xe(i[0]),i[1]=Xe(i[1]),i[2]=Xe(i[2]),i[3]=Xe(i[3]),i[0]=i[0]+i[1]|0,i[0]=i[0]+i[2]|0,i[0]=i[0]+i[3]|0,i[1]=i[1]+i[0]|0,i[2]=i[2]+i[0]|0,i[3]=i[3]+i[0]|0})(o,n);var s=new Uint8Array(n.buffer);return Array.from(s).map((function(r){return r.toString(16).padStart(2,"0")})).join("")}function er(o,e){return new Promise((function(t){setTimeout((function(){return t(e)}),o)}))}function tr(o,e,t){return Promise.all(o.map((function(n){return Promise.race([n,er(e,t)])})))}var nr="0.19.1";function sr(){return nr}function ss(){return ee(this,void 0,void 0,(function(){var o,e,t,n,s;return te(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),o=Ys(),e=Object.keys(o),[4,tr(Object.values(o),(B==null?void 0:B.timeout)||1e3,Zs)];case 1:return t=r.sent(),n=t.filter((function(i){return i!==void 0})),s={},n.forEach((function(i,a){s[e[a]]=i})),[2,rs(s,B.exclude||[],B.include||[],"")];case 2:throw r.sent();case 3:return[2]}}))}))}function rs(o,e,t,n){n===void 0&&(n="");for(var s={},r=function(u,l){var d=n+u+".";if(typeof l!="object"||Array.isArray(l)){var f=e.some((function(I){return d.startsWith(I)})),p=t.some((function(I){return d.startsWith(I)}));f&&!p||(s[u]=l)}else{var w=rs(l,e,t,d);Object.keys(w).length>0&&(s[u]=w)}},i=0,a=Object.entries(o);i<a.length;i++){var c=a[i];r(c[0],c[1])}return s}function rr(o){return ee(this,void 0,void 0,(function(){var e,t;return te(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,ss()];case 1:return e=n.sent(),t=gt(JSON.stringify(e)),Math.random()<.001&&B.logging&&(function(s,r){ee(this,void 0,void 0,(function(){var i,a;return te(this,(function(c){switch(c.label){case 0:if(i="https://logging.thumbmarkjs.com/v1/log",a={thumbmark:s,components:r,version:sr()},sessionStorage.getItem("_tmjs_l"))return[3,4];sessionStorage.setItem("_tmjs_l","1"),c.label=1;case 1:return c.trys.push([1,3,,4]),[4,fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})];case 2:case 3:return c.sent(),[3,4];case 4:return[2]}}))}))})(t,e),[2,t.toString()];case 2:throw n.sent();case 3:return[2]}}))}))}function ir(o){for(var e=0,t=0;t<o.length;++t)e+=Math.abs(o[t]);return e}function is(o,e,t){for(var n=[],s=0;s<o[0].data.length;s++){for(var r=[],i=0;i<o.length;i++)r.push(o[i].data[s]);n.push(or(r))}var a=new Uint8ClampedArray(n);return new ImageData(a,e,t)}function or(o){if(o.length===0)return 0;for(var e={},t=0,n=o;t<n.length;t++)e[r=n[t]]=(e[r]||0)+1;var s=o[0];for(var r in e)e[r]>e[s]&&(s=parseInt(r,10));return s}function Be(){if(typeof navigator>"u")return{name:"unknown",version:"unknown"};for(var o=navigator.userAgent,e={Edg:"Edge",OPR:"Opera"},t=0,n=[/(?<name>Edge|Edg)\/(?<version>\d+(?:\.\d+)?)/,/(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\/(?<version>\d+(?:\.\d+)?)/,/(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\/(?<version>\d+(?:\.\d+)?)/,/(?<name>Safari)\/(?<version>\d+(?:\.\d+)?)/,/(?<name>MSIE|Trident|IEMobile).+?(?<version>\d+(?:\.\d+)?)/,/(?<name>[A-Za-z]+)\/(?<version>\d+(?:\.\d+)?)/,/(?<name>SamsungBrowser)\/(?<version>\d+(?:\.\d+)?)/];t<n.length;t++){var s=n[t],r=o.match(s);if(r&&r.groups)return{name:e[r.groups.name]||r.groups.name,version:r.groups.version}}return{name:"unknown",version:"unknown"}}G("audio",(function(){return ee(this,void 0,void 0,(function(){return te(this,(function(o){return[2,new Promise((function(e,t){try{var n=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,5e3,44100),s=n.createBufferSource(),r=n.createOscillator();r.frequency.value=1e3;var i,a=n.createDynamicsCompressor();a.threshold.value=-50,a.knee.value=40,a.ratio.value=12,a.attack.value=0,a.release.value=.2,r.connect(a),a.connect(n.destination),r.start(),n.oncomplete=function(c){i=c.renderedBuffer.getChannelData(0),e({sampleHash:ir(i),oscillator:r.type,maxChannels:n.destination.maxChannelCount,channelCountMode:s.channelCountMode})},n.startRendering()}catch(c){console.error("Error creating audio fingerprint:",c),t(c)}}))]}))}))}));var ar=Be().name!=="SamsungBrowser"?1:3,os=280,as=20;Be().name!="Firefox"&&G("canvas",(function(){return document.createElement("canvas").getContext("2d"),new Promise((function(o){var e=Array.from({length:ar},(function(){return(function(){var t=document.createElement("canvas"),n=t.getContext("2d");if(!n)return new ImageData(1,1);t.width=os,t.height=as;var s=n.createLinearGradient(0,0,t.width,t.height);s.addColorStop(0,"red"),s.addColorStop(.16666666666666666,"orange"),s.addColorStop(.3333333333333333,"yellow"),s.addColorStop(.5,"green"),s.addColorStop(.6666666666666666,"blue"),s.addColorStop(.8333333333333334,"indigo"),s.addColorStop(1,"violet"),n.fillStyle=s,n.fillRect(0,0,t.width,t.height);var r="Random Text WMwmil10Oo";n.font="23.123px Arial",n.fillStyle="black",n.fillText(r,-5,15),n.fillStyle="rgba(0, 0, 255, 0.5)",n.fillText(r,-3.3,17.7),n.beginPath(),n.moveTo(0,0),n.lineTo(2*t.width/7,t.height),n.strokeStyle="white",n.lineWidth=2,n.stroke();var i=n.getImageData(0,0,t.width,t.height);return i})()}));o({commonImageDataHash:gt(is(e,os,as).data.toString()).toString()})}))}));var bt,lr=["Arial","Arial Black","Arial Narrow","Arial Rounded MT","Arimo","Archivo","Barlow","Bebas Neue","Bitter","Bookman","Calibri","Cabin","Candara","Century","Century Gothic","Comic Sans MS","Constantia","Courier","Courier New","Crimson Text","DM Mono","DM Sans","DM Serif Display","DM Serif Text","Dosis","Droid Sans","Exo","Fira Code","Fira Sans","Franklin Gothic Medium","Garamond","Geneva","Georgia","Gill Sans","Helvetica","Impact","Inconsolata","Indie Flower","Inter","Josefin Sans","Karla","Lato","Lexend","Lucida Bright","Lucida Console","Lucida Sans Unicode","Manrope","Merriweather","Merriweather Sans","Montserrat","Myriad","Noto Sans","Nunito","Nunito Sans","Open Sans","Optima","Orbitron","Oswald","Pacifico","Palatino","Perpetua","PT Sans","PT Serif","Poppins","Prompt","Public Sans","Quicksand","Rajdhani","Recursive","Roboto","Roboto Condensed","Rockwell","Rubik","Segoe Print","Segoe Script","Segoe UI","Sora","Source Sans Pro","Space Mono","Tahoma","Taviraj","Times","Times New Roman","Titillium Web","Trebuchet MS","Ubuntu","Varela Round","Verdana","Work Sans"],cr=["monospace","sans-serif","serif"];function ls(o,e){if(!o)throw new Error("Canvas context not supported");return o.font,o.font="72px ".concat(e),o.measureText("WwMmLli0Oo").width}function ur(){var o,e=document.createElement("canvas"),t=(o=e.getContext("webgl"))!==null&&o!==void 0?o:e.getContext("experimental-webgl");if(t&&"getParameter"in t)try{var n=(t.getParameter(t.VENDOR)||"").toString(),s=(t.getParameter(t.RENDERER)||"").toString(),r={vendor:n,renderer:s,version:(t.getParameter(t.VERSION)||"").toString(),shadingLanguageVersion:(t.getParameter(t.SHADING_LANGUAGE_VERSION)||"").toString()};if(!s.length||!n.length){var i=t.getExtension("WEBGL_debug_renderer_info");if(i){var a=(t.getParameter(i.UNMASKED_VENDOR_WEBGL)||"").toString(),c=(t.getParameter(i.UNMASKED_RENDERER_WEBGL)||"").toString();a&&(r.vendorUnmasked=a),c&&(r.rendererUnmasked=c)}}return r}catch{}return"undefined"}function hr(){var o=new Float32Array(1),e=new Uint8Array(o.buffer);return o[0]=1/0,o[0]=o[0]-o[0],e[3]}function dr(o,e){var t={};return e.forEach((function(n){var s=(function(r){if(r.length===0)return null;var i={};r.forEach((function(u){var l=String(u);i[l]=(i[l]||0)+1}));var a=r[0],c=1;return Object.keys(i).forEach((function(u){i[u]>c&&(a=u,c=i[u])})),a})(o.map((function(r){return n in r?r[n]:void 0})).filter((function(r){return r!==void 0})));s&&(t[n]=s)})),t}function pr(){var o=[],e={"prefers-contrast":["high","more","low","less","forced","no-preference"],"any-hover":["hover","none"],"any-pointer":["none","coarse","fine"],pointer:["none","coarse","fine"],hover:["hover","none"],update:["fast","slow"],"inverted-colors":["inverted","none"],"prefers-reduced-motion":["reduce","no-preference"],"prefers-reduced-transparency":["reduce","no-preference"],scripting:["none","initial-only","enabled"],"forced-colors":["active","none"]};return Object.keys(e).forEach((function(t){e[t].forEach((function(n){matchMedia("(".concat(t,": ").concat(n,")")).matches&&o.push("".concat(t,": ").concat(n))}))})),o}function fr(){if(window.location.protocol==="https:"&&typeof window.ApplePaySession=="function")try{for(var o=window.ApplePaySession.supportsVersion,e=15;e>0;e--)if(o(e))return e}catch{return 0}return 0}Be().name!="Firefox"&&G("fonts",(function(){var o=this;return new Promise((function(e,t){try{(function(n){var s;ee(this,void 0,void 0,(function(){var r,i,a;return te(this,(function(c){switch(c.label){case 0:return document.body?[3,2]:[4,(u=50,new Promise((function(d){return setTimeout(d,u,l)})))];case 1:return c.sent(),[3,0];case 2:if((r=document.createElement("iframe")).setAttribute("frameBorder","0"),(i=r.style).setProperty("position","fixed"),i.setProperty("display","block","important"),i.setProperty("visibility","visible"),i.setProperty("border","0"),i.setProperty("opacity","0"),r.src="about:blank",document.body.appendChild(r),!(a=r.contentDocument||((s=r.contentWindow)===null||s===void 0?void 0:s.document)))throw new Error("Iframe document is not accessible");return n({iframe:a}),setTimeout((function(){document.body.removeChild(r)}),0),[2]}var u,l}))}))})((function(n){var s=n.iframe;return ee(o,void 0,void 0,(function(){var r,i,a,c;return te(this,(function(u){return r=s.createElement("canvas"),i=r.getContext("2d"),a=cr.map((function(l){return ls(i,l)})),c={},lr.forEach((function(l){var d=ls(i,l);a.includes(d)||(c[l]=d)})),e(c),[2]}))}))}))}catch{t({error:"unsupported"})}}))})),G("hardware",(function(){return new Promise((function(o,e){var t=navigator.deviceMemory!==void 0?navigator.deviceMemory:0,n=window.performance&&window.performance.memory?window.performance.memory:0;o({videocard:ur(),architecture:hr(),deviceMemory:t.toString()||"undefined",jsHeapSizeLimit:n.jsHeapSizeLimit||0})}))})),G("locales",(function(){return new Promise((function(o){o({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))})),G("permissions",(function(){return ee(this,void 0,void 0,(function(){var o;return te(this,(function(e){return bt=(B==null?void 0:B.permissions_to_check)||["accelerometer","accessibility","accessibility-events","ambient-light-sensor","background-fetch","background-sync","bluetooth","camera","clipboard-read","clipboard-write","device-info","display-capture","gyroscope","geolocation","local-fonts","magnetometer","microphone","midi","nfc","notifications","payment-handler","persistent-storage","push","speaker","storage-access","top-level-storage-access","window-management","query"],o=Array.from({length:(B==null?void 0:B.retries)||3},(function(){return(function(){return ee(this,void 0,void 0,(function(){var t,n,s,r,i;return te(this,(function(a){switch(a.label){case 0:t={},n=0,s=bt,a.label=1;case 1:if(!(n<s.length))return[3,6];r=s[n],a.label=2;case 2:return a.trys.push([2,4,,5]),[4,navigator.permissions.query({name:r})];case 3:return i=a.sent(),t[r]=i.state.toString(),[3,5];case 4:return a.sent(),[3,5];case 5:return n++,[3,1];case 6:return[2,t]}}))}))})()})),[2,Promise.all(o).then((function(t){return dr(t,bt)}))]}))}))})),G("plugins",(function(){var o=[];if(navigator.plugins)for(var e=0;e<navigator.plugins.length;e++){var t=navigator.plugins[e];o.push([t.name,t.filename,t.description].join("|"))}return new Promise((function(n){n({plugins:o})}))})),G("screen",(function(){return new Promise((function(o){o({is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:pr()})}))})),G("system",(function(){return new Promise((function(o){var e=Be();o({platform:window.navigator.platform,cookieEnabled:window.navigator.cookieEnabled,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:e.name,version:e.version},applePayVersion:fr()})}))}));var Q,mr=Be().name!=="SamsungBrowser"?1:3,y=null;G("webgl",(function(){return ee(this,void 0,void 0,(function(){var o;return te(this,(function(e){typeof document<"u"&&((Q=document.createElement("canvas")).width=200,Q.height=100,y=Q.getContext("webgl"));try{if(!y)throw new Error("WebGL not supported");return o=Array.from({length:mr},(function(){return(function(){try{if(!y)throw new Error("WebGL not supported");var t=`
564
+ }`}static createVariables({metaType:e=null,metaId:t=null,key:n=null,value:s=null,keys:r=null,values:i=null,atomValues:o=null,latest:c=null,filter:u=null,queryArgs:l=null,countBy:d=null,cellSlug:f=null}){const p={};return o&&(p.atomValues=o),r&&(p.keys=r),i&&(p.values=i),e&&(p.metaTypes=typeof e=="string"?[e]:e),t&&(p.metaIds=typeof t=="string"?[t]:t),f&&(p.cellSlugs=typeof f=="string"?[f]:f),d&&(p.countBy=d),u&&(p.filter=u),n&&s&&(p.filter=p.filter||[],p.filter.push({key:n,value:s,comparison:"="})),p.latest=c===!0,l&&((typeof l.limit>"u"||l.limit===0)&&(l.limit="*"),p.queryArgs=l),p}createResponse(e){return new Ge({query:this,json:e})}}class Yn extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.embeddingStatus"})}payload(){const e=this.data();return!e||!Array.isArray(e)||e.length===0?null:e}}class bt extends K{constructor(e,t){super(e,t),this.$__query=A.gql`query( $metaType: String, $metaId: String, $instances: [EmbeddingStatusInput!] ) {
565
+ embeddingStatus( metaType: $metaType, metaId: $metaId, instances: $instances ) {
566
+ metaType,
567
+ metaId,
568
+ state,
569
+ totalMetas,
570
+ embeddedCount,
571
+ embeddedAt,
572
+ model
573
+ }
574
+ }`}static createVariables({metaType:e=null,metaId:t=null,instances:n=null}){const s={};return n&&n.length>0&&(s.instances=n),e&&(s.metaType=e),t&&(s.metaId=t),s}createResponse(e){return new Yn({query:this,json:e})}}class es extends j{}class ts extends W{fillMolecule({metaType:e,metaId:t,rule:n,policy:s}){this.$__molecule.createRule({metaType:e,metaId:t,rule:n,policy:s}),this.$__molecule.sign({}),this.$__molecule.check()}createResponse(e){return new es({query:this,json:e})}}class ns extends W{fillMolecule({amount:e,tradeRates:t}){this.$__molecule.initDepositBuffer({amount:e,tradeRates:t}),this.$__molecule.sign({}),this.$__molecule.check(this.$__molecule.sourceWallet)}}class ss extends W{fillMolecule({recipients:e,signingWallet:t}){this.$__molecule.initWithdrawBuffer({recipients:e,signingWallet:t}),this.$__molecule.sign({}),this.$__molecule.check(this.$__molecule.sourceWallet)}}function ee(a,e,t,n){return new(t||(t=Promise))((function(s,r){function i(u){try{c(n.next(u))}catch(l){r(l)}}function o(u){try{c(n.throw(u))}catch(l){r(l)}}function c(u){var l;u.done?s(u.value):(l=u.value,l instanceof t?l:new t((function(d){d(l)}))).then(i,o)}c((n=n.apply(a,[])).next())}))}function te(a,e){var t,n,s,r,i={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return r={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(r[Symbol.iterator]=function(){return this}),r;function o(c){return function(u){return(function(l){if(t)throw new TypeError("Generator is already executing.");for(;r&&(r=0,l[0]&&(i=0)),i;)try{if(t=1,n&&(s=2&l[0]?n.return:l[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,l[1])).done)return s;switch(n=0,s&&(l=[2&l[0],s.value]),l[0]){case 0:case 1:s=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,n=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(s=i.trys,!((s=s.length>0&&s[s.length-1])||l[0]!==6&&l[0]!==2)){i=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){i.label=l[1];break}if(l[0]===6&&i.label<s[1]){i.label=s[1],s=l;break}if(s&&i.label<s[2]){i.label=s[2],i.ops.push(l);break}s[2]&&i.ops.pop(),i.trys.pop();continue}l=e.call(a,i)}catch(d){l=[6,d],n=0}finally{t=s=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}})([c,u])}}}typeof SuppressedError=="function"&&SuppressedError;var B={exclude:[],include:[],logging:!0},rs={},er={timeout:"true"},G=function(a,e){typeof window<"u"&&(rs[a]=e)},tr=function(){return Object.fromEntries(Object.entries(rs).filter((function(a){var e,t=a[0];return!(!((e=B==null?void 0:B.exclude)===null||e===void 0)&&e.includes(t))})).filter((function(a){var e,t,n,s,r=a[0];return!((e=B==null?void 0:B.include)===null||e===void 0)&&e.some((function(i){return i.includes(".")}))?(t=B==null?void 0:B.include)===null||t===void 0?void 0:t.some((function(i){return i.startsWith(r)})):((n=B==null?void 0:B.include)===null||n===void 0?void 0:n.length)===0||((s=B==null?void 0:B.include)===null||s===void 0?void 0:s.includes(r))})).map((function(a){return[a[0],(0,a[1])()]})))};function Xe(a){return a^=a>>>16,a=Math.imul(a,2246822507),a^=a>>>13,a=Math.imul(a,3266489909),(a^=a>>>16)>>>0}var N=new Uint32Array([597399067,2869860233,951274213,2716044179]);function z(a,e){return a<<e|a>>>32-e}function wt(a,e){var t;if(e===void 0&&(e=0),e=e?0|e:0,typeof a=="string"&&(t=a,a=new TextEncoder().encode(t).buffer),!(a instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");var n=new Uint32Array([e,e,e,e]);(function(r,i){for(var o=r.byteLength/16|0,c=new Uint32Array(r,0,4*o),u=0;u<o;u++){var l=c.subarray(4*u,4*(u+1));l[0]=Math.imul(l[0],N[0]),l[0]=z(l[0],15),l[0]=Math.imul(l[0],N[1]),i[0]=i[0]^l[0],i[0]=z(i[0],19),i[0]=i[0]+i[1],i[0]=Math.imul(i[0],5)+1444728091,l[1]=Math.imul(l[1],N[1]),l[1]=z(l[1],16),l[1]=Math.imul(l[1],N[2]),i[1]=i[1]^l[1],i[1]=z(i[1],17),i[1]=i[1]+i[2],i[1]=Math.imul(i[1],5)+197830471,l[2]=Math.imul(l[2],N[2]),l[2]=z(l[2],17),l[2]=Math.imul(l[2],N[3]),i[2]=i[2]^l[2],i[2]=z(i[2],15),i[2]=i[2]+i[3],i[2]=Math.imul(i[2],5)+2530024501,l[3]=Math.imul(l[3],N[3]),l[3]=z(l[3],18),l[3]=Math.imul(l[3],N[0]),i[3]=i[3]^l[3],i[3]=z(i[3],13),i[3]=i[3]+i[0],i[3]=Math.imul(i[3],5)+850148119}})(a,n),(function(r,i){var o=r.byteLength/16|0,c=r.byteLength%16,u=new Uint32Array(4),l=new Uint8Array(r,16*o,c);switch(c){case 15:u[3]=u[3]^l[14]<<16;case 14:u[3]=u[3]^l[13]<<8;case 13:u[3]=u[3]^l[12]<<0,u[3]=Math.imul(u[3],N[3]),u[3]=z(u[3],18),u[3]=Math.imul(u[3],N[0]),i[3]=i[3]^u[3];case 12:u[2]=u[2]^l[11]<<24;case 11:u[2]=u[2]^l[10]<<16;case 10:u[2]=u[2]^l[9]<<8;case 9:u[2]=u[2]^l[8]<<0,u[2]=Math.imul(u[2],N[2]),u[2]=z(u[2],17),u[2]=Math.imul(u[2],N[3]),i[2]=i[2]^u[2];case 8:u[1]=u[1]^l[7]<<24;case 7:u[1]=u[1]^l[6]<<16;case 6:u[1]=u[1]^l[5]<<8;case 5:u[1]=u[1]^l[4]<<0,u[1]=Math.imul(u[1],N[1]),u[1]=z(u[1],16),u[1]=Math.imul(u[1],N[2]),i[1]=i[1]^u[1];case 4:u[0]=u[0]^l[3]<<24;case 3:u[0]=u[0]^l[2]<<16;case 2:u[0]=u[0]^l[1]<<8;case 1:u[0]=u[0]^l[0]<<0,u[0]=Math.imul(u[0],N[0]),u[0]=z(u[0],15),u[0]=Math.imul(u[0],N[1]),i[0]=i[0]^u[0]}})(a,n),(function(r,i){i[0]=i[0]^r.byteLength,i[1]=i[1]^r.byteLength,i[2]=i[2]^r.byteLength,i[3]=i[3]^r.byteLength,i[0]=i[0]+i[1]|0,i[0]=i[0]+i[2]|0,i[0]=i[0]+i[3]|0,i[1]=i[1]+i[0]|0,i[2]=i[2]+i[0]|0,i[3]=i[3]+i[0]|0,i[0]=Xe(i[0]),i[1]=Xe(i[1]),i[2]=Xe(i[2]),i[3]=Xe(i[3]),i[0]=i[0]+i[1]|0,i[0]=i[0]+i[2]|0,i[0]=i[0]+i[3]|0,i[1]=i[1]+i[0]|0,i[2]=i[2]+i[0]|0,i[3]=i[3]+i[0]|0})(a,n);var s=new Uint8Array(n.buffer);return Array.from(s).map((function(r){return r.toString(16).padStart(2,"0")})).join("")}function nr(a,e){return new Promise((function(t){setTimeout((function(){return t(e)}),a)}))}function sr(a,e,t){return Promise.all(a.map((function(n){return Promise.race([n,nr(e,t)])})))}var rr="0.19.1";function ir(){return rr}function is(){return ee(this,void 0,void 0,(function(){var a,e,t,n,s;return te(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),a=tr(),e=Object.keys(a),[4,sr(Object.values(a),(B==null?void 0:B.timeout)||1e3,er)];case 1:return t=r.sent(),n=t.filter((function(i){return i!==void 0})),s={},n.forEach((function(i,o){s[e[o]]=i})),[2,as(s,B.exclude||[],B.include||[],"")];case 2:throw r.sent();case 3:return[2]}}))}))}function as(a,e,t,n){n===void 0&&(n="");for(var s={},r=function(u,l){var d=n+u+".";if(typeof l!="object"||Array.isArray(l)){var f=e.some((function(I){return d.startsWith(I)})),p=t.some((function(I){return d.startsWith(I)}));f&&!p||(s[u]=l)}else{var w=as(l,e,t,d);Object.keys(w).length>0&&(s[u]=w)}},i=0,o=Object.entries(a);i<o.length;i++){var c=o[i];r(c[0],c[1])}return s}function ar(a){return ee(this,void 0,void 0,(function(){var e,t;return te(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,is()];case 1:return e=n.sent(),t=wt(JSON.stringify(e)),Math.random()<.001&&B.logging&&(function(s,r){ee(this,void 0,void 0,(function(){var i,o;return te(this,(function(c){switch(c.label){case 0:if(i="https://logging.thumbmarkjs.com/v1/log",o={thumbmark:s,components:r,version:ir()},sessionStorage.getItem("_tmjs_l"))return[3,4];sessionStorage.setItem("_tmjs_l","1"),c.label=1;case 1:return c.trys.push([1,3,,4]),[4,fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)})];case 2:case 3:return c.sent(),[3,4];case 4:return[2]}}))}))})(t,e),[2,t.toString()];case 2:throw n.sent();case 3:return[2]}}))}))}function or(a){for(var e=0,t=0;t<a.length;++t)e+=Math.abs(a[t]);return e}function os(a,e,t){for(var n=[],s=0;s<a[0].data.length;s++){for(var r=[],i=0;i<a.length;i++)r.push(a[i].data[s]);n.push(lr(r))}var o=new Uint8ClampedArray(n);return new ImageData(o,e,t)}function lr(a){if(a.length===0)return 0;for(var e={},t=0,n=a;t<n.length;t++)e[r=n[t]]=(e[r]||0)+1;var s=a[0];for(var r in e)e[r]>e[s]&&(s=parseInt(r,10));return s}function Be(){if(typeof navigator>"u")return{name:"unknown",version:"unknown"};for(var a=navigator.userAgent,e={Edg:"Edge",OPR:"Opera"},t=0,n=[/(?<name>Edge|Edg)\/(?<version>\d+(?:\.\d+)?)/,/(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\/(?<version>\d+(?:\.\d+)?)/,/(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\/(?<version>\d+(?:\.\d+)?)/,/(?<name>Safari)\/(?<version>\d+(?:\.\d+)?)/,/(?<name>MSIE|Trident|IEMobile).+?(?<version>\d+(?:\.\d+)?)/,/(?<name>[A-Za-z]+)\/(?<version>\d+(?:\.\d+)?)/,/(?<name>SamsungBrowser)\/(?<version>\d+(?:\.\d+)?)/];t<n.length;t++){var s=n[t],r=a.match(s);if(r&&r.groups)return{name:e[r.groups.name]||r.groups.name,version:r.groups.version}}return{name:"unknown",version:"unknown"}}G("audio",(function(){return ee(this,void 0,void 0,(function(){return te(this,(function(a){return[2,new Promise((function(e,t){try{var n=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,5e3,44100),s=n.createBufferSource(),r=n.createOscillator();r.frequency.value=1e3;var i,o=n.createDynamicsCompressor();o.threshold.value=-50,o.knee.value=40,o.ratio.value=12,o.attack.value=0,o.release.value=.2,r.connect(o),o.connect(n.destination),r.start(),n.oncomplete=function(c){i=c.renderedBuffer.getChannelData(0),e({sampleHash:or(i),oscillator:r.type,maxChannels:n.destination.maxChannelCount,channelCountMode:s.channelCountMode})},n.startRendering()}catch(c){console.error("Error creating audio fingerprint:",c),t(c)}}))]}))}))}));var cr=Be().name!=="SamsungBrowser"?1:3,ls=280,cs=20;Be().name!="Firefox"&&G("canvas",(function(){return document.createElement("canvas").getContext("2d"),new Promise((function(a){var e=Array.from({length:cr},(function(){return(function(){var t=document.createElement("canvas"),n=t.getContext("2d");if(!n)return new ImageData(1,1);t.width=ls,t.height=cs;var s=n.createLinearGradient(0,0,t.width,t.height);s.addColorStop(0,"red"),s.addColorStop(.16666666666666666,"orange"),s.addColorStop(.3333333333333333,"yellow"),s.addColorStop(.5,"green"),s.addColorStop(.6666666666666666,"blue"),s.addColorStop(.8333333333333334,"indigo"),s.addColorStop(1,"violet"),n.fillStyle=s,n.fillRect(0,0,t.width,t.height);var r="Random Text WMwmil10Oo";n.font="23.123px Arial",n.fillStyle="black",n.fillText(r,-5,15),n.fillStyle="rgba(0, 0, 255, 0.5)",n.fillText(r,-3.3,17.7),n.beginPath(),n.moveTo(0,0),n.lineTo(2*t.width/7,t.height),n.strokeStyle="white",n.lineWidth=2,n.stroke();var i=n.getImageData(0,0,t.width,t.height);return i})()}));a({commonImageDataHash:wt(os(e,ls,cs).data.toString()).toString()})}))}));var kt,ur=["Arial","Arial Black","Arial Narrow","Arial Rounded MT","Arimo","Archivo","Barlow","Bebas Neue","Bitter","Bookman","Calibri","Cabin","Candara","Century","Century Gothic","Comic Sans MS","Constantia","Courier","Courier New","Crimson Text","DM Mono","DM Sans","DM Serif Display","DM Serif Text","Dosis","Droid Sans","Exo","Fira Code","Fira Sans","Franklin Gothic Medium","Garamond","Geneva","Georgia","Gill Sans","Helvetica","Impact","Inconsolata","Indie Flower","Inter","Josefin Sans","Karla","Lato","Lexend","Lucida Bright","Lucida Console","Lucida Sans Unicode","Manrope","Merriweather","Merriweather Sans","Montserrat","Myriad","Noto Sans","Nunito","Nunito Sans","Open Sans","Optima","Orbitron","Oswald","Pacifico","Palatino","Perpetua","PT Sans","PT Serif","Poppins","Prompt","Public Sans","Quicksand","Rajdhani","Recursive","Roboto","Roboto Condensed","Rockwell","Rubik","Segoe Print","Segoe Script","Segoe UI","Sora","Source Sans Pro","Space Mono","Tahoma","Taviraj","Times","Times New Roman","Titillium Web","Trebuchet MS","Ubuntu","Varela Round","Verdana","Work Sans"],hr=["monospace","sans-serif","serif"];function us(a,e){if(!a)throw new Error("Canvas context not supported");return a.font,a.font="72px ".concat(e),a.measureText("WwMmLli0Oo").width}function dr(){var a,e=document.createElement("canvas"),t=(a=e.getContext("webgl"))!==null&&a!==void 0?a:e.getContext("experimental-webgl");if(t&&"getParameter"in t)try{var n=(t.getParameter(t.VENDOR)||"").toString(),s=(t.getParameter(t.RENDERER)||"").toString(),r={vendor:n,renderer:s,version:(t.getParameter(t.VERSION)||"").toString(),shadingLanguageVersion:(t.getParameter(t.SHADING_LANGUAGE_VERSION)||"").toString()};if(!s.length||!n.length){var i=t.getExtension("WEBGL_debug_renderer_info");if(i){var o=(t.getParameter(i.UNMASKED_VENDOR_WEBGL)||"").toString(),c=(t.getParameter(i.UNMASKED_RENDERER_WEBGL)||"").toString();o&&(r.vendorUnmasked=o),c&&(r.rendererUnmasked=c)}}return r}catch{}return"undefined"}function pr(){var a=new Float32Array(1),e=new Uint8Array(a.buffer);return a[0]=1/0,a[0]=a[0]-a[0],e[3]}function fr(a,e){var t={};return e.forEach((function(n){var s=(function(r){if(r.length===0)return null;var i={};r.forEach((function(u){var l=String(u);i[l]=(i[l]||0)+1}));var o=r[0],c=1;return Object.keys(i).forEach((function(u){i[u]>c&&(o=u,c=i[u])})),o})(a.map((function(r){return n in r?r[n]:void 0})).filter((function(r){return r!==void 0})));s&&(t[n]=s)})),t}function mr(){var a=[],e={"prefers-contrast":["high","more","low","less","forced","no-preference"],"any-hover":["hover","none"],"any-pointer":["none","coarse","fine"],pointer:["none","coarse","fine"],hover:["hover","none"],update:["fast","slow"],"inverted-colors":["inverted","none"],"prefers-reduced-motion":["reduce","no-preference"],"prefers-reduced-transparency":["reduce","no-preference"],scripting:["none","initial-only","enabled"],"forced-colors":["active","none"]};return Object.keys(e).forEach((function(t){e[t].forEach((function(n){matchMedia("(".concat(t,": ").concat(n,")")).matches&&a.push("".concat(t,": ").concat(n))}))})),a}function yr(){if(window.location.protocol==="https:"&&typeof window.ApplePaySession=="function")try{for(var a=window.ApplePaySession.supportsVersion,e=15;e>0;e--)if(a(e))return e}catch{return 0}return 0}Be().name!="Firefox"&&G("fonts",(function(){var a=this;return new Promise((function(e,t){try{(function(n){var s;ee(this,void 0,void 0,(function(){var r,i,o;return te(this,(function(c){switch(c.label){case 0:return document.body?[3,2]:[4,(u=50,new Promise((function(d){return setTimeout(d,u,l)})))];case 1:return c.sent(),[3,0];case 2:if((r=document.createElement("iframe")).setAttribute("frameBorder","0"),(i=r.style).setProperty("position","fixed"),i.setProperty("display","block","important"),i.setProperty("visibility","visible"),i.setProperty("border","0"),i.setProperty("opacity","0"),r.src="about:blank",document.body.appendChild(r),!(o=r.contentDocument||((s=r.contentWindow)===null||s===void 0?void 0:s.document)))throw new Error("Iframe document is not accessible");return n({iframe:o}),setTimeout((function(){document.body.removeChild(r)}),0),[2]}var u,l}))}))})((function(n){var s=n.iframe;return ee(a,void 0,void 0,(function(){var r,i,o,c;return te(this,(function(u){return r=s.createElement("canvas"),i=r.getContext("2d"),o=hr.map((function(l){return us(i,l)})),c={},ur.forEach((function(l){var d=us(i,l);o.includes(d)||(c[l]=d)})),e(c),[2]}))}))}))}catch{t({error:"unsupported"})}}))})),G("hardware",(function(){return new Promise((function(a,e){var t=navigator.deviceMemory!==void 0?navigator.deviceMemory:0,n=window.performance&&window.performance.memory?window.performance.memory:0;a({videocard:dr(),architecture:pr(),deviceMemory:t.toString()||"undefined",jsHeapSizeLimit:n.jsHeapSizeLimit||0})}))})),G("locales",(function(){return new Promise((function(a){a({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))})),G("permissions",(function(){return ee(this,void 0,void 0,(function(){var a;return te(this,(function(e){return kt=(B==null?void 0:B.permissions_to_check)||["accelerometer","accessibility","accessibility-events","ambient-light-sensor","background-fetch","background-sync","bluetooth","camera","clipboard-read","clipboard-write","device-info","display-capture","gyroscope","geolocation","local-fonts","magnetometer","microphone","midi","nfc","notifications","payment-handler","persistent-storage","push","speaker","storage-access","top-level-storage-access","window-management","query"],a=Array.from({length:(B==null?void 0:B.retries)||3},(function(){return(function(){return ee(this,void 0,void 0,(function(){var t,n,s,r,i;return te(this,(function(o){switch(o.label){case 0:t={},n=0,s=kt,o.label=1;case 1:if(!(n<s.length))return[3,6];r=s[n],o.label=2;case 2:return o.trys.push([2,4,,5]),[4,navigator.permissions.query({name:r})];case 3:return i=o.sent(),t[r]=i.state.toString(),[3,5];case 4:return o.sent(),[3,5];case 5:return n++,[3,1];case 6:return[2,t]}}))}))})()})),[2,Promise.all(a).then((function(t){return fr(t,kt)}))]}))}))})),G("plugins",(function(){var a=[];if(navigator.plugins)for(var e=0;e<navigator.plugins.length;e++){var t=navigator.plugins[e];a.push([t.name,t.filename,t.description].join("|"))}return new Promise((function(n){n({plugins:a})}))})),G("screen",(function(){return new Promise((function(a){a({is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:mr()})}))})),G("system",(function(){return new Promise((function(a){var e=Be();a({platform:window.navigator.platform,cookieEnabled:window.navigator.cookieEnabled,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:e.name,version:e.version},applePayVersion:yr()})}))}));var F,gr=Be().name!=="SamsungBrowser"?1:3,y=null;G("webgl",(function(){return ee(this,void 0,void 0,(function(){var a;return te(this,(function(e){typeof document<"u"&&((F=document.createElement("canvas")).width=200,F.height=100,y=F.getContext("webgl"));try{if(!y)throw new Error("WebGL not supported");return a=Array.from({length:gr},(function(){return(function(){try{if(!y)throw new Error("WebGL not supported");var t=`
565
575
  attribute vec2 position;
566
576
  void main() {
567
577
  gl_Position = vec4(position, 0.0, 1.0);
@@ -571,5 +581,5 @@ ${this.stack}`}}class se extends T{constructor(e="The molecule does not contain
571
581
  void main() {
572
582
  gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color
573
583
  }
574
- `,s=y.createShader(y.VERTEX_SHADER),r=y.createShader(y.FRAGMENT_SHADER);if(!s||!r)throw new Error("Failed to create shaders");if(y.shaderSource(s,t),y.shaderSource(r,n),y.compileShader(s),!y.getShaderParameter(s,y.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+y.getShaderInfoLog(s));if(y.compileShader(r),!y.getShaderParameter(r,y.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+y.getShaderInfoLog(r));var i=y.createProgram();if(!i)throw new Error("Failed to create shader program");if(y.attachShader(i,s),y.attachShader(i,r),y.linkProgram(i),!y.getProgramParameter(i,y.LINK_STATUS))throw new Error("Shader program linking failed: "+y.getProgramInfoLog(i));y.useProgram(i);for(var a=137,c=new Float32Array(4*a),u=2*Math.PI/a,l=0;l<a;l++){var d=l*u;c[4*l]=0,c[4*l+1]=0,c[4*l+2]=Math.cos(d)*(Q.width/2),c[4*l+3]=Math.sin(d)*(Q.height/2)}var f=y.createBuffer();y.bindBuffer(y.ARRAY_BUFFER,f),y.bufferData(y.ARRAY_BUFFER,c,y.STATIC_DRAW);var p=y.getAttribLocation(i,"position");y.enableVertexAttribArray(p),y.vertexAttribPointer(p,2,y.FLOAT,!1,0,0),y.viewport(0,0,Q.width,Q.height),y.clearColor(0,0,0,1),y.clear(y.COLOR_BUFFER_BIT),y.drawArrays(y.LINES,0,2*a);var w=new Uint8ClampedArray(Q.width*Q.height*4);return y.readPixels(0,0,Q.width,Q.height,y.RGBA,y.UNSIGNED_BYTE,w),new ImageData(w,Q.width,Q.height)}catch{return new ImageData(1,1)}finally{y&&(y.bindBuffer(y.ARRAY_BUFFER,null),y.useProgram(null),y.viewport(0,0,y.drawingBufferWidth,y.drawingBufferHeight),y.clearColor(0,0,0,0))}})()})),[2,{commonImageHash:gt(is(o,Q.width,Q.height).data.toString()).toString()}]}catch{return[2,{webgl:"unsupported"}]}return[2]}))}))}));var me=function(o,e,t,n){for(var s=(t-e)/n,r=0,i=0;i<n;i++)r+=o(e+(i+.5)*s);return r*s};G("math",(function(){return ee(void 0,void 0,void 0,(function(){return te(this,(function(o){return[2,{acos:Math.acos(.5),asin:me(Math.asin,-1,1,97),atan:me(Math.atan,-1,1,97),cos:me(Math.cos,0,Math.PI,97),cosh:Math.cosh(1.2857142857142858),e:Math.E,largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),log:Math.log(1e3),pi:Math.PI,sin:me(Math.sin,-Math.PI,Math.PI,97),sinh:me(Math.sinh,-1.2857142857142858,.7777777777777778,97),sqrt:Math.sqrt(2),tan:me(Math.tan,0,2*Math.PI,97),tanh:me(Math.tanh,-1.2857142857142858,.7777777777777778,97)}]}))}))}));class yr{constructor({serverUri:e,socket:t=null,encrypt:n=!1}){this.$__client=this.createUrqlClient({serverUri:e,socket:t,encrypt:n}),this.$__authToken="",this.$__pubkey=null,this.$__wallet=null,this.serverUri=e,this.soketi=t,this.cipherLink=!!n,this.$__subscriptionManager=new Map}createUrqlClient({serverUri:e,socket:t,encrypt:n}){const s=[$.cacheExchange,$.fetchExchange];if(t&&t.socketUri){const r=cs.createClient({url:t.socketUri,connectionParams:()=>({authToken:this.$__authToken})});s.push($.subscriptionExchange({forwardSubscription:i=>({subscribe:a=>({unsubscribe:r.subscribe(i,a)})})}))}return $.createClient({url:e,exchanges:s,fetchOptions:()=>({headers:{"X-Auth-Token":this.$__authToken},signal:AbortSignal.timeout(6e4)})})}setAuthData({token:e,pubkey:t,wallet:n}){this.$__authToken=e,this.$__pubkey=t,this.$__wallet=n,this.$__client=this.createUrqlClient({serverUri:this.serverUri,socket:this.soketi,encrypt:!!this.cipherLink})}async query(e){const{query:t,variables:n}=e,s=await this.$__client.query(t,n).toPromise();return this.formatResponse(s)}async mutate(e){const{mutation:t,variables:n}=e,s=await this.$__client.mutation(t,n).toPromise();return this.formatResponse(s)}subscribe(e,t){const{query:n,variables:s,operationName:r}=e,{unsubscribe:i}=kt.pipe(this.$__client.subscription(n,s),kt.map(a=>{t(this.formatResponse(a))})).subscribe(()=>{});return this.$__subscriptionManager.set(r,{unsubscribe:i}),{unsubscribe:()=>this.unsubscribe(r)}}formatResponse(e){return{data:e.data,errors:e.error?[e.error]:void 0}}socketDisconnect(){this.soketi&&this.unsubscribeAll()}unsubscribe(e){const t=this.$__subscriptionManager.get(e);t&&(t.unsubscribe(),this.$__subscriptionManager.delete(e))}unsubscribeAll(){this.$__subscriptionManager.forEach((e,t)=>{this.unsubscribe(t)})}unsubscribeFromChannel(e){this.unsubscribe(e)}setEncryption(e=!1){this.cipherLink=e,this.$__client=this.createUrqlClient({serverUri:this.serverUri,socket:this.soketi,encrypt:e})}getAuthToken(){return this.$__authToken}getPubKey(){return this.$__pubkey}getWallet(){return this.$__wallet}getServerUri(){return this.serverUri}getSocketUri(){return this.soketi?this.soketi.socketUri:null}getUri(){return this.serverUri}setUri(e){this.serverUri=e,this.$__client=this.createUrqlClient({serverUri:e,socket:this.soketi,encrypt:!!this.cipherLink})}setSocketUri({socketUri:e,appKey:t}){this.soketi={socketUri:e,appKey:t},this.$__client=this.createUrqlClient({serverUri:this.serverUri,socket:this.soketi,encrypt:!!this.cipherLink})}}class gr{constructor({uri:e,cellSlug:t=null,client:n=null,socket:s=null,serverSdkVersion:r=3,logging:i=!1}){this.initialize({uri:e,cellSlug:t,socket:s,client:n,serverSdkVersion:r,logging:i})}initialize({uri:e,cellSlug:t=null,socket:n=null,client:s=null,serverSdkVersion:r=3,logging:i=!1}){this.reset(),this.$__logging=i,this.$__authTokenObjects={},this.$__authInProcess=!1,this.abortControllers=new Map,this.setUri(e),t&&this.setCellSlug(t);for(const a in this.$__uris){const c=this.$__uris[a];this.$__authTokenObjects[c]=null}this.log("info",`KnishIOClient::initialize() - Initializing new Knish.IO client session for SDK version ${r}...`),this.$__client=s||new yr({socket:{socketUri:null,appKey:"knishio",...n||{}},serverUri:this.getRandomUri()}),this.$__serverSdkVersion=r}getRandomUri(){const e=Math.floor(Math.random()*this.$__uris.length);return this.$__uris[e]}switchEncryption(e){return this.$__encrypt===e?!1:(this.log("info",`KnishIOClient::switchEncryption() - Forcing encryption ${e?"on":"off"} to match node...`),this.$__encrypt=e,this.$__client.setEncryption(e),!0)}deinitialize(){this.log("info","KnishIOClient::deinitialize() - Clearing the Knish.IO client session..."),this.reset()}subscribe(){if(!this.client().getSocketUri())throw new Y("KnishIOClient::subscribe() - Socket client not initialized!");return this.client()}getServerSdkVersion(){return this.$__serverSdkVersion}reset(){this.$__secret="",this.$__bundle="",this.remainderWallet=null}getCellSlug(){return this.$__cellSlug||null}setCellSlug(e){this.$__cellSlug=e}setUri(e){if(this.$__uris=typeof e=="object"?e:[e],this.$__client){const t=this.getRandomUri();this.$__client.setUri(t)}}getUri(){return this.$__client.getUri()}client(){if(!this.$__authInProcess){const e=this.getRandomUri();this.$__client.setUri(e);const t=this.$__authTokenObjects[e];t?this.$__client.setAuthData(t.getAuthData()):this.requestAuthToken({secret:this.$__secret,cellSlug:this.$__cellSlug,encrypt:this.$__encrypt}).catch(n=>{this.log("warn",`KnishIOClient::client() - Background authorization failed: ${n.message}`)})}return this.$__client}hasSecret(){return!!this.$__secret}setSecret(e){this.$__secret=e,this.$__bundle=this.hashSecret(e,"setSecret")}hashSecret(e,t=null){return this.log("info",`KnishIOClient::hashSecret(${t?`source: ${t}`:""}) - Computing wallet bundle from secret...`),ae(e)}getSecret(){if(!this.hasSecret())throw new Re("KnishIOClient::getSecret() - Unable to find a stored secret! Have you set a secret?");return this.$__secret}hasBundle(){return!!this.$__bundle}getBundle(){if(!this.hasBundle())throw new Re("KnishIOClient::getBundle() - Unable to find a stored bundle! Have you set a secret?");return this.$__bundle}getFingerprint(){return rr()}getFingerprintData(){return ss()}async getSourceWallet(){let e=(await this.queryContinuId({bundle:this.getBundle()})).payload();return e?e.key=S.generateKey({secret:this.getSecret(),token:e.token,position:e.position}):e=new S({secret:this.getSecret()}),e}getRemainderWallet(){return this.remainderWallet}async createMolecule({secret:e=null,bundle:t=null,sourceWallet:n=null,remainderWallet:s=null}){this.log("info","KnishIOClient::createMolecule() - Creating a new molecule..."),e=e||this.getSecret(),t=t||this.getBundle();let r=null;if(n&&n.token!=="USER")if(this.lastMoleculeQuery&&this.getRemainderWallet()&&this.getRemainderWallet().token==="USER"&&this.lastMoleculeQuery.response()&&this.lastMoleculeQuery.response().success())r=this.getRemainderWallet().position;else{const i=await this.getSourceWallet();r=i?i.position:null}return!n&&this.lastMoleculeQuery&&this.getRemainderWallet().token==="USER"&&this.lastMoleculeQuery.response()&&this.lastMoleculeQuery.response().success()&&(n=this.getRemainderWallet()),n===null&&(n=await this.getSourceWallet()),this.remainderWallet=s||S.create({secret:e,bundle:t,token:"USER",batchId:n.batchId,characters:n.characters}),new V({secret:e,sourceWallet:n,remainderWallet:this.getRemainderWallet(),cellSlug:this.getCellSlug(),version:this.getServerSdkVersion(),continuIdPosition:r})}createQuery(e){return new e(this.client(),this)}createSubscribe(e){return new e(this.subscribe())}async createMoleculeMutation({mutationClass:e,molecule:t=null}){this.log("info",`KnishIOClient::createMoleculeQuery() - Creating a new ${e.name} query...`);const n=t||await this.createMolecule({}),s=new e(this.client(),this,n);if(!(s instanceof q))throw new Y(`${this.constructor.name}::createMoleculeMutation() - This method only accepts MutationProposeMolecule!`);return this.lastMoleculeQuery=s,s}async executeQuery(e,t=null){this.$__authToken&&this.$__authToken.isExpired()&&!this.$__authInProcess&&(this.log("info","KnishIOClient::executeQuery() - Access token is expired. Getting new one..."),await this.requestAuthToken({secret:this.$__secret,cellSlug:this.$__cellSlug,encrypt:this.$__encrypt}));const n=new AbortController,s=JSON.stringify({query:e.$__query,variables:t});this.abortControllers.set(s,n);try{const r=await e.execute({variables:t,context:{fetchOptions:{signal:n.signal}}});return this.abortControllers.delete(s),r}catch(r){if(r.name==="AbortError")this.log("warn","Query was cancelled");else throw r}}cancelQuery(e,t=null){const n=JSON.stringify({query:e.$__query,variables:t}),s=this.abortControllers.get(n);s&&(s.abort(),this.abortControllers.delete(n))}cancelAllQueries(){for(const e of this.abortControllers.values())e.abort();this.abortControllers.clear()}async queryBalance({token:e,bundle:t=null,type:n="regular"}){const s=this.createQuery(pn);return this.executeQuery(s,{bundleHash:t||this.getBundle(),token:e,type:n})}async querySourceWallet({token:e,amount:t,type:n="regular"}){const s=(await this.queryBalance({token:e,type:n})).payload();if(s===null||fe.cmp(s.balance,t)<0)throw new Z;if(!s.position||!s.address)throw new Z("Source wallet can not be a shadow wallet.");return s}async subscribeCreateMolecule({bundle:e,closure:t}){return await this.createSubscribe(zs).execute({variables:{bundle:e||this.getBundle()},closure:t})}subscribeWalletStatus({bundle:e,token:t,closure:n}){if(!t)throw new Y(`${this.constructor.name}::subscribeWalletStatus() - Token parameter is required!`);return this.createSubscribe(Js).execute({variables:{bundle:e||this.getBundle(),token:t},closure:n})}subscribeActiveWallet({bundle:e,closure:t}){return this.createSubscribe(Gs).execute({variables:{bundle:e||this.getBundle()},closure:t})}subscribeActiveSession({metaType:e,metaId:t,closure:n}){return this.createSubscribe(Xs).execute({variables:{metaType:e,metaId:t},closure:n})}unsubscribe(e){this.subscribe().unsubscribe(e)}unsubscribeAll(){this.subscribe().unsubscribeAll()}queryMeta({metaType:e,metaId:t=null,key:n=null,value:s=null,latest:r=!0,fields:i=null,filter:a=null,queryArgs:c=null,count:u=null,countBy:l=null,throughAtom:d=!0,throughMolecule:f=!1,values:p=null,keys:w=null,atomValues:I=null}){this.log("info",`KnishIOClient::queryMeta() - Querying metaType: ${e}, metaId: ${t}...`);let R,m;return f?(R=this.createQuery(yt),m=yt.createVariables({metaType:e,metaId:t,key:n,value:s,latest:r,filter:a,queryArgs:c,countBy:l,values:p,keys:w,atomValues:I,cellSlug:this.getCellSlug()})):d?(R=this.createQuery(mt),m=mt.createVariables({metaType:e,metaId:t,key:n,value:s,latest:r,filter:a,queryArgs:c,countBy:l,values:p,keys:w,atomValues:I,cellSlug:this.getCellSlug()})):(R=this.createQuery(ht),m=ht.createVariables({metaType:e,metaId:t,key:n,value:s,latest:r,filter:a,queryArgs:c,count:u,countBy:l,cellSlug:this.getCellSlug()})),this.executeQuery(R,m)}async queryMetaVerified(e){const t=await this.queryMeta(e),n=t.payload();return n&&(n.integrity=t.verifyIntegrity()),t}async queryBatch({batchId:e}){this.log("info",`KnishIOClient::queryBatch() - Querying cascading meta instances for batchId: ${e}...`);const t=this.createQuery(Se);return await this.executeQuery(t,{batchId:e})}async queryBatchHistory({batchId:e}){this.log("info",`KnishIOClient::queryBatchHistory() - Querying cascading meta instances for batchId: ${e}...`);const t=this.createQuery(mn);return await this.executeQuery(t,{batchId:e})}async queryAtom({molecularHashes:e,molecularHash:t,bundleHashes:n,bundleHash:s,positions:r,position:i,walletAddresses:a,walletAddress:c,isotopes:u,isotope:l,tokenSlugs:d,tokenSlug:f,cellSlugs:p,cellSlug:w,batchIds:I,batchId:R,values:m,value:b,metaTypes:k,metaType:O,metaIds:_,metaId:v,indexes:M,index:x,filter:A,latest:F,queryArgs:U={limit:15,offset:1}}){this.log("info","KnishIOClient::queryAtom() - Querying atom instances");const _e=this.createQuery(ft);return await this.executeQuery(_e,ft.createVariables({molecularHashes:e,molecularHash:t,bundleHashes:n,bundleHash:s,positions:r,position:i,walletAddresses:a,walletAddress:c,isotopes:u,isotope:l,tokenSlugs:d,tokenSlug:f,cellSlugs:p,cellSlug:w,batchIds:I,batchId:R,values:m,value:b,metaTypes:k,metaType:O,metaIds:_,metaId:v,indexes:M,index:x,filter:A,latest:F,queryArgs:U}))}async createWallet({token:e}){const t=new S({secret:this.getSecret(),token:e}),n=await this.createMoleculeMutation({mutationClass:Un});return n.fillMolecule(t),await this.executeQuery(n)}async queryActiveSession({bundleHash:e,metaType:t,metaId:n}){const s=this.createQuery(Ln);return await this.executeQuery(s,{bundleHash:e,metaType:t,metaId:n})}async queryUserActivity({bundleHash:e,metaType:t,metaId:n,ipAddress:s,browser:r,osCpu:i,resolution:a,timeZone:c,countBy:u,interval:l}){const d=this.createQuery(Dn);return await this.executeQuery(d,{bundleHash:e,metaType:t,metaId:n,ipAddress:s,browser:r,osCpu:i,resolution:a,timeZone:c,countBy:u,interval:l})}async activeSession({bundle:e,metaType:t,metaId:n,ipAddress:s,browser:r,osCpu:i,resolution:a,timeZone:c,json:u={}}){const l=this.createQuery(Fn);return await this.executeQuery(l,{bundleHash:e,metaType:t,metaId:n,ipAddress:s,browser:r,osCpu:i,resolution:a,timeZone:c,json:JSON.stringify(u)})}async createToken({token:e,amount:t=null,meta:n=null,batchId:s=null,units:r=[]}){const i=C.get(n||{},"fungibility");if(i==="stackable"&&(n.batchId=s||le({})),["nonfungible","stackable"].includes(i)&&r.length>0){if(C.get(n||{},"decimals")>0)throw new Kn;if(t>0)throw new qe;t=r.length,n.splittable=1,n.decimals=0,n.tokenUnits=JSON.stringify(r)}const a=new S({secret:this.getSecret(),bundle:this.getBundle(),token:e,batchId:s}),c=await this.createMoleculeMutation({mutationClass:wn});return c.fillMolecule({recipientWallet:a,amount:t,meta:n||{}}),await this.executeQuery(c)}async createRule({metaType:e,metaId:t,rule:n,policy:s={}}){const r=await this.createMoleculeMutation({mutationClass:Yn,molecule:await this.createMolecule({secret:this.getSecret()})});return r.fillMolecule({metaType:e,metaId:t,rule:n,policy:s}),await this.executeQuery(r)}async createMeta({metaType:e,metaId:t,meta:n=null,policy:s={}}){const r=await this.createMoleculeMutation({mutationClass:Cn,molecule:await this.createMolecule({secret:this.getSecret()})}),i=n||{};return r.fillMolecule({metaType:e,metaId:t,meta:i,policy:s}),await this.executeQuery(r)}async registerPeer({host:e}){const t=await this.createMoleculeMutation({mutationClass:En,molecule:await this.createMolecule({secret:this.getSecret()})});return t.fillMolecule({host:e}),await this.executeQuery(t)}async appendRequest({metaType:e,metaId:t,action:n,meta:s={}}){const r=await this.createMoleculeMutation({mutationClass:On,molecule:await this.createMolecule({secret:this.getSecret()})});return r.fillMolecule({metaType:e,metaId:t,action:n,meta:s}),await this.executeQuery(r)}async createIdentifier({type:e,contact:t,code:n}){const s=await this.createMoleculeMutation({mutationClass:vn});return s.fillMolecule({type:e,contact:t,code:n}),await this.executeQuery(s)}async linkIdentifier({type:e,contact:t}){const n=this.createQuery(qn);return await this.executeQuery(n,{bundle:this.getBundle(),type:e,content:t})}async createPolicy({metaType:e,metaId:t,policy:n={}}){const s=await this.createMolecule({});s.addPolicyAtom({metaType:e,metaId:t,meta:{},policy:n}),s.addContinuIdAtom(),s.sign({bundle:this.getBundle()}),s.check();const r=await this.createMoleculeMutation({mutationClass:q,molecule:s});return await this.executeQuery(r)}async queryPolicy({metaType:e,metaId:t}){const n=this.createQuery(Gn);return await this.executeQuery(n,{metaType:e,metaId:t})}queryWallets({bundle:e=null,token:t=null,unspent:n=!0}){this.log("info",`KnishIOClient::queryWallets() - Querying wallets${e?` for ${e}`:""}...`);const s=this.createQuery(hn);return this.executeQuery(s,{bundleHash:e||this.getBundle(),token:t,unspent:n}).then(r=>r.payload())}queryBundle({bundle:e=null,fields:t=null,raw:n=!1}){this.log("info",`KnishIOClient::queryBundle() - Querying wallet bundle metadata${e?` for ${e}`:""}...`),e||(e=this.getBundle()),typeof e=="string"&&(e=[e]);const s=this.createQuery(un);return this.executeQuery(s,{bundleHashes:e}).then(r=>n?r:r.payload())}async queryContinuId({bundle:e}){const t=this.createQuery(ln);return this.executeQuery(t,{bundle:e})}async requestTokens({token:e,to:t,amount:n=null,units:s=[],meta:r=null,batchId:i=null}){let a,c;r=r||{};const u=this.createQuery(Vn),l=await this.executeQuery(u,{slug:e}),d=C.get(l.data(),"0.fungibility")==="stackable";if(!d&&i!==null)throw new Ce("Expected Batch ID = null for non-stackable tokens.");if(d&&i===null&&(i=le({})),s.length>0){if(n>0)throw new qe;n=s.length,r.tokenUnits=JSON.stringify(s)}t?(Object.prototype.toString.call(t)==="[object String]"&&(S.isBundleHash(t)?(a="walletBundle",c=t):t=S.create({secret:t,token:e})),t instanceof S&&(a="wallet",r.position=t.position,r.bundle=t.bundle,c=t.address)):(a="walletBundle",c=this.getBundle());const f=await this.createMoleculeMutation({mutationClass:Sn});return f.fillMolecule({token:e,amount:n,metaType:a,metaId:c,meta:r,batchId:i}),await this.executeQuery(f)}async claimShadowWallet({token:e,batchId:t=null,molecule:n=null}){const s=await this.createMoleculeMutation({mutationClass:Mn,molecule:n});return s.fillMolecule({token:e,batchId:t}),await this.executeQuery(s)}async claimShadowWallets({token:e}){const t=await this.queryWallets({token:e});if(!t||!Array.isArray(t))throw new dt;t.forEach(s=>{if(!s.isShadow())throw new dt});const n=[];for(const s of t)n.push(await this.claimShadowWallet({token:e,batchId:s.batchId}));return n}async transferToken({bundleHash:e,token:t,amount:n=null,units:s=[],batchId:r=null,sourceWallet:i=null}){if(s.length>0){if(n>0)throw new qe;n=s.length}if(i===null&&(i=await this.querySourceWallet({token:t,amount:n})),i===null||fe.cmp(i.balance,n)<0)throw new Z;const a=S.create({bundle:e,token:t});r!==null?a.batchId=r:a.initBatchId({sourceWallet:i});const c=i.createRemainder(this.getSecret());i.splitUnits(s,c,a);const u=await this.createMolecule({sourceWallet:i,remainderWallet:c}),l=await this.createMoleculeMutation({mutationClass:An,molecule:u});return l.fillMolecule({recipientWallet:a,amount:n}),await this.executeQuery(l)}async depositBufferToken({tokenSlug:e,amount:t,tradeRates:n,sourceWallet:s=null}){s===null&&(s=await this.querySourceWallet({token:e,amount:t}));const r=s.createRemainder(this.getSecret()),i=await this.createMolecule({sourceWallet:s,remainderWallet:r}),a=await this.createMoleculeMutation({mutationClass:es,molecule:i});return a.fillMolecule({amount:t,tradeRates:n}),await this.executeQuery(a)}async withdrawBufferToken({tokenSlug:e,amount:t,sourceWallet:n=null,signingWallet:s=null}){n===null&&(n=await this.querySourceWallet({token:e,amount:t,type:"buffer"}));const r=n,i=await this.createMolecule({sourceWallet:n,remainderWallet:r}),a=await this.createMoleculeMutation({mutationClass:ts,molecule:i}),c={};return c[this.getBundle()]=t,a.fillMolecule({recipients:c,signingWallet:s}),await this.executeQuery(a)}async burnTokens({token:e,amount:t=null,units:n=[],sourceWallet:s=null}){s===null&&(s=await this.querySourceWallet({token:e,amount:t}));const r=s.createRemainder(this.getSecret());if(n.length>0){if(t>0)throw new qe;t=n.length,s.splitUnits(n,r)}const i=await this.createMolecule({sourceWallet:s,remainderWallet:r});i.burnToken({amount:t}),i.sign({bundle:this.getBundle()}),i.check(s);const a=await this.createMoleculeMutation({mutationClass:q,molecule:i});return this.executeQuery(a)}async replenishToken({token:e,amount:t=null,units:n=[],sourceWallet:s=null}){if(s===null&&(s=(await this.queryBalance({token:e})).payload()),!s)throw new Z("Source wallet is missing or invalid.");const r=s.createRemainder(this.getSecret()),i=await this.createMolecule({sourceWallet:s,remainderWallet:r});i.replenishToken({amount:t,units:n}),i.sign({bundle:this.getBundle()}),i.check();const a=await this.createMoleculeMutation({mutationClass:q,molecule:i});return this.executeQuery(a)}async fuseToken({bundleHash:e,tokenSlug:t,newTokenUnit:n,fusedTokenUnitIds:s,sourceWallet:r=null}){if(r===null&&(r=(await this.queryBalance({token:t})).payload()),r===null)throw new Z("Source wallet is missing or invalid.");if(!r.tokenUnits||!r.tokenUnits.length)throw new Z("Source wallet does not have token units.");if(!s.length)throw new Z("Fused token unit list is empty.");const i=[];r.tokenUnits.forEach(d=>{i.push(d.id)}),s.forEach(d=>{if(!i.includes(d))throw new Z(`Fused token unit ID = ${d} does not found in the source wallet.`)});const a=S.create({bundle:e,token:t});a.initBatchId({sourceWallet:r});const c=r.createRemainder(this.getSecret());r.splitUnits(s,c),typeof n=="string"&&(n=new ce(n,n,{})),n.metas.fusedTokenUnits=r.getTokenUnitsData(),a.tokenUnits=[n];const u=await this.createMolecule({sourceWallet:r,remainderWallet:c});u.fuseToken(r.tokenUnits,a),u.sign({bundle:this.getBundle()}),u.check();const l=await this.createMoleculeMutation({mutationClass:q,molecule:u});return this.executeQuery(l)}async requestGuestAuthToken({cellSlug:e,encrypt:t}){this.setCellSlug(e);const n=new S({secret:Ne(await this.getFingerprint()),token:"AUTH"}),s=await this.createQuery(Pn),r={cellSlug:e,pubkey:n.pubkey,encrypt:t},i=await s.execute({variables:r});if(i.success()){const a=ke.create({token:i.token(),expiresAt:i.expiresAt(),pubkey:i.pubKey(),encrypt:i.encrypt()},n);this.setAuthToken(a)}else throw new pt(`KnishIOClient::requestGuestAuthToken() - Authorization attempt rejected by ledger. Reason: ${i.reason()}`);return i}async requestProfileAuthToken({secret:e,encrypt:t}){this.setSecret(e);const n=new S({secret:e,token:"AUTH"}),s=await this.createMolecule({secret:e,sourceWallet:n}),r=await this.createMoleculeMutation({mutationClass:gn,molecule:s});r.fillMolecule({meta:{encrypt:t?"true":"false"}});const i=await r.execute({});if(i.success()){const a=ke.create({token:i.token(),expiresAt:i.expiresAt(),pubkey:i.pubKey(),encrypt:i.encrypt()},n);this.setAuthToken(a)}else throw new pt(`KnishIOClient::requestProfileAuthToken() - Authorization attempt rejected by ledger. Reason: ${i.reason()}`);return i}async requestAuthToken({secret:e=null,seed:t=null,cellSlug:n=null,encrypt:s=!1}){if(this.$__serverSdkVersion<3)return this.log("warn","KnishIOClient::authorize() - Server SDK version does not require an authorization..."),null;e===null&&t&&(e=Ne(t)),n&&this.setCellSlug(n),this.$__authInProcess=!0;let r;return e?r=await this.requestProfileAuthToken({secret:e,encrypt:s}):r=await this.requestGuestAuthToken({cellSlug:n,encrypt:s}),this.log("info",`KnishIOClient::authorize() - Successfully retrieved auth token ${this.$__authToken.getToken()}...`),this.switchEncryption(s),this.$__authInProcess=!1,r}setAuthToken(e){if(!e){this.log("info","KnishIOClient::setAuthToken() - authToken object is empty.");return}this.$__authTokenObjects[this.getUri()]=e,this.client().setAuthData(e.getAuthData()),this.$__authToken=e}getAuthToken(){return this.$__authToken}log(e,t){if(this.$__logging)switch(e){case"info":console.info(t);break;case"warn":console.warn(t);break;case"error":console.error(t);break;default:console.log(t)}}}class br extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.AccessToken"})}reason(){return"Invalid response from server"}success(){return this.payload()!==null}payload(){return this.data()}payloadKey(e){if(!C.has(this.payload(),e))throw new ne(`ResponseAuthorizationGuest::payloadKey() - '${e}' key is not found in the payload!`);return C.get(this.payload(),e)}token(){return this.payloadKey("token")}time(){return this.payloadKey("time")}}return h.Atom=g,h.AtomIndexException=ge,h.AtomMeta=H,h.AtomsMissingException=se,h.AuthToken=ke,h.AuthorizationRejectedException=pt,h.BalanceInsufficientException=pe,h.BatchIdException=Ce,h.CheckMolecule=we,h.CodeException=Y,h.Decimal=fe,h.Dot=C,h.InvalidResponseException=ne,h.KnishIOClient=gr,h.Meta=ie,h.MetaMissingException=P,h.MolecularHashMismatchException=tn,h.MolecularHashMissingException=nn,h.Molecule=V,h.Mutation=We,h.MutationActiveSession=Fn,h.MutationAppendRequest=On,h.MutationClaimShadowWallet=Mn,h.MutationCreateIdentifier=vn,h.MutationCreateMeta=Cn,h.MutationCreateRule=Yn,h.MutationCreateToken=wn,h.MutationCreateWallet=Un,h.MutationDepositBufferToken=es,h.MutationLinkIdentifier=qn,h.MutationPeering=En,h.MutationProposeMolecule=q,h.MutationRequestAuthorization=gn,h.MutationRequestAuthorizationGuest=Pn,h.MutationRequestTokens=Sn,h.MutationTransferTokens=An,h.MutationWithdrawBufferToken=ts,h.NegativeAmountException=ze,h.PolicyInvalidException=it,h.PolicyMeta=Pe,h.Query=K,h.QueryActiveSession=Ln,h.QueryAtom=ft,h.QueryBalance=pn,h.QueryBatch=Se,h.QueryBatchHistory=mn,h.QueryContinuId=ln,h.QueryMetaType=ht,h.QueryMetaTypeViaAtom=mt,h.QueryMetaTypeViaMolecule=yt,h.QueryPolicy=Gn,h.QueryToken=Vn,h.QueryUserActivity=Dn,h.QueryWalletBundle=un,h.QueryWalletList=hn,h.Response=E,h.ResponseActiveSession=Nn,h.ResponseAppendRequest=Rn,h.ResponseAtom=zn,h.ResponseAuthorizationGuest=br,h.ResponseBalance=dn,h.ResponseClaimShadowWallet=In,h.ResponseContinuId=an,h.ResponseCreateIdentifier=$n,h.ResponseCreateMeta=Tn,h.ResponseCreateRule=Zn,h.ResponseCreateToken=bn,h.ResponseCreateWallet=Bn,h.ResponseLinkIdentifier=Wn,h.ResponseMetaType=fn,h.ResponseMetaTypeViaAtom=Xn,h.ResponseMetaTypeViaMolecule=Ge,h.ResponsePeering=xn,h.ResponsePolicy=Jn,h.ResponseProposeMolecule=j,h.ResponseQueryActiveSession=Qn,h.ResponseQueryUserActivity=jn,h.ResponseRequestAuthorization=yn,h.ResponseRequestAuthorizationGuest=Hn,h.ResponseRequestTokens=kn,h.ResponseTransferTokens=_n,h.ResponseWalletBundle=cn,h.ResponseWalletList=Oe,h.SignatureMalformedException=ot,h.SignatureMismatchException=sn,h.StackableUnitAmountException=qe,h.StackableUnitDecimalsException=Kn,h.TokenUnit=ce,h.TransferBalanceException=Z,h.TransferMalformedException=be,h.TransferMismatchedException=at,h.TransferRemainderException=lt,h.TransferToSelfException=rn,h.TransferUnbalancedException=Te,h.UnauthenticatedException=Re,h.Wallet=S,h.WalletShadowException=dt,h.WrongTokenTypeException=re,h.base64ToHex=It,h.bufferToHexString=At,h.charsetBaseConvert=_t,h.chunkArray=Tt,h.chunkSubstr=Ae,h.deepCloning=Ct,h.diff=xt,h.generateBatchId=le,h.generateBundleHash=ae,h.generateSecret=Ne,h.hexStringToBuffer=$t,h.hexToBase64=vt,h.intersect=ye,h.isHex=He,h.isNumeric=Mt,h.randomString=Ue,h.shake256=Ye,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"}),h})({},jsSHA,UrqlCore,GraphQLWS,wonka);
584
+ `,s=y.createShader(y.VERTEX_SHADER),r=y.createShader(y.FRAGMENT_SHADER);if(!s||!r)throw new Error("Failed to create shaders");if(y.shaderSource(s,t),y.shaderSource(r,n),y.compileShader(s),!y.getShaderParameter(s,y.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+y.getShaderInfoLog(s));if(y.compileShader(r),!y.getShaderParameter(r,y.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+y.getShaderInfoLog(r));var i=y.createProgram();if(!i)throw new Error("Failed to create shader program");if(y.attachShader(i,s),y.attachShader(i,r),y.linkProgram(i),!y.getProgramParameter(i,y.LINK_STATUS))throw new Error("Shader program linking failed: "+y.getProgramInfoLog(i));y.useProgram(i);for(var o=137,c=new Float32Array(4*o),u=2*Math.PI/o,l=0;l<o;l++){var d=l*u;c[4*l]=0,c[4*l+1]=0,c[4*l+2]=Math.cos(d)*(F.width/2),c[4*l+3]=Math.sin(d)*(F.height/2)}var f=y.createBuffer();y.bindBuffer(y.ARRAY_BUFFER,f),y.bufferData(y.ARRAY_BUFFER,c,y.STATIC_DRAW);var p=y.getAttribLocation(i,"position");y.enableVertexAttribArray(p),y.vertexAttribPointer(p,2,y.FLOAT,!1,0,0),y.viewport(0,0,F.width,F.height),y.clearColor(0,0,0,1),y.clear(y.COLOR_BUFFER_BIT),y.drawArrays(y.LINES,0,2*o);var w=new Uint8ClampedArray(F.width*F.height*4);return y.readPixels(0,0,F.width,F.height,y.RGBA,y.UNSIGNED_BYTE,w),new ImageData(w,F.width,F.height)}catch{return new ImageData(1,1)}finally{y&&(y.bindBuffer(y.ARRAY_BUFFER,null),y.useProgram(null),y.viewport(0,0,y.drawingBufferWidth,y.drawingBufferHeight),y.clearColor(0,0,0,0))}})()})),[2,{commonImageHash:wt(os(a,F.width,F.height).data.toString()).toString()}]}catch{return[2,{webgl:"unsupported"}]}return[2]}))}))}));var me=function(a,e,t,n){for(var s=(t-e)/n,r=0,i=0;i<n;i++)r+=a(e+(i+.5)*s);return r*s};G("math",(function(){return ee(void 0,void 0,void 0,(function(){return te(this,(function(a){return[2,{acos:Math.acos(.5),asin:me(Math.asin,-1,1,97),atan:me(Math.atan,-1,1,97),cos:me(Math.cos,0,Math.PI,97),cosh:Math.cosh(1.2857142857142858),e:Math.E,largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),log:Math.log(1e3),pi:Math.PI,sin:me(Math.sin,-Math.PI,Math.PI,97),sinh:me(Math.sinh,-1.2857142857142858,.7777777777777778,97),sqrt:Math.sqrt(2),tan:me(Math.tan,0,2*Math.PI,97),tanh:me(Math.tanh,-1.2857142857142858,.7777777777777778,97)}]}))}))}));class br{constructor({serverUri:e,socket:t=null,encrypt:n=!1}){this.$__client=this.createUrqlClient({serverUri:e,socket:t,encrypt:n}),this.$__authToken="",this.$__pubkey=null,this.$__wallet=null,this.serverUri=e,this.soketi=t,this.cipherLink=!!n,this.$__subscriptionManager=new Map}createUrqlClient({serverUri:e,socket:t,encrypt:n}){const s=[A.cacheExchange,A.fetchExchange];if(t&&t.socketUri){const r=hs.createClient({url:t.socketUri,connectionParams:()=>({authToken:this.$__authToken})});s.push(A.subscriptionExchange({forwardSubscription:i=>({subscribe:o=>({unsubscribe:r.subscribe(i,o)})})}))}return A.createClient({url:e,exchanges:s,fetchOptions:()=>({headers:{"X-Auth-Token":this.$__authToken},signal:AbortSignal.timeout(6e4)})})}setAuthData({token:e,pubkey:t,wallet:n}){this.$__authToken=e,this.$__pubkey=t,this.$__wallet=n,this.$__client=this.createUrqlClient({serverUri:this.serverUri,socket:this.soketi,encrypt:!!this.cipherLink})}async query(e){const{query:t,variables:n}=e,s=await this.$__client.query(t,n).toPromise();return this.formatResponse(s)}async mutate(e){const{mutation:t,variables:n}=e,s=await this.$__client.mutation(t,n).toPromise();return this.formatResponse(s)}subscribe(e,t){const{query:n,variables:s,operationName:r}=e,i=Ye.pipe(this.$__client.subscription(n,s),Ye.map(o=>{t(this.formatResponse(o))}),Ye.subscribe(()=>{}));return this.$__subscriptionManager.set(r,i),{unsubscribe:()=>this.unsubscribe(r)}}formatResponse(e){return{data:e.data,errors:e.error?[e.error]:void 0}}socketDisconnect(){this.soketi&&this.unsubscribeAll()}unsubscribe(e){const t=this.$__subscriptionManager.get(e);t&&(t.unsubscribe(),this.$__subscriptionManager.delete(e))}unsubscribeAll(){this.$__subscriptionManager.forEach((e,t)=>{this.unsubscribe(t)})}unsubscribeFromChannel(e){this.unsubscribe(e)}setEncryption(e=!1){this.cipherLink=e,this.$__client=this.createUrqlClient({serverUri:this.serverUri,socket:this.soketi,encrypt:e})}getAuthToken(){return this.$__authToken}getPubKey(){return this.$__pubkey}getWallet(){return this.$__wallet}getServerUri(){return this.serverUri}getSocketUri(){return this.soketi?this.soketi.socketUri:null}getUri(){return this.serverUri}setUri(e){this.serverUri=e,this.$__client=this.createUrqlClient({serverUri:e,socket:this.soketi,encrypt:!!this.cipherLink})}setSocketUri({socketUri:e,appKey:t}){this.soketi={socketUri:e,appKey:t},this.$__client=this.createUrqlClient({serverUri:this.serverUri,socket:this.soketi,encrypt:!!this.cipherLink})}}class wr{constructor({uri:e,cellSlug:t=null,client:n=null,socket:s=null,serverSdkVersion:r=3,logging:i=!1}){this.initialize({uri:e,cellSlug:t,socket:s,client:n,serverSdkVersion:r,logging:i})}initialize({uri:e,cellSlug:t=null,socket:n=null,client:s=null,serverSdkVersion:r=3,logging:i=!1}){this.reset(),this.$__logging=i,this.$__authTokenObjects={},this.$__authInProcess=!1,this.abortControllers=new Map,this.setUri(e),t&&this.setCellSlug(t);for(const o in this.$__uris){const c=this.$__uris[o];this.$__authTokenObjects[c]=null}this.log("info",`KnishIOClient::initialize() - Initializing new Knish.IO client session for SDK version ${r}...`),this.$__client=s||new br({socket:{socketUri:null,appKey:"knishio",...n||{}},serverUri:this.getRandomUri()}),this.$__serverSdkVersion=r}getRandomUri(){const e=Math.floor(Math.random()*this.$__uris.length);return this.$__uris[e]}switchEncryption(e){return this.$__encrypt===e?!1:(this.log("info",`KnishIOClient::switchEncryption() - Forcing encryption ${e?"on":"off"} to match node...`),this.$__encrypt=e,this.$__client.setEncryption(e),!0)}deinitialize(){this.log("info","KnishIOClient::deinitialize() - Clearing the Knish.IO client session..."),this.reset()}subscribe(){if(!this.client().getSocketUri())throw new Y("KnishIOClient::subscribe() - Socket client not initialized!");return this.client()}getServerSdkVersion(){return this.$__serverSdkVersion}reset(){this.$__secret="",this.$__bundle="",this.remainderWallet=null,this.$__capabilityCache={}}getCellSlug(){return this.$__cellSlug||null}setCellSlug(e){this.$__cellSlug=e}setUri(e){if(this.$__uris=typeof e=="object"?e:[e],this.$__client){const t=this.getRandomUri();this.$__client.setUri(t)}}setSocketUri(e){this.$__client&&typeof this.$__client.setSocketUri=="function"&&this.$__client.setSocketUri({socketUri:e,appKey:"knishio"})}getUri(){return this.$__client.getUri()}client(){if(!this.$__authInProcess){const e=this.getRandomUri();this.$__client.setUri(e);const t=this.$__authTokenObjects[e];t?this.$__client.setAuthData(t.getAuthData()):this.requestAuthToken({secret:this.$__secret,cellSlug:this.$__cellSlug,encrypt:this.$__encrypt}).catch(n=>{this.log("warn",`KnishIOClient::client() - Background authorization failed: ${n.message}`)})}return this.$__client}hasSecret(){return!!this.$__secret}setSecret(e){this.$__secret=e,this.$__bundle=this.hashSecret(e,"setSecret")}hashSecret(e,t=null){return this.log("info",`KnishIOClient::hashSecret(${t?`source: ${t}`:""}) - Computing wallet bundle from secret...`),oe(e)}getSecret(){if(!this.hasSecret())throw new Re("KnishIOClient::getSecret() - Unable to find a stored secret! Have you set a secret?");return this.$__secret}hasBundle(){return!!this.$__bundle}getBundle(){if(!this.hasBundle())throw new Re("KnishIOClient::getBundle() - Unable to find a stored bundle! Have you set a secret?");return this.$__bundle}getFingerprint(){return ar()}getFingerprintData(){return is()}async getSourceWallet(){let e=(await this.queryContinuId({bundle:this.getBundle()})).payload();return e?e.key=S.generateKey({secret:this.getSecret(),token:e.token,position:e.position}):e=new S({secret:this.getSecret()}),e}getRemainderWallet(){return this.remainderWallet}async createMolecule({secret:e=null,bundle:t=null,sourceWallet:n=null,remainderWallet:s=null}){this.log("info","KnishIOClient::createMolecule() - Creating a new molecule..."),e=e||this.getSecret(),t=t||this.getBundle();let r=null;if(n&&n.token!=="USER")if(this.lastMoleculeQuery&&this.getRemainderWallet()&&this.getRemainderWallet().token==="USER"&&this.lastMoleculeQuery.response()&&this.lastMoleculeQuery.response().success())r=this.getRemainderWallet().position;else{const i=await this.getSourceWallet();r=i?i.position:null}return!n&&this.lastMoleculeQuery&&this.getRemainderWallet().token==="USER"&&this.lastMoleculeQuery.response()&&this.lastMoleculeQuery.response().success()&&(n=this.getRemainderWallet()),n===null&&(n=await this.getSourceWallet()),this.remainderWallet=s||S.create({secret:e,bundle:t,token:"USER",batchId:n.batchId,characters:n.characters}),new V({secret:e,sourceWallet:n,remainderWallet:this.getRemainderWallet(),cellSlug:this.getCellSlug(),version:this.getServerSdkVersion(),continuIdPosition:r})}createQuery(e){return new e(this.client(),this)}createSubscribe(e){return new e(this.subscribe())}async createMoleculeMutation({mutationClass:e,molecule:t=null}){this.log("info",`KnishIOClient::createMoleculeQuery() - Creating a new ${e.name} query...`);const n=t||await this.createMolecule({}),s=new e(this.client(),this,n);if(!(s instanceof W))throw new Y(`${this.constructor.name}::createMoleculeMutation() - This method only accepts MutationProposeMolecule!`);return this.lastMoleculeQuery=s,s}async executeQuery(e,t=null){this.$__authToken&&this.$__authToken.isExpired()&&!this.$__authInProcess&&(this.log("info","KnishIOClient::executeQuery() - Access token is expired. Getting new one..."),await this.requestAuthToken({secret:this.$__secret,cellSlug:this.$__cellSlug,encrypt:this.$__encrypt}));const n=new AbortController,s=JSON.stringify({query:e.$__query,variables:t});this.abortControllers.set(s,n);try{const r=await e.execute({variables:t,context:{fetchOptions:{signal:n.signal}}});return this.abortControllers.delete(s),r}catch(r){if(r.name==="AbortError")this.log("warn","Query was cancelled");else throw r}}cancelQuery(e,t=null){const n=JSON.stringify({query:e.$__query,variables:t}),s=this.abortControllers.get(n);s&&(s.abort(),this.abortControllers.delete(n))}cancelAllQueries(){for(const e of this.abortControllers.values())e.abort();this.abortControllers.clear()}async queryBalance({token:e,bundle:t=null,type:n="regular"}){const s=this.createQuery(fn);return this.executeQuery(s,{bundleHash:t||this.getBundle(),token:e,type:n})}async querySourceWallet({token:e,amount:t,type:n="regular"}){const s=(await this.queryBalance({token:e,type:n})).payload();if(s===null||fe.cmp(s.balance,t)<0)throw new Z;if(!s.position||!s.address)throw new Z("Source wallet can not be a shadow wallet.");return s}async subscribeCreateMolecule({bundle:e,closure:t}){return await this.createSubscribe(Gs).execute({variables:{bundle:e||this.getBundle()},closure:t})}subscribeWalletStatus({bundle:e,token:t,closure:n}){if(!t)throw new Y(`${this.constructor.name}::subscribeWalletStatus() - Token parameter is required!`);return this.createSubscribe(Xs).execute({variables:{bundle:e||this.getBundle(),token:t},closure:n})}subscribeActiveWallet({bundle:e,closure:t}){return this.createSubscribe(Zs).execute({variables:{bundle:e||this.getBundle()},closure:t})}subscribeActiveSession({metaType:e,metaId:t,closure:n}){return this.createSubscribe(Ys).execute({variables:{metaType:e,metaId:t},closure:n})}unsubscribe(e){this.subscribe().unsubscribe(e)}unsubscribeAll(){this.subscribe().unsubscribeAll()}queryMeta({metaType:e,metaId:t=null,key:n=null,value:s=null,latest:r=!0,fields:i=null,filter:o=null,queryArgs:c=null,count:u=null,countBy:l=null,throughAtom:d=!0,throughMolecule:f=!1,values:p=null,keys:w=null,atomValues:I=null}){this.log("info",`KnishIOClient::queryMeta() - Querying metaType: ${e}, metaId: ${t}...`);let R,m;return f?(R=this.createQuery(gt),m=gt.createVariables({metaType:e,metaId:t,key:n,value:s,latest:r,filter:o,queryArgs:c,countBy:l,values:p,keys:w,atomValues:I,cellSlug:this.getCellSlug()})):d?(R=this.createQuery(yt),m=yt.createVariables({metaType:e,metaId:t,key:n,value:s,latest:r,filter:o,queryArgs:c,countBy:l,values:p,keys:w,atomValues:I,cellSlug:this.getCellSlug()})):(R=this.createQuery(dt),m=dt.createVariables({metaType:e,metaId:t,key:n,value:s,latest:r,filter:o,queryArgs:c,count:u,countBy:l,cellSlug:this.getCellSlug()})),this.executeQuery(R,m)}async queryMetaVerified(e){const t=await this.queryMeta(e),n=t.payload();return n&&(n.integrity=t.verifyIntegrity()),t}async hasQueryField(e){var s,r,i;const n=`${this.getUri()}::${e}`;if(typeof this.$__capabilityCache[n]=="boolean")return this.$__capabilityCache[n];try{const o=await this.$__client.query({query:"{ __schema { queryType { fields { name } } } }",variables:{}}),u=(((i=(r=(s=o==null?void 0:o.data)==null?void 0:s.__schema)==null?void 0:r.queryType)==null?void 0:i.fields)||[]).some(l=>l.name===e);return this.$__capabilityCache[n]=u,u}catch(o){return this.log("warn",`KnishIOClient::hasQueryField() - Capability probe for '${e}' failed: ${o.message}`),this.$__capabilityCache[n]=!1,!1}}async queryEmbeddingStatus({metaType:e=null,metaId:t=null,instances:n=null}){if(this.log("info",`KnishIOClient::queryEmbeddingStatus() - Checking embedding status for metaType: ${e||"(bulk)"}...`),!await this.hasQueryField("embeddingStatus"))return this.log("warn","KnishIOClient::queryEmbeddingStatus() - Server does not support embeddingStatus query. Returning null."),null;const r=this.createQuery(bt),i=bt.createVariables({metaType:e,metaId:t,instances:n});return this.executeQuery(r,i)}async queryBatch({batchId:e}){this.log("info",`KnishIOClient::queryBatch() - Querying cascading meta instances for batchId: ${e}...`);const t=this.createQuery(Se);return await this.executeQuery(t,{batchId:e})}async queryBatchHistory({batchId:e}){this.log("info",`KnishIOClient::queryBatchHistory() - Querying cascading meta instances for batchId: ${e}...`);const t=this.createQuery(yn);return await this.executeQuery(t,{batchId:e})}async queryAtom({molecularHashes:e,molecularHash:t,bundleHashes:n,bundleHash:s,positions:r,position:i,walletAddresses:o,walletAddress:c,isotopes:u,isotope:l,tokenSlugs:d,tokenSlug:f,cellSlugs:p,cellSlug:w,batchIds:I,batchId:R,values:m,value:b,metaTypes:k,metaType:O,metaIds:_,metaId:v,indexes:M,index:x,filter:$,latest:Q,queryArgs:U={limit:15,offset:1}}){this.log("info","KnishIOClient::queryAtom() - Querying atom instances");const _e=this.createQuery(mt);return await this.executeQuery(_e,mt.createVariables({molecularHashes:e,molecularHash:t,bundleHashes:n,bundleHash:s,positions:r,position:i,walletAddresses:o,walletAddress:c,isotopes:u,isotope:l,tokenSlugs:d,tokenSlug:f,cellSlugs:p,cellSlug:w,batchIds:I,batchId:R,values:m,value:b,metaTypes:k,metaType:O,metaIds:_,metaId:v,indexes:M,index:x,filter:$,latest:Q,queryArgs:U}))}async createWallet({token:e}){const t=new S({secret:this.getSecret(),token:e}),n=await this.createMoleculeMutation({mutationClass:Hn});return n.fillMolecule(t),await this.executeQuery(n)}async queryActiveSession({bundleHash:e,metaType:t,metaId:n}){const s=this.createQuery(jn);return await this.executeQuery(s,{bundleHash:e,metaType:t,metaId:n})}async queryUserActivity({bundleHash:e,metaType:t,metaId:n,ipAddress:s,browser:r,osCpu:i,resolution:o,timeZone:c,countBy:u,interval:l}){const d=this.createQuery(Vn);return await this.executeQuery(d,{bundleHash:e,metaType:t,metaId:n,ipAddress:s,browser:r,osCpu:i,resolution:o,timeZone:c,countBy:u,interval:l})}async activeSession({bundle:e,metaType:t,metaId:n,ipAddress:s,browser:r,osCpu:i,resolution:o,timeZone:c,json:u={}}){const l=this.createQuery(Fn);return await this.executeQuery(l,{bundleHash:e,metaType:t,metaId:n,ipAddress:s,browser:r,osCpu:i,resolution:o,timeZone:c,json:JSON.stringify(u)})}async createToken({token:e,amount:t=null,meta:n=null,batchId:s=null,units:r=[]}){const i=C.get(n||{},"fungibility");if(i==="stackable"&&(n.batchId=s||le({})),["nonfungible","stackable"].includes(i)&&r.length>0){if(C.get(n||{},"decimals")>0)throw new Nn;if(t>0)throw new We;t=r.length,n.splittable=1,n.decimals=0,n.tokenUnits=JSON.stringify(r)}const o=new S({secret:this.getSecret(),bundle:this.getBundle(),token:e,batchId:s}),c=await this.createMoleculeMutation({mutationClass:kn});return c.fillMolecule({recipientWallet:o,amount:t,meta:n||{}}),await this.executeQuery(c)}async createRule({metaType:e,metaId:t,rule:n,policy:s={}}){const r=await this.createMoleculeMutation({mutationClass:ts,molecule:await this.createMolecule({secret:this.getSecret()})});return r.fillMolecule({metaType:e,metaId:t,rule:n,policy:s}),await this.executeQuery(r)}async createMeta({metaType:e,metaId:t,meta:n=null,policy:s={}}){const r=await this.createMoleculeMutation({mutationClass:xn,molecule:await this.createMolecule({secret:this.getSecret()})}),i=n||{};return r.fillMolecule({metaType:e,metaId:t,meta:i,policy:s}),await this.executeQuery(r)}async registerPeer({host:e}){const t=await this.createMoleculeMutation({mutationClass:Rn,molecule:await this.createMolecule({secret:this.getSecret()})});return t.fillMolecule({host:e}),await this.executeQuery(t)}async appendRequest({metaType:e,metaId:t,action:n,meta:s={}}){const r=await this.createMoleculeMutation({mutationClass:qn,molecule:await this.createMolecule({secret:this.getSecret()})});return r.fillMolecule({metaType:e,metaId:t,action:n,meta:s}),await this.executeQuery(r)}async createIdentifier({type:e,contact:t,code:n}){const s=await this.createMoleculeMutation({mutationClass:In});return s.fillMolecule({type:e,contact:t,code:n}),await this.executeQuery(s)}async linkIdentifier({type:e,contact:t}){const n=this.createQuery(Bn);return await this.executeQuery(n,{bundle:this.getBundle(),type:e,content:t})}async createPolicy({metaType:e,metaId:t,policy:n={}}){const s=await this.createMolecule({});s.addPolicyAtom({metaType:e,metaId:t,meta:{},policy:n}),s.addContinuIdAtom(),s.sign({bundle:this.getBundle()}),s.check();const r=await this.createMoleculeMutation({mutationClass:W,molecule:s});return await this.executeQuery(r)}async queryPolicy({metaType:e,metaId:t}){const n=this.createQuery(Xn);return await this.executeQuery(n,{metaType:e,metaId:t})}queryWallets({bundle:e=null,token:t=null,unspent:n=!0}){this.log("info",`KnishIOClient::queryWallets() - Querying wallets${e?` for ${e}`:""}...`);const s=this.createQuery(dn);return this.executeQuery(s,{bundleHash:e||this.getBundle(),token:t,unspent:n}).then(r=>r.payload())}queryBundle({bundle:e=null,fields:t=null,raw:n=!1}){this.log("info",`KnishIOClient::queryBundle() - Querying wallet bundle metadata${e?` for ${e}`:""}...`),e||(e=this.getBundle()),typeof e=="string"&&(e=[e]);const s=this.createQuery(hn);return this.executeQuery(s,{bundleHashes:e}).then(r=>n?r:r.payload())}async queryContinuId({bundle:e}){const t=this.createQuery(cn);return this.executeQuery(t,{bundle:e})}async requestTokens({token:e,to:t,amount:n=null,units:s=[],meta:r=null,batchId:i=null}){let o,c;r=r||{};const u=this.createQuery(zn),l=await this.executeQuery(u,{slug:e}),d=C.get(l.data(),"0.fungibility")==="stackable";if(!d&&i!==null)throw new Ce("Expected Batch ID = null for non-stackable tokens.");if(d&&i===null&&(i=le({})),s.length>0){if(n>0)throw new We;n=s.length,r.tokenUnits=JSON.stringify(s)}t?(Object.prototype.toString.call(t)==="[object String]"&&(S.isBundleHash(t)?(o="walletBundle",c=t):t=S.create({secret:t,token:e})),t instanceof S&&(o="wallet",r.position=t.position,r.bundle=t.bundle,c=t.address)):(o="walletBundle",c=this.getBundle());const f=await this.createMoleculeMutation({mutationClass:_n});return f.fillMolecule({token:e,amount:n,metaType:o,metaId:c,meta:r,batchId:i}),await this.executeQuery(f)}async claimShadowWallet({token:e,batchId:t=null,molecule:n=null}){const s=await this.createMoleculeMutation({mutationClass:Tn,molecule:n});return s.fillMolecule({token:e,batchId:t}),await this.executeQuery(s)}async claimShadowWallets({token:e}){const t=await this.queryWallets({token:e});if(!t||!Array.isArray(t))throw new pt;t.forEach(s=>{if(!s.isShadow())throw new pt});const n=[];for(const s of t)n.push(await this.claimShadowWallet({token:e,batchId:s.batchId}));return n}async transferToken({bundleHash:e,token:t,amount:n=null,units:s=[],batchId:r=null,sourceWallet:i=null}){if(s.length>0){if(n>0)throw new We;n=s.length}if(i===null&&(i=await this.querySourceWallet({token:t,amount:n})),i===null||fe.cmp(i.balance,n)<0)throw new Z;const o=S.create({bundle:e,token:t});r!==null?o.batchId=r:o.initBatchId({sourceWallet:i});const c=i.createRemainder(this.getSecret());i.splitUnits(s,c,o);const u=await this.createMolecule({sourceWallet:i,remainderWallet:c}),l=await this.createMoleculeMutation({mutationClass:An,molecule:u});return l.fillMolecule({recipientWallet:o,amount:n}),await this.executeQuery(l)}async depositBufferToken({tokenSlug:e,amount:t,tradeRates:n,sourceWallet:s=null}){s===null&&(s=await this.querySourceWallet({token:e,amount:t}));const r=s.createRemainder(this.getSecret()),i=await this.createMolecule({sourceWallet:s,remainderWallet:r}),o=await this.createMoleculeMutation({mutationClass:ns,molecule:i});return o.fillMolecule({amount:t,tradeRates:n}),await this.executeQuery(o)}async withdrawBufferToken({tokenSlug:e,amount:t,sourceWallet:n=null,signingWallet:s=null}){n===null&&(n=await this.querySourceWallet({token:e,amount:t,type:"buffer"}));const r=n,i=await this.createMolecule({sourceWallet:n,remainderWallet:r}),o=await this.createMoleculeMutation({mutationClass:ss,molecule:i}),c={};return c[this.getBundle()]=t,o.fillMolecule({recipients:c,signingWallet:s}),await this.executeQuery(o)}async burnTokens({token:e,amount:t=null,units:n=[],sourceWallet:s=null}){s===null&&(s=await this.querySourceWallet({token:e,amount:t}));const r=s.createRemainder(this.getSecret());if(n.length>0){if(t>0)throw new We;t=n.length,s.splitUnits(n,r)}const i=await this.createMolecule({sourceWallet:s,remainderWallet:r});i.burnToken({amount:t}),i.sign({bundle:this.getBundle()}),i.check(s);const o=await this.createMoleculeMutation({mutationClass:W,molecule:i});return this.executeQuery(o)}async replenishToken({token:e,amount:t=null,units:n=[],sourceWallet:s=null}){if(s===null&&(s=(await this.queryBalance({token:e})).payload()),!s)throw new Z("Source wallet is missing or invalid.");const r=s.createRemainder(this.getSecret()),i=await this.createMolecule({sourceWallet:s,remainderWallet:r});i.replenishToken({amount:t,units:n}),i.sign({bundle:this.getBundle()}),i.check();const o=await this.createMoleculeMutation({mutationClass:W,molecule:i});return this.executeQuery(o)}async fuseToken({bundleHash:e,tokenSlug:t,newTokenUnit:n,fusedTokenUnitIds:s,sourceWallet:r=null}){if(r===null&&(r=(await this.queryBalance({token:t})).payload()),r===null)throw new Z("Source wallet is missing or invalid.");if(!r.tokenUnits||!r.tokenUnits.length)throw new Z("Source wallet does not have token units.");if(!s.length)throw new Z("Fused token unit list is empty.");const i=[];r.tokenUnits.forEach(d=>{i.push(d.id)}),s.forEach(d=>{if(!i.includes(d))throw new Z(`Fused token unit ID = ${d} does not found in the source wallet.`)});const o=S.create({bundle:e,token:t});o.initBatchId({sourceWallet:r});const c=r.createRemainder(this.getSecret());r.splitUnits(s,c),typeof n=="string"&&(n=new ce(n,n,{})),n.metas.fusedTokenUnits=r.getTokenUnitsData(),o.tokenUnits=[n];const u=await this.createMolecule({sourceWallet:r,remainderWallet:c});u.fuseToken(r.tokenUnits,o),u.sign({bundle:this.getBundle()}),u.check();const l=await this.createMoleculeMutation({mutationClass:W,molecule:u});return this.executeQuery(l)}async requestGuestAuthToken({cellSlug:e,encrypt:t}){this.setCellSlug(e);const n=new S({secret:Ne(await this.getFingerprint()),token:"AUTH"}),s=await this.createQuery(Kn),r={cellSlug:e,pubkey:n.pubkey,encrypt:t},i=await s.execute({variables:r});if(i.success()){const o=ke.create({token:i.token(),expiresAt:i.expiresAt(),pubkey:i.pubKey(),encrypt:i.encrypt()},n);this.setAuthToken(o)}else throw new ft(`KnishIOClient::requestGuestAuthToken() - Authorization attempt rejected by ledger. Reason: ${i.reason()}`);return i}async requestProfileAuthToken({secret:e,encrypt:t}){this.setSecret(e);const n=new S({secret:e,token:"AUTH"}),s=await this.createMolecule({secret:e,sourceWallet:n}),r=await this.createMoleculeMutation({mutationClass:bn,molecule:s});r.fillMolecule({meta:{encrypt:t?"true":"false"}});const i=await r.execute({});if(i.success()){const o=ke.create({token:i.token(),expiresAt:i.expiresAt(),pubkey:i.pubKey(),encrypt:i.encrypt()},n);this.setAuthToken(o)}else throw new ft(`KnishIOClient::requestProfileAuthToken() - Authorization attempt rejected by ledger. Reason: ${i.reason()}`);return i}async requestAuthToken({secret:e=null,seed:t=null,cellSlug:n=null,encrypt:s=!1}){if(this.$__serverSdkVersion<3)return this.log("warn","KnishIOClient::authorize() - Server SDK version does not require an authorization..."),null;e===null&&t&&(e=Ne(t)),n&&this.setCellSlug(n),this.$__authInProcess=!0;let r;return e?r=await this.requestProfileAuthToken({secret:e,encrypt:s}):r=await this.requestGuestAuthToken({cellSlug:n,encrypt:s}),this.log("info",`KnishIOClient::authorize() - Successfully retrieved auth token ${this.$__authToken.getToken()}...`),this.switchEncryption(s),this.$__authInProcess=!1,r}setAuthToken(e){if(!e){this.log("info","KnishIOClient::setAuthToken() - authToken object is empty.");return}this.$__authTokenObjects[this.getUri()]=e,this.client().setAuthData(e.getAuthData()),this.$__authToken=e}getAuthToken(){return this.$__authToken}log(e,t){if(this.$__logging)switch(e){case"info":console.info(t);break;case"warn":console.warn(t);break;case"error":console.error(t);break;default:console.log(t)}}}class kr extends E{constructor({query:e,json:t}){super({query:e,json:t,dataKey:"data.AccessToken"})}reason(){return"Invalid response from server"}success(){return this.payload()!==null}payload(){return this.data()}payloadKey(e){if(!C.has(this.payload(),e))throw new ne(`ResponseAuthorizationGuest::payloadKey() - '${e}' key is not found in the payload!`);return C.get(this.payload(),e)}token(){return this.payloadKey("token")}time(){return this.payloadKey("time")}}return h.Atom=g,h.AtomIndexException=ge,h.AtomMeta=H,h.AtomsMissingException=se,h.AuthToken=ke,h.AuthorizationRejectedException=ft,h.BalanceInsufficientException=pe,h.BatchIdException=Ce,h.CheckMolecule=we,h.CodeException=Y,h.Decimal=fe,h.Dot=C,h.InvalidResponseException=ne,h.KnishIOClient=wr,h.Meta=ie,h.MetaMissingException=P,h.MolecularHashMismatchException=nn,h.MolecularHashMissingException=sn,h.Molecule=V,h.Mutation=qe,h.MutationActiveSession=Fn,h.MutationAppendRequest=qn,h.MutationClaimShadowWallet=Tn,h.MutationCreateIdentifier=In,h.MutationCreateMeta=xn,h.MutationCreateRule=ts,h.MutationCreateToken=kn,h.MutationCreateWallet=Hn,h.MutationDepositBufferToken=ns,h.MutationLinkIdentifier=Bn,h.MutationPeering=Rn,h.MutationProposeMolecule=W,h.MutationRequestAuthorization=bn,h.MutationRequestAuthorizationGuest=Kn,h.MutationRequestTokens=_n,h.MutationTransferTokens=An,h.MutationWithdrawBufferToken=ss,h.NegativeAmountException=ze,h.PolicyInvalidException=at,h.PolicyMeta=Pe,h.Query=K,h.QueryActiveSession=jn,h.QueryAtom=mt,h.QueryBalance=fn,h.QueryBatch=Se,h.QueryBatchHistory=yn,h.QueryContinuId=cn,h.QueryEmbeddingStatus=bt,h.QueryMetaType=dt,h.QueryMetaTypeViaAtom=yt,h.QueryMetaTypeViaMolecule=gt,h.QueryPolicy=Xn,h.QueryToken=zn,h.QueryUserActivity=Vn,h.QueryWalletBundle=hn,h.QueryWalletList=dn,h.Response=E,h.ResponseActiveSession=Qn,h.ResponseAppendRequest=On,h.ResponseAtom=Jn,h.ResponseAuthorizationGuest=kr,h.ResponseBalance=pn,h.ResponseClaimShadowWallet=Mn,h.ResponseContinuId=ln,h.ResponseCreateIdentifier=vn,h.ResponseCreateMeta=Cn,h.ResponseCreateRule=es,h.ResponseCreateToken=wn,h.ResponseCreateWallet=Un,h.ResponseEmbeddingStatus=Yn,h.ResponseLinkIdentifier=Wn,h.ResponseMetaType=mn,h.ResponseMetaTypeViaAtom=Zn,h.ResponseMetaTypeViaMolecule=Ge,h.ResponsePeering=En,h.ResponsePolicy=Gn,h.ResponseProposeMolecule=j,h.ResponseQueryActiveSession=Ln,h.ResponseQueryUserActivity=Dn,h.ResponseRequestAuthorization=gn,h.ResponseRequestAuthorizationGuest=Pn,h.ResponseRequestTokens=Sn,h.ResponseTransferTokens=$n,h.ResponseWalletBundle=un,h.ResponseWalletList=Oe,h.SignatureMalformedException=ot,h.SignatureMismatchException=rn,h.StackableUnitAmountException=We,h.StackableUnitDecimalsException=Nn,h.TokenUnit=ce,h.TransferBalanceException=Z,h.TransferMalformedException=be,h.TransferMismatchedException=lt,h.TransferRemainderException=ct,h.TransferToSelfException=an,h.TransferUnbalancedException=Te,h.UnauthenticatedException=Re,h.Wallet=S,h.WalletShadowException=pt,h.WrongTokenTypeException=re,h.base64ToHex=Mt,h.bufferToHexString=At,h.charsetBaseConvert=$t,h.chunkArray=Ct,h.chunkSubstr=$e,h.deepCloning=xt,h.diff=Et,h.generateBatchId=le,h.generateBundleHash=oe,h.generateSecret=Ne,h.hexStringToBuffer=vt,h.hexToBase64=It,h.intersect=ye,h.isHex=He,h.isNumeric=Tt,h.randomString=Ue,h.shake256=et,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"}),h})({},jsSHA,UrqlCore,GraphQLWS,wonka);
575
585
  //# sourceMappingURL=client.iife.js.map